Skip to content

Explore CallMissed

An AI support desk with a clock nobody can edit

Tickets, SLA policies, macros, routing and CSAT across WhatsApp, voice, email and web chat. You change a ticket’s status; the API stamps the time. That is why the reports hold up.

Open tickets

Refund not received. Opened from a WhatsApp conversation.

I returned the order twelve days ago and the refund still has not come through.

AI agent: I can see the return was received on the 4th. I am passing this to a teammate who can release the refund.

Handed to a human. Ticket opened, priority high.

Teammate: Released just now. You will see it in three to five working days.

First response due

18:42

Status
pending
Policy
High priority
Assignee
On-call team
Tags
refund

Illustrative desk. Names, times and messages are examples — and the rows open.

The same desk, in the console

An urgent ticket lands at the top of the queue, is assigned and resolved inside its SLA, and then you see how customers rated it.

Demo: an urgent ticket arriving, being assigned and resolved within its SLA, then the CSAT rating

Four fields you can read but never write

A ticket moves through open, pending, waiting on customer, resolved and closed. Each move is recorded by the server, so an SLA report cannot be improved by editing a date.

Server-managed ticket lifecycle fields
FieldExample
first_responded_atOn the first response10:06
resolved_atWhen status becomes resolved11:41
closed_atWhen status becomes closedNext day
reopened_countEach time a resolved ticket reopens0

SLA deadlines that respect your working week

A policy promises a first response time, a resolution time, or both. Scope it to one priority or leave it as the catch-all. Deadlines count only inside the business hours you set, in your time zone.

Ask for the breach list at any moment and you get every ticket that is past its deadline right now.

Routing: the first rule that matches wins

Rules run top to bottom on channel, priority, status, subject, email domain or tag. Assign directly or round robin. A dry-run evaluator shows which rule a ticket would hit before you turn it on.

Describe a ticket to dry-run the rules
  1. 1

    If tag is “billing”

    Assign to the finance queue

    skipped

  2. 2

    If priority is urgent

    Assign round robin across the on-call team

    matched

  3. 3

    If channel is voice

    Assign to the phone desk

    not reached

  4. 4

    If subject contains “refund”

    Add tag “refund”

    not reached

Rule 2 wins. Rules below it never run. Simulated example.

Macros: one click, three things done

A macro is a canned reply with placeholders. Using it can also set the status, add tags and assign a teammate.

Hi {{first_name}}, your refund for order {{order_id}} was released today. It usually arrives within five working days.

  • Set status: resolved
  • Add tag: refund
  • Assign to: a teammate

CSAT and NPS after the fix

Create a survey link for a ticket on a five-point CSAT or a ten-point NPS scale, host the answer page yourself, and read response rate, average rating and NPS back.

Everything on the desk is an endpoint

Open a ticket

POST /api/v1/support/tickets

curl -X POST https://api.callmissed.com/api/v1/support/tickets \
  -H "Authorization: Bearer cm_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Refund not received",
    "priority": "high",
    "conversation_id": "33cc…",
    "tags": ["refund"]
  }'

Promise a response time

POST /api/v1/support/sla/policies

curl -X POST https://api.callmissed.com/api/v1/support/sla/policies \
  -H "Authorization: Bearer cm_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "High priority",
    "priority": "high",
    "first_response_minutes": 30,
    "resolution_minutes": 480,
    "business_hours": {
      "tz": "Asia/Kolkata",
      "days": [1, 2, 3, 4, 5],
      "start": "09:00",
      "end": "18:00"
    }
  }'

See what is breaching

GET /api/v1/support/sla/breaches

curl "https://api.callmissed.com/api/v1/support/sla/breaches?priority=high" \
  -H "Authorization: Bearer cm_your_api_key"

Support desk questions

How is this different from Zendesk or Freshdesk?
The support desk is part of the same platform as the AI agents and the CRM, so a ticket already knows the conversation and the contact that produced it. Nothing to integrate. And because agents handle the front line, tickets are the exceptions that need a human, not every message.
What makes the SLA reporting trustworthy?
The ticket lifecycle stamps (first response, resolution, close, reopen count) are server-managed. You change status and the API records the time; you never send those timestamps. SLA deadlines compute against them and against your business hours, so a policy cannot be gamed by editing a field.
Can I automate routing and replies?
Yes. Macros are canned replies with placeholder variables that can also set status, add tags, and assign a user. Routing is a first-match-wins engine with a dry-run evaluator, so you can test a rule against a ticket before turning it on.
How do CSAT and NPS work?
You mint a survey link after a conversation, host the response page yourself against public token-authenticated endpoints, and read CSAT and NPS statistics back through the API, each tied to the ticket it came from.
Is the whole desk available over an API?
Yes. Tickets, SLA policies, macros, tags, routing rules, and CSAT/NPS surveys are all reachable with your cm_ API key. See the support references in the docs for the full field tables and scopes.