Update a ticket
Changes a ticket's status, priority, category, subject, tags, fields, assignee, or the CRM records it is about.
$0.01 a call
From your agent’s balance. A call that fails costs nothing.
An example
Paul has his bike back and is happy. Close ticket 87 and send him the satisfaction survey.
Your agent callsticket_update$0.01 a call
The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.
{
"number": 87,
"status": "resolved",
"ask_rating": true
}Use it when
A ticket changes hands, priority or state, or is resolved.
- For an answer to the customer at the same time, use
ticket_reply.
What it does
Change a ticket: status (open, pending = waiting on the customer, resolved), priority (its SLA targets follow), category, subject, tags, custom fields, the bot it is assigned to ("me", another bot's name, or "" for nobody) and the CRM contact or company it is about (0 unlinks). Resolving emails the requester a satisfaction survey when the settings ask for one; ask_rating true or false decides for this call (true also works on a ticket already resolved).
What comes back
The ticket as it now is, and the rating request when a survey was emailed. Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
numberRequired | integer | The ticket number, e.g. 42 for ticket #42. At least 1. |
status | string | One of: open,pending,resolved. |
priority | string | One of: low,normal,high,urgent. |
category | string | Up to 80 characters. |
subject | string | 1 to 200 characters. |
add_tags | array of strings | Short labels like "refund" or "vip" (kept lower-case, spaces become dashes). Up to 20 items. |
remove_tags | array of strings | Short labels like "refund" or "vip" (kept lower-case, spaces become dashes). Up to 20 items. |
fields | object | Custom fields like {"order_id": "1042"}, merged into the ticket's fields; null removes one. |
assign_to | string | Up to 80 characters. |
contact_id | integer | At least 0. |
company_id | integer | At least 0. |
ask_rating | boolean |
The call
Over MCP, call ticket_update on https://api.conecto.chat/mcp/helpdesk. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/ticket_update \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"number":87,"status":"resolved","ask_rating":true}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
not_found404 | No ticket of the business has that number. | Find it with ticket_list and use its number. |
not_found404 | No contact, company or agent matches what was given. | Use ids from crm_search, and assign_to "me", a key's bot name, or "" for nobody. |
invalid_input400 | A rating was asked for on a ticket that is not resolved, or a tag is not valid. | Send status "resolved" together with ask_rating: true. |
ambiguous409 | Several agents have the name in assign_to. | Let the agent meant claim it with assign_to "me". |
too_many422 | The ticket would hold more tags or custom fields than it may. | Remove some with remove_tags, or set fields to null, first. |
payment_required_for_outbound402 | The balance is still free credit, which cannot email people outside the business. | Top up once (POST /v1/topups); after that email to outsiders works. |
new_recipient_limit429 | The business has emailed as many new addresses today as it may. | Send to these people tomorrow. Replies and people who wrote first are not limited. |
sending_paused403 | Email from the business is paused after bounces, complaints or emails refused as cold outreach. | Tell the owner; Conecto reviews the pause before sending resumes. |
suppressed422 | An address bounced, complained or unsubscribed before. | Remove the addresses the message lists and send again. |
found_by_lookup422 | An address was found or checked with Conecto's lookups; a Conecto inbox never writes to it first. | Write from the business's own mailbox (google_mail_send or m365_mail_send). |
cold_email422 | The email looks like cold outreach, a pitch or a request to people who never wrote to the business, so it wasn't sent. The third within 7 days pauses the account's email. | Email only people who wrote first or asked to hear from the business. |
check_unavailable503 | The check an email to someone new goes through couldn't run just now. | Try again in a minute. |
send_failed502 | The email service did not accept the email. | Call again in a moment. |
sending_unavailable503 | Email to outsiders is not possible yet while the sending account is in review. | Send to the owner's address for now, or try again later. |
More Help desk tools
All 13 tools- List tickets
ticket_listTickets, newest activity first, filtered by status, priority, requester, tag, field or contact, or as a work queue.Free* - Read a ticket
ticket_getOne ticket with its request, every reply, customer message and note, its fields, SLA state and rating.Free* - Open a ticket
ticket_createOpens a support ticket for a customer request; the customer is emailed only if you ask.$0.01 a call - Reply to a ticket
ticket_replyEmails the requester a reply in the ticket's thread, with files if needed, or adds a private note, and can set the status.$0.05 a call - Merge tickets
ticket_mergeMerges a duplicate ticket into another: its messages, notes, email threads, tags and fields move over.$0.01 a call - Connect a support inbox
ticket_connect_inboxMakes an inbox a support inbox: every new email to it opens a ticket, and replies stay in its thread.$0.001 a call - Save a canned reply
ticket_save_templateSaves a canned reply under a name, with the status and tags it applies whenever it is sent.$0.001 a call - List canned replies
ticket_list_templatesEvery saved reply with its text, status and tags.Free*
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md