Managing the Promise Queue
Summary
Section titled “Summary”When the Voice AI makes a commitment to a caller - such as “we’ll send you a text with the price” or “someone will call you back within the hour” - it creates a promise. The Promise Queue tracks every promise, shows how long remains before the deadline, and lets staff mark promises as done. Keeping promises fulfilled on time builds customer trust and keeps your SLA metrics healthy.
Prerequisites
Section titled “Prerequisites”- You must have the voice.escalations.view capability.
- Promises are created automatically by the Voice AI during calls. There is no way to manually create a promise.
Opening the Promise Queue
Section titled “Opening the Promise Queue”- Select Voice from the main navigation, then select Promises. The page opens at
/voice/promises. - The page header reads “Promise Queue” with the subtitle “AI promises requiring fulfilment”.
Understanding promise types
Section titled “Understanding promise types”- Each promise card shows a type badge. The five types are:
- Immediate - something that should happen right away (for example, sending a text).
- Scheduled - a commitment tied to a specific date and time.
- Callback - someone needs to phone the customer back.
- Auto-trigger - the system will fulfil this automatically when a condition is met.
- Conditional - fulfilment depends on an external event or condition.
Understanding fulfilment mechanisms
Section titled “Understanding fulfilment mechanisms”- Each promise also shows how it will be delivered:
- SMS - fulfilment via text message.
- WhatsApp - fulfilment via WhatsApp.
- Email - fulfilment via email.
- Manual callback - a staff member needs to phone the customer.
- System - the system handles fulfilment automatically.
Understanding promise statuses and SLA timers
Section titled “Understanding promise statuses and SLA timers”- Promises move through four statuses, shown as colour-coded badges:
- Pending (grey) - the promise is active and within its SLA window.
- Approaching (amber) - the deadline is getting close.
- Overdue (red) - the deadline has passed without fulfilment.
- Fulfilled (green) - the promise has been completed.
- Each active promise shows an SLA timer to the right of the badges. The timer counts down to the deadline and updates every 60 seconds.
- If a promise has no fixed deadline (condition-based), the timer area reads “Awaiting trigger” instead.
- The promise card’s left border changes colour to match its status: grey for pending, amber for approaching, red for overdue, green for fulfilled.
- Overdue cards also get a red-tinted background so they stand out in the list.
Filtering the queue
Section titled “Filtering the queue”- Above the promise list, five filter buttons let you narrow the view: All, Overdue, Approaching, Pending, and Fulfilled.
- Select a filter to show only promises in that status. The URL updates so you can bookmark or share filtered views.
Reading a promise card
Section titled “Reading a promise card”- Each card shows the following information in order:
- Status badge - the current status (Pending, Approaching, Overdue, or Fulfilled).
- Type badge - the promise type (Immediate, Scheduled, Callback, Auto-trigger, or Conditional).
- Fulfilment mechanism badge - how the promise will be delivered (SMS, WhatsApp, Email, Manual callback, or System).
- SLA timer - time remaining or “Awaiting trigger”.
- Mark done button - appears for active promises (not fulfilled or cancelled).
- Customer name - the name of the customer, or “Unknown customer” if not identified.
- Description - what the AI committed to (for example, “Call back about MOT pricing”).
- Assigned to - the staff member assigned, if any.
- Created timestamp - when the promise was made, shown in UK format (for example, “01 Apr, 14:30”).
Sorting order
Section titled “Sorting order”- The list sorts automatically by urgency. Overdue promises appear first, then approaching, then pending, then fulfilled. Within each group, promises with the nearest deadline appear first. Promises without a deadline sort last within their group.
Marking a promise as done
Section titled “Marking a promise as done”- Find the promise you have fulfilled and click the Mark done button (pencil icon with “Mark done” text on larger screens).
- A success toast reading “Promise marked as done” confirms the action. The card moves to the fulfilled section and dims slightly.
- Marking done is a record-keeping action only. It does not send any message to the customer.
Navigating to the related call
Section titled “Navigating to the related call”- Click anywhere on a promise card (except the Mark done button) to navigate to the call detail page at
/voice/calls/{callId}. - If no call is linked to the promise, a toast reading “No call associated with this promise” appears instead.
Using keyboard navigation
Section titled “Using keyboard navigation”- Press Arrow Down or Arrow Up to move focus between promise cards.
- Press Home to jump to the first card, or End to jump to the last.
- Press Enter on a focused card to navigate to the call detail.
Pagination
Section titled “Pagination”- If there are more promises than fit on one page, pagination controls appear at the bottom showing a total count, page number, and Prev / Next buttons.
Auto-refresh behaviour
Section titled “Auto-refresh behaviour”- The list polls for updates every 30 seconds. After marking a promise as done, polling pauses briefly (5 seconds) to avoid overwriting your action. Switching browser tabs and returning also triggers a refresh.
Expected Outcome
Section titled “Expected Outcome”You can see every commitment the AI has made, sorted by urgency. Overdue promises are impossible to miss. You can filter to focus on what needs attention, mark promises complete as you handle them, and click through to the related call for full context.
Troubleshooting
Section titled “Troubleshooting”| Problem | Cause | Fix |
|---|---|---|
Page redirects to /dashboard | Missing voice.escalations.view capability | Ask your admin to add this capability to your role |
| ”Unable to load promises. Please try again.” error | Temporary server-side data error | Click the Retry button that appears below the error message |
| SLA timer seems frozen | Timer updates every 60 seconds, not in real time | Wait up to 60 seconds for the next tick |
| Marking done fails with an error toast | Network issue or the promise was already fulfilled | Refresh the page and try again. If the card now shows Fulfilled, another user completed it |
| Empty state says “No promises to track right now” | The AI has not made any commitments recently | This is normal. Promises appear automatically as the AI handles calls |
- SLA status transitions (pending to approaching, approaching to overdue) happen in real time on the client side between polling intervals. You do not need to wait for a server refresh to see a promise become overdue.
- Fulfilled promise cards appear dimmed (reduced opacity) to visually separate them from active promises.
Permissions
Section titled “Permissions”| Capability | Required for |
|---|---|
| voice.escalations.view | Viewing the Promise Queue and marking promises as done |