Testing, monitoring and troubleshooting workflow runs
Each time a workflow starts, it records a run: what started it, what each step did, how long it took and whether it worked. Runs are how you test a new workflow, spot failures and find out what went wrong.
Before you start
- You have at least one saved workflow. See Creating your first workflow, step by step.
Test a workflow with Run now
Run now starts the workflow straight away, without waiting for its trigger.
- Open the workflow.
- Click the Runs tab.
- Click Run now.
- Check the Trigger data (JSON).
- Click Run now.

Run now works only when the workflow is Enabled. For event triggers, the Trigger data (JSON) holds sample values. Change them to test your own case. For example, set "rating": -1 to test what happens after a bad rating.
Important: Run now starts a real run. Every step runs, and every change is real: the workflow really sends emails, posts to Slack and creates tickets and tasks. Test with your own email address or a test contact where you can.
Important: Run now starts a real run. Every step runs, and every change is real: the workflow really sends emails, posts to Slack and creates tickets and tasks. Test with your own email address or a test contact where you can.
If the test fails with workflow_trigger_record_unavailable
Some workflows need a real record, for example a real conversation, and the test data has only sample values. The run stops before any step runs, so nothing changed. This happens with some triggers, for example Omnichannel Inbox events.
To test these workflows, make the event happen for real, then check the Runs tab.
To test these workflows, make the event happen for real, then check the Runs tab.
Read a run
The Runs tab lists every run, newest first. Click a run to open it.

Each run shows:
- Status: where the run is now, or how it ended. See the table below.
- Trigger: what started it: Manual (Run now), Schedule, Webhook, Event or Agent. Agent means that your AI agent started it. See Letting your AI agent run workflows.
- Source: where it came from, for example a webhook or Agent test.
- Started, Finished and how long it took.
- Tokens: how much AI the run used. Runs without AI show 0 tokens.
- Output: the result of the run.
- Step trace: each step that ran, in order, with its result and time. A Condition step shows which branch the run took.
- Error: for a failed run, what went wrong and how to fix it.
Run statuses
| Status | Meaning |
|---|---|
| Pending | The run is about to start. |
| Running | The run is in progress. |
| Waiting | The run is paused at a Wait step. It shows what it waits for, and until when. |
| Succeeded | All the steps it needed are done. |
| Failed | A step failed, and the run stopped at that step. |
| Timed out | The run took too long, or a Wait for an event step ended as timed out. |
| Cancelled | Someone canceled the run before it finished. |
| Skipped | The run did not start. For example, the workflow reached its limit of 60 event runs each minute. |
Find failed runs
- On the Workflows page, a red label such as 3 failed (7d) shows how many runs failed in the last 7 days. Click it to see those runs.
- In the Runs tab, change All runs to Failed runs.

Get an email when a run fails
- Open the workflow's Settings tab.
- Under Failure alerts, keep Email property admins when a run fails selected.

Send run results somewhere else
Under Output in Settings, you can send the result of each successful run to another place:
- Post run output to Slack posts the output to a Slack channel.
- Send run output to a webhook sends the output as a signed JSON POST to your URL. Add a Signing secret of 16 to 256 characters, so that your system can check that the request came from tawk.to.
Cancel a run
You can stop a run that has not finished, for example one that is paused at a long Wait step.
- Open the run.
- Click Cancel run.
- Confirm.
Fix a failed run
Open the failed run. The Error says which step failed, why and what to do.

These are the most common errors:
| The error says | What to do |
|---|---|
| workflow_trigger_record_unavailable (after Run now) | The test needs a real record. See If the test fails with workflow_trigger_record_unavailable above. |
| …called a URL that answered with HTTP 404 (or another code) | Check the step's URL, method, headers and body, and check that the service accepts them. To handle the failure in a later step, turn on Continue even if the request fails. |
| …uses {{…}}, which this run's trigger didn't include | The step uses a value that this trigger does not give. Use a value that the trigger gives, or remove it. See Using runtime data in workflows. |
| …uses {{…}}, which had no value when the step ran | The step uses a result from an earlier step, and that step did not run first or did not give that value. |
| …the agent didn't provide "…" for this run | Make the input Required in the AI agent trigger, or use it only in steps that can work without it. |
| AI Assist is turned off, is not set up or the add-on is not active | Turn on or set up AI Assist, then run the workflow again. |
| This property has no AI credits left | Add AI credits or allow overage, then run the workflow again. |
| …used every model call its "Step limit" allows | Raise the Step limit of the AI step, or ask for less in its instruction. |
| …gave the AI model more than it can read at once | Shorten the instruction or the data, or select a model that can read more. |
| …was turned down by the service it works with. Details: workflow_action_rejected email | The email address was not accepted. Use a real address: test addresses at example.com are rejected. |
| …waited for an event that didn't arrive in time | Raise Timeout after, or select a step under If nothing arrives before the timeout so that the run continues. |
| …couldn't send a free-text WhatsApp message because the 24-hour reply window has closed | Send an approved WhatsApp template instead. |
| …replies to an email, but no incoming email started this run | Start the workflow with Inbound message received, or use Send email. |
| …sends the secret header "…", which has no saved value | Type the header value in the step again, then save. |
| …couldn't confirm the ticket, card or activity was created | Check whether the record exists before you run the workflow again, so that you do not create a duplicate. |
| …took longer than the workflow's time limit | Run the workflow again. If the error comes back, give the step less work. |
After you fix the workflow, click Save, then use Run now to check it.
When a teammate edits the same workflow
If a teammate saves the workflow while you are editing it, you see This workflow was changed elsewhere. You have two choices:
- Click Reload to get their version. Your unsaved changes are lost.
- Click Keep editing, copy your changes somewhere, then reload.
Turn off, copy or delete a workflow
- Turn off: in Settings, turn off Enabled, then click Save. The switch on a trigger card in the Builder turns off only that trigger. The workflow stays on, and its other triggers still start it.
- Copy: click Duplicate, type a name and confirm. The copy starts as Disabled. Slack destinations, signing secrets, secret headers and the inbound webhook URL are not copied, and Slack run-output delivery starts off. Add them again before you turn the copy on.
- Delete: in Settings, click Delete workflow and confirm. This permanently deletes the workflow, and you cannot undo it. An AI agent or Scenario that used the workflow can no longer start it.
Related guides
Have a question we haven't covered or need support?
- Chat with us (live chat is available 24/7)
- Visit our Feedback page
- Schedule a call with us
