9 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 ticket
helpdesk.assignwrite
Assign a ticket to a team member (they get a notification), or unassign it by omitting the assignee.
Parameters
Field
Type
Required
Description
id
string (uuid)
required
The ticket to assign.
assignee_user_id
string (uuid) (or null)
optional
The team member to own it. Null or omitted unassigns.
Over MCP the same operation is the tool helpdesk_assign at https://app.chirply.io/api/mcp, same bearer token, same input.
New ticket
helpdesk.createwrite
Create a help desk ticket on the customer's behalf. Stamps a first-response SLA deadline from the account's per-priority policy, links (or creates) the CRM contact from the requester's email/phone, and notifies the assignee — or the desk's default assignee, or the whole account. Sends no email or SMS to the customer (the 'we got your request' confirmation email goes out only for the customer's own public-portal submissions).
Parameters
Field
Type
Required
Description
subject
string
required
One line saying what the ticket is about.
body
string
required
The request itself, as the customer described it.
priority
"low" | "normal" | "high" | "urgent"
optional
How urgent the ticket is. Drives the first-response SLA target. Default: "normal"
queue
string
optional
Queue to file it in (free-text name, e.g. 'Billing').
assignee_user_id
string (uuid)
optional
Team member to assign it to. Omit to leave it unassigned.
contact_id
string (uuid)
optional
Existing CRM contact this ticket belongs to. Omit to match-or-create one from the requester email/phone.
Over MCP the same operation is the tool helpdesk_create at https://app.chirply.io/api/mcp, same bearer token, same input.
Open a ticket
helpdesk.getread
Fetch one help desk ticket by id, with its full thread — public replies the customer can see and internal agent-only notes, each marked by its `internal` flag.
Over MCP the same operation is the tool helpdesk_get at https://app.chirply.io/api/mcp, same bearer token, same input.
Help Desk settings
helpdesk.get_settingsread
Read the account's help desk configuration: the first-response SLA target in minutes for each ticket priority, whether the customer-facing submission portal is on and the public URL it is served at, the portal's display name and intro copy, the default assignee and default queue new tickets land in, and whether public replies are also emailed to the customer. Reads only — nothing is changed and nobody is contacted.
Over MCP the same operation is the tool helpdesk_get_settings at https://app.chirply.io/api/mcp, same bearer token, same input.
List tickets
helpdesk.listread
List the account's help desk tickets (support requests from its OWN customers), most recently updated first. Optionally filter by status, priority, assignee, queue, or the linked contact.
Parameters
Field
Type
Required
Description
limit
integer
optional
Max rows to return (1–100). Default: 25
offset
integer
optional
Rows to skip. Default: 0
status
"new" | "open" | "waiting" | "solved" | "closed"
optional
Only tickets in this status.
priority
"low" | "normal" | "high" | "urgent"
optional
Only tickets at this priority.
assignee_user_id
string (uuid)
optional
Only tickets assigned to this team member.
queue
string
optional
Only tickets in this queue (queues are free-text names).
Over MCP the same operation is the tool helpdesk_list at https://app.chirply.io/api/mcp, same bearer token, same input.
Reply on ticket
helpdesk.replywriteconfirm
Post an agent message on a ticket. A public reply (internal=false) is shown to the customer on their ticket status page, stops the first-response SLA clock, and moves a new/open ticket to 'waiting' — and when the account's help desk email updates are on (the default while an email provider is connected) and the ticket has a requester email, the reply is ALSO emailed to that real customer through its own connected email account, with a reply-to address that threads their answer back onto the ticket. It is outward-facing customer communication. An internal note (internal=true) stays agent-only and is never emailed.
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.
Parameters
Field
Type
Required
Description
id
string (uuid)
required
The ticket to reply on.
body
string
required
The message text.
internal
boolean
optional
true = private agent note the customer never sees; false = public reply shown on the customer's ticket page. Default: false
Over MCP the same operation is the tool helpdesk_set_priority at https://app.chirply.io/api/mcp, same bearer token, same input.
Set ticket status
helpdesk.set_statuswrite
Move a ticket between statuses. Setting 'solved' stamps the solve time and makes the customer's ticket page offer a one-time 1–5 CSAT rating; reopening a solved/closed ticket clears the solve stamp. Reversible at any time.
Parameters
Field
Type
Required
Description
id
string (uuid)
required
The ticket to move.
status
"new" | "open" | "waiting" | "solved" | "closed"
required
new = untouched, open = an agent is on it, waiting = waiting on the customer, solved = believed done (starts the CSAT ask), closed = archived.
Over MCP the same operation is the tool helpdesk_set_status at https://app.chirply.io/api/mcp, same bearer token, same input.
Save Help Desk settings
helpdesk.update_settingswriteconfirm
Change the account's help desk configuration. Omitted fields are left alone. Turning `portal_enabled` on PUBLISHES a public web page where anyone with the link can open tickets against this account, and the portal name/intro appear on that public page; changing the default assignee or queue changes where every new customer ticket lands; the SLA minutes set the first-response deadline stamped on tickets from now on (existing tickets keep their deadline); `email_updates` controls whether public replies are also emailed to the real customer through the account's own connected email. Requires the plan that includes the help desk. Returns the settings as they now stand.
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.
Parameters
Field
Type
Required
Description
sla_urgent_minutes
integer
optional
First-response target for urgent tickets, in minutes (5 to 43200 = 30 days).
sla_high_minutes
integer
optional
First-response target for high-priority tickets, in minutes (5 to 43200).
sla_normal_minutes
integer
optional
First-response target for normal-priority tickets, in minutes (5 to 43200).
sla_low_minutes
integer
optional
First-response target for low-priority tickets, in minutes (5 to 43200).
portal_enabled
boolean
optional
true publishes the public submission portal page; false stops NEW submissions (existing ticket links keep working for their requesters).
portal_name
string (or null)
optional
Heading shown on the public portal page. Null clears it back to the default.
portal_intro
string (or null)
optional
Intro copy shown on the public portal page. Null clears it.
default_assignee_user_id
string (uuid) (or null)
optional
Team member who is notified about (and owns) new unassigned tickets. Null notifies the whole account instead.
default_queue
string (or null)
optional
Queue new portal tickets are filed in (free-text name). Null for no queue.
email_updates
boolean
optional
true (the default state) also emails each public agent reply to the ticket's requester through the account's own connected email account.