Skip to main content

Understanding Executions in Spur Automation Flows

Learn what executions are, how to view them, troubleshoot failures, and understand how workflow variables work within each execution.

Updated this week

An execution is one instance of a flow running for one contact. Every time a trigger fires (whether it's an order, a keyword, a comment, or any other event), a new execution starts.

This guide explains how executions work, where to find them, and how to troubleshoot issues.


What Is an Execution?

An execution represents one run of a flow for one contact. It starts when the trigger condition is met and continues through all the steps in the flow until it's complete, fails, or stops waiting for user input.

Key Points:

  • One trigger event = One execution
    If a customer places an order, that's one execution. If they place another order, that's a second execution.

  • Multiple executions can happen for the same event
    For example, if you're using a Delivery Update trigger and your delivery provider sends multiple updates (picked up, in transit, out for delivery, delivered), each update will create a separate execution.

  • Executions are independent
    Each execution is isolated. Data saved in one execution (like workflow variables) does not carry over to the next execution.


How Executions Work

When a trigger fires, here's what happens:

  1. Trigger payload arrives – Spur receives data from Shopify, Meta, or another platform/integration (like order details, comment text, or delivery status etc).

  2. Execution starts – A new execution is created with a unique Execution ID.

  3. Flow steps run – The flow processes each step: sending messages, checking conditions, saving variables, etc.

  4. Execution ends – The flow finishes when it reaches the last step, fails, or stops waiting for user input. When there is nothing more left for the flow to do.


Where to View Executions

You can view all executions for a specific flow in the Workflow Table.

Steps:

  1. Go to Automations in Spur.

  2. Click on the flow name you want to view.

  3. The Workflow Table (also called the Execution Table) will appear, showing all executions for that flow.

What You'll See:

  • Profile – Contact's name and profile picture

  • Status – Current state of the execution (In Progress, Flow Complete, Failed, Exited)

  • Last Step – The most recent step the execution reached

  • Messages Sent / Delivered / Opened – Message delivery stats

  • Order – Order number (if applicable)

  • Followers – Follower count (for Instagram/Facebook)

  • Engagement Rate – Engagement metrics

  • Username – Instagram/Facebook username

  • Execution Time – When the execution started

  • Trigger Data – View the raw JSON payload that triggered the flow

  • Options – Copy Execution ID, Retry Execution (for failed executions)


Execution Statuses

Every execution has one of three statuses:

Status

What It Means

In Progress

The flow is currently running and waiting for the next step (e.g., waiting for user input or a delay to complete).

Flow Complete

The execution finished successfully and reached the end of the flow.

Failed

Something went wrong, and the execution stopped. You can retry failed executions.

Exited

When the flow stops when an exit condition is met.


Filtering and Searching Executions

You can filter executions to find specific ones:

By Date Range:

Click the date filter dropdown and select:

  • Today

  • Yesterday

  • Last 7 days

  • Last 30 days

  • Custom date range

By Status:

Click Select a status dropdown and choose:

  • In Progress

  • Completed

  • Failed

  • Exited

By Contact:

Use the Search for name or number bar to find executions for a specific person.


Viewing Execution Details

To see what happened in a specific execution:

  1. Click on the contact's name or profile picture in the Workflow Table.

  2. This opens the chat inbox for that contact.

  3. Scroll through the conversation to see:

    • Which messages were sent

    • What the customer replied

    • Which templates were triggered

    • When each message was sent

Viewing Trigger Data:

Click View Trigger next to an execution to see the raw JSON payload that triggered the flow. This is useful for:

  • Checking variable values

  • Troubleshooting why a condition passed or failed

  • Understanding what data was available during the execution


Copying an Execution ID

Every execution has a unique Execution ID. This is helpful when reporting issues to Spur support.

Steps:

  1. In the Workflow Table, click the three dots (⋮) on the right side of an execution.

  2. Click Copy Execution ID.

  3. The ID is now copied to your clipboard.


Retrying a Failed Execution

If an execution fails, you can retry it.

Steps:

  1. In the Workflow Table, find the failed execution (it will have a Failed status).

  2. Click the three dots (⋮) on the right side.

  3. Click Retry Execution.

  4. The flow will restart from the point it got stuck on earlier.

Note: You can only retry failed executions. You cannot retry executions that are In Progress or Flow Complete.


How Long Are Executions Stored?

Execution data is stored forever (as long as you don't delete the flow).

You can view executions from weeks, months, or even a year ago by adjusting the date filter.


Workflow Variables and Executions

Workflow variables are scoped to a single execution. This means:

  • If you save a workflow variable (like {{properties['Customer's name']}}) during an execution, it only exists for that execution.

  • If the same person goes through the flow again, the workflow variable from the first execution will not be available.

Example:

Execution 1:
Customer replies with their name → Saved as {{properties['Customer's name']}} → Flow continues

Execution 2:
Customer triggers the flow again → {{properties['Customer's name']}} is empty (it doesn't remember the previous execution)


How to Persist Data Across Executions

If you want data to persist across multiple executions, use:

  1. Contact Tags – Tag the contact so you can reference it in future flows

  2. Order Tags – Tag the order so the tag appears in future order-related triggers

  3. Custom Contact Fields – Save data in a custom field in the Database section


Troubleshooting Failed Executions

If an execution fails, here's how to figure out why:

Step 1: Check the Execution Status

Failed executions will show a Failed status in the Workflow Table.

Step 2: View the Chat

Click on the contact's name to open the inbox and see:

  • Which messages were sent successfully

  • Where the flow stopped

Step 3: View the Trigger Data

Click View Trigger to see the JSON payload. Check if:

  • The expected variables have values

  • Any required data is missing

Step 4: Check for Common Issues

Issue

What Happened

How to Fix

Empty variable in message

A variable had no value, so the message failed

See if in the space of a variable you filled a value or not. And if a value is filled, whether it exists or not for that trigger.

Condition logic error

A condition was set up incorrectly

Review the condition and make sure the variable and the logic operator are correct

API rate limit hit

Too many API calls to Shopify or another platform

Retry the execution after a few seconds

Template not approved

Tried to send a WhatsApp template that wasn't approved by Meta

Check your templates in Meta Business Manager

Step 5: Retry the Execution

Once you've identified and fixed the issue, retry the execution:

  1. Click the three dots (⋮) next to the failed execution

  2. Click Retry Execution


Common Questions About Executions

Q: Can multiple executions run at the same time for the same contact?

A: Yes. If a contact triggers the same flow multiple times (e.g., they place two orders), both executions will run independently.

Q: What happens if a customer goes through the same flow twice?

A: A new execution starts each time. Workflow variables from the first execution do not carry over to the second.

If you want different behavior based on past activity, use:

  • Contact tags

  • Custom contact fields

  • Conditional logic based on order history

Q: Can I stop an execution that's in progress?

A: No. Once an execution starts, you cannot manually stop it. However, executions will automatically stop if:

  • The flow reaches the end

  • A "Wait for user input" step times out (after 24 hours)

  • The execution fails

Q: Why did my execution stop at "Wait for user input"?

A: If you use a "Text With User Input" block, the execution will pause and wait for the customer to respond.

If the customer doesn't respond within 24 hours, the execution will stop automatically. They'll need to trigger the flow again from the beginning if they want to continue.

Q: Can I export execution data?

A: Not directly, but you can:

  • View and copy the Execution ID

  • View the Trigger Data (JSON payload)

  • Screenshot or manually log execution details for your records

Q: Are there any limits on how many executions can run?

A: No limits from Spur. However, external platforms (like Shopify) have API rate limits. For example, Shopify allows 2 API calls per second. If you exceed this, you may see errors.

Q: Why do I see multiple executions for one order?

A: If you're using a Delivery Update trigger and your delivery provider sends multiple updates (picked up, in transit, out for delivery, delivered), each update creates a separate execution.

This is expected behavior. You can control which messages get sent for each status using conditional logic in your flow.


Best Practices for Managing Executions

Regularly check failed executions and retry them after fixing the issue

Use the Trigger Data view to debug issues with variables or conditions

Don't rely on workflow variables persisting across executions. Use tags or custom fields instead.

Filter by date range to review recent execution performance

Copy Execution IDs when reporting issues to Spur support


Summary

Concept

Explanation

Execution

One instance of a flow running for one contact

Execution ID

Unique identifier for each execution

Workflow Table

Where you view all executions for a flow

Statuses

In Progress, Flow Complete, Failed

Workflow Variables

Only exist for one execution, don't persist

Retry Execution

Restart a failed execution from the point it failed at

Trigger Data

Raw JSON payload that triggered the flow


Need help? Reach out to our support team anytime :)

Did this answer your question?