Skip to content
Back|Documentation
Docs navigation

Flow runs and approvals

Where to watch a run, what a step records, how to stop or replay one, who decides an approval, and what Akili does when a flow keeps failing.

Updated October 2026Flows3 of 3

Short answer

Every run of a flow is listed under its Runs tab and in the workspace-wide list at /flows/runs, newest first, with its trigger, status, duration and credits. Open a run for a step-by-step timeline with each step's input, output, error and tool calls. You can cancel a run, replay it from any step, and decide the approvals addressed to you from the Approvals inbox or from the chat card.

Run history

A flow's Runs tab lists its own runs; All runs in the sidebar lists runs across the workspace, with a flow filter beside the status filter. Each row shows the trigger that started it, who started it (a person, a person through an API key, or an agent from a chat), when it started, how long it took and the credits it spent, or spent versus estimated while it is still going. The list refreshes itself for 30 minutes, then asks you to refresh.

Run statuses
StatusMeaning
QueuedAdmitted and waiting for a worker.
RunningA step is executing.
WaitingParked on a wait, an approval, a Studio job or a child flow; the timeline says until when or for whom.
Waiting for a credentialA step needs a credential that is not available yet, for example one awaiting approval.
SucceededEvery reached step finished; branches not taken show as skipped.
FailedA step failed after its retries, the run timed out, a cap was exceeded, or an approval was rejected or expired with no edge for that outcome.
CanceledSomeone pressed Cancel run.

Step detail

Open a run and the timeline lists every step in order: its status, how many attempts it took, its duration, credits, tool-call count, output size and a trace id for support. Steps on a branch that was not taken read Skipped; a step waiting on time reads Waiting until; a step waiting on a person reads Waiting for approval.

Select a step to open its detail sheet:

  • Input — what the step received after templates were resolved.
  • Output — what it produced and what later steps read as steps.<id>.output. A replayed run marks outputs it reused from the parent run. An output above 1 MB is not stored; the step fails and says so.
  • Error — the failure code and message when the step failed.
  • Tool calls — each call an agent turn made, with its arguments and result.
  • Approval — the request, its approvers, deadline, and the decision with its note.

Every block has Copy JSON. Pin as test data keeps a step's output as the upstream input for tests in the builder, so you can iterate on the next step against a real result.

Open in chat seeds a conversation with the run summary and a preview of each step's output, so you can ask an agent what happened or carry on from the result. A run that an agent started from chat already has that thread; the button reads Continue chat.

Cancel and replay

  1. Step 1

    Cancel a run

    Press Cancel run on a queued, waiting or running run and confirm. A queued or parked run is canceled at once; a running step stops at its next checkpoint. A finished run cannot be canceled.
  2. Step 2

    Replay from a step

    Open any step, including the one that failed, and choose Replay from this step. Akili starts a new run on the same version with the same trigger input, copies the outputs of the steps before it that had succeeded, and executes from there. The new row says which run it was replayed from.
  3. Step 3

    Run again from the builder

    Run starts the published version with a fresh input, and Fire once now on a trigger simulates that trigger firing. Both are real runs and count toward the daily limit.

Approvals

An approval step parks the run until a person decides. The step names its approvers (up to 20 members, or everyone holding a role, up to 50 people in all), an optional fallback person, a deadline from five minutes to 30 days, and the message approvers read. Approvers get an in-app notification when the request opens.

The approvals inbox

Approvals in the sidebar lists the requests addressed to you under Pending and the ones already decided under Decided. Each card shows the flow and step, when it was requested, the deadline or that it is overdue, the approvers or who it escalated to, and the message. Three buttons: Approve, Request changes and Reject; the last two ask for a note the flow owner reads. The run resumes the moment a decision is recorded and takes the edge for that outcome.

Approval cards in chat

When an agent started the run from a chat, or you opened the run in chat, a card in that conversation says a flow is waiting for approval, with the same three buttons and links to the run and the flow. The card is visible to the people who may decide; a reader who is not an approver sees a line saying only the named approvers can decide. Once decided, the card shows who decided, when, and the note.

Who may decide: the named approvers, holders of the named role, the fallback person, and anyone with the flows admin or approve permission. At the deadline the request escalates once to the fallback with a fresh deadline; after that it expires. A rejected, changes-requested or expired outcome needs an edge on the canvas, otherwise the run fails with that outcome as the reason.

Failures and auto-pause

A step fails when its executor errors after the retries you set (0 to 5 extra attempts, fixed or exponential backoff, two seconds between attempts by default), when it exceeds its timeout, when its credit cap is reached, when an agent turn's output does not match the output schema, or when its result is too large. Wire the step's failure handle, or the flow's error edge, to handle it; otherwise the run fails and, by default, the owner is notified.

  • Consecutive failures. Three unattended runs failing in a row (schedule, webhook, event or agent-triggered; manual runs do not count) pause the flow. The owner gets a notification in the app, by email and by push; the Flows home shows Paused after repeated failures. Adjust the threshold from 0 (off) to 20 in the flow's Settings. A successful run resets the counter, and so does activating the flow again.
  • Out of credits. An unattended run that fails for lack of credits pauses the flow with Paused: credits are low until you top up and activate it.
  • Expired credentials. When an agent credential the flow depends on expires, the flow pauses and says so; reconnect the credential and activate.
  • Run caps. A run that exceeds its credit cap or its timeout fails with that reason; waiting time and approvals do not count toward the timeout.

API and webhooks

Platform API keys, created under Settings, carry scopes. A key with no scopes keeps its owner's full access; a scoped key gets only what it names, and any write or run scope implies read. Keys are also subject to your organization's policy on API keys.

API key scopes for flows
ScopeWhat it allows
flows:readList flows and runs, read a run and its steps, versions, pinned test data, triggers, templates, the catalog and approvals (including deciding one).
flows:runStart a run, cancel, replay, and fire a trigger once. 60 requests a minute per user.
flows:writeCreate, edit, delete, publish and restore flows; manage triggers and their secrets; test steps; pin test data.

Start a manual run with POST /flows/:id/runs and a JSON body of { "input": { ... } } matching the flow's input schema; the answer carries the run id to poll with GET /flows/runs/:runId. A run started this way is listed as started by the key's owner via API key.

Outgoing webhooks

Organization webhooks, configured under Organization settings, can subscribe to flow events. Deliveries are signed with X-Akili-Signature: t=<unix>,v1=<HMAC-SHA256>, the same scheme an incoming webhook trigger expects from you.

Flow events delivered to organization webhooks
EventWhen
flow.run.completedA run succeeded.
flow.run.failedA run failed. Canceled runs send nothing.
flow.notifyA notify.send step with the webhook channel named this hook.

Good to know

  • Deep links. A notification opens the approval with /flows/approvals?id=…; if it is not in your inbox, it was decided already or belongs to someone else.
  • Live updates. The run page follows a run as it executes. After 30 minutes it stops polling and shows a Refresh button.
  • Parked runs. Runs waiting on time or approvals are capped at ten times your plan's concurrent-run limit; a step that would park one more fails fast instead of waiting.
  • Mobile. The Akili app shows runs and run detail and lets you decide approvals from your phone.

Frequently asked questions

Can I retry a failed step in place?

Not in place. Open the failed step and choose Replay from this step: Akili starts a new run on the same version and input, reuses the outputs of the steps that had already succeeded, and executes from the step you chose. The new run links back to the one it was replayed from.

Why do I not see the approval in chat?

The chat card appears only in the chat that started the run (an agent trigger) or a run you opened in chat, and only the named approvers, the fallback person and flows admins see it while it is pending. Everyone else finds the request, once decided, in the run's timeline.

What happens when nobody decides in time?

At the deadline (30 days when the step sets none) the request escalates once to the fallback person with a fresh deadline. If there is no fallback, or the fallback does not decide either, the approval expires and the run takes the expired edge; with no such edge the run fails.

How long is run history kept?

Finished runs are deleted after your plan's retention window, from 30 days on Pro to a year on Enterprise, and step tests after seven days. A run replayed from a run that retention removed still works; its row just says the source run expired.

Can a teammate see my runs?

Yes. Anyone in the organization who can read flows can open any flow's runs and the workspace-wide list. Starting, canceling and replaying need the run permission or a Can run share; deciding an approval needs to be named on it.