# Runs and reading a run

> What a program run is, where each one comes from, how to read its trace on the Agents tab or in chat, and why a run stops.

Last updated: October 16, 2026

Source: https://www.willo.ai/docs/agent-programs/runs

A run is one go of a program: it starts, works through its instructions with its own tools, and stops. Each run is its own job with its own record and its own cost, separate from Willo's chat and from the program's other runs.

## Where runs come from

| Start | Badge in the runs list | The trace says |
| --- | --- | --- |
| The program's schedule | none | scheduled |
| **Run now**, on the Agents tab or asked for in chat | Run now | manual |
| A message to the program's email address | Email | Started by an email |
| A call to the program's webhook URL | Webhook | Started by a webhook call |
| An AI agent connected to the business over MCP | MCP | Started by an outside agent |
| A test run, on a draft | — | content shows as **Would have saved** |

A program takes one run at a time. Events that arrive while a run is going wait their turn; see [Agent Program limits](https://www.willo.ai/docs/agent-programs/limits).

## Reading a run on the Agents tab

Open **Agents** in the left rail, then the program. **Recent runs** lists its runs, newest first. Click one to open its trace:

- **What started it.** For an email or a webhook call, **Show mail** or **Show call** opens what arrived.
- **Every step.** Each tool the run used, what it sent and what came back.
- **What it produced.** A document, a CMS item, a message. In a test run, content shows as **Would have saved**.
- **How it ended.** **Run completed**, **Run failed** with the reason, **Run paused — awaiting approval**, or **Run skipped**.

A run that paused for approval shows the waiting step with **Approve & run** and **Deny**. See [Working on its own or asking first](https://www.willo.ai/docs/agent-programs/autonomy-and-approvals#approvals-by-email).

## Reading a run in chat

Ask Willo "how did the weekly digest run go?" or "why did the last run fail?". Willo reads the run itself, every step and its output, and answers from it. You don't need to copy the trace across. This works for the latest run or any earlier one.

From there you can ask Willo to change the program, test it again, or run it now.

## Why a run stops

- **It finished.** The usual case.
- **It is waiting for approval.** It carries on when someone approves the step.
- **It reached its step limit.** A run stops after 30 tool calls, and work it hasn't saved by then isn't kept. If a run keeps hitting the limit, ask Willo to narrow what it researches or save its result earlier.
- **It reached a cost limit.** Each program has a daily credit budget, plus a safety limit on how much it can do in an hour. A run that would go past either stops cleanly.
- **A step failed.** The trace shows which step and the error it returned.

Hitting the step limit or a cost limit also **pauses** an active program, so the next scheduled run doesn't repeat the same loop. Fix the cause, then click **Resume**.

## What a run costs

A run uses credits for the work it does, the same as that work would cost in chat. The program's daily credit budget caps the total. Once it is spent, a scheduled program pauses until you raise **Credits a day** or click **Resume**; email or webhook events wait instead, and run as budget frees up over the next 24 hours. The **Limits** row on the program's page shows what it spent today.

## Skipped runs

A scheduled run is skipped, and the first one listed as **Run skipped**, when an earlier run of the same program is still waiting for approval, or when the program was paused because the business's plan no longer includes Agent Programs. Answering the approval, or switching the program back on after an upgrade, lets the next one run.

Related: [Build your first program in chat](https://www.willo.ai/docs/agent-programs/build-your-first-program), [Agent Programs troubleshooting](https://www.willo.ai/docs/troubleshooting/agent-programs).
