---
name: "chat_create_ticket"
area: "chat"
title: "Turn a chat into a ticket"
price: "$0.01"
method: "POST"
url: "https://api.conecto.chat/v1/tools/chat_create_ticket"
mcp_server: "https://api.conecto.chat/mcp/chat"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/chat/chat_create_ticket"
---

# Turn a chat into a ticket (`chat_create_ticket`)

Opens a help desk ticket from a chat that needs follow-up by email, with the chat so far as the request.

Open a help desk ticket from a chat that needs follow-up: the chat so far becomes the request, the visitor its requester (their email from the chat, or email), linked to the chat and their CRM contact, so the rest goes by email under the help desk's targets. A chat that already has an open ticket returns that one. $0.01.

Price: $0.01 a call. A call that fails costs nothing.

## Use it when

A visitor's question can't be answered in the chat now: it needs checking, a person or days.

- For a ticket that does not start in a chat, use [ticket_create](https://conecto.chat/tools/helpdesk/ticket_create.md).

## Say this to your agent

> Lisa wants to know whether the Tabor ships to Seattle. Make that a ticket so the team writes back to her by email.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `conversation_id` | integer | yes | At least 1. |  |  |
| `email` | string | no | When the visitor gave none in the chat. Up to 254 characters. |  |  |
| `subject` | string | no | Up to 200 characters. |  |  |
| `priority` | string | no |  | `"low"`, `"normal"`, `"high"`, `"urgent"` | `"normal"` |
| `category` | string | no | Up to 80 characters. |  |  |

## Example

Written for Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon.

MCP: call `chat_create_ticket` on the MCP server `https://api.conecto.chat/mcp/chat` with these arguments:

```json
{
  "conversation_id": 3187,
  "subject": "Tabor shipping to Seattle"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/chat_create_ticket \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"conversation_id": 3187, "subject": "Tabor shipping to Seattle"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "chat_create_ticket",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.01",
  "balance_usd": "$19.75",
  "result": {
    "ticket": {
      "number": 1,
      "subject": "Tabor shipping to Seattle",
      "status": "open",
      "priority": "normal",
      "category": null,
      "tags": [],
      "requester_email": "lisa.moreno@example.com",
      "requester_name": "Lisa Moreno",
      "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
    },
    "created": true
  }
}
```

`result`: ticket: the ticket with its number, subject, status, requester and the chat as its first message; created: false when the chat already had an open ticket, which comes back instead.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_found` | 404 | No chat conversation of the business has that conversation_id. | Find it with chat_list_conversations and use its conversation_id. |
| `no_email` | 409 | The visitor gave no email in the chat. | Ask for it in the chat, then pass email. |
| `invalid_input` | 400 | email is not an email address. | Pass the address the visitor typed. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [chat_setup](https://conecto.chat/tools/chat/chat_setup.md): Creates or changes the business's website chat widget and who answers it, and returns the snippet for the website. $0.001 a call.
- [chat_get_setup](https://conecto.chat/tools/chat/chat_get_setup.md): The website chat's settings, its embed snippet, how messages reach the agent and this month's cost. Free up to 1,000,000 reads a month.
- [chat_wait](https://conecto.chat/tools/chat/chat_wait.md): Waits for the next visitor message, for an agent without a server to receive webhooks. Free up to 1,000,000 reads a month.
- [chat_list_conversations](https://conecto.chat/tools/chat/chat_list_conversations.md): The website chat and email conversations, newest activity first, with who it is and the last message. Free up to 1,000,000 reads a month.
- [chat_get_conversation](https://conecto.chat/tools/chat/chat_get_conversation.md): One conversation with all its messages, from the visitor and from the business. Free up to 1,000,000 reads a month.
- [chat_typing](https://conecto.chat/tools/chat/chat_typing.md): Shows the visitor that the business is typing, for about 8 seconds. Free.
- [chat_reply](https://conecto.chat/tools/chat/chat_reply.md): Answers a website visitor as the business, with product cards, images or buttons if you like. Free.
- [chat_close](https://conecto.chat/tools/chat/chat_close.md): Closes a conversation once it is handled, or opens it again. $0.001 a call.
