Core concepts
Trigger
One scheduled task: a name, a schedule, a target, and an execution credential. Triggers have a lifecycle — active, paused, completed, or archived.
Schedule
When the trigger fires. Either a recurring cron expression in a timezone, or a one-off run at a specific date and time.
Target
What the trigger calls: a GraphQL operation, a REST or Custom API gateway route, or an external HTTPS API.
Execution
One run of a trigger. Every fire — scheduled or manual — produces an execution record with its status, timing, and response.
How it works
Scheduled Tasks span three parts of the platform. Knowing the path helps when you’re debugging a task that isn’t firing.1
You configure the task in the Backend Console
The Scheduled Tasks UI in the frontend collects the schedule, target, and options, and sends a GraphQL mutation to your project’s backend API.
2
The backend validates and forwards it
The backend API resolves your project and environment from the auth token — never from the request body — and forwards the call to the scheduler service. Because the tenant comes from the token, one project can’t create or read another’s tasks.
3
The scheduler service stores and runs it
The scheduler service persists the trigger, computes the next fire time, and enqueues the run. When the time comes it dispatches the target with your stored credential, applies retries and the overlap rule, and records the execution.
The trigger lifecycle
A trigger is always in one of four stored states:
Failing is not a stored state — it’s a derived health signal. An active trigger whose recent runs all failed is surfaced as failing, with its consecutive-failure count and last success and failure times, so a broken task stands out without changing its status.
What a target can be
The first three call internal platform artifacts by reference, so they stay inside your project’s auth and gateway model. External REST is the only target that leaves the platform, which is why it’s restricted to public HTTPS hosts.
Execution credential
Every trigger carries an execution credential — theAuthorization value (for example Bearer <token>) used when it dispatches. Create a role-bound API key with exactly the permissions the task needs, and give it to the trigger.
The credential is write-only: it’s stored encrypted and never returned by the API or shown again in the UI. When you edit a task, leaving the credential blank keeps the stored one.
Per-environment
Scheduled Tasks are scoped to an environment. A task defined inmaster is separate from one in another environment, each with its own schedule, credential, and run history. Create the tasks an environment needs in that environment.
Where to go next
Create a task
Walk through the schedule, target, and execution options step by step.
Run history & monitoring
Read execution statuses, run a task on demand, and manage its lifecycle.
FAQ
What's the difference between a Scheduled Task and a Custom Function?
What's the difference between a Scheduled Task and a Custom Function?
A Custom Function is code you write and deploy. A Scheduled Task is a schedule that calls a target — which can be a GraphQL operation, a gateway route, or an external API. A task can call an endpoint backed by a custom function, but the task itself is scheduling and dispatch, not code.
Can a task run every minute / on a complex schedule?
Can a task run every minute / on a complex schedule?
Yes — any cron expression is accepted, in the timezone you choose. You can also write the schedule in plain language and have Archie resolve it to a cron expression for you. See Creating a task.
Are tasks copied when I branch an environment?
Are tasks copied when I branch an environment?
Tasks live per-environment. Create the tasks each environment needs in that environment; credentials in particular are never shared across environments.
Can two runs of the same task overlap?
Can two runs of the same task overlap?
That’s up to the task’s overlap rule — skip the new fire, queue it behind the running one, or allow concurrent runs. See Creating a task.