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 | 15 minutes |
| Difficulty | Beginner |
| Prerequisites | Email or Slack connection |
| You’ll build | An assignment that drafts outbound messages and waits for your approval before sending them |
Why Automate This?
The Problem: Sending the wrong message to a customer or stakeholder is costly — once it’s out, you cannot take it back. Teams either review every draft manually (slow) or skip the review entirely and accept the risk (dangerous). The Solution: A Duvo assignment that drafts each message and pauses for your approval before sending. You see exactly what will go out, approve or revise it, and the assignment handles delivery — all without switching between tools. Expected Results:- Every outbound message reviewed before it is sent
- Approval decisions reachable from Slack or the Activity Inbox — no need to open the message editor
- Full audit trail of what was approved, denied, and revised
What You’ll Build
By the end of this tutorial, you’ll have an assignment that:- Reads a list of customer cases or emails that need a response
- Drafts a personalized reply for each one
- Pauses and shows you the draft — recipient, subject, and full body
- Sends the message only after you approve it
- If you deny a draft, asks you what to change and regenerates before re-requesting approval
Before You Start
Make sure you have these ready:- Email connection — Connect Gmail or Outlook. Add a connection
- A source for your messages — This could be a Gmail inbox, a support queue, a spreadsheet of contacts, or a Slack channel. Connect whichever system holds the inputs.
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 adjust it to match your source system:Step 3: Review the Generated SOP
Duvo will generate a structured SOP. Check that:- The source system is correctly identified (Gmail, in this case)
- The approval title format includes enough detail to decide without opening a separate window
- The revision loop is present — the assignment should ask what to change when a draft is denied, not just stop
Step 4: Configure Connections
Click “Connections” and confirm:- Gmail (or your email provider) — Connect the account you want to send from.
- Human-in-the-Loop — Already available automatically. No setup needed.
Step 5: Test the Approval Flow
Run the assignment on a single test email before using it in production:- Click “Start Work”.
- Watch the session log as the assignment drafts the reply.
- When the assignment reaches the approval gate, a request will appear in your Activity Inbox.

- Approve the draft — Verify the email is sent and the label is removed.
- Deny the draft — Verify the assignment asks you what to change, revises the draft, and requests approval again.
Step 6: Respond Directly from Slack
If you have Slack notifications enabled, you can approve or deny drafts without opening Duvo:- Go to Settings > Notifications and connect your Slack account.
- Run the assignment again.
- When the approval request is created, the Duvo bot sends you a direct message in Slack with the full draft.
- Tap Approve or Deny directly in the Slack message.
- The assignment receives your response and continues — sending the email if approved, or asking for revision if denied.
Step 7: Schedule the Assignment
Once testing is successful, set the assignment to run automatically:- Go to Assignment Settings > Schedule.
- Choose how often to check for new emails — every hour, or on a custom schedule.
- Save the schedule.
Expected Results
When your assignment runs successfully, you should see: In your Activity Inbox:- One pending approval for each draft, with the full message body visible in the detail panel
- Requests resolve automatically once you approve or deny
- Only messages you explicitly approved
- Nothing sent that you did not review
- A complete session log showing each draft, your decision, and the final action taken
Troubleshooting
The approval request does not show the full draft
- Check the SOP instruction — Make sure the description field in the approval request explicitly includes the draft body. Edit the SOP and add: “Include the complete email body in the approval description.”
- Check character limits — Very long drafts may be trimmed. Break long messages into shorter ones or include a summary in the description.
The assignment stops after a denial instead of asking for revisions
- Check the fallback instruction — The SOP must tell the assignment what to do when denied. Add: “If approval is denied, ask the user what to change, revise the draft, and request approval again.”
Slack notifications are not arriving
- Check notification settings — Go to Settings > Notifications and verify Slack is connected and notifications are enabled.
- Check the Duvo bot — Make sure the Duvo app is authorized in your Slack workspace.
Emails are sending without approval
- Check the SOP — The phrase “only send after I approve” (or equivalent) must appear before the send step. Without it, the assignment may send immediately after drafting.
Take It Further
Once your basic approval workflow is running, consider these enhancements: Add a priority flag for urgent emailsRelated Resources
- Human-in-the-Loop — Full guide to approval gates and how to write them into your SOP
- Activity Inbox — Where all pending approvals appear
- Customer Response Emails — A tutorial for drafting and sending personalized responses at scale
- Expense Report Approval — A tutorial showing threshold-based approval gates in a finance workflow