Help desk

Save a canned reply

ticket_save_template · Changes data · Markdown

Saves a canned reply under a name, with the status and tags it applies whenever it is sent.

$0.001 a call

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

An example

Save our standard answer about repair times, and set tickets to waiting on the customer when we send it.

Your agent callsticket_save_template$0.001 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
{
  "name": "repair-times",
  "status": "pending",
  "tags": [
    "repairs"
  ],
  "body": "Hello {requester_name},\n\na tune-up takes 2 to 3 working days, and a repair that needs parts 5 to 7. We text you as soon as your bike is ready to pick up.\n\n{business_name}"
}
What comes back
{
  "template": {
    "name": "repair-times",
    "body": "Hello {requester_name},\n\na tune-up takes 2 to 3 working days, and a repair that needs parts 5 to 7. We text you as soon as your bike is ready to pick up.\n\n{business_name}",
    "status": "pending",
    "tags": [
      "repairs"
    ],
    "updated_at": "2026-10-14T08:00:00+00:00"
  },
  "created": true
}

Use it when

The same answer goes out again and again: repair times, returns, care tips.

What it does

Save a canned reply (a macro) under a name, replacing the one with that name. body may use {requester_name}, {requester_email}, {ticket_number}, {ticket_subject} and {business_name}. status and tags, if given, are applied each time it is sent with ticket_reply (e.g. status "resolved").

What comes back

The saved reply (name, body, status, tags), and created: true when the name is new. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
nameRequiredstring1 to 80 characters.
bodyRequiredstring1 to 8,000 characters.
statusstringOne of: open,pending,resolved.
tagsarray of stringsShort labels like "refund" or "vip" (kept lower-case, spaces become dashes). Up to 20 items.

The call

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

Terminal
curl -X POST https://api.conecto.chat/v1/tools/ticket_save_template \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"repair-times","status":"pending","tags":["repairs"],"body":"Hello {requester_name},\n\na tune-up takes 2 to 3 working days, and a repair that needs parts 5 to 7. We text you as soon as your bike is ready to pick up.\n\n{business_name}"}'

When it refuses

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

CodeWhenWhat to do
invalid_input400The body uses a placeholder that does not exist, or a tag is not valid.Use only the placeholders the message lists, like {requester_name}.
conflict409A reply with that name was saved at the same moment.Call again.

Give this to your agent.

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