Editing Recordings
Recordings are a first draft — great for capturing the happy path quickly, but they usually need cleanup before they are ready for production. This guide shows you how to review, refine, and harden a recorded workflow.
Opening a Recording in the Designer
- Stop the recording session — click Stop Recording or press
Escape - The Recording Review dialog shows all captured actions as a list
- Click Open in Designer to load the workflow onto the canvas
- Alternatively, open the saved
.gbwfile from Projects → Recent
Common Cleanup Tasks
| Issue | How to fix |
|---|---|
| Extra clicks or accidental actions | Select the activity on the canvas and press Delete |
| Hardcoded text in TypeInto | Replace the literal string with a variable: {"{{"} inputText {"}}"} |
| Brittle selector (uses positional idx) | Click the activity → Properties → open Selector Editor → rebuild with automationid or name |
| Missing delays / race conditions | Insert WaitForElement before flaky steps instead of fixed Delay |
| No error handling | Wrap critical steps in Try/Catch — select activities → right-click → Wrap in Try/Catch |
| Duplicate steps (e.g., two clicks on same button) | Delete the redundant one — keep the one with the better selector |
| Wrong activity type (e.g., Click recorded instead of TypeInto) | Delete the wrong activity, drag the correct one from Activity Catalog, reconfigure properties |
Refining Selectors
Recorded selectors are generated automatically and may use fragile attributes. To improve one:
- Click the activity on the canvas
- In the Properties Panel, click the 📎 Selector field
- Click Open Selector Editor
- Use Re-indicate Element to re-pick the target from the live application
- Review the attribute table — uncheck fragile attributes (e.g.,
idx, dynamic class names) - Click Validate — a green tick confirms the element is found
- Click Save
Parameterising a Recording
Turn a recorded one-off automation into a reusable workflow by replacing hardcoded values with variables:
- Open the Variables Panel (
Ctrl + Shift + V) - Add a new variable for each value that should change between runs (e.g.,
customerEmail,invoiceId) - In each activity's property field, replace the literal value with
{{variableName}} - When the workflow is deployed to Orchestrator, these variables can be passed as job input
Adding Loops and Conditions
Most recordings capture a single iteration. To process multiple items:
- Select all activities that should repeat
- Right-click → Wrap in ForEach (or drag a ForEachRow / While around them)
- Configure the loop variable (e.g.,
currentRow) - Update inner activities to reference the loop variable instead of hardcoded values
Use the AI CopilotSelect a group of recorded activities and ask the Copilot:"Wrap these steps in error handling and add a retry for the click" — it will suggest the refactored structure without losing your selector configurations.
Validating Before Deployment
- Run the workflow with F5 on the target machine to confirm all selectors resolve
- Check the Output Panel for warnings about unresolved variables or failed waits
- Use F6 (Debug) with breakpoints to step through and inspect variable values at each stage
- Once clean, upload to Orchestrator → Workflow Registry for team-wide access