CUSTOMER SERVICE INTELLIGENCE
Generally availableRoute every ticket by intent, urgency, and churn risk - not just topic.
16 support-specific signal families map to helpdesk queues 1:1 - retention, escalation, security, billing - across 18 languages including Arabic, Hindi, Chinese, and Japanese. Webhook in, tags out.
200 labels · 18 languages · p95 target <500ms · Every result reproducible
Routes to your retention queue - with a receipt
What this analyzer does and doesn't do
- Classify tickets by intent, urgency, and churn risk
- Return queue-ready labels that map to helpdesk routing 1:1
- Cover 18 languages including Arabic, Hindi, Chinese, and Japanese
- ✕Read your CRM or ticket history - it sees the text you send
- ✕Draft or send replies to customers
- ✕Decide refund, retention, or compensation outcomes
- ✕Replace your routing rules - it feeds them
Sentiqra returns structured signals. Your policy, reviewers, and models make the decision. See the full boundary statement →
WHAT YOU'LL DETECT
Labels that are already your queue names.
Retention & Cancellation
cancel_subscription
“I want to cancel my subscription” → very high
Billing & Payments
duplicate_charge
“I was charged twice this month” → very high
Escalation
manager_request
“Get me a manager, now” → high
Access & Authentication
account_lockout
Detected - example withheld
Product Functionality
bug_report
Detected - example withheld
87.3% – 96.7% Production Top-3 Hit Rate across 18 languages.
Benchmarks vary by language - the range above is the honest spread, not the best case. Top-3 Hit Rate means the expected label appears among the 3 highest-confidence signals returned; it measures ranking quality, not whether a thresholded accept/reject decision was right.
WHERE IT GETS USED
Three jobs this analyzer does well.
Auto-routing at scale
A SaaS support org fires a webhook on every new ticket: Sentiqra returns intent + urgency labels, the helpdesk applies tags, and routing rules do the rest. Cancel-intent tickets never wait behind password resets.
Fit signals: Zendesk/Intercom/Freshdesk · webhook automation · high ticket volume
Churn interception
A retention team gets cancel-intent and billing-dispute signals within seconds of ticket arrival - before the first reply, not after the CSAT survey. Every interception decision is backed by a replayable receipt.
Fit signals: retention programs · revenue-critical queues · fast escalation SLAs
Multilingual unified routing
A global support org routes 18 languages through one taxonomy - a billing dispute in Japanese and one in Arabic get the same label and the same queue. One rule set, no per-language classifier zoo.
Fit signals: global support · unified taxonomy · queue parity across languages
Send a ticket. Get routing labels + a receipt.
POST /v1/analyze
Authorization: Bearer sq_live_your_api_key_here
{
"text": "I was charged twice and if this isn't fixed today I'm cancelling my account.",
"language": "en",
"analyzers": ["customer-service"]
}
{
"language": "en",
"signals": [
{ "analyzer": "customer-service", "code": "support_intent", "label": "Support Intent", "score": 0.9, "confidence": "very_high", "level": "category" },
{ "analyzer": "customer-service", "code": "billing_issue", "label": "Billing Issue", "score": 0.9, "confidence": "very_high", "level": "label", "parent": "support_intent" },
{ "analyzer": "customer-service", "code": "access_issue", "label": "Access Issue", "score": 0.9, "confidence": "very_high", "level": "label", "parent": "support_intent" }
],
"meta": { "analyzers": [{ "name": "customer-service", "status": "completed", "signal_count": 3, "billed": true }], "partial": false },
"usage": { "analyzer_runs": 1, "billed": true },
"verification": {
"configuration": "sqcfg_E6A178YY",
"fingerprint": "fp_8a72...19f",
"input_commitment": "ic_31bd...a42",
"signature": "sig_ed25519_4c1f...e2a"
}
}
READING THE OUTPUT
What a Customer Service Intelligence result tells you - and what it doesn't.
Intended task
Classify support text into routing signals - intent, urgency, escalation, churn risk - so the ticket reaches the right queue.
Input requirements
text- the only field analyzed; up to 4,096 Unicode code points. Over the limit is rejected withinput_too_long, never truncated.language- must be a language this analyzer supports. Unsupported codes are rejected with400 unsupported_language, never analyzed as a different language.analyzers- include"customer-service"; up to 2 analyzers per request, one billed run each.- No context beyond
text- no user IDs, history, profiles, or attachments are read or inferred. - Analyzes the submitted message only - account state, order history, and past tickets are not inputs.
Ordinary positive
“I have been charged twice this month and your support line keeps dropping me. If this is not fixed today I am cancelling.”
Safe inference: The ticket matches billing intent plus escalation and churn-risk signals - enough to route it to a senior billing queue rather than general support.
Confusing negative · Insufficient context
“Quick question - how do I cancel a subscription?”
What happens: Retention/cancellation signals can fire even though the customer is asking a how-to question. Cancellation-related language is not the same as cancellation intent - the signal flags the topic so your router sends it to the right queue, not to confirm the customer is leaving.
Why it's tricky: Intent signals describe what the text is about. How-to questions, agent quotes, and forwarded complaints all mention the same topics - combine the signals with your own context before treating a churn label as churn risk.
What you can safely infer
- Which routing categories the text matched - intent, urgency, escalation - and at what strength.
- That the same ticket text on the same pinned configuration routes the same way every time.
What you must not infer
- ✕That the customer will actually churn - a cancellation signal is a queueing hint, not a retention forecast.
- ✕An SLA commitment or promised resolution - the analyzer reads text, it does not promise outcomes.
- ✕That a ticket with no urgency signal can safely wait - priority is your policy decision.
Boundary: Routing signals describe the ticket's language - they are not verified customer state. A churn or escalation signal is a routing hint, not a prediction.
Customer Service Intelligence is on every plan. Even Free.
Free
5,000 runs/mo
Build
$149/mo · 50,000 runs/mo
Growth
$349/mo · 150,000 runs/mo
Production
$799/mo · 500,000 runs/mo
Scale
$2,999/mo · 2,500,000 runs/mo
Enterprise
By agreement · SOC 2 Type II in progress
Deterministic by construction, provable by receipt.
A signed verification receipt - configuration ID (sqcfg_...), result fingerprint (fp2_...), input commitment (ic3_...), and Ed25519 signature (sig_ed25519_...) - ships with every successful analysis result. Pin it to the stored decision and a later replay under the same supported configuration and output profile yields the identical canonical result - the difference between "the model said so" and evidence.
Where it fits in your helpdesk
Often paired with: Emotion Analysis for anger + contempt escalation, Trust & Safety for abusive-message handling, Cybersecurity for credential-abuse tickets.
Used in: Customer Support Intelligence
Route your hardest ticket through it.
5,000 analyzer runs/month · No card required
Analyzer FAQ
New to Sentiqra? It's a deterministic text-analysis API - you send text, you get labeled, confidence-scored signals plus a replayable receipt. Customer Service Intelligence is the support ticket classification analyzer.
What does Customer Service Intelligence detect?
Detect support intents, product problems, billing issues, urgency, escalation, and customer feedback signals.
Which languages does it cover?
18 supported languages, each with a published per-language benchmark. Coverage is per-analyzer, not platform-wide - check the language list on this page before assuming parity with other analyzers.
How do I call it?
POST /v1/analyze with "analyzers": ["customer-service"]. Same endpoint, auth, and response shape as every other analyzer - you can pair it with one more analyzer in the same request.
What does a call cost?
One analyzer run per call, billed against your plan's included runs (overage per plan). All GA analyzers are on every plan, including Free - see pricing.
How do I evaluate it on my data?
Label a few hundred of your own examples, run them through the free tier, and compare our signals to your labels. The evaluation playbook walks through building that test set - it's the same method we use internally.