Case Queue
Beta — This feature is currently in beta and may change.
Introduction
Case Queue is a queue-based work item system for assignments. It lets you feed individual work items — called cases — into a queue, where assignments automatically pick them up, process them, and report results.
This is useful when you have a stream of tasks that need to be handled one at a time (or in parallel), such as processing incoming requests, handling tickets, or working through a batch of items.
Key Concepts
Queue
A queue is a container that holds cases waiting to be processed. Each team has one default queue, and cases flow through it to be claimed by assignments.
Case
A case is an individual work item with a title and associated data. Think of it as a task card — it carries the information an assignment needs to do its work.
Case Statuses
Pending
Waiting in the queue to be picked up
Claimed
An assignment has taken the case and is working on it
Completed
The assignment finished processing the case successfully
Failed
The assignment encountered an error; the case returns to the queue for retry
Agent Triggers
An agent trigger connects an assignment to a queue. When a new case arrives, the trigger automatically dispatches the assignment to claim and process it — no manual intervention needed.
How It Works
Cases are added to a queue — either by another assignment or by an external system via the API.
An assignment with a case trigger automatically claims the next pending case.
The assignment processes the case using the case data as input.
The case is marked as completed or failed. Failed cases return to the queue so they can be retried.
Setting Up a Case Trigger
To have an assignment automatically process cases from a queue:
Open your assignment in the Duvo workspace.
Enable the case trigger in the assignment settings.
Set the concurrency — this controls how many cases the assignment can process at the same time.
Once enabled, the assignment will start claiming and processing cases as they arrive in the queue.
Producer and Consumer Pattern
A common pattern is to have one assignment create cases and another process them:
Producer assignment: Runs on a schedule or trigger, identifies work items, and adds them as cases to the queue.
Consumer assignment: Has a case trigger enabled and automatically picks up and processes each case.
This separation keeps your workflows modular — the producer focuses on identifying work, while the consumer focuses on doing it.
Human-in-the-Loop with Cases
Cases work with the Human-in-the-Loop feature. If a consumer assignment needs human input while processing a case, it will pause and send a notification to the Activity Inbox. The case stays in the Claimed status until the human responds and the assignment completes its work.
Viewing Cases
You can monitor your queue from the Cases page in your team space:
Filter cases by status (Pending, Claimed, Completed, Failed)
View case details including title, data, and processing history
Track queue stats to understand throughput and failure rates
Case Handover
One assignment can hand a case off to another assignment mid-workflow. When a consumer assignment determines that a different specialist should handle a case, it requests a handover. The case is released back to the queue and routed to the target assignment, which picks it up through the normal dispatcher.
This is useful for triage workflows where a general assignment routes cases to specialists, or for escalation paths where routine cases are handled by one assignment and complex ones by another.
To enable handover, configure the source assignment with @-mentions in its SOP. See Assignment Handover for setup details.
Key Takeaway
Case Queue gives your assignments a structured way to receive and process work items. Pair it with agent triggers for fully automated processing, or use the producer-consumer pattern to build modular, scalable workflows.
Last updated