Why use a Job instead of an Endpoint
An Endpoint is synchronous application ingress. It should validate, perform bounded work, and respond while the caller is still waiting. A Job is asynchronous application work. It can be started by an Endpoint, but the Endpoint should return a durable Job/operation reference rather than pretend a long task is complete.
The limit model
The configured timeout is a hard part of the Job contract. It is checked when the template is created or updated and enforced at execution time. See Limits and quotas for the distinction between platform ceilings, per-instance policy, form validation, and runtime enforcement.
The 59-minute limit is intentionally not a substitute for an unbounded worker. Split a longer workflow into idempotent stages, persist the handoff state, and schedule or trigger the next Job. That produces recoverable boundaries and avoids tying one execution to a long-held resource or credential.
Configure a template
The Jobs workspace shows template identity, Component, metadata, actor timestamps, and version. Select a template to open its Details panel: the panel separates Runtime input, Concurrency, Retry, and metadata, and offers Run for a deliberate operator invocation. This separation is useful: it makes the settings that change capacity and duplicate-side-effect risk visible before a run is created.componentVersion pins a known low-code version for a controlled release. Omit it only when the task should intentionally resolve the latest active version. triggerUser is the principal whose roles and resource ACLs apply at execution time; choose a dedicated service account for unattended work.
The platform rejects retry backoff above 30 days before queueing. If an absolute requested run time becomes due while the request is being processed, the Job is dispatched immediately; the queue is never given a timestamp in the past.
What a Job gives you
- Did the work start, remain pending, get cancelled, expire, finish, or error?
- Which component version and execution principal were selected?
- Which input/result fields were intentionally hidden from history?
- Was this a retry child, and what happened on the preceding attempt?
- Did a downstream artifact exist and finalize successfully?
Design for retries and timeouts
Jobs are at-least-once from the perspective of external systems. A timeout, worker interruption, or delivery retry can leave the platform without proof that a remote side effect did not happen.- Create an idempotency key per business effect before calling the provider.
- Store/check the provider correlation ID before scheduling a retry.
- Make each stage independently safe to run again.
- Keep remote calls, large file work, and database writes bounded.
- Use a concurrency key for a shared account, file, or customer when two writes would conflict.
- Break work approaching the timeout into resumable chunks; write a checkpoint to a Table or Storage before enqueueing the next chunk.
Operate a Job
Use Jobs → Job History to inspect an exact Job ID, its status, current/selected version, logs, timing, and retry root. “Accepted” means the request created or scheduled durable work; it is not a success result. ConfirmFINISHED or a finalized artifact before notifying users or triggering a dependent business process.
Related guides
Automation
Configure schedules, events, webhooks, and retry delivery.
Traces and correlation
Investigate execution and handoff failures.
Components
Build the versioned logic a Job executes.
Agent triggers
Use durable Agents when the work requires planning and tool selection, not one fixed Component.

