Use case

Sentiment judged from the conversation, not a word list

Every call comes back with a disposition you defined — cooperative, resistant, confused, hostile — read from the whole exchange. Works the same in Hindi, Tamil and Bengali as in English.

Keyword sentiment does not survive a real phone call

The classic implementation scores words against a positive/negative lexicon. It reports that a customer who said "great, so I'm being charged twice again" had a positive call, and it has nothing sensible to say about "theek hai, dekhta hoon" — a phrase whose meaning ranges from genuine agreement to a polite refusal depending entirely on what came before it.

On Indian-language calls the problem compounds. Speakers switch between languages mid-sentence, the polite register makes refusals sound agreeable, and a lexicon built for English written reviews has no purchase at all.

Reading the transcript as a whole conversation is what makes the judgement useful. The model has the exchange in front of it — the question that was asked, the hesitation, the eventual answer — rather than a bag of words with the structure removed.

Define the dispositions that mean something to you

Generic positive/neutral/negative is rarely actionable. A collections team does not need to know a call was negative; they need to know whether the person was cooperative, needs time, disputing the debt or hostile, because each routes somewhere different.

Sentiment here is an enum you define, so the output maps onto decisions you already make. A support line might use satisfied / unresolved / escalating. A survey campaign might use engaged / rushed / refused. Alongside it you can extract the reason as free text, so a resistant call carries the actual objection rather than just a label.

Because the values are constrained to your set, the field stays analysable. Free-text sentiment fragments into dozens of near-synonyms within a week and stops being groupable.

What makes it hold up

Whole-conversation context

The judgement accounts for what was asked before the answer, so agreement-shaped refusals are read correctly.

Native in the language spoken

Scored from the transcript in the caller's own language rather than a translation, which is where nuance is usually lost.

Your categories, not ours

An enum you define means the output lands in the vocabulary your team already uses to route work.

Reason alongside label

A sentiment value with the supporting objection in a second field is auditable; a bare label is not.

Sentiment is a routing signal, not a report

A sentiment column that gets reviewed monthly is decoration. The value is in what happens immediately: a hostile call routes to a human handler with the transcript attached, a confused call triggers a clarification message in the customer's language, a disputed debt exits the automated sequence entirely because continuing to dial it is a compliance problem.

Because the extracted value is available to the workflow that fires after the call, that branching happens within seconds — while the situation is still recoverable, rather than after the customer has escalated somewhere more expensive.

Where it differs from agent quality scoring

These get conflated and should not be. Quality scoring evaluates your agent — did they open correctly, disclose what they had to, stay within policy. Sentiment extraction evaluates the customer's state, and is about deciding what to do next with that account.

Most teams running both use quality scoring for coaching and sentiment for operations. They read the same transcript and answer different questions.

Checking it against your own judgement

The honest way to trust this is to test it. Run it across a few hundred completed calls, sort by the extracted disposition, and listen to a sample from each bucket. Where it disagrees with you, the field description is usually the thing to tighten — and because extraction can be re-run on past conversations, you can apply the improved definition to the same calls and compare directly rather than waiting for new data.

Sentiment analysis — common questions

Does it analyse tone of voice or the words?

The transcript — what was said and in what sequence. Acoustic tone is a weaker signal than most people expect, particularly across languages and phone-quality audio, where a raised voice may be background noise or a bad line rather than anger.

How well does it work on Indian languages?

It reads the transcript in the language spoken rather than translating first, which is where nuance normally gets lost. Code-switching between an Indian language and English mid-sentence is common on these calls and is handled as ordinary conversation rather than as two separate inputs.

Can we use our own sentiment categories?

Yes, and you should. Sentiment is an enum you define, so it can be cooperative/resistant/confused/hostile for collections or satisfied/unresolved/escalating for support — whatever maps onto the decisions you actually make.

How is this different from call quality scoring?

Quality scoring evaluates the agent against your process. Sentiment extraction evaluates the customer's state to decide what happens to that account next. They read the same transcript to answer different questions, and many teams run both.

What if the model is unsure?

Include an explicit unknown or unclear value in your enum. That gives the model somewhere honest to land on an ambiguous call, which is far more useful than forcing a confident-looking guess into one of your real categories.

Related

Score your calls the way your team talks about them

Define your own dispositions, run them across completed calls, and check the buckets against your own listening.