Running flows
How to execute your test flows and understand the results.
Quick Actions
- Run single flow: Click the play button on any flow card
- Run all active: Click "Run All Active Flows" button
- From Dashboard: Use the quick actions panel
Overview
Once you've created a flow, you can run it to execute all its steps automatically. Flowguard simulates user actions and reports whether the flow passed or failed.
Ways to run flows
1. Run a single flow
From the Flows page:
- Find the flow you want to run
- Click the Play button on the flow card
- The flow begins executing immediately
- Status updates in real-time
From the Dashboard:
- Locate the flow in the recent flows section
- Click the Play button on the flow card
- Monitor execution
From the Flow Editor: Currently, flows must be run from the Flows page or Dashboard. A "Run" button in the editor may be added in the future.
2. Run all active flows
From the Dashboard:
- Click Run All Active Flows
- All flows marked as "Active" will execute
- Monitor progress on the Dashboard
From the Flows page:
- Click Run All Active in the toolbar
- All active flows execute in sequence
- Results update as each flow completes
TIP
Only flows with "Active" status are included when you run all flows. Inactive flows are skipped.
Execution process
When you run a flow, here's what happens:
- Status → Running
- Start time recorded
- Browser launched
- Steps run in order
- Actions performed
- Progress tracked
- Status → Passed/Failed
- Duration calculated
- Results saved
1. Initialization
- Flow status changes to "Running"
- Start timestamp is recorded
- Previous results are cleared
2. Step execution
Steps run in order from top to bottom:
- Each step performs its action
- If a step fails, execution may stop (depending on settings)
- Progress is tracked in real-time
3. Completion
- Final status is determined (Passed or Failed)
- Execution duration is calculated
- Results are saved
- Screenshots are captured (if enabled)
Understanding results
Passed flows
A flow passes when:
- All steps execute successfully
- All assertions are true
- No errors occur
- Execution completes within timeout
Passed flows display:
- Green "Passed" badge
- Checkmark icon
- Duration in milliseconds
- Timestamp of completion
Failed flows
A flow fails when:
- A step encounters an error
- An assertion fails
- An element can't be found
- Timeout is exceeded
- Network issues occur
Failed flows display:
- Red "Failed" badge
- X icon
- Error message
- Which step failed
- Timestamp of failure
Running flows
A flow shows as running when:
- Execution is in progress
- Steps are being processed
- Not yet complete
Running flows display:
- Orange "Running" badge
- Loading spinner
- Current progress
Viewing detailed results
To see detailed information about a flow's execution:
Last run information
Click on any flow to view:
- Status - Passed, Failed, or Running
- Timestamp - When it ran
- Duration - How long it took
- Step Results - Individual step outcomes
- Error Details - If it failed
Step-by-step results
Each step shows:
- Step number and type
- Success or failure status
- Duration
- Error message (if failed)
- Screenshot (if enabled)
Error messages
Common Error Reference - Expand for solutions
| Error | Cause | Solution |
|---|---|---|
| Element not found | Selector doesn't match | Update selector, add Wait step |
| Timeout exceeded | Step took too long | Increase timeout, check page load |
| Navigation failed | URL unreachable | Check URL, verify site is up |
| Assertion failed | Content doesn't match | Update expected value, check timing |
Execution settings
Control how flows execute by configuring these settings:
Timeout
Maximum time (in milliseconds) to wait for each step.
Default: 30000ms (30 seconds)
When to adjust:
- Increase for slow-loading pages
- Decrease for fast actions (quicker failure detection)
Example:
Timeout: 60000 (1 minute for slow pages)
Timeout: 10000 (10 seconds for quick tests)Retries
Number of times to retry a failed step before marking the flow as failed.
Default: 0 (no retries)
When to adjust:
- Increase for flaky tests (intermittent failures)
- Keep at 0 for reliable tests
Example:
Retries: 3 (Try up to 3 times before failing)WARNING
High retry counts can hide real issues. Use retries cautiously and investigate why steps fail intermittently.
Screenshots
Capture screenshots during execution for debugging.
Default: Enabled
When to adjust:
- Enable for debugging failed flows
- Disable to speed up execution
Example:
Screenshot: Enabled (Capture images for review)
Screenshot: Disabled (Faster execution)Monitoring active flows
Real-time updates
When flows run, you'll see:
- Status badge changes (Running -> Passed/Failed)
- Duration counter updates
- Progress indicators
Multiple flows running
When running multiple flows:
- Each flow executes independently
- Results update as they complete
- No guaranteed order (may run in parallel in future versions)
Canceling execution
You can cancel a running flow at any time. The flow will be marked as "cancelled" and execution stops immediately. Any steps that already completed are still recorded in the results.
Best practices
Before running
Pre-Run Checklist
- [ ] All steps configured correctly
- [ ] Selectors are accurate
- [ ] Descriptions added for clarity
- [ ] Step order makes sense
- [ ] Tested manually in preview
Set appropriate status:
- Mark as Active for regular testing
- Mark as Inactive if still developing
After running
Post-Run Actions
| If Passed | If Failed |
|---|---|
| Note execution time | Check which step failed |
| Schedule for regular runs | Update selectors if needed |
| Adjust timeouts | |
| Fix and re-run immediately |
Regular testing
When to Run Your Flows
| Trigger | Priority |
|---|---|
| WordPress core updates | Critical |
| Plugin updates | Critical |
| Theme changes | High |
| Content modifications | Medium |
| Code deployments | Critical |
| Scheduled (automated) | Ongoing |
What to test:
- User journeys that matter most
- Features you recently changed
- Common workflows
Troubleshooting
Flow won't start
Possible causes:
- Flow is set to Inactive
- No steps in the flow
- Browser/server issue
Solutions:
- Verify flow is Active
- Check that steps exist
- Refresh the page
- Check browser console
Flow always fails
Possible causes:
- Selectors are outdated
- Page structure changed
- Timeouts too short
- Element loads slowly
Solutions:
- Open flow in editor
- Test each step manually
- Update selectors using picker
- Add Wait steps
- Increase timeouts
Flow passes unexpectedly
Possible causes:
- Assertions are too broad
- Wrong elements being checked
- Site behavior changed
Solutions:
- Review assertion conditions
- Make assertions more specific
- Add more verification steps
- Test manually to confirm
Slow execution
Possible causes:
- Many Wait steps
- Long timeouts
- Slow page loading
- Many screenshots
Solutions:
- Reduce Wait durations
- Optimize timeouts
- Disable screenshots
- Remove unnecessary steps
- Improve site performance
Intermittent failures
Possible causes:
- Timing issues
- Dynamic content
- Race conditions
- Network instability
Solutions:
- Add Wait steps before actions
- Increase timeouts
- Add retries (cautiously)
- Make selectors more specific
- Check for AJAX completion
Reading execution logs
Step results
Each executed step records:
- Step number - Position in flow
- Step type - Action performed
- Status - Success or failure
- Duration - Time taken
- Details - Additional information
Error logs
Failed steps include:
- Error type - What went wrong
- Error message - Detailed description
- Stack trace - Technical details (for developers)
- Screenshot - Visual of the failure
Performance data
Execution data includes:
- Total duration - Full flow execution time
- Step durations - Individual step times
- Slowest steps - Performance bottlenecks
Use this data to optimize your flows.
Tips for reliable flows
Make flows resilient
Use stable selectors:
- Prefer IDs and data attributes
- Avoid generated class names
- Don't rely on DOM structure alone
Add appropriate waits:
- Wait after navigation
- Wait for AJAX requests
- Wait for animations
Verify conditions:
- Assert elements are visible before clicking
- Check that the page loaded correctly
- Verify expected content
Handle edge cases
Consider different states:
- Already logged in vs. logged out
- Empty cart vs. items in cart
- Different screen sizes
Account for variability:
- Dynamic content
- Changing timestamps
- Random ordering
Keep flows maintained
Regular updates:
- Review flows monthly
- Update after site changes
- Archive obsolete flows
Document changes:
- Note why selectors changed
- Record when steps were modified
- Explain flow purpose
Advanced topics
Execution order
Currently, flows execute one at a time. The order depends on:
- How they were triggered (single vs. all)
- System scheduling
- Available resources
Data passing
INFO
Data passing between steps (using variables) is a planned feature for future versions.
Conditional steps
INFO
Conditional execution (if/else logic) is a planned feature for future versions.
Next steps
- Step Types - All available actions
- Settings - Configure default behaviors
- Developer Reference - API for custom integrations
Need help?
If flows aren't working as expected:
- Check this guide for troubleshooting tips
- Review the Step Types documentation
- Inspect your site with browser DevTools
- Verify WordPress and Flowguard are up to date
- Contact support for assistance