Reviewing Drafts Before Sending
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:
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:
Click "Generate" to create the assignment SOP.
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
Edit the SOP directly if anything needs adjusting.
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.

Try each path:
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.
The Slack message updates to show the outcome after you respond, giving you a record of each decision.
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.
New drafts will appear in your Activity Inbox (or via Slack) as they are generated, ready for your review.
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
In your email sent folder:
Only messages you explicitly approved
Nothing sent that you did not review
In Duvo:
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 emails
Skip approval for routine replies
Include a confidence note in the description
Apply to other channels
The same pattern works for Slack messages, social media comments, or any other outbound communication. Replace the Gmail instructions with the appropriate connection and source.
Related 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
Last updated