Docs Canned Responses

Canned Responses

Canned responses are pre-written reply templates that agents can quickly insert when responding to tickets. They save time on repetitive questions and ensure consistent messaging across your support team.

List Canned Responses

GET /api/v1/canned-responses

Returns all canned responses accessible to the current user. This includes personal responses created by the user and shared responses created by any team member.

Query Parameters

Parameter Type Default Description
per_page integer 25 Results per page (max: 100)
cursor string Cursor for next page
category string Filter by category name
is_shared boolean Filter shared vs. personal responses
search string Full-text search in title and body

Example Request

GET /api/v1/canned-responses?category=billing&is_shared=true

Example Response

{
  "data": [
    {
      "id": "01912345-6789-7abc-def0-123456789abc",
      "title": "Refund Processing Time",
      "body": "Hi {{customer_name}},\n\nThank you for your patience. Your refund has been initiated and will be processed within **5-7 business days**.\n\nOnce the refund is complete, you'll receive a confirmation email. If you don't see it within 7 business days, please let us know and we'll investigate.\n\nBest regards,\n{{agent_name}}",
      "category": "billing",
      "is_shared": true,
      "keyboard_shortcut": "/refund-time",
      "created_by": {
        "id": "01912345-3333-7abc-def0-123456789abc",
        "name": "Alex Johnson"
      },
      "usage_count": 142,
      "created_at": "2025-01-10T08:00:00Z",
      "updated_at": "2025-01-14T11:30:00Z"
    },
    {
      "id": "01912345-aaaa-7abc-def0-123456789abc",
      "title": "Payment Method Update",
      "body": "Hi {{customer_name}},\n\nTo update your payment method:\n\n1. Log in to your account at **{{portal_url}}**\n2. Navigate to **Billing > Payment Methods**\n3. Click **Add Payment Method**\n4. Enter your new card details and click **Save**\n\nYour next billing cycle will automatically use the new payment method.\n\nLet me know if you run into any issues!",
      "category": "billing",
      "is_shared": true,
      "keyboard_shortcut": "/payment-update",
      "created_by": {
        "id": "01912345-4444-7abc-def0-123456789abc",
        "name": "Sarah Chen"
      },
      "usage_count": 89,
      "created_at": "2025-01-11T09:00:00Z",
      "updated_at": "2025-01-11T09:00:00Z"
    }
  ],
  "meta": {
    "per_page": 25,
    "has_more": false,
    "next_cursor": null
  }
}

Create a Canned Response

POST /api/v1/canned-responses

Request Body

Field Type Required Description
title string Yes Response title for quick identification (max 255 chars)
body string Yes Response content with Markdown support (max 10,000 chars)
category string No Category for organization (max 100 chars)
is_shared boolean No If true, visible to all agents. Default: false
keyboard_shortcut string No Quick-insert shortcut (max 50 chars, must start with /)

Template Variables

The body field supports template variables that are replaced with actual values when the response is inserted into a ticket reply:

Variable Description
{{customer_name}} The customer's display name
{{customer_email}} The customer's email address
{{ticket_number}} The ticket number
{{ticket_subject}} The ticket subject
{{agent_name}} The current agent's name
{{portal_url}} The customer portal URL
{{company_name}} The tenant's company name

Example Request

{
  "title": "Account Locked - Password Reset",
  "body": "Hi {{customer_name}},\n\nIt looks like your account has been temporarily locked due to multiple failed login attempts. This is a security measure to protect your account.\n\nTo unlock your account:\n\n1. Go to **{{portal_url}}/reset-password**\n2. Enter your email address: `{{customer_email}}`\n3. Check your inbox for the reset link (valid for 60 minutes)\n4. Set a new password and log in\n\nIf you didn't attempt to log in, please let us know immediately so we can investigate any unauthorized access.\n\nBest regards,\n{{agent_name}}",
  "category": "account",
  "is_shared": true,
  "keyboard_shortcut": "/locked-account"
}

Example Response (201 Created)

{
  "data": {
    "id": "01912345-bbbb-7abc-def0-123456789abc",
    "title": "Account Locked - Password Reset",
    "body": "Hi {{customer_name}},\n\nIt looks like your account has been temporarily locked...",
    "category": "account",
    "is_shared": true,
    "keyboard_shortcut": "/locked-account",
    "created_by": {
      "id": "01912345-3333-7abc-def0-123456789abc",
      "name": "Alex Johnson"
    },
    "usage_count": 0,
    "created_at": "2025-01-16T09:00:00Z",
    "updated_at": "2025-01-16T09:00:00Z"
  }
}

Update a Canned Response

PATCH /api/v1/canned-responses/{id}

Update any fields on an existing canned response. Only include the fields you want to change.

Important: You can only update responses you created, unless you have the admin or lead role.

Example: Update Body and Category

{
  "body": "Hi {{customer_name}},\n\nYour refund of **{{amount}}** has been initiated and will arrive within **3-5 business days**.\n\nRefund reference: {{ticket_number}}\n\nBest regards,\n{{agent_name}}",
  "category": "billing-refunds"
}

Example Response

{
  "data": {
    "id": "01912345-6789-7abc-def0-123456789abc",
    "title": "Refund Processing Time",
    "body": "Hi {{customer_name}},\n\nYour refund of **{{amount}}** has been initiated...",
    "category": "billing-refunds",
    "is_shared": true,
    "keyboard_shortcut": "/refund-time",
    "created_by": {
      "id": "01912345-3333-7abc-def0-123456789abc",
      "name": "Alex Johnson"
    },
    "usage_count": 142,
    "created_at": "2025-01-10T08:00:00Z",
    "updated_at": "2025-01-16T10:00:00Z"
  }
}

Delete a Canned Response

DELETE /api/v1/canned-responses/{id}

Permanently deletes a canned response. Returns 204 No Content.

Important: You can only delete responses you created, unless you have the admin or lead role. Deleting a shared response removes it for all agents.

Keyboard Shortcuts

Keyboard shortcuts provide a fast way to insert canned responses while composing a reply. When an agent types the shortcut (e.g., /refund-time) in the reply editor, the full canned response body is inserted with template variables replaced.

Shortcut rules:

  • Must start with /
  • Must be unique across the tenant
  • Maximum 50 characters
  • Alphanumeric characters and hyphens only (e.g., /refund-time, /password-reset)

Example Workflow

  1. Agent starts typing a reply to a billing ticket
  2. Agent types /refund-time
  3. The editor replaces the shortcut with the full canned response body
  4. Template variables like {{customer_name}} are filled in automatically
  5. Agent reviews and sends the reply

Shared vs. Personal Responses

Type Visibility Use Case
Shared (is_shared: true) All agents in the tenant Standard replies, policies, common procedures
Personal (is_shared: false) Only the creator Individual greetings, personal sign-offs, niche topics

When listing canned responses, agents see both their personal responses and all shared responses. The is_shared filter lets you query just one type.

Best Practices

  1. Use descriptive titles — Agents search by title when selecting a canned response. "Refund Processing Time" is better than "Refund Reply".

  2. Leverage template variables — Personalize responses with {{customer_name}} and {{agent_name}} instead of generic greetings.

  3. Organize by category — Group related responses (e.g., "billing", "account", "technical") so agents can filter and find them quickly.

  4. Keep responses current — Review shared responses periodically to ensure policies, URLs, and procedures are up to date.

  5. Assign keyboard shortcuts to frequent responses — The top 10-15 most-used responses should have shortcuts for maximum efficiency.

  6. Use Markdown formatting — Bold key information, use numbered lists for step-by-step instructions, and use code blocks for technical details.