Tickets
Service work for patients and accounts — refill requests, complaints, follow-ups.
Tickets live in a pipeline (separate from deals) and have priorities of LOW, NORMAL, HIGH, URGENT. Status is free-form (the per-pipeline stages provide the structured movement).
Create a ticket
Open a new service ticket. Can be tied to a contact, a company, or stand alone.
Required scopes:
contacts.writeRequest body
| Name | Type | Description |
|---|---|---|
subjectrequired | string | Short summary. 1–200 chars. |
description | string | Long description. ≤ 20,000 chars. |
priority | string | LOW | NORMAL | HIGH | URGENT. |
ownerId | string | Owning user id. |
pipelineId | string | Pipeline id. |
pipelineStageId | string | Initial stage id. |
contactId | string | Linked contact. |
companyId | string | Linked company. |
status | string | Free-form status label. |
Request body
{ "subject": "Pharmacy refill request", "priority": "HIGH", "contactId": "cln…" }Responses
201 CreatedCreated.example { "id": "tk_3rt8q9…", "subject": "Pharmacy refill request", "description": "Patient out of Rx until Friday.", "priority": "HIGH", "status": "OPEN", "pipelineId": "pl_tickets_default", "pipelineStageId": "ps_new", "ownerId": "usr_8h2c3p…", "contactId": "cln1f8s7p…", "companyId": null, "createdAt": "2026-05-18T14:00:00Z" }422 Unprocessable EntityValidation failed.
Code samples
curl -X POST https://app.contactfollowup.com/api/tickets \
-H "Authorization: Bearer $HEARTHNOTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "subject": "Pharmacy refill request", "priority": "HIGH", "contactId": "cln…" }'List tickets
Filtered list.
Required scopes:
contacts.readQuery parameters
| Name | Type | Description |
|---|---|---|
ownerId | string | Filter by owning user. |
status | string | Filter by status label. |
pipelineId | string | Filter by pipeline. |
Responses
200 OKMatching tickets.example { "tickets": [{ "id": "tk_3rt8q9…", "subject": "Pharmacy refill request", "description": "Patient out of Rx until Friday.", "priority": "HIGH", "status": "OPEN", "pipelineId": "pl_tickets_default", "pipelineStageId": "ps_new", "ownerId": "usr_8h2c3p…", "contactId": "cln1f8s7p…", "companyId": null, "createdAt": "2026-05-18T14:00:00Z" }] }
Code samples
curl -X GET https://app.contactfollowup.com/api/tickets \
-H "Authorization: Bearer $HEARTHNOTE_TOKEN" \
-H "Content-Type: application/json"