Skip to main content

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.

Assignments can be scheduled to run automatically at regular intervals, eliminating the need for manual intervention on recurring tasks like daily reports, weekly inventory checks, or monthly reconciliations. Assignments can also self-schedule during a Job — for example, a workflow that processes a request can automatically schedule a follow-up check without any separate configuration.

How to Schedule an Assignment

  1. Open your assignment in the Duvo workspace.
  2. Click the Schedule button (or the calendar icon) in the assignment header.
  3. In the panel that opens, select the Schedules tab (calendar icon) for time-based schedules, or the Triggers tab (lightning bolt icon) for event-driven triggers. See Event-Driven Triggers for trigger setup.
  4. Use the frequency picker or describe the schedule in plain language.
  5. Click Add schedule to save it.

Setting a frequency

Use the frequency picker to select from common presets:
  • Every Hour — runs at the start of each hour
  • Every Day — runs once per day at a time you choose
  • Every Weekday — runs Monday through Friday at a time you choose
  • Every Week — runs on a specific day of the week at a time you choose
  • Every Month — runs on a specific day of the month at a time you choose
  • Custom — enter a cron expression directly for precise timing

Using plain-language input

Type a description in the text field (for example, “every weekday at 9am” or “first Monday of the month at noon”) and the system converts it to the equivalent schedule automatically.

Multiple Schedules

An assignment can have up to 5 active schedules at the same time. This lets you cover multiple cadences without creating separate assignments — for example, running a daily summary at 8am and a weekly digest every Friday at 5pm. Each schedule appears as a separate row in the Schedule modal. To remove a schedule, click the delete icon on the row and confirm.

Managing Schedules

Viewing status: Assignments with active schedules display a “Scheduled” badge in the assignment list. Pausing or removing: Open the Schedule modal and delete a schedule row to stop it. Add it back any time to resume. Monitoring: Each scheduled Job appears in the assignment’s session log so you can track performance over time. One-time schedules: Schedules set up to run once (for example, via the API) automatically retire after they fire. They do not repeat.

Self-Scheduling During Execution

Assignments can create, update, or delete their own schedules while a Job is running. This lets your SOP instruct the assignment to manage its own cadence based on what it finds. For example, an assignment monitoring a supplier’s delivery status might:
  1. Check the current status
  2. If the order is still pending, schedule itself to check again in 24 hours
  3. Once the order ships, cancel the follow-up schedule
To enable self-scheduling, write your SOP to explicitly instruct the assignment when and how to schedule follow-up runs. The assignment handles the scheduling automatically — no separate configuration is needed.

Common Scheduling Patterns

Most automations fit one of these four patterns. Choosing the right one shapes how you write the SOP and configure the trigger.

Recurring digest

When to use it: You want a formatted summary — report, roundup, briefing — delivered to a person or channel on a fixed cadence. How it works: Schedule the assignment to run at a set time (daily, weekly, or monthly). The SOP pulls data from one or more sources, formats the result, and delivers it via Slack, email, or a spreadsheet. The assignment does nothing between Jobs. Examples:
  • Weekly KPI summary posted to Slack every Monday at 7am
  • Daily inbox roundup emailed to the ops manager at 8am
  • Monthly reconciliation report written to Google Sheets on the first of each month
Tip: Include a sanity check in your SOP — if the numbers look out of range, alert the owner instead of distributing a potentially wrong report.

Continuous monitoring with threshold alerting

When to use it: Something needs to be watched regularly, but you only want to hear about it when a condition is met — not every time the assignment runs. How it works: Schedule the assignment to run every hour (or every 15 minutes for time-critical metrics). The SOP checks a data source against a defined condition. If the condition is not met, the assignment stops silently. If it is met, it sends an alert. Examples:
  • Inventory alert when any SKU drops below the reorder point
  • Slack notification when a fraud rate crosses 2%
  • Email to the finance team when a daily expense total exceeds budget
Tip: Add a deduplication instruction to your SOP — for example, “do not alert if the same condition was already alerted in the last 4 hours” — to prevent repeated notifications for an issue already in progress.

Event-driven trigger with scheduled follow-up

When to use it: A workflow starts from an event (an email, a Slack mention, a file upload) and needs to check back later without human involvement. How it works: The assignment starts from a trigger (not a schedule), processes the initial event, and then uses self-scheduling to arrange a follow-up Job. The follow-up check can itself reschedule or cancel depending on what it finds. Examples:
  • Process an order email immediately; follow up 48 hours later if no corrected response arrives
  • Acknowledge a supplier query when it lands; re-check the supplier’s status every 24 hours until the delivery ships
  • Start a Job from a Slack mention; send a progress update to the thread 30 minutes later
See Event-Driven Triggers for how to set up the initial trigger, and Self-Scheduling During Execution above for the follow-up mechanism.

Batch processing window

When to use it: A high-volume assignment needs to run once per day, preferably during off-peak hours, to process a backlog that has accumulated since the last Job. How it works: Schedule the assignment to run at a quiet time — overnight, early morning, or end of day. The SOP processes all unhandled items (emails, records, files) since the last Job in a single session. Examples:
  • Process all unread order emails overnight at 2am
  • Reconcile all completed transactions from the day at 11pm
  • Generate invoices for every job closed during the day, sent at 6pm
Tip: For large batches, add a pause instruction between items (e.g., “wait 2 seconds between each record write”) to avoid hitting rate limits on external systems.