Action tickets_create
System ID:
action_tickets_create
Description
Creates a new ticket for a subject (subject_alias): collects custom fields from user constants, creates a chat in Operator Panel (via connect-to-operator), assigns an agent if needed, and saves the ticket. If the subject requires field input — returns the matching branch for data collection.
During creation it calls connect-to-operator; therefore banned and limit branches are possible (same as the connect-to-operator action).
Events (scenario branches)
| Event | When it occurs |
|---|---|
| success | Ticket created successfully |
| banned | User is under an active ban (from connect-to-operator) |
| limit | No free operator (from connect-to-operator) |
| error | No subject_alias, subject not found, connect failure, or ticket creation failure |
| select_custom_field | A custom field value must be selected from a list |
| required_custom_field | A required custom field is not filled yet |
| optional_custom_field | An optional custom field can be filled or skipped |
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
subject_alias | string | yes | — | Ticket subject alias (placeholders) |
additional_fields | object | no | {} | Extra custom fields (key–value; placeholders in values) |
keep_original_message | boolean | no | false | true — keep the original user message text |
resolved | boolean | no | false | true — create the ticket as resolved and close the chat |
assignee_id | string / number | no | null | Operator ID to assign (placeholders) |
unassigned | string | no | false | "true" — do not assign, even if assignee_id is set |
auto_assignee | boolean | no | false | true — automatic assignment (round-robin) |
reporter_id | string / number | no | null | Reporter operator ID (placeholders) |
watchers | array | no | [] | Watcher operator IDs (placeholders) |
status_name | string | no | null | Custom chat status (placeholders) |
ticket_description | string | no | null | Ticket description (placeholders). Takes priority over the ticket_description constant |
After creation, the ticket ID is stored in the tickets module state; client confirmation comes from the bot constant ticket_created (if set).
Configuration example
{
"subject_alias": "support",
"auto_assignee": true,
"ticket_description": "{{user_request.text}}",
"watchers": []
}