Before you enable a schedule or trigger, you need confidence that your assignment behaves correctly — and that a bad Job cannot cause irreversible damage. This guide gives you a concrete test plan, patterns for isolating side effects, and strategies for keeping test and production environments separate. This is the testing half of the journey to production. Once testing is signed off, use Promote to Production to enable your schedule or trigger and hand the assignment to your team.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.
Test Plan Template
Copy this template for each assignment you are preparing for production. Work through every section before enabling autonomous Jobs.How to Mock Dangerous Side Effects
The goal during testing is to observe what the assignment would do without allowing it to write to live systems. Use the patterns below for the connections your assignment touches.Read-only mode via SOP instruction
Add a shadow-mode block at the top of the SOP before running test Jobs. Remove it only after you are satisfied with the outputs.Per-connection safe testing
| Connection | Safe testing approach |
|---|---|
| Gmail / Outlook | Send emails to your own address or a team test alias instead of real recipients. Add the target override to the SOP: “Send all emails to test@yourcompany.com during testing.” |
| Google Sheets / Excel | Point the assignment at a copy of the production spreadsheet, not the live one. Rename it clearly: [COPY — TEST ONLY] Monthly Sales. |
| Snowflake / BigQuery | Use a read-only Login during testing. Grant write access only after output verification. |
| Slack | Post to a private test channel (e.g., #assignment-testing) instead of customer-facing channels. Update the SOP with the channel name before testing. |
| HubSpot / Salesforce / CRM | Use a sandbox or developer instance if your plan includes one. If not, add a test-contact filter: “Only update records tagged TEST during testing.” |
| Database writes | Create a staging schema or table prefixed with test_. Point the assignment at it during testing. |
Inspecting proposed actions before they land
Some assignment types can log their intended actions before executing. Add this instruction to the SOP when you want to review a batch before committing:Environment Separation Patterns
These are the three approaches teams use most often to keep test traffic separate from production systems.Pattern 1 — Two builds, one SOP
Create a second build of the assignment by duplicating it. Name the copy clearly (e.g.,[TEST] Invoice Processor).
- The test build uses sandbox accounts, test spreadsheets, and a test Slack channel.
- The production build uses production credentials and live targets.
- When the SOP changes, update both builds. Promote the change to the production build only after the test build confirms it.
Pattern 2 — Two teams, one SOP
Some teams run a dedicated sandbox Duvo team (or workspace) alongside the production team.- The sandbox team holds test connections and test data sources.
- Builders develop and test in the sandbox team, then recreate the assignment in the production team.
- Connections in the production team are scoped to live accounts.
Pattern 3 — Connections scoped per environment
Use a single build but maintain two connection profiles: one for testing and one for production. Before a test run, switch the assignment to use the sandbox connections. After testing, switch back. This approach requires discipline to avoid accidentally running with the wrong connections. Reserve it for simple assignments where the risk of a mistaken production write is low.Using Assignment Versions for Safe Iteration
Every time you save a change to your assignment, Duvo creates a new revision. Use revisions to iterate safely during testing without losing working configurations.When to create a new revision vs edit in place
Create a meaningful revision when you make a change that materially affects behavior — new HITL gate, updated output format, different connection target. Small wording tweaks to a SOP that is already working can be saved in place.Testing a change before making it live
- Open the assignment and make your changes.
- Save. Duvo creates a new revision.
- Run a test Job using the new revision to verify behavior.
- If the test Job fails, revert to the previous revision immediately — do not leave a broken revision as live while you investigate.
Reverting to a previous revision
- Open the assignment.
- Click the revision selector in the builder toolbar.
- Select the last known-good revision.
- The assignment now uses the reverted SOP for the next manual run, scheduled run, or trigger.
Note: Scheduled Jobs and triggers always execute the live revision, not the one you are currently viewing. A warning banner appears at the top of the builder whenever you are viewing a non-live revision.See Assignment Versions for the full versioning reference.
Pre-Production Checklist
Work through this list when testing is complete and you are ready to go live. If any item is not checked, address it before enabling the schedule or trigger.Related
- Promote to Production — Enable your schedule or trigger and hand the assignment to your team
- Guardrails for High-Risk Automations — Risk scoring, shadow mode, and hard caps for high-stakes assignments
- Assignment Versions — How versioning works and how to revert a change
- Designing Human-in-the-Loop Workflows — When to add approval gates and how to configure escalation
- Duplicating Assignments — How to create a test build alongside your production build