Back to app

Getting help

Something fails, a result looks wrong, or you have a question: ask the CallQA team. A person of the team reads every ticket and answers, usually within a few hours on business days. The answer reaches you in the app, by email, and through your coding agent if it opened the ticket.

There are three ways to open a ticket. They all lead to the same conversation.

From your coding agent (MCP)

If your agent uses the MCP server, it can contact us itself, for example when a tool fails in a way the error and its hint do not explain. Four tools:

Tool What it does Scope
contact_support Opens a ticket: subject, message, kind, optional call_id, run_id, scenario_id, client and context read
list_support_tickets The organization's tickets, with their status and unread answers read
get_support_ticket One ticket and every message: our answers have author staff read
reply_support_ticket Adds a message (and reopens the ticket) read

Any key can open a ticket, even a read only one, so an agent stuck on an error can always reach us. A good ticket says what the agent was doing, the exact tool calls and error codes, what it already tried, what it expected, and the ids involved. You can simply tell your agent "report this to CallQA support".

When we answer, the agent reads it with get_support_ticket, and get_setup_status lists answers not read yet. We also email the answer to the admins of your organization (and to the person who created the key), since an agent cannot read email.

From the app

Support in the sidebar lists your organization's tickets. + New ticket opens one; the thread page shows the conversation, a reply box and Close ticket. A badge on Support counts our answers nobody of your organization has opened yet. Admins and members open and reply; guests read.

From the API

The same tickets under /api/v1/support/tickets (see the API reference):

curl -X POST https://app.callqa.dev/api/v1/support/tickets \
  -H "Authorization: Bearer $CALLQA_API_KEY" -H "Content-Type: application/json" \
  -d '{"kind": "bug", "subject": "Run stays queued",
       "body": "Run 3f0c... has been queued for 20 minutes.", "run_id": "3f0c..."}'

GET /support/tickets/{id} returns the messages; POST /support/tickets/{id}/messages replies; POST /support/tickets/{id}/close closes.

Kinds and statuses

Kinds: bug, question, feedback, billing, abuse_report (a call you think breaks the Acceptable Use Policy; these reach the team first).

Status Meaning
open The team has to answer
waiting_customer The team needs something from you
answered The team answered
closed Solved. A new reply reopens it

Good to know

  • Never send secrets. API keys, passwords, tokens and webhook secrets do not belong in a ticket. Anything that looks like one is replaced by [redacted secret] before it is stored, and the answer says how many were removed (secrets_redacted).
  • Limits. At most 20 new tickets and 200 messages a day per organization (429 rate_limited beyond). Subject up to 200 characters, message up to 20,000, context up to 8 KB of JSON.
  • Ids help. A call_id, run_id or scenario_id of your organization is linked to the ticket, so we see the call, the run or the scenario at once.
  • Response time. We aim to answer within a few hours on business days (Europe/Paris). This is not a contractual service level.
  • Email. You can also write to [email protected].