dim_wrap_up_code dimension. Together,
the active rows are the dropdown an agent picks from when a call ends —
the disposition list. TeleQuick stores the agent’s choice on the call
record, and the fields you set here are what downstream QA and
first-call-resolution reporting reads.
Manage the list in the console under Wrap-up codes. The screen is a
straight CRUD surface over four procedures:
What a wrap-up code is
Each code carries these fields:
The console normalises the
code field as you type: it upper-cases the
input and replaces runs of whitespace with _. Both code and name
are trimmed and must be non-empty before the form will submit.
active is only editable on an existing code — the create form does not
send it, and the Active toggle appears in the drawer in edit mode only.
The category vocabulary
category is a fixed enum. It is a reporting bucket: the console renders
it as a coloured chip and the empty-state copy on the screen states that
categories roll up to the QA / FCR reports. The category itself drives no
behaviour on the call — the two flags below do that.
You can define many codes in the same category — that is the normal
shape. The
code and name give the agent the specific reason
(RESOLVED_BILLED, RESOLVED_NO_CHARGE); the category is what a report
groups by so that the bucket totals stay stable as you add and rename
individual codes.
The FCR flag and first-call resolution
is_fcr is a per-code boolean, exposed in the drawer as Counts toward
FCR. Codes with the flag set show an FCR chip in the list; codes
without it show a dash.
The flag is independent of category. Nothing forces a resolved code
to count toward FCR, and nothing stops a code in another category from
counting. That is deliberate: a resolved code that you use for
“resolved by transferring to the carrier” can be excluded from FCR while
still reporting as resolved, and a promise code can count as a
first-call resolution if your team treats it as one.
Because the flag lives on the dimension row and the call record points at
the row by id, flipping is_fcr changes how the code is treated
without touching any stored call. Treat a change to this flag as a change
to your reporting definition, not to your data.
Requires follow-up
requires_follow_up is the second boolean on the row. Codes with it set
show a Yes chip in the Follow-up column.
Use it on codes that mean the interaction is not finished: callbacks,
promises, escalations. Like is_fcr, it is independent of category, so
you can have a callback code that does not demand follow-up (the
customer will call back) alongside one that does (the agent must).
Scoping a code to a hotline
A code withhotline_id = null is global — the list renders it as
Any. Set hotline_id to attach the code to one hotline, and the
list shows that hotline’s code instead.
The Hotline picker in the drawer is populated from
adminHotlines.list for the same org: each option shows the hotline’s
name, with the hotline’s short code as a hint. The picker is clearable —
clearing it sets hotline_id back to null and makes the code global
again.
Scoping is how you keep the agent’s dropdown short. A collections
hotline and a support hotline can each carry their own specific codes
while sharing the global ones.
Ordering the agent picker
sort_order is a plain integer between 0 and 9999 and is the sort key
for the code list. The console shows it as the leading column, so the
admin table reflects the order the codes sit in.
New codes are created at 100. Leaving gaps between values — 100, 200,
300 — lets you insert a code later without renumbering the rest.
Searching and paging the list
The list is paged at 50 rows per page, with the total row count shown in the page header and in the pager.- Search filters on code or name. Editing the search box resets you to page one.
- Include inactive sets
includeInactiveon the query. Leave it off and you see only the codes agents can currently pick; turn it on to find and reactivate a retired code.
Tagging codes
Wrap-up codes are a taggable resource, under the resource kinddim_wrap_up_code. The console resolves tags for the whole visible page
in one request and the Tags cell writes changes back per row. Tags are
metadata for organising the list — they do not affect what agents see or
how a code reports.
Deactivating a code without breaking history
Deactivate in the drawer callsadminWrapupCodes.remove, which is a
soft delete: the row’s active flag goes to false and the row stays in
dim_wrap_up_code. The confirmation dialog states this directly —
historical call records that reference the code still resolve.
What changes and what does not:
- The code drops out of the default list, so it is no longer offered for selection going forward.
- Completed calls already dispositioned with that code are untouched.
Reports that join through the dimension row keep resolving its
code,name,category,is_fcrandrequires_follow_up. - To bring the code back, search with Include inactive on, open it,
and flip the Active toggle in the edit drawer.
updatesendsactiveas part of the patch.
Reading dispositions off call records
A call record references the wrap-up code by the dimension row’sid,
not by the code string. Two consequences:
- You can rename a code (
codeorname) without rewriting history. The reference still points at the same row, so old calls pick up the new label the next time you read them. - Two codes that happen to share a
codestring across different hotline scopes are still distinct rows, and a call record tells them apart.
dim_wrap_up_code and take
code, name, category, is_fcr and requires_follow_up from the
dimension row. Do not denormalise the label at write time — that is what
makes the rename and deactivate behaviour above safe.
Related
- Telephony Metrics — the contact-centre metrics dispositions feed into
- Telemetry — where per-call records are persisted