Testing Flows
Learn how to test, debug, and troubleshoot flows in ThinkFleet.
Testing Flows
Testing is a critical part of building reliable automations. ThinkFleet provides built-in tools for testing your flows step by step before publishing them.
Test Mode
Every flow has a Test Flow button in the toolbar. When you click it, ThinkFleet executes the flow with real or sample data and shows you the results for each step.
Testing a Trigger
- Click Test Flow
- Depending on the trigger type:
- Webhook: ThinkFleet waits for an incoming request. Send a test request to the webhook URL.
- App trigger: ThinkFleet polls the connected service for a recent event.
- Schedule: ThinkFleet runs immediately with sample timestamp data.
- The trigger step shows the received data in the right panel
Loading Sample Data
For app triggers, click Load Data to fetch recent events from the connected service. This gives you real data to work with when configuring subsequent steps.
If no recent events exist, you can manually provide sample data in JSON format:
{
"email": "jane@example.com",
"subject": "Invoice #1234",
"body": "Please find attached the invoice for March.",
"attachments": [
{ "name": "invoice-1234.pdf", "size": 45000 }
]
}
Step-by-Step Testing
After the trigger has data, you can test individual steps:
- Click on a step
- Click Test Step in the step panel
- The step executes with data from previous steps
- View the output in the panel
This lets you verify each step independently without running the entire flow.
Viewing Step Output
Each tested step shows:
| Tab | Content |
|---|---|
| Output | The data returned by the step |
| Input | The resolved input values (with data references expanded) |
| Duration | How long the step took to execute |
| Error | Error details if the step failed |
Debugging Common Issues
"No data available"
Cause: A previous step hasn't been tested yet, so its output is unavailable.
Fix: Test steps in order, starting from the trigger. Each step needs output data before downstream steps can reference it.
"Connection failed"
Cause: The connection credentials are invalid or expired.
Fix: Go to Connections and reconnect the affected account. Then re-test the step.
"Undefined property" Errors
Cause: The data reference points to a field that doesn't exist in the actual data.
Fix: Check the trigger's output data. Field names are case-sensitive. Use the data selector to pick the correct field path rather than typing it manually.
"Timeout" Errors
Cause: The step took too long to execute (exceeded the timeout limit).
Fix:
- For HTTP requests: check if the external API is slow or unreachable
- For code actions: optimize your code or increase the timeout in step settings
- For large data: consider pagination or filtering at the source
Branch Takes Wrong Path
Cause: The condition evaluates differently than expected.
Fix: Check the step input panel to see the resolved values. Common issues:
- Comparing a string
"100"to a number100 - Extra whitespace in string values
- Null vs empty string
Run History
Published flows record every execution in the Runs tab.
Run Details
Each run shows:
- Status: Success, Failed, or Running
- Trigger Data: The event that started the run
- Step Results: Input and output for every executed step
- Duration: Total execution time
- Timestamp: When the run started and finished
Filtering Runs
Filter the runs list by:
| Filter | Options |
|---|---|
| Status | Success, Failed, Running |
| Date Range | Last hour, last day, custom range |
| Trigger Data | Search within trigger payloads |
Replaying Runs
If a run failed due to a transient issue (e.g., a service was temporarily down), you can replay it:
- Open the failed run
- Click Replay
- The flow re-executes with the same trigger data
This is useful for recovering from temporary outages without losing data.
Testing Best Practices
- Test with real data — Use actual events from your connected services rather than fabricated test data whenever possible
- Test edge cases — Try empty arrays, null values, special characters, and large payloads
- Test each branch — Ensure both True and False paths of every branch are tested
- Check loop behavior — Test with 0 items, 1 item, and many items
- Verify error handling — Deliberately cause errors to ensure your error handling configuration works
- Test before publishing — Always run a complete end-to-end test before publishing a flow
Monitoring Published Flows
After publishing, monitor your flows with:
- Run history — Check for failures regularly
- Failure notifications — Configure email or Slack alerts on flow failures
- Execution metrics — Track run duration trends to detect performance degradation