Documentation Index
Fetch the complete documentation index at: https://docs.duvo.ai/llms.txt
Use this file to discover all available pages before exploring further.
| Time to complete | 45 minutes |
| Difficulty | Intermediate |
| Prerequisites | At least one inbound channel connected (Gmail, Outlook, Zendesk, Intercom, or Slack) |
| You’ll build | An assignment that reads incoming customer complaints, classifies them by severity and topic, drafts a tone-checked response for human approval, routes each case to the right queue, and tags SLA deadlines |
Why Automate This?
The Problem: Complaints arrive across email, Zendesk, Intercom, and Slack simultaneously. Someone has to open each one, judge its severity, decide which team owns it, write an appropriate first response, and make sure SLA clocks start ticking — all before anything gets done about the underlying issue. At volume, this triage work consumes hours of CX time daily. Cases get misrouted. Tone-deaf responses go out without review. Regulated complaints — those that mention regulators, legal action, or data breaches — can sit in a standard queue when they legally require a documented response within a defined window. The Solution: A Duvo assignment that monitors your complaint inboxes, reads each new complaint, classifies it by severity and topic, drafts a first response for human approval, routes the case to the right team, and tags the SLA deadline. Humans stay in control of every customer-facing message. The assignment handles the triage logic so they can focus on resolution. Expected Results:- Reduce triage time per complaint from minutes to seconds
- Ensure regulated complaints are identified and escalated immediately
- Eliminate misrouting caused by agents reading quickly under volume
- Every drafted response reviewed before it reaches a customer
- Complete audit trail of every complaint received, classified, and acted on
What You’ll Build
By the end of this playbook, you’ll have an assignment that:- Monitors inbound complaint sources: shared email inbox, Zendesk ticket queue, Intercom conversations, or a Slack channel
- Reads each complaint and classifies it by severity (regulated, high, standard) and topic (refund, delivery, product defect, billing dispute, service outage, safety incident)
- Looks up the sender in your CRM to factor in account tier and complaint history
- Deduplicates across channels so a customer emailing and opening a Zendesk ticket for the same issue creates one case, not two
- Drafts a first-response appropriate to the severity and topic
- Pauses for Human-in-the-Loop approval — a reviewer approves or edits the draft before anything reaches the customer
- Routes the approved case to the correct queue, applies severity and topic tags, and sets the SLA due date
- Sends a Slack notification for regulated complaints to your compliance channel
- Escalates any unanswered approval request that is approaching its SLA window
- Gmail or Outlook — inbound complaint email
- Zendesk — ticket ingestion and case routing (optional)
- Intercom — conversation ingestion (optional)
- Slack — channel monitoring and compliance notifications (optional)
- HubSpot or Salesforce — CRM lookup for customer history (optional)
- Human-in-the-Loop — approval gate before any response is sent
Before You Start
Make sure you have these ready:- Inbound channel access — Connect at least one of: Gmail, Outlook, Zendesk, or Intercom.
- Severity definitions — Know what makes a complaint regulated vs. high vs. standard at your company. For financial services this is usually FCA/COBS-regulated language; for healthcare it is HIPAA-related; for consumer businesses it is typically safety incidents or refund requests above a threshold.
- Topic taxonomy — A list of the complaint categories your team already uses (e.g., refund, delivery failure, product defect, billing dispute, service outage, safety incident). These become the classification labels.
- Routing rules — Which team or queue owns each severity/topic combination. For example: regulated complaints → compliance team; billing disputes → finance; product defects → product support.
- SLA windows — Your target response deadlines by severity (e.g., regulated: 2 business hours; high: 8 hours; standard: 24 hours).
- CRM login (optional) — Read access to HubSpot or Salesforce for customer history lookup. Store logins securely.
Step 1: Create Your Assignment
- Click ”+ Create Assignment” from your dashboard.
- Select “Use Assignment Builder”.

Step 2: Describe Your Workflow
Paste this prompt into the Assignment Builder and replace the bracketed placeholders with your specifics:Step 3: Review Generated SOP
Duvo will generate a structured SOP from your description. Before continuing, confirm:- Your severity definitions are precise enough that the assignment can classify without ambiguity. Vague definitions (“serious complaints”) produce inconsistent classifications.
- Your topic categories cover the complaints your team actually receives.
- The tone guidance for each severity tier matches your brand voice.
- The routing targets are named exactly as they appear in your helpdesk.
Step 4: Configure Connections
Click “Connections” and add:- Gmail or Outlook — The shared complaints inbox. If the account is not yours personally, an admin may need to authorize it.
- Zendesk (optional) — For ticket ingestion and routing. See Zendesk.
- Intercom (optional) — For conversation ingestion. See Intercom.
- Slack (optional) — If complaints arrive via a Slack channel or you want compliance notifications. See Slack.
- CRM (optional) — HubSpot or Salesforce for customer history lookup.
- Human-in-the-Loop — Already available by default. No additional setup required.
Step 5: Handle Multi-Source Intake and Deduplication
If you are monitoring more than one channel, update your SOP so the assignment processes each source and avoids creating duplicate cases:Step 6: Define the Severity Classification
Precise rules prevent the most common failure — regulated complaints landing in a standard queue. Add these explicitly to your SOP:Step 7: Configure the HITL Approval Gate
The assignment pauses after drafting a response and sends a Human-in-the-Loop review request. Give reviewers everything they need to decide quickly:Step 8: Configure the Inbox Trigger
Set the assignment to run automatically when new complaints arrive:- Go to Assignment Settings > Schedule.
- Select Event-driven trigger.
- For email: set the trigger to “New email” in your connected inbox. Optionally filter on subject-line keywords (“complaint”, “refund”, “issue”) to reduce noise from non-complaint messages.
- For Zendesk or Intercom: set a scheduled trigger to run every 15 minutes and check for new tickets in the complaints queue.
Step 9: Test with Sample Complaints
Before going live, run the assignment against realistic test cases. Use the sample dataset below — send each row’s text as an email to your inbox or import it as a Zendesk ticket to simulate real intake.| Test case | What to verify |
|---|---|
| Standard complaint — delivery late (C001) | Classified correctly, warm draft generated, routed to standard queue |
| High complaint — safety incident (C002) | Classified as High, urgent tone in draft, routed to senior-cx queue |
| Regulated complaint — FCA mention (C003) | Classified as Regulated, formal draft with regulatory acknowledgment, compliance Slack notification sent |
| Repeat complaint within 30 days (C001 + C005, same customer) | C005 promoted to High, attached to existing C001 case |
| Multi-channel duplicate — email + Zendesk same day (C005 + C006, same customer) | Deduplication triggers, one case created or merged |
| Ambiguous feedback (C007) | Classification applied, check it matches your rules |

Expected Results
When your assignment is running successfully: In your helpdesk (Zendesk / Intercom):- Every complaint has a severity tag, topic tag, and SLA due date applied within minutes of arrival.
- Cases are assigned to the correct queue without manual triage.
- Regulated tickets have an internal note documenting the classification and SLA deadline.
- A pending Human-in-the-Loop approval for each complaint, with full complaint text, draft response, and routing recommendation visible inline.
- Approved cases move to the correct queue immediately after the reviewer acts.
- A first response with consistent, appropriate tone — reviewed by a human before sending.
- Regulated complaints receive a formal acknowledgment that meets compliance requirements.
- An immediate notification for every regulated complaint, with customer name, complaint summary, SLA deadline, and a link to the case.
- A complete, timestamped record of every complaint: received, classified, drafted, approved, routed, and responded.
Troubleshooting
Regulated complaints are not being identified
- Trigger phrase list is too narrow: Review recent regulated complaints your team handled manually. Identify the exact phrases customers used and add them to the SOP’s regulated trigger conditions.
- Paraphrasing: Customers do not always use precise regulatory language. Add plain-language equivalents:
"I'll contact the financial regulator"alongside"FCA". - Test with known examples: Paste a known regulated complaint into the assignment manually and check the classification output.
Draft response tone is wrong for the severity
- Severity mismatch: If a High complaint is being drafted with Standard tone, the severity classification is incorrect. Tighten the High-tier conditions in the SOP.
- Template is too generic: Add example phrases to your tone guidance:
"For High severity, open with: 'I completely understand how frustrating this is and want to resolve it urgently for you.'". - Brand voice not reflected: Add a style note to the SOP:
"Write in a warm but professional tone. Avoid corporate jargon. Use contractions. Never use 'we apologize for the inconvenience.'"
Non-complaint emails are triggering the assignment
- Trigger filter too broad: Narrow the email subject filter or add body-text exclusions. Add a gate at the start of your SOP:
"First, confirm this message is a genuine complaint. If it is a general inquiry, sales contact, or automated notification, skip it and log: 'Not a complaint — skipped.'"
HITL requests are unanswered and SLA is at risk
- Confirm the escalation path in Step 7 is set correctly (correct Slack channel and DM target).
- Remind reviewers to enable notifications for the Activity Inbox so they are alerted when a new approval request arrives.
- See Designing Human-in-the-Loop Workflows for additional escalation patterns.
Cases are being duplicated across channels
- Review the deduplication logic in Step 5. Make sure the matching uses both customer email address and a time window — not email alone, since a customer may have two legitimate complaints a week apart.
Take It Further
Once your assignment is triaging complaints reliably, consider these enhancements: Generate a weekly complaint trends reportRelated
- Human-in-the-Loop — How approval gates work and how to configure them
- Designing Human-in-the-Loop Workflows — When to use approvals, how to structure them, and escalation patterns
- Activity Inbox — Where Human-in-the-Loop approval requests appear
- Event-Driven Triggers — How to trigger the assignment when a new complaint arrives
- Scheduling Assignments — How to run on a fixed schedule for batch intake
- Zendesk — Ticket ingestion and case routing
- Intercom — Conversation ingestion
- Gmail — Connect a shared complaints inbox
- Microsoft Outlook — Connect a shared Outlook inbox
- Slack — Channel monitoring and compliance notifications
- HubSpot — Customer history lookup
- Salesforce — Account lookup and CRM record logging
- My Logins — Store CRM and helpdesk credentials securely
- Email Order Intake — Related playbook for structured data extraction from inbound emails