The label an agent leaves behind decides what the dialer does next — here is how to build a disposition set that keeps lists clean and reports honest.
Call dispositions: what they are and how to build a code set that works
A call disposition is the outcome label attached to a call the moment it ends — contact made, voicemail, no answer, wrong number, do not call. It looks like the most boring part of outbound dialing, and it is quietly the most load-bearing: dispositions decide what the dialer does with each record on the next pass, keep dead numbers and do-not-call requests out of tomorrow’s queue, and produce every number your reporting runs on. This page defines call dispositions in plain language, gives a 12-code starter set you can adapt, and traces where disposition data actually flows — into list hygiene, into metrics, and into your CRM.
What is a call disposition?
Every dialed call ends one of a small number of ways, and a disposition is the recorded answer to “which way was it?” The record matters because outbound calling is a loop, not a series of one-off events: the same list gets worked pass after pass, and the only thing separating a smart second pass from a blind one is what got logged on the first.
Dispositions come in two layers. System codes are set automatically from call signaling, with no agent judgment involved: the line was busy, nobody answered, the number was invalid. Agent codes record what happened once a human was involved: a conversation was held, an appointment was set, the contact asked never to be called again. Genesys Cloud’s outbound dialer illustrates the system layer well — it auto-assigns wrap-up codes including live voice detected, answering machine, busy, no answer, invalid phone number, on do-not-call list, and SIT-tone uncallable (Genesys Cloud Resource Center, as of July 2026). Vocabulary varies by vendor — wrap-up codes, call results, outcomes — but the mechanics are the same everywhere.
One honest note on that Genesys list: its “machine” code depends on call analysis deciding whether a human or an answering machine picked up. Enzo does not use answering machine detection — on Enzo, every connected call goes to a live agent, and voicemail is something the agent hears and logs, not something software classifies. That trades a few agent-seconds per machine for a label a human actually verified.
A starter set of call disposition codes
Three rules make a disposition list work. Every code must map to a concrete next action — if two codes trigger the same action, merge them. Codes must be mutually exclusive, so two agents logging the same call always pick the same label. And definitions must stay frozen once reporting depends on them; redefine “contact” mid-quarter and your trend line turns to mush.
Here is a 12-code set most outbound teams can adapt rather than invent from scratch:
| Code | What it means | What happens next |
|---|---|---|
| Contact — conversation held | Spoke with the intended person | Log the outcome; no automatic redial this pass |
| Appointment set | Contact agreed to a booked next step | Push to CRM; remove from the active dial queue |
| Callback scheduled | Contact asked to talk at a specific time | Schedule the callback; hold out of general rotation |
| Not interested | Contact heard the pitch and declined | Retire from campaign or move to a long-cycle list |
| Do not call | Contact asked not to be called again | Add to internal DNC; suppress from future dialing |
| Voicemail — no message | Machine answered; nothing left | Keep in rotation; try a different time block |
| Voicemail — message left | Agent left a message personally | Keep in rotation with a longer redial gap |
| No answer | Rang out with no pickup | Keep in rotation; cap total attempts per record |
| Busy | Busy signal | Retry after a short delay |
| Wrong number | Reached a person who is not the target | Retire the number; keep the contact if other numbers exist |
| Disconnected / invalid | Number out of service or unreachable | Remove the number from the list |
| Gatekeeper / target unavailable | Right place, wrong moment | Keep in rotation; note the better time if offered |
Resist the urge to grow this list. Every additional code is a decision an agent makes hundreds of times a week, and past roughly fifteen options the picking gets sloppy — which corrupts the exact data the codes exist to produce.
How dispositions drive list hygiene
A disposition set earns its keep by answering one question per record: should this number be dialed again? Genesys Cloud makes the mechanism explicit — its wrap-up code mappings translate dispositions into terminating classifications: “Number Uncallable” retires only the dialed number, “Contact Uncallable” stops dialing every number attached to that person, and “Right Party Contact” marks the intended person reached so the campaign stops working their other numbers (Genesys Cloud Resource Center, as of July 2026). Whatever your dialer calls these, the three-way distinction — kill the number, kill the contact, or mark the target reached — is the whole logic of list hygiene.
Applied to the starter set above, three flows matter most:
- DNC marks. “Do not call” is the disposition with legal weight: it converts a spoken request into a suppression the dialer honors automatically. On Enzo, that suppression is a campaign-level internal DNC list — it applies within the campaign where it was set and does not carry across campaigns, so rebuild suppressions deliberately when you launch a new campaign. Internal DNC is also not registry scrubbing: Enzo does not scrub lists against the National DNC Registry or state registries, and federal telemarketing rules require honoring both registry listings and entity-specific do-not-call requests — the practical detail lives in our DNC registry guide for callers.
- Callbacks. A callback disposition with a timestamp is a promise with a mechanism behind it. Records dispositioned “callback scheduled” leave general rotation and resurface at the committed time — which is the difference between a follow-up process and a pile of sticky notes.
- Removing bad numbers. Every “disconnected,” “invalid,” and “wrong number” disposition prunes the list. This is unglamorous and cumulative: a list that sheds its dead numbers each pass concentrates the next pass’s dials on numbers that can actually answer, while an unpruned list quietly drags every downstream stat toward zero.
Dispositions are where your metrics come from
Contact rate, conversations per hour, callback completion, list penetration — none of these are collected separately. They are all computed from dispositions, which means disposition discipline is measurement discipline. If agents batch their labeling at the end of the day, or dump ambiguous calls into whatever code sits on top of the list, the reports built downstream inherit the mud. The working rule from our outbound call metrics guide applies here: disposition every call the moment it ends, keep the code list short and standardized, and never change a definition mid-quarter. Ten crisp codes beat twenty muddy ones on every report you will ever run.
Where dispositions land: the CRM flow
A disposition that lives only inside the dialer is invisible to everyone doing follow-up. The end state you want is that a call outcome logged at 10:04 is on the contact’s CRM record by the time anyone next looks at it.
On Enzo, that flow is native for Follow Up Boss: the sync is two-way, so call outcomes push into FUB and record updates flow back — no export step, no re-keying. GoHighLevel, Salesforce, HubSpot, and roughly 6,000 other tools connect through Zapier and webhooks, and CSV import and export cover the rest. This wiring — dispositions, callbacks, and CRM sync working as one loop — is most of what separates a sales dialer from a bare autodialer, and it is worth interrogating in any demo: ask exactly where a disposition goes after the agent clicks it, and how many humans touch it on the way.
How Enzo handles dispositions
Enzo treats dispositions as the hinge of the whole workflow: agents label each call as it ends, outcomes feed the dashboards managers actually read, callback dispositions schedule the callback, DNC dispositions feed the campaign-level internal suppression list, and dead numbers come out of the list instead of soaking up tomorrow’s dials. All of it runs on every plan — from $99 per seat per month billed annually, $120 month-to-month, no seat minimum, with all inbound and outbound minutes included; the full grid is at /pricing. If you want to sanity-check your disposition list against how your team actually calls, book a free discovery call — 20 minutes, and if Enzo isn’t the right fit, we’ll tell you.
Sources: Genesys Cloud Resource Center (wrap-up codes assigned by outbound dialing; wrap-up code mappings for outbound dialing), as of July 2026. Vendor mechanics are cited as examples, not endorsements — verify specifics with each vendor. Enzo pricing and features: enzodialer.com/pricing.