Help desk

Open a ticket

ticket_create · Changes data · Markdown

Opens a support ticket for a customer request; the customer is emailed only if you ask.

$0.01 a call

From your agent’s balance. A call that fails costs nothing.

An example

Paul Hoffmann called: the Tabor gravel bike we shipped him arrived with a scratch on the top tube. Open a high-priority ticket with order 2231 on it.

Your agent callsticket_create$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.

With these arguments
{
  "email": "paul.hoffmann@example.com",
  "name": "Paul Hoffmann",
  "subject": "Scratch on the Tabor's top tube",
  "message": "Called on Wednesday: the Tabor gravel bike delivered on Monday has a 3 cm scratch on the top tube. He would like it touched up or the frame swapped.",
  "priority": "high",
  "category": "Damaged delivery",
  "tags": [
    "damage"
  ],
  "fields": {
    "order_id": "2231"
  }
}
What comes back
{
  "ticket": {
    "number": 1,
    "subject": "Scratch on the Tabor's top tube",
    "status": "open",
    "priority": "high",
    "category": "Damaged delivery",
    "tags": [
      "damage"
    ],
    "requester_email": "paul.hoffmann@example.com",
    "requester_name": "Paul Hoffmann",
    "contact_id": null,
    "company_id": null,
    "source": "api",
    "channel": "api",
    "assigned_to": null,
    "waiting_on": "us",
    "sla": null,
    "merged_into": null,
    "created_at": "2026-10-14T08:00:00+00:00",
    "last_activity_at": "2026-10-14T08:00:00+00:00",
    "first_reply_at": null,
    "resolved_at": null
  }
}

Use it when

A request came by phone, chat or in person and should be tracked as a ticket.

What it does

Open a support ticket for a customer request (email to a support inbox opens one by itself; see ticket_connect_inbox). The requester is not emailed unless email_requester is true: then they get the usual acknowledgement, from the account's support inbox when it has one, so their answer comes back to this ticket.

What comes back

The ticket as opened, and with email_requester: true, whether the acknowledgement email went out. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
emailRequiredstringUp to 254 characters.
namestringUp to 255 characters.
messageRequiredstring1 to 20,000 characters.
subjectstringDefaults to the first line of message. Up to 200 characters.
prioritystringOne of: low,normal,high,urgent.
categorystringUp to 80 characters.
tagsarray of stringsShort labels like "refund" or "vip" (kept lower-case, spaces become dashes). Up to 20 items.
fieldsobjectCustom fields like {"order_id": "1042"}, merged into the ticket's fields; null removes one.
company_idintegerThe CRM company this request is about. At least 1.
email_requesterbooleanDefault: false.

The call

Over MCP, call ticket_create on https://api.conecto.chat/mcp/helpdesk. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/ticket_create \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"paul.hoffmann@example.com","name":"Paul Hoffmann","subject":"Scratch on the Tabor'\''s top tube","message":"Called on Wednesday: the Tabor gravel bike delivered on Monday has a 3 cm scratch on the top tube. He would like it touched up or the frame swapped.","priority":"high","category":"Damaged delivery","tags":["damage"],"fields":{"order_id":"2231"}}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
invalid_input400A tag has characters a tag cannot have.Use up to 40 letters, digits, dashes, dots, colons or slashes, starting with a letter or digit.
not_found404No company of the business has that company_id.Find it with crm_find_companies and use its id.
payment_required_for_outbound402The 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_limit429The 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_paused403Email from the business is paused after bounces, complaints or emails refused as cold outreach.Tell the owner; Conecto reviews the pause before sending resumes.
suppressed422An address bounced, complained or unsubscribed before.Remove the addresses the message lists and send again.
found_by_lookup422An 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_email422The 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_unavailable503The check an email to someone new goes through couldn't run just now.Try again in a minute.
send_failed502The email service did not accept the email.Call again in a moment.
sending_unavailable503Email 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.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md