Customer service & support tickets

A good bot knows when to hand over. This guide covers the tickets Silux Chat raises for your team, the API for creating tickets from your own systems, and how verified customers can check the status of an existing case held in Zendesk, Freshdesk, HubSpot, Salesforce and other helpdesk and CRM tools.
10 min readhttps://www.siluxchat.comcurl · Python · PHP · Node.js

Overview

Creating tickets

Tickets are created in your Silux Chat dashboard — by the bot during a conversation, or by your own systems throughPOST /api/chatbot-api/create-ticket. Creating a ticket never requires the customer to be verified.

Reading ticket status

With a helpdesk or CRM connector, a verified customer can ask “any update on my ticket?” and the bot reads the status of their own cases. Helpdesk connectors are read-only: they do not create or change tickets in your helpdesk.

Tickets the bot raises

The bot raises a ticket when it cannot resolve something itself, when the customer asks for a person, or when the conversation needs a follow-up from your team. The ticket carries the customer’s name and contact details, a subject, a description of the request and a link to the conversation, and appears in Dashboard → Tickets.

  1. 1
    The bot collects what your team will need: the customer’s name, a way to contact them and a clear description of the request.
  2. 2
    The ticket is created and the bot gives the customer the ticket reference it received — it never quotes a reference that was not actually created.
  3. 3
    If the same customer gets in touch again within three hours about an open request, the new contact is added to the existing ticket as a note rather than opening a duplicate.
  4. 4
    Your team picks the ticket up from the dashboard. Verified customers can later ask for the latest reply on their ticket, where your ticket system provides one.

Returns, cancellations and account changes

The bot cannot change orders, subscriptions or accounts. Requests such as a return, a cancellation or a change of address are turned into tickets with the relevant order or account details, so your team can act on them. See Orders, delivery tracking & returns.

Create a ticket through the API

Your website forms, CRM automations or back-office tools can create tickets in the same queue the bot uses. Authenticate with your account’s API key, found in Dashboard → API Settings, sent in the X-API-Key header. See Authentication for key handling and rotation.

POSThttps://www.siluxchat.com/api/chatbot-api/create-ticketX-API-Key: your account API key

Creates a support ticket in your dashboard. The customer does not need to be verified. Send JSON withContent-Type: application/json.

Create a ticket (replace YOUR_ACCOUNT_API_KEY with the key from Dashboard → API Settings)
curl -s -X POST "https://www.siluxchat.com/api/chatbot-api/create-ticket" \
  -H "X-API-Key: YOUR_ACCOUNT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"customer_name":"Jane Smith","customer_email":"jane@example.com","customer_mobile":"07700900123","subject":"Return request for order ORD-50231","description":"Customer would like to return an unopened item from order ORD-50231 and asked for a returns label.","category":"customer_inquiry"}'
Response — 200 OK
{
  "success": true,
  "message": "Support ticket TKT7QK2M9XA has been created. Our team will get back to you shortly.",
  "data": {
    "ticket_number": "TKT7QK2M9XA",
    "ticket_id": 1042,
    "status": "open"
  }
}

This call creates a real ticket

There is no demo key for ticket creation: every successful call lands in the account whose key you used. Test against your sandbox account (its key begins sbx_) before pointing production systems at it.

Fields, categories and priority

FieldTypeRequiredNotes
customer_namestringYesThe customer’s name. If sent as an empty string with a valid session_token, the verified name is used.
subjectstringYes5–255 characters.
descriptionstringYes10–5,000 characters. Include order numbers, dates and what the customer asked for.
customer_emailstringNoWhere your team can reply.
customer_mobilestringNoUK or international format.
categorystringNoOne of the categories below; it sets the ticket priority (the category itself is not stored on the ticket). Anything else is treated as general.
session_tokenstringNoA session token from the Silux Chat verification endpoints (/api/chatbot-api/verify-identity and verify-otp). When valid, the verified customer’s name is used if customer_name is empty.
conversation_idintegerNoLinks the ticket to one of your Silux Chat conversations. An ID that is not one of your conversations is ignored — the ticket is still created, unlinked.

Categories and the priority they set

categoryPriorityUse for
contract_cancellationHighCancellation requests and notice
payment_issueHighFailed payments, disputed charges, refunds
network_refreshMediumService or connection refresh requests
sim_activationMediumSIM or service activation
generalMediumEverything else (the default)
customer_inquiryLowQuestions and information requests

Responses and errors

StatusBodyMeaning and fix
200{"success": true, "data": {"ticket_number": "…"}}Created. Show the ticket_number to the customer.
401{"detail": "Invalid API key"}The X-API-Key header is missing, mistyped or has been regenerated. Copy the current key from Dashboard → API Settings.
422{"detail": [{"loc": ["body", "subject"], "msg": "…"}]}A field failed validation — typically a subject under 5 characters or a description under 10.

You can confirm the authentication error safely — this request is rejected before anything is created:

curl — wrong key returns 401
curl -s -w " %{http_code}\n" -X POST "https://www.siluxchat.com/api/chatbot-api/create-ticket" \
  -H "X-API-Key: not-a-real-key" \
  -H "Content-Type: application/json" \
  -d '{"customer_name":"Jane Smith","subject":"Test subject","description":"Testing authentication only."}'
Output
{"detail":"Invalid API key"} 401

Reading ticket status from your helpdesk

When a helpdesk or CRM connector that holds tickets is used to verify customers, the platform adds a My Support Ticketstool to your bot. After verification the bot calls it to read that customer’s own cases.

POSThttps://www.siluxchat.com/api/connect/{connection_id}/ticketsPer-connection key (platform-held)

Request body: {"session_token": "…"}. Called by your bot after verification; you never call it yourself.

Response — the customer’s tickets
{
  "success": true,
  "tickets": [
    { "id": "35436", "subject": "Router not connecting", "status": "open", "updated": "2026-09-24" },
    { "id": "35102", "subject": "Change of billing address", "status": "solved", "updated": "2026-09-02" }
  ]
}
FieldMeaning
idTicket or case number in your helpdesk
subjectTicket subject
statusStatus as your helpdesk reports it: new, open, pending, solved, closed …
updatedLast updated date (YYYY-MM-DD)
  • Only the ticket number, subject, status and last-updated date are mapped, plus — for some systems — opened and closed dates or a pipeline stage. Message bodies, internal notes and agent comments are not read.
  • Rows naming a different customer’s email address are dropped by a safety net, whatever the helpdesk search returned.
  • If your helpdesk cannot be reached, the bot receives{"success": false, "system_error": true} and tells the customer it cannot check right now — never that they have no tickets.

Helpdesk and CRM connectors with tickets

Connected, but not answered by the bot

Asana, ClickUp, Trello hold cards or tasks but can’t prove who is asking — they have no customer search and their records don’t name the customer by email. They connect and are tested, but the bot does not read them for customers.

Good practice

  • Write subjects a person can triage at a glance: “Return request — ORD-50231”, not “Help”.
  • Put identifiers (order numbers, invoice numbers, account numbers) in the description so your team does not have to ask again.
  • Send conversation_id when you have one, so the full chat transcript is one click away.
  • Never put passwords, full card numbers or security answers in a ticket. See Security & data protection.
  • Treat the API key like a password: call the endpoint from your server, never from browser JavaScript.
  • To be told the moment a ticket is raised or changes status — however it was raised — subscribe to the ticket.created andticket.updated webhooks; see Webhooks, Make, n8n, Zapier & REST.

Get help

Want tickets routed into your existing helpdesk, or help choosing categories for your team? Email support@siluxcall.co.uk and our integration team will help you set it up. Error details for every endpoint are in Troubleshooting.

Need help with your integration?

Our integration team can review your endpoints, help you choose the right connector and check a test run with you. Tell us which system you use and what you would like the bot to answer.

support@siluxcall.co.uk