Skip to main content
Guides

Call Disposition Codes: A Starter List and a Cleanup Audit

What call disposition codes are, a starter list for inbound and outbound calls, which codes to leave to the system, and a six-check audit for a clean list.

A call disposition code is the label that records how a call ended: resolved, transferred, callback scheduled, voicemail, wrong number. Agents pick most codes during wrap-up, and the phone system sets the rest, such as no answer, busy or abandoned in queue. A list works when its codes don't overlap and each one feeds a report or a workflow.

Most messy disposition data comes from one dropdown doing three jobs. Split the wrap-up into three fields and each one stays short:

FieldThe question it answersWho sets itExample values
Outcome (the disposition)How did the call end?The agent, or the system when it already knowsResolved, transferred, callback scheduled, no answer
ReasonWhy did the customer call, or why did we call them?The agent, or the menu option the caller choseBilling, order status, appointment change
Next actionWhat happens now, and who owns it?Created from the outcome codeA callback task, a ticket for another team, removal from a calling list

Ten call reasons crossed with eight outcomes make 80 codes in a single dropdown. As two fields they are 18 choices, and a report can still cross them to show which reasons end in callbacks.

What is a call disposition?

A call disposition is the recorded result of a call, written when the call ends. Five9 describes dispositions as "labels or tags assigned by either agents or the system to their completed customer interactions," used to track outcomes and to "trigger other actions such as a callback, Do Not Call list, etc." (Five9). To disposition a call is to choose that label.

Platforms use different names for the same thing. Five9 and Talkdesk say dispositions, and Genesys Cloud says wrap-up codes (Genesys Cloud after call work settings). Some platforms collect the codes into disposition lists, which are assigned to whoever receives the interactions (CXEngage admin guide).

The agent usually picks the code during after call work, so a list that is slow to read is slow to use, and every second of it lands in handle time. The codes also feed most outcome numbers on the call center metrics dashboard, from resolution to callback volume, which is why a wrong code does more damage than a missing one: it looks like real data.

Which disposition codes should the system set?

Leave to the system every outcome it can detect on its own: calls abandoned in the queue or while ringing, very short calls, and on outbound, no answer, busy and numbers that don't connect. Asking an agent to pick those adds seconds to each wrap-up and mistakes to the report, and the agent's list gets shorter without them.

Cisco Unified Contact Center Enterprise shows how much a platform records by itself. Its Termination_Call_Detail table has a CallDisposition field that "gives the final disposition of call (or how the call terminated)," with values numbered from 1 to 66 in the 12.6(1) schema handbook. Value 2 is Abandoned in Local Queue, 3 is Abandoned Ring, 7 is Short, 13 is a call an agent handled without a transfer or conference, and 19 is Ring No Answer. A second field, CallDispositionFlag, sorts them into seven groups: handled, abandoned, short, error, redirected, requery and incomplete (Cisco database schema handbook, field values).

A system disposition describes what happened to the call on the network and says nothing about what the caller got. A call the system counts as handled was answered, by an agent or by a device such as a voice mail system, whether or not the caller's problem was solved. Keep both on the record: the system value for abandonment and service level reporting, and the agent's code for the outcome of the conversation.

OutcomeWho should set itWhy
Abandoned in queue or while ringingSystemIt happens before anyone speaks to the caller
Short callSystemIt is set by a timer; Cisco, for one, leaves short calls out of its abandoned counts while still counting them as offered
No answer, busy, number not in serviceSystem, where the dialer detects itThe dialer knows before an agent would
VoicemailThe system if it can detect voicemail, otherwise the agentDetection methods differ, so check which one your counts come from
Resolved, transferred, callback scheduled, complaint, declined, asked not to be calledAgentOnly the conversation shows it

Call disposition codes list: a starter set

Start with about a dozen codes in two levels: a category that every report groups by, and a specific code under it. Talkdesk calls the second level nested dispositions, "subcategories within Dispositions that empower agents to label interactions with more granularity" (Talkdesk dispositions). Give inbound and outbound separate sets, because an outbound list needs reach results an inbound line never sees.

For an inbound line:

CategoryCodeUse it whenWhat it should trigger
ResolvedAnswered on the callThe question was answered and nothing is owedNothing
ResolvedTransaction completedA booking, change, cancellation, payment or order was finished on the callNothing beyond the record the transaction already writes
Handed offTransferredAnother team or number took the callNothing, if the receiving team codes its own part
Handed offEscalated or complaintThe caller asked for a supervisor or raised a complaintThe complaint workflow
Follow-up owedCallback scheduledA time was agreed to call the customer backThe callback, created from the code
Follow-up owedTask for another teamSomething was promised that another team has to doA ticket with an owner and a due date
Not completedCaller disconnectedThe call ended before the request was finishedA recording review when the count climbs
Not completedCould not verifyThe caller couldn't pass the identity checkNo account change; a rising count is a reason to look at the check itself
Not for usWrong number or departmentThe call belonged somewhere elseA routing review when the count climbs

For an outbound program:

CategoryCodeSet byWhat it should trigger
Not reachedNo answerSystem, where the dialer detects itYour rule for when to call again and how many attempts a record gets
Not reachedBusySystemThe same rule, usually with a shorter gap
Not reachedNumber not in serviceSystemRemove the number from the list
Not reachedVoicemailSystem or agentYour voicemail rule: whether to leave a message and when to try again
ReachedCompletedAgentRemove the record from this campaign
ReachedCallback requestedAgentA callback at the time the person gave
ReachedDeclinedAgentRemove the record from this campaign
ReachedAsked not to be calledAgentAdd the number to your internal do-not-call list
ReachedWrong personAgentCorrect the contact record

"Completed" means whatever the campaign exists to do: an appointment confirmed, a payment arranged, a survey finished. Write that definition down for each campaign. A confirmation call program, for example, might split it into confirmed, rescheduled and canceled, since each one changes the schedule differently.

Call reasons stay out of both lists. Put them in their own field, set from the menu choice where the caller made one, and the outcome list stays the same size however many reasons you add.

How many disposition codes should a call center have?

There is no published standard. Talkdesk starts every account with a set of four inbound and four outbound dispositions, and lets admins create "as many dispositions and nested dispositions as you wish," so the platform puts no ceiling on the list. A practical test: an agent can read the whole list without scrolling, no two codes describe the same outcome, and each code has a named report or workflow that reads it. A code that fails the third part comes off the list.

Expect the list to grow one request at a time. The audit below is how codes come off it again.

How should a BPO set up disposition codes across client programs?

Give each client program its own set of codes and keep the categories shared across all of them. Clients define success differently, so the specific codes differ, but when every program's codes roll up to the same categories, one report can compare programs and one forecast can staff them. Talkdesk supports this by assigning disposition sets to queues, so only agents on a client's queues see that client's codes.

Agree the definitions with the client in writing before launch, because the client's own report is built on them. Then keep one mapping table per program, with the client's code, your shared category and the workflow it triggers. A new code the client asks for goes into that table before it goes into the platform, which keeps the shared categories intact. The comparison of running client programs with a BPO or with AI agents covers the rest of the program setup.

How do you map IVR and AI agent outcomes to disposition codes?

Map them before the first live call, so one outcome report covers every call no matter who took it. A self-service menu or an AI agent reports its own outcome values, not your agents' codes, so each value needs a row in a mapping table, plus a rule for transferred calls, which would otherwise be counted twice.

Automated outcomeMap it toCheck before go-live
CompletedAnswered on the call, or Completed on outboundRead a sample: "completed" can mean the conversation ended normally, not that the request was finished
Appointment bookedTransaction completedThe booking exists in the scheduling system
Callback scheduledCallback scheduledSomeone owns the callback list
TransferredTransferredCount the call once: the person who picks up codes the outcome, and the automated record keeps the transfer
VoicemailVoicemailHow voicemail is detected, since that decides how far to trust the count
AbandonedCaller disconnectedWhether the caller left during the conversation or before it began
Failed or never connectedNo answer, or Number not in serviceWhich of the two the system can tell apart

Then audit the automated codes the way you audit people's: each week, compare a sample of codes with the transcripts. Speech analytics and call center quality assurance both start from the same check, because every report built on dispositions inherits their errors.

How do you audit and clean up a disposition code list?

Export 30 days of calls with the code, the agent, the queue or client program and the handle time, then run six checks. Each points to a specific fix, and together they usually shorten the list. The flags in the table are starting points for a first audit, not published benchmarks, so adjust them once you have your own history.

CheckHow to work it outFlagUsual causeFix
Catch-all shareCalls coded Other, left blank or closed with a timeout default, divided by all callsAbove about 5%Agents can't find the right code, or wrap-up time runs out firstRead 20 of those calls, add or rename the code they needed, and check the wrap-up time limit
Dominant codeThe busiest code's share of all callsOne code above about halfIt hides several outcomesRead 20 of its calls and split it by what you find
Unused codesCodes with no calls in 30 daysAnyOutcomes that stopped happening, or duplicatesDeactivate them, keeping their history
Agent spreadEach agent's rate for a code against the team's rateThree times the team rate or moreAn unclear definition, or one agent's habitRewrite the definition, then coach
AccuracyShare of a sample of calls whose code matches what the recording showsFewer than 9 in 10Definitions overlap, or codes are picked in a hurryRewrite the overlapping definitions and score the code in QA
Orphan codesCodes that no report or workflow readsAnyCodes added for a project that endedDeactivate them, or name the report that needs them

A worked example

Take an inbound program with 6,000 calls in 30 days and 22 codes on its list. These figures are made up to show the arithmetic:

  • Catch-all share: 420 calls coded Other and 300 closed with the timeout default make 720, or 12% of calls.
  • Dominant code: Resolved took 3,180 calls, or 53%.
  • Accuracy: of 20 calls coded Resolved, the recordings show 13 resolved, 4 with a follow-up still owed and 3 transferred. That is 13 in 20, or 65%.
  • Agent spread: Caller disconnected is 180 of 6,000 calls for the team, or 3.0%. One agent coded it on 41 of 420 calls, or 9.8%, about three times the team rate.
  • Unused and orphan codes: 6 codes had no calls, and 3 more were in use but fed no report.

The fixes follow from the numbers. Resolved gets a one-line definition ("nothing is owed to the caller, and no one else took the call"), and the two follow-up codes move to the top of the dropdown, since 4 of the 20 sampled calls still owed the caller something. The 300 timeouts suggest the wrap-up time limit is shorter than the work, which the after call work guide shows how to measure. Retiring the 9 unused and orphan codes takes the list from 22 to 13. Rerun all six checks a month later.

Deactivate retired codes rather than deleting them, so old calls keep their labels. Talkdesk, for example, lets admins deactivate a disposition or change its name at any time.

How Telvana reports the outcome of each call

Calls a Telvana agent handles arrive already dispositioned. With the post-conversation webhook turned on, your server receives a record after every call the agent handles, inbound or outbound, including outbound calls that never connected. Its disposition is one of seven values: COMPLETED, VOICEMAIL, TRANSFERRED, APPOINTMENT_BOOKED, SCHEDULED_CALLBACK, ABANDONED or FAILED, sent with the transcript, summary, sentiment and tags (webhooks). A call that never connected arrives as FAILED with an empty transcript, and the seven values map onto your codes the way the table above shows.

Voicemail is identified from the transcript. A transfer is an ordinary call to the number you choose, so the person who answers codes their part as usual. BPOs get a workspace per client program, which keeps each program's outcomes separate. Our team builds each agent from your scripts, FAQs, policies and transfer rules and tests it on your call types before it takes a live call. Pricing starts at $399 a month based on call volume, plus a one-time setup fee (pricing).

Frequently asked questions

What does it mean to disposition a call?

To disposition a call is to record how it ended by choosing a code, usually during wrap-up after the caller hangs up. Some platforms let agents choose it while the call is still live. The system dispositions the calls that never reached an agent, such as calls abandoned in the queue.

What are Cisco call disposition codes?

They are the values of the CallDisposition field in the Termination_Call_Detail table of Cisco Unified Contact Center Enterprise. They record how a call terminated, such as abandoned in the queue, abandoned while ringing, handled, redirected or ring no answer, numbered 1 to 66 in the 12.6(1) schema handbook. They are system dispositions and don't say whether the caller's issue was resolved.

Is a wrap-up code the same as a disposition code?

Yes. Genesys Cloud calls them wrap-up codes, and Five9 and Talkdesk call them dispositions. In each case the code records how the call ended, and either the agent picks it during after call work or the system sets it.

What is the difference between a call disposition and a call reason?

A disposition records how the call ended, and the reason records why it happened. A billing question is a reason, and resolved or callback scheduled is its disposition. Two fields keep both lists short and let a report show which reasons end in callbacks most often.

Should disposition codes be mandatory?

Make them mandatory where a report or workflow reads them. Genesys Cloud, for example, lets a queue make after call work optional, so agents can skip the wrap-up code, or mandatory. A mandatory code with a short time limit tends to fill up the timeout default, so watch that share as closely as the Other code.

See your codes on a live call

Bring your current disposition list and your busiest call types to a demo. We'll map an agent's outcome values onto your codes, and you can listen to it take a call.

More guides

Put AI agents to work in your contact center.

Book a demo. We'll walk through your call types, show you which ones Telvana can take, and let you hear it handle one.

See pricing

Or call our AI at 1 (650) TELVANA