12 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.
Assign a deal owner
deals.assignwrite
Set the org member who owns a deal, or pass owner_id=null to leave it unassigned. The user must already be a member of this organization.
Over MCP the same operation is the tool deals_assign at https://app.chirply.io/api/mcp, same bearer token, same input.
Create a deal
deals.createwrite
Create a deal on a pipeline board. Only a title is required: without pipeline_id it lands on the org's default pipeline, and without stage_id it goes in that pipeline's first stage. The status is derived from the stage — creating straight into a won/lost stage closes the deal.
Parameters
Field
Type
Required
Description
title
string
required
What the opportunity is called.
pipeline_id
string (uuid)
optional
Pipeline to create it on. Defaults to the org's default pipeline.
stage_id
string (uuid)
optional
Stage to drop it in. Defaults to the pipeline's first stage.
value_cents
integer
optional
Deal value in integer cents — $1,200.50 is 120050. Default: 0
currency
string
optional
ISO currency code, e.g. 'usd'.
contact_id
string (uuid)
optional
Contact this deal belongs to.
company_id
string (uuid)
optional
Company this deal belongs to.
owner_id
string (uuid)
optional
Org member who owns the deal.
expected_close
string (date)
optional
Expected close date, YYYY-MM-DD.
custom
map of string → object
optional
Custom field values, keyed by the org's deal custom-field keys. Team member fields (type "user") take a team member's email address or user id and store the user id; only current members are accepted.
Over MCP the same operation is the tool deals_create at https://app.chirply.io/api/mcp, same bearer token, same input.
Delete a deal
deals.deletewriteconfirm
Permanently delete a deal. DESTRUCTIVE: its activity timeline (notes, stage changes) is deleted with it, and any task pointing at it loses the link. The contact and company survive. Cannot be undone.
Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.
Over MCP the same operation is the tool deals_get at https://app.chirply.io/api/mcp, same bearer token, same input.
Link a deal to a contact or company
deals.linkwrite
Attach a deal to a contact and/or a company so it shows on that record, or pass null to unlink. Supply at least one of contact_id or company_id; both must belong to this organization.
Over MCP the same operation is the tool deals_link at https://app.chirply.io/api/mcp, same bearer token, same input.
List deals
deals.listread
List and search deals, newest first. Filter by pipeline, stage, status, owner, contact, or company, by who holds a Team member field ("deals where I'm the Designer": member_field=designer, member=me), and search deal titles with `query`. Values come back as integer cents.
Parameters
Field
Type
Required
Description
limit
integer
optional
Max rows to return (1–100). Default: 25
offset
integer
optional
Rows to skip. Default: 0
pipeline_id
string (uuid)
optional
Only deals on this pipeline.
stage_id
string (uuid)
optional
Only deals in this stage.
status
"open" | "won" | "lost" | "abandoned"
optional
Only deals with this status.
owner_id
string (uuid)
optional
Only deals owned by this user.
contact_id
string (uuid)
optional
Only deals linked to this contact.
company_id
string (uuid)
optional
Only deals linked to this company.
member_field
string
optional
Key of a Team member custom field on deals (type "user" in contacts.list_fields, e.g. "designer"). Requires `member`.
member
string
optional
Who holds `member_field`: "me" (the signed-in person; not available to API keys), a team member's user id, or their email address.
Over MCP the same operation is the tool deals_list at https://app.chirply.io/api/mcp, same bearer token, same input.
Mark a deal abandoned
deals.mark_abandonedwrite
Close a deal as abandoned (walked away, not a loss) and stamp its close time. No stage carries an 'abandoned' flag, so the deal keeps its current column but stops counting as open.
Over MCP the same operation is the tool deals_mark_abandoned at https://app.chirply.io/api/mcp, same bearer token, same input.
Mark a deal lost
deals.mark_lostwrite
Close a deal as lost and stamp its close time. If the pipeline has a stage flagged as lost, the deal is moved into that column and a stage-change entry is logged.
Over MCP the same operation is the tool deals_mark_lost at https://app.chirply.io/api/mcp, same bearer token, same input.
Mark a deal won
deals.mark_wonwrite
Close a deal as won and stamp its close time. If the pipeline has a stage flagged as won, the deal is moved into that column and a stage-change entry is logged, exactly as dragging it there would.
Over MCP the same operation is the tool deals_mark_won at https://app.chirply.io/api/mcp, same bearer token, same input.
Move a deal to another stage
deals.movewrite
Drop a deal card into a stage of its own pipeline — the drag gesture on the board. Without `position` it lands at the bottom of the target column; with one it lands at that slot and the rest of the column shifts down. Moving to a new stage re-derives the deal's status from that stage's outcome (won/lost stages close the deal and stamp closed_at) and logs a stage-change entry on the deal's timeline. Passing the stage the deal is already in just reorders it inside that column — no status change, no timeline entry.
Parameters
Field
Type
Required
Description
id
string (uuid)
required
The deal to move.
stage_id
string (uuid)
required
The stage to move it into. Must be in the deal's pipeline. The deal's current stage means reorder within that column.
position
integer
optional
Where in the target column the card lands, counting from 0 at the top and ignoring the card itself. Omit to append to the bottom; a value past the end is clamped there.
Over MCP the same operation is the tool deals_move at https://app.chirply.io/api/mcp, same bearer token, same input.
Reopen a deal
deals.reopenwrite
Put a closed deal (won, lost, or abandoned) back to open and clear its close time. Pass stage_id to also move it back into a working column — otherwise it stays where it is, which may be a won/lost column.
Parameters
Field
Type
Required
Description
id
string (uuid)
required
The deal to reopen.
stage_id
string (uuid)
optional
Optional stage of the deal's pipeline to move it back into.
Over MCP the same operation is the tool deals_reopen at https://app.chirply.io/api/mcp, same bearer token, same input.
Edit a deal
deals.updatewrite
Update any field on a deal — title, value, currency, expected close date, links, custom fields, stage, or status. Omitted fields are left alone. Moving it with stage_id re-derives the status from that stage; passing status explicitly wins and stamps or clears closed_at accordingly. Changing the stage also writes one stage-change entry on the deal's timeline and the account Activity Log, recording the previous and new stage and naming the caller honestly — an API key is recorded as the API, not as a person.
Parameters
Field
Type
Required
Description
id
string (uuid)
required
The deal to edit.
title
string
optional
What the opportunity is called.
stage_id
string (uuid) (or null)
optional
Move it to this stage of its pipeline.
status
"open" | "won" | "lost" | "abandoned"
optional
Force a status instead of deriving it from the stage.
value_cents
integer
optional
Deal value in integer cents — $1,200.50 is 120050.
currency
string
optional
ISO currency code, e.g. 'usd'.
contact_id
string (uuid) (or null)
optional
Contact this deal belongs to, or null to unlink it.
company_id
string (uuid) (or null)
optional
Company this deal belongs to, or null to unlink it.
owner_id
string (uuid) (or null)
optional
Org member who owns the deal, or null to leave it unowned.
expected_close
string (date) (or null)
optional
Expected close date, YYYY-MM-DD, or null to clear it.
custom
map of string → object
optional
Replaces the deal's custom field blob wholesale. Team member fields (type "user") take a team member's email address or user id and store the user id; only current members are accepted.