---
title: "Action Steps"
description: "In the Playground and Logs, see the sources and actions behind each reply: what ran, what it sent and received, and why other actions didn't run."
---

:::note[Plan]
Actions are available on the **Starter** plan and above.
:::

Under each agent reply in the [Playground](/docs/agents/playground), a line shows how the reply was made: the [knowledge](/docs/knowledge) sources it read and the actions behind it. Select it to see every step.

In **Activity** > **Logs**, conversations show the same summary line and action steps, plus the widget the visitor saw. The widget is read-only. Visitors never see action steps.

Steps appear live. While an action runs, the line reads **Running Check order status…**, then it changes to the result before the reply arrives. Visitors see only the action's **While it runs** message, such as "Looking up your order…". See [Custom API](/docs/actions/custom-api#details).

## The summary line

| Summary | Meaning |
| --- | --- |
| **Read 2 sources** | The agent used two knowledge sources for its answer. Expand it to see their links. |
| **Used Check order status** | The action ran. Shown in red with **1 failed** if it failed. |
| **Used Check order status · 3 didn't run** | One action ran, and three others were checked but didn't match. |
| **Send an idea is waiting for details** | The action matched, and the agent is asking the visitor for details it needs first. |
| **No actions ran** | Actions were checked, but none matched this message. |

## Step statuses

| Status | Meaning |
| --- | --- |
| **Running** | The action is running now. It changes to **Succeeded** or **Failed** when it finishes. |
| **Succeeded** | The action ran. **Sent** shows the values it sent, and **Received** shows what it got back, which is what the agent used. |
| **Failed** | The action ran but failed, for example because your API returned an error. **Received** shows the error. The agent tells the visitor it couldn't be completed. |
| **Waiting for details** | The message matched **When to use**, but a required value was missing. The agent asked for it, and the visitor's answer completes the action. |
| **Matched** | The message matched **When to use**, and the action continued in its own way, for example by showing a lead form. |
| **Didn't match** | The message didn't match **When to use**, so the action didn't run. The step says **Almost matched** when the message came close. |
| **Already ran** | The action already ran in this conversation, and its [Run again](/docs/actions/configuring-actions#run-again) setting keeps it from running again. |
| **Couldn't be checked** | **When to use** couldn't be checked for this message, so the action didn't run. Try again. |

[MCP Server](/docs/actions/mcp-server) tools appear when they run, as **Server name: tool name**. They have no **Didn't match** steps, because the agent decides by itself when to use them.

## Fix what you find

| What you see | What to do |
| --- | --- |
| **Almost matched** | The condition is almost right. Make **When to use** describe what the visitor wants. See [Trigger Conditions](/docs/actions/trigger-conditions). |
| **Didn't match** on a message that should have matched | The condition is too narrow, or it combines conditions. Remove details the action needs from **When to use** and make them required input fields instead. Join alternatives with "or". |
| **Waiting for details** that never completes | Check that the input field descriptions say clearly what to ask for. |
| **Failed** | Read **Received** for the error. For Custom API, use the [Test card](/docs/actions/custom-api#test-it) to reproduce it. |
| **Succeeded**, but the answer is wrong | Check **Received**. If it's missing what the agent needed, adjust the action's [response paths](/docs/actions/custom-api#response). |

:::tip
Use the [Playground](/docs/agents/playground) to try messages and read the steps right away. Actions run there as they would on your web widget.
:::
