lunch, break, training, coffee, meeting, whatever your floor actually uses. The editor at Voice → AUX Codes is the per-tenant catalog of those reasons. Agents see the labels when they change their status; workforce-management reporting buckets each one downstream.
Every control on this page is tenant-owned: the catalog, the bucket mapping, the paid flag, and the ordering live in your organization’s configuration. Creating or editing a code changes reporting configuration only — it never touches call routing.
1. Why AUX codes matter: adherence buckets and paid vs unpaid
Each AUX code carries two properties that decide how it counts in adherence reporting:- Adherence bucket — one of the fixed WFM vocabulary:
available,on_call,wrap_up,break,lunch,training,unavailable, orlogged_out. Every minute an agent spends in the code rolls into that bucket. Extend the vocabulary freely on slugs (coffee,1-on-1,dental); the bucket tells the report how to classify it. - Paid flag — whether time in the code counts as paid. Paid breaks and unpaid lunch are the common split; your payroll export can read the flag directly.
lunch, break, training) and falls back to unavailable for anything else. The catalog overrides that: when you add a code, its explicit bucket replaces the fallback for every agent who picks it. Codes you don’t add fall back to the defaults, unchanged.
2. Open Voice → AUX Codes and create a code
In the dashboard, open Voice → AUX Codes. The page lists your active catalog ordered by the sort position you set. To add a code, click Create code and fill in:- Code — the slug agents’ status changes record. Lowercase ASCII letters, digits, hyphen, underscore; 1–64 characters. The slug is immutable once created (see archiving below).
- Label — the human-readable name shown in the agent picker, up to 200 characters.
- Adherence bucket — one of the eight fixed buckets above.
- Paid — on for paid time, off for unpaid.
- Sort order — integer 0–10,000 (default 100). Lower numbers float higher in the picker.
Create via the API:
cURL
409 AUX_CODE_ALREADY_EXISTS. A slug colliding only against an archived code creates fine — the active set is what is unique.
3. Edit, archive, and restore the catalog
Any member with the owner or admin role can edit; agents and supervisors pick from the catalog but a 403 tells them they can’t change it.
- Edit — the label, bucket, paid flag, sort position, and active flag are all mutable. The slug is not: it is the identifier stored verbatim on the audit trail, so renaming would orphan historical rows. To rename, archive the old slug and create the new one.
- Archive — a soft delete. The code disappears from the agent picker and every new status change; history keeps the recorded slug.
- Restore — flip
isActiveback totruefrom the archived list (includeInactive=true), and the code is live again.
List via the API (defaults to active only, paginated):
cURL
cURL
4. How agents pick a code when changing presence
When an agent’s status changes in the dialer or inbox — stepping away, finishing a call, returning to available — the picker lists every active AUX code ordered by sort position, and the recorded slug lands on their status-change event. An agent with no code to pick still flips between the built-in defaults (lunch, break, training, or unavailable fallback). The catalog only extends the options; it never leaves agents without one.
5. How codes feed adherence reporting
Adherence compares schedule-versus-actual: the minutes an agent spends in each presence state roll into the bucket its code maps to, and the paid flag decides whether the minutes count toward payroll. The bucketing is what makes reports readable — 40 slugs would be noise; eight buckets are a plan. Related reading:- Workforce-management workflows — the adherence-exception loop and how the buckets feed the plan-vs-actual rollups.
- Supervisor live monitoring (voice) — watch live AUX states across the floor.
- Quality management program — where adherence rubs up against QA sampling and coaching.
6. Troubleshooting
A code is missing from the agent picker. Archived codes never render. List withincludeInactive=true to check; restore via PATCH { "isActive": true }.
A new code returns 409. The slug collides with an active row. Pick a different slug — or archive the collision first and re-create to “rename.”
Agents see a 403 editing the catalog. Only owner and admin can create, update, or delete; agents and supervisors pick from the list. Issue an API key with the right role, or use a dashboard session with one of those memberships.
Sort order not applying. Sort position is an integer 0–10,000 and applies to the active set rendered in the picker; archived rows sort to the bottom regardless.
Audit trail. Every create / update / archive / restore writes to the audit log with actor, timestamp, and the slug. Read the audit log guide to query the trail (voice.aux_code.created, voice.aux_code.updated, voice.aux_code.deleted).