Tickets & reply templates
Tickets
Section titled “Tickets”Some requests can’t be solved in the chat: a refund, a cancellation, a billing change. The bot doesn’t promise anything. It creates a ticket for your team and tells the visitor the team will follow up.
A ticket is created:
- by the bot during the chat, with the
create_tasktool, when the visitor asks for something only the team can do. If the bot doesn’t know the visitor’s email, it asks for it first; - by AI analysis after the conversation, when the analysis finds a request that needs the team;
- manually in the dashboard: open the conversation and click Create ticket;
- through the API:
POST /v1/tickets(sourceapi), see below.
There is at most one open ticket per conversation and type.
Tickets are in Tickets in the dashboard. Statuses are Open, In progress and Done. Each ticket links to its conversation and has a priority (1-5, 5 = urgent), an assignee, a due date and team comments. The AI sets the priority of the tickets it creates; other tickets start at 3, and anyone on the team can change it. New tickets are announced to the team with a New ticket notification. Notification channels with an instant rule for the bot also get New ticket and Ticket resolved messages, and webhooks get ticket.created and ticket.resolved events, unless Tickets: new and resolved is turned off in the rule. Digest rules get the number of new and resolved tickets in the digest. See Notifications.
Resolve & reply sends your answer to the visitor’s chat (and by email if you choose), and marks the ticket done.
Tickets are for requests a person on your team must handle for this visitor. A bug on its own doesn’t become a ticket: it’s collected as a product issue, and visitors can be emailed when it’s fixed. When a bug also needs a personal action, such as restoring credits or activating a plan, the ticket is that action.
Ticket and issue together. The ticket page shows the product issues reported in the same chat and their status, so you can see when the bug is fixed. When you mark an issue Fixed or Won’t fix, Also close linked tickets marks the open tickets from its chats done, with a note. Tickets of the Other type are preselected; refunds, account changes and other personal requests are not. Visitors get no extra message from this; use Email reporters when fixed on the issue for that.
Tickets used to be called tasks. Old dashboard links to /tasks redirect to /tickets, and internal names such as the create_task tool and the TASK_CREATED notification type keep the old name.
Turn tickets on or off per bot
Section titled “Turn tickets on or off per bot”Bot → Behavior → Create tickets automatically is on by default. When it is off, the bot doesn’t create tickets and the analysis doesn’t either. You can still create tickets manually.
Ticket types
Section titled “Ticket types”Manage types in Settings → Tickets. Each type has an emoji, a name and a When to use it description. The bot and the analysis pick one of the enabled types for each request, based on the description.
Default types: 💸 Refund, 🚫 Cancellation, 🧾 Billing, 👤 Account and 📌 Other. Other is the fallback and can’t be deleted. Only owners and admins can change ticket types.
Reply templates
Section titled “Reply templates”Saved replies for the inbox and for closing tickets. Manage them in Settings → Reply templates. A template has a title, the text and a bot (or all bots).
{name} in the text is replaced with the visitor’s first name, or removed when the name is unknown.
In the inbox and in Resolve & reply, pick a template from Templates to insert it.
Suggest
Section titled “Suggest”Suggest drafts your next reply with AI. It fills in the reply box; you edit and send it.
The draft is based on the last 30 messages, the bot’s business profile and instructions, the 5 most relevant knowledge base passages, your reply templates (as examples of your tone) and, when you use it from a ticket, the ticket itself. It is written in the visitor’s language, puts [placeholders] where it doesn’t know a fact, and doesn’t promise refunds or deadlines.
API & MCP
Section titled “API & MCP”On Pro and Business, tickets are available in the API, the MCP server and the CLI, so a script or an AI agent can triage them, leave notes and close them. Keys need the tickets:read scope to read and tickets:write to change tickets (or read / write). See API & MCP for the full reference.
| Method | Path | Description |
|---|---|---|
GET |
/v1/ticket-types |
Enabled ticket types. |
GET |
/v1/tickets |
Tickets, newest first. Filters: botId, status (default open and in progress, or all), type, minPriority, assignee (email or none), conversationId, q (text in the title, description or resolution), since (created), updatedSince (changed), limit, cursor. |
GET |
/v1/tickets/{id} |
One ticket with comments and the conversation link. |
POST |
/v1/tickets |
Create a ticket for a conversation: conversationId, type, title, description, priority. |
PATCH |
/v1/tickets/{id} |
Change status, type, priority, title, description, dueAt or assigneeEmail. |
POST |
/v1/tickets/{id}/comments |
Add a team comment. It shows the API key’s name in the dashboard. |
POST |
/v1/tickets/{id}/resolve |
Close the ticket, optionally with a reply to the customer (sendEmail, closeConversation). Requires an Idempotency-Key header. |
The one-open-ticket-per-conversation-and-type rule applies to the API too: a change that would create a second open ticket of a type gets 409.
MCP tools: list_ticket_types, list_tickets, get_ticket, update_ticket, comment_ticket and resolve_ticket.
CLI:
npx feedbot tickets # open and in-progress ticketsnpx feedbot tickets --status all --type refund --jsonnpx feedbot tickets --q "order 1234" # search title and descriptionnpx feedbot ticket TICKET_ID # details, comments and conversation linknpx feedbot ticket comment TICKET_ID "Refund issued in Stripe"npx feedbot ticket resolve TICKET_ID "Hi Ann, we refunded the second charge." --email --closeticket resolve without a reply just closes the ticket. With a reply, the text goes to the customer’s chat (and by email with --email), signed with the API key’s name, exactly like Resolve & reply in the dashboard.
Replies reach real customers. An agent using resolve_ticket or feedbot ticket resolve must show you the exact reply and get your confirmation before sending it. The Feedbot Claude Code skill always asks first.