Scheduled Tasks
Scheduled Tasks run automations on a recurring cadence with no triggering email, form, or event. You pick the schedule, the system fires a run at each tick, and the task's action list executes.
Use Scheduled Tasks when:
- You need to periodically synchronise data between systems (for example, push a value from another source into Autotask custom fields).
- You want a nightly housekeeping run that closes stale tickets, archives old records, or emails a report.
- You are building a scheduled outbound notification (daily digest, weekly summary, end-of-month reminder).
- You need to keep data fresh that would otherwise go stale until a user triggers a lookup.
If the trigger is an inbound email, see Email Processing. If it is a public form submission, see Forms. If it is a change inside your PSA, see Workflows.
How It Works
A scheduled task has three parts:
| Part | Purpose |
|---|---|
| Name and description | How the task appears in the console list and history. |
| Schedule | A cron-style cadence that controls when the task fires (for example, hourly, daily at 02:00, weekdays at 08:00). |
| Action steps | The ordered work the task performs each time it fires. Tasks support the same action library as every other product. |
When the schedule tick fires:
- The system creates a History entry with trigger type
scheduler. - The task's action list runs in order.
- Intermediate work is stored in the
customnamespace. - The history entry is marked complete or failed based on the result.
Because a scheduled task has no inbound payload, the starting point is always empty. Most tasks begin with a query (HTTP request, API call, or data lookup) that fetches the data the rest of the task iterates over.
Variables Available in Scheduled Tasks
| Namespace | Populated by | Purpose |
|---|---|---|
meta | System | Processing run and schedule metadata (meta.history.id, meta.scheduler.id, meta.scheduler.name) |
custom | You | Working data within the task |
Scheduled Tasks do not have an email, input, global, or output namespace. Each run is isolated; nothing carries over between ticks.
Full details: Variable Namespaces.
The Console
Scheduled Tasks live under Scheduled Tasks in the console sidebar. From there you can:
- Home: landing page with a snapshot of your tasks.
- All Tasks: list, create, edit, and test tasks.
- Task History: review every run, with the full execution log and replay.
Every task has a Test button that runs the action list once against a synthetic trigger so you can verify the logic without waiting for the next schedule tick.
Typical Patterns
Iterate and update
- Query the source system for records that need an update.
- Use the Iterate action to walk the list.
- For each record, run the write API call.
The Scheduled Banner Updates tutorial is a complete worked example.
Query and notify
- Query a system for records matching some criteria.
- Use the result to render an email, Slack message, or Teams notification.
- Send the notification and stop.
Time-window cleanup
- Query records older than N days/weeks/months.
- Close, archive, or flag each one.
- Record a summary in the history log.
Start Here
- Core Concepts: the mental model shared by every product.
- Expression Builder: filter which iterations of a scheduled task do the real work.
- Actions library: every action available inside a task, including HTTP, iteration, AI, and PSA actions.
Tutorials
- Scheduled Banner Updates: automatically update a banner UDF on every Autotask Account on a schedule.