A ticket is a customer question with a clock on it. Tickets can arrive through five doors: a WhatsApp account or conversation marked as support, a call to a support number, mail to your support address, the New ticket button and the API. Any member of the workspace can open and work tickets.
Read the tickets list
- In the sidebar, under Support, open Tickets.
- The tiles show Open tickets, SLA breached, At risk and Average first response.
- Use the quick chips Mine, SLA breached and At risk, or search by subject, requester or reference.
- Press Board for one column per status. List brings you back.
| Status | Meaning |
|---|---|
| Open | Waiting on us |
| Pending | In progress |
| Waiting on customer | Their move |
| Resolved | Fixed, not yet closed |
| Closed | Done |
Priorities are Urgent, High, Normal and Low. The SLA column shows On track, At risk (inside the last quarter of the window), SLA breached (past due and still open) or SLA met.
Work a ticket
- On the ticket's row open the actions menu.
- Under Assign choose Assign to me or a teammate.
- Under Status choose Mark pending, Waiting on the contact or Resolve.
- When you resolve a ticket, the satisfaction question goes out on the same channel.
Door 1: WhatsApp
- Open Settings, then Bridge. Find the Support card.
- Switch on the WhatsApp account your customers write to, or type its number under Add an account and press Mark as support.
- For one conversation only, open it in the Inbox, press More and choose Mark as support.
Inbound messages captured there open a ticket, or attach to the person's open one. The steps in detail are in WhatsApp Web capture and assisted send.
Door 2: calls
A number becomes a support number through its purpose.
- Open Settings, then Channels.
- Press Add a channel, or edit the voice number you already have.
- Under Purpose choose Support: inbound opens a ticket.
- Press Save channel.
From then on a finished inbound call to that number opens a ticket with the transcript on it. A call nobody answered opens a high priority ticket titled "Missed call from" the caller, with a callback task for the team, so it cannot be forgotten.
Door 3: email
Every workspace has its own support address in the form support+yourworkspace@ternup.io, where the last part is your workspace's short name.
- Open Support, then Tickets.
- Find the address at the top of the page, beside New ticket. Press it to copy it.
- In your mail system, forward your support mailbox to that address.
- Mail sent to it opens a ticket. Replies you write in the Inbox go out from the same address and stay in the customer's email thread.
Keep attachments small for now: mail over 150 KB is bounced back to the sender.
Door 4: New ticket
Use this for a call you took elsewhere or a walk in.
- On the Tickets page press New ticket. The same button is on a lead's page and on an Inbox thread, where the requester is already filled in.
- Fill in Subject.
- Fill in Email or phone. An existing contact is matched: otherwise one is created, using Name.
- Pick a Priority and describe What happened.
- Press Open ticket. The first response clock starts now.
Door 5: the API
A web form or another system can open tickets with one request. Owners and admins manage the keys.
- In the sidebar open Integrations and press API keys at the top.
- Press New key.
- Give it a Name that says where it will live, such as "Website contact form". Pick an Expiry: Does not expire, 90 days or One year.
- Press Create key.
- The dialog Copy your key now shows the key. This is the only time it is shown. Press Copy and store it as a secret on your server, never in a web page.
- Press Done.
Then send the ticket from your server:
POST https://app.ternup.io/api/public/tickets
Authorization: Bearer tern_yourkey
Content-Type: application/json
{
"subject": "Cannot log in to the portal",
"body": "Tried twice this morning.",
"priority": "normal",
"requester": { "email": "sam@example.com", "name": "Sam Carter" },
"tags": ["website"],
"external_ref": "form-10482"
}| Field | Needed | Notes |
|---|---|---|
subject | Yes | Up to 200 characters |
requester | Yes | An email or a phone in international form, plus an optional name |
body | No | Up to 4000 characters |
priority | No | low, normal, high or urgent. Normal when left out |
tags | No | Up to 20 |
external_ref | No | Your own id for the request. Makes a retry safe |
| Answer | Meaning |
|---|---|
| 201 | The ticket was opened |
| 200 | A ticket with this external_ref already exists and is returned |
| 401 | The key is missing or not valid |
| 403 | The key may not open tickets |
| 422 | The body did not pass validation. The answer lists what to fix |
| 429 | Too many requests. Wait the number of seconds in retry-after |
A key may send 60 requests a minute. Always send an external_ref, so a request repeated after a timeout answers with the first ticket and does not open a second one.
Revoke a key
- Open Integrations, then API keys.
- Press Revoke on the key's row and confirm with Revoke key.
Anything still using the key gets a 401 from the next request. This cannot be undone, so create the new key first when you are rotating.