Test an agent before it goes live
Check an agent against your real systems before it runs on its own. This guide covers the Spike Test step, Validate, full and dry runs from Run now, how to test each kind of trigger, and what testing costs.
Checked against the app on
On this page13 sections
- 1Testing at a glance
- 2What a Spike Test is for
- 3Add a Spike Test
- 4Set up a Spike Test
- 5Run a Spike Test
- 6Read what a Spike Test found
- 7Check the agent with Validate
- 8Run now: a full run or a dry run
- 9What each trigger starts with
- 10Read the result in Runs
- 11A safe way to test
- 12What testing costs
- 13Testing from a phone
Testing at a glance
Agent Builder gives you four ways to try an agent before you publish it. A Spike Test step reads a little real data from a connected system so you can see the exact names and IDs it uses. Validate checks that the agent is wired up correctly. Run now runs the whole agent, either for real or as a dry run that only pretends to send and write. Finally, each trigger has its own way to test: Simulate webhook for system alerts, the latest email for Email received, and a browser preview for phone calls. Every result lands in the Runs window.
Build modular AI workflows with reusable nodes
New Fixflo issue
Reported
Fetch the issue
Get issue
Work out the job
GPT-5.6 Terra
Create the job
Create job
Tell the tenant
1 action enabled
Find the job type ID
Spike · bigchange_rest list_job_types
- 1Spike Test, the last step in the General group of the Nodes panel.
- 2A Spike Test on the canvas, placed to one side and left unconnected.
- 3Its settings in the Details panel: which system to read, what to call and what to look for.
- 4Run spike test, which appears in the toolbar as soon as the canvas has a Spike Test.
- 5The validation pill. A Spike Test always adds one warning, which does not stop you publishing.
Most figures show one agent, New Fixflo issue to BigChange job. When a tenant reports an issue in Fixflo, it fetches the issue, works out what job is needed, creates the job in BigChange and emails the tenant. Creating a job needs the BigChange ID of the job type, such as Boiler service, and finding that ID is exactly what a Spike Test is for. Centrus works alongside BigChange here: the job lives in BigChange, and the agent only creates it.
What a Spike Test is for
Agents often depend on values that are different in every account: your job type names and IDs, your status names, your custom fields, or the ID of a customer such as Northgate Housing. A Spike Test makes a small, capped read from a system you have connected and shows you what came back, so you can copy the real values into your other steps instead of guessing them.
Reads your real data
Runs only when you ask
Never changes anything
- It only reads. It can call list and get actions, never actions that create, update or send, and never actions that download files.
- It runs on its own. A Spike Test never runs as part of the agent. When the agent runs, by schedule, by event, from chat or with Run now, the Spike Test is skipped. Only Run spike test runs it.
- It is capped. A normal read returns one page of up to 50 rows. When you give it a name to look for, it pages through up to 10 pages of 200 rows until it finds a match.
A Spike Test cannot test one of your other steps in isolation. It starts with no data from earlier steps, so it is a way to look at your systems, not a way to rehearse part of the agent. To try the agent's own steps, use a dry run, described below.
Add a Spike Test
- 1In the Nodes panel, open the General group. Spike Test is the last item in it.
- 2Drag it onto the canvas, or click it to add it.
- 3Put it to one side of your agent and leave it unconnected. It does not need a trigger, so a canvas that holds nothing but Spike Tests is fine too.
New Fixflo issue
Reported
Fetch the issue
Get issue
Work out the job
GPT-5.6 Terra
Create the job
Create job
Tell the tenant
1 action enabled
Spike Test
A capped live read against a connected integration, to see its real field names.
If you do connect a Spike Test into the flow, the agent still works: when it runs, the Spike Test is skipped and whatever reached it is passed straight on to the next step, with the note "Spike Test skipped. Use Run spike test." Validation warns you about it, though, because it makes the agent harder to read.
Fetch the issue
Get issue
Find the job type ID
Spike · bigchange_rest list_job_types
Create the job
Create job
Validation
Move this Spike Test node off the main path. Production runs skip it, but it should not sit on the email/ingest flow.
Click to focus this node on the canvas
This canvas has 1 spike test node. They are not run on schedule, chat, or Run now. Use Run spike test.
- 1A Spike Test connected between two steps of the agent.
- 2The warning that asks you to move it off the main path. Disconnect it to clear this.
- 3The warning every canvas with a Spike Test gets. It is there as a reminder and goes away only when you delete the Spike Test.
Set up a Spike Test
Select the Spike Test to see its settings in the Details panel. You only need a provider and something to call. Everything else is optional.
- 1Connection. The Spike Test uses the agent's own connection to that system, so if another step already connected it, it shows Connected and stays folded away.
- 2Provider: the connected system to read from.
- 3What to call: a list source or a read action from that system.
- 4The action's own filters, folded under its name. Open the section to fill any of them in. All of them are optional.
- 5Inspect fields: the fields to summarise. Leave it blank to summarise every field.
- 6Look for: a name, or part of one, to find while paging through results.
- 7Page number: which page of 50 to read when you are browsing a list.
- 8A list source shows its own filters instead, such as the date window and status for BigChange jobs.
- Provider (placeholder Choose an integration): pick any connected system, such as BigChange REST, Simpro or Joblogic.
- What to call (placeholder Choose a list source or read action): the list is grouped into Look up by name, for actions built to find one record by its name, List sources, which read a whole list such as BigChange jobs or contacts, and Read actions, which fetch other records. Write actions and file downloads are not offered.
- Filters: a list source shows its usual filters, such as Date field, Date window, Status and Site id (optional) for BigChange jobs. A read action shows its own parameters under its name, with the note "All filters are optional on a spike. Leave blank to call the endpoint with defaults."
- Inspect fields (placeholder Status.Name, IsClosed, Stage): "Dotted paths to summarise. Leave blank to list distinct values for every field on the sample rows." Use a dot to reach a field inside another, such as
Status.Name, and separate fields with commas. - Look for (placeholder Optional name or fragment to find while paging): "When set, the probe walks further pages until a match (up to 10 pages)." The match ignores word order and capital letters.
- Page number (placeholder 1): "Browse start page. A full page of 50 means more exist". Raise it to read the next 50 rows.
If the system is not connected yet, the Connection section opens with "Connect BigChange REST on this node, then use Run spike test." and a Connect button. On an agent that has never been saved, it reads "Save this workflow as a draft first, then connect the account." instead, because accounts connect to a saved agent.
Run a Spike Test
- 1Click Run spike test in the toolbar. The same button is in the header of the Runs window, and the Run workflow window offers it too.
- 2Read the confirmation and click Run spike test.
- 3The Runs window opens. The Spike Test usually finishes in a few seconds.
Run spike test
This saves the current canvas as a draft, then calls your connected integration (capped live read) and uses automation credits. It will not send email or run the rest of the agent.
- 1Run spike test in the toolbar.
- 2The confirmation, which reminds you that it saves the canvas and uses credits.
- 3The notice that the Spike Test has started.
Every Spike Test on the canvas runs, one after another, from top to bottom and then left to right. Each one runs on its own, and nothing else on the canvas runs with it. You need Edit access to the agent to run one; without it you see "You need edit access to run a spike test."
Clicking Run spike test saves everything on the canvas as the draft before it starts, including changes you had not saved yet. On an agent that is already published, the live agent carries on with its published version until you click Update & Publish, but your edits are no longer unsaved changes you can throw away with Discard changes.
A Spike Test with a problem in its settings shows only a warning in Validation, so it never stops you saving, publishing or using Run now. Run spike test is stricter and refuses to start until it is fixed. The messages you are most likely to see are "Spike Test needs an integration provider.", "Spike Test needs a list source or a read action." and "Spike Test can only call read actions. Pick a list or get endpoint."
Read what a Spike Test found
A Spike Test's run appears in the Runs list with a violet Spike label and Spike as its trigger. Select it, then open its one step to see everything it read.
Runs
Each run executes the workflow node-by-node. Select a run to follow its steps.
1 matching row for “Boiler service” from BigChange REST List job types (scanned 38 across 1 page).
Step output
{
"handles": { "main": 1 },
"items": {
"main": [
{
"rowCount": 1,
"truncated": false,
"hasMore": false,
"pageNumber": 1,
"pagesFetched": 1,
"scannedRowCount": 38,
"schema": ["id", "name"],
"distinct": {
"id": [{ "value": 4417302, "count": 1 }],
"name": [{ "value": "Boiler service", "count": 1 }]
},
"samples": [{ "id": 4417302, "name": "Boiler service" }],
"lookFor": "Boiler service",- 1The Spike Test's run, labelled Spike.
- 2What it cost: 2 credits for one Spike Test.
- 3The step, opened, with its one-line summary and everything it read.
The step's summary tells you how much it read. Under it, the step output holds the detail:
distinct: for each inspected field, up to 30 different values with how many rows had each, most common first. This is usually the part you want.samplesandpreview: a few of the rows themselves.schema: the names of the fields on the rows, up to 64 of them, so you know what you can use in later steps. Secrets such as passwords and tokens are left out.rowCount,hasMoreandnextPageNumber: how many rows came back, and whether there are more to read.
The summary reads differently depending on whether the Spike Test was browsing a list or looking for a name, and whether it found anything.
Browsing a list
50 rows on page 1 (capped at 50). More exist: this is page 1, not the full catalogue.
Looking for a name
1 matching row for “Boiler service” from BigChange REST List job types (scanned 38 across 1 page).
Nothing matched
No rows matching “Boiler servcie” from BigChange REST List job types (scanned 38 across 1 page, page size 50).
A full page of 50 means there are more rows than you saw. Either raise Page number and run it again, or put a name in Look for so it pages through for you. When nothing matches, check the spelling first, as in the last example above.
Once you have the value, copy it into the step that needs it, here the job type ID 4417302 in Create the job. You can then delete the Spike Test, or leave it on the canvas for next time: it costs nothing while the agent runs, because it is always skipped.
Check the agent with Validate
Validate in the toolbar checks the whole agent as it is on screen, saved or not, and the pill at the bottom of the canvas sums up the result. Validating is free, so run it whenever you have made a change. The pill reads Validation outdated: revalidate as soon as you change anything after a check.
Never checked
Changed since the last check
No errors or warnings
Warnings only: you can publish
Errors: publishing and Run now are blocked
- 1Validate, which checks the agent as it is on screen.
- 2The pill, in each of its states. Click it when it shows warnings or errors to open the Validation window.
- 3The notice after a check. Workflow is valid also appears when there are warnings, so look at the pill as well.
Click the pill to open the Validation window. Errors come first, in red, then warnings in amber. Where an issue belongs to one step, it reads Click to focus this node on the canvas: click it to jump to that step and select it.
Fetch the issue
Get issue
Work out the job
GPT-5.6 Terra
Create the job
Create job
Tell the tenant
1 action enabled
Validation
This Intelligence (AI) node needs task instructions.
Click to focus this node on the canvas
“Tell the tenant” cannot be reached from the trigger and will not run.
Click to focus this node on the canvas
This canvas has 1 spike test node. They are not run on schedule, chat, or Run now. Use Run spike test.
- 1An error. Errors stop you publishing and stop Run now.
- 2A warning. You can still publish, after confirming.
- 3The step the first issue belongs to, selected on the canvas after clicking it.
- Errors block publishing with "Fix validation errors before publishing." They also stop Run now, which fails with "Workflow is not valid". Common ones are "A workflow must have exactly one trigger node.", "This Intelligence (AI) node needs task instructions." and "Workflow graphs must be acyclic (except a loop body returning to its Loop node)."
- Warnings let you publish after a check: Publish with warnings? asks whether to Publish anyway or Review warnings. Common ones are "The trigger is not connected to anything, so the workflow will not do any work.", a step that "cannot be reached from the trigger and will not run.", "This condition has no true/false branch connected." and an account warning such as "Outlook is not connected. Open this node and connect the account."
After a check, Settings also shows an estimate of how many credits a run will use. For more on the toolbar and the pill, see Find your way round the canvas.
Run now: a full run or a dry run
Run now runs the whole agent straight away, as many times as you like, whether the agent is a draft or published. It always runs the last saved version, not what is on screen, so save your changes first. Open Runs in the toolbar, click Run now, then choose how to run it.
Runs
Each run executes the workflow node-by-node. Select a run to follow its steps.
runs: 27 · credits consumed: 1,336.6
Choose how to run this workflow. Both options run the trigger, knowledge steps and AI for real. Billing uses your organisation’s automation credits, not message credits. A full run charges normally; a dry run skips per-step charges while still simulating write actions safely.
Outlook is not connected. A full run will skip or fail those steps. A dry run is unaffected because it never performs real actions.
Connect Outlook here
Performs every step for real, including write actions such as sending emails. Charged as a normal automation run. Use this once you are happy with the workflow.
Runs read actions for real, but simulates write actions (e.g. sending an email) and shows you exactly what they would have done. Nothing is sent or changed. Does not charge per-step automation credits the way a full run does.
- 1Run now in the Runs window.
- 2The note that appears when a step's account is not connected, with a link that opens that step.
- 3Full run: every step for real, charged as normal.
- 4Dry run: reads and AI for real, anything that sends or writes only simulated.
- Run for real does everything the agent would do on its own: it sends the emails, creates the jobs and texts the engineers. It is charged like any other run.
- Dry run (no actions performed) runs the steps that read and think for real: integration reads, File Search, Web Search, File Parser and the AI steps. Anything that would send, create, update or upload is simulated instead, and the step shows what it would have done. A dry run costs 1 credit for the whole run, however many steps it has.
In a dry run, a write step's summary starts with "DRY RUN", such as "DRY RUN: would outlook_send_email (not performed)", and its output lists exactly what it would have sent. Texts are not sent, outbound calls are not placed and Browser Use does not start. An Approval step that would email someone sends nothing and waits for you to approve in the Runs window instead. A few reads are also skipped, such as downloading files from OneDrive, so a File Parser after a download has nothing to read.
Despite the button's wording, a dry run does read from your connected systems and does run the AI. A read step whose account is not connected fails in a dry run as well, whatever the amber note says. And if the agent has a Dedupe step, a dry run records the items it saw, so the next real run skips them as already seen.
Run now needs Edit access and a saved agent. On an agent that has never been saved, it shows "Save your workflow as a draft first. That lets you connect integrations and test run it."
What each trigger starts with
A real run starts with something from its trigger: an email, a chat message or an event. Run now has to make do without one, so what it starts with depends on the trigger. For the details of each trigger, see Choose how an agent starts.
Schedule
Email received
Chat Trigger
System alerts
Incoming voice call
Outbound call
- Schedule: the run starts with only the time it started, which is all a scheduled run gets anyway.
- Email received: the run uses the newest email in the folder. If the folder is empty you see "This folder has no mail yet. Send a test email into it", and if the newest email does not pass the filters you see "Latest mail did not match Email received filters." See Start an agent when an email arrives.
- Chat Trigger: every input gets a placeholder, so treat the result as a check of the wiring rather than of the answer. See Run an agent from chat and WhatsApp.
- System alerts: a run from Run now has no event, so a step such as Fetch the issue has no ID to fetch and usually fails. Use Simulate webhook on the trigger instead, with the ID of a real record. Simulate webhook is always a full run, charged as normal. See Start an agent from a system alert.
- Incoming voice call and Outbound call: see the next part of this section, and Make outbound calls and answer incoming calls.
On an agent that answers calls, Run now opens a live preview in your browser instead of the Run workflow window. On an agent that makes calls, it does the same when the Voice AI is selected. You talk to the Voice AI through your microphone; it can look things up just as it would on a call, but it will not send texts or change anything, and says "I can look things up in this preview. Sending messages only happens on a real phone call." if asked to. The lookups it makes are charged at 0.1 credits each, as on a real call.
Runs
Select a call to read it. Run now starts a browser preview and does not ring the phone number.
Run now never rings the numberListening
Browser preview of this assistant. This is not the phone number.
- 1End, which hangs up the preview. Mute turns your microphone off without ending it.
Read the result in Runs
Every run you start lands at the top of the Runs list, labelled Dry run or Spike where that applies, and a run started from Run now gives Manual as its trigger. Select it to see each step in order with how long it took and whether it worked; open a step to see its summary and output. A dry run that reaches an Approval step waits there, and you approve or reject it at the top of the run.
Runs
Each run executes the workflow node-by-node. Select a run to follow its steps.
Approved
DRY RUN: would outlook_send_email (not performed)
Step output
{
"handles": { "main": 1 },
"items": {
"main": [
{
"dryRun": true,
"wouldPerform": {
"provider": "outlook",
"tool": "outlook_send_email",
"args": {
"to": "accounts@northgatehousing.co.uk",
"subject": "Invoice INV-20418: payment reminder",- 1The dry run, labelled Dry run and started by hand.
- 2Its cost: 1 credit for 39 steps.
- 3The Outlook step, which shows the email it would have sent instead of sending it.
This dry run of Chase overdue invoices, which runs on a weekday schedule, read the unpaid invoices from BigChange and drafted each email for real, then stopped short of sending. Steps are listed by their type, such as Intelligence or Outlook, rather than the names you gave them. For everything else in the window, including errors and stopping a run, see Read the Runs panel.
A safe way to test
Testing an agent that sends emails or creates jobs means real emails and real jobs, unless you plan for it. This routine keeps your customers and your records out of it until you are ready.
- 1Build on a draft. A draft agent never runs by itself, so nothing happens until you start it.
- 2Look before you build. Use a Spike Test to find the real IDs and names your steps need.
- 3Validate until the pill shows no errors.
- 4Make yourself the recipient. While testing, point steps that email or text at your own address or mobile, so a full run reaches you instead of a tenant.
- 5Dry run to check the reads, the AI's work and what each write would have sent.
- 6Put an Approval in front of anything that writes. On a full run, the agent then stops and waits for you before it creates or sends anything. Set If the timeout elapses to Treat as rejected and continue while testing, because the default treats silence as approval.
- 7Do a full run, or for a system alert a Simulate webhook with a test record, and approve or reject at the Approval step in the Runs window.
- 8Put the real recipients back, decide whether to keep the Approval, then publish. See Publish, pause and restore versions.
Work out the job
GPT-5.6 Terra
Check before creating
Approve in panel (wait up to 240 min)
Create the job
Create job
Tell the tenant
1 action enabled
- 1An Approval in front of the steps that create and send.
- 2If the timeout elapses set to Treat as rejected and continue for testing. The default is Treat as approved and continue.
- 3A step that emails. While testing, its recipient is your own address.
A run can last at most 8 hours, and time spent waiting at an Approval counts, so answer within 8 hours of starting a test run. An Approval waits up to 24 hours by default, which is longer than the run can last. For more on Approval steps, see Conditions, loops and approvals.
What testing costs
Testing uses the same automation credits as everything else in Agent Builder. Choosing the right kind of test keeps it cheap.
Spike Test
2credits
1 to start the run, plus 1 for each Spike Test on the canvas.
Dry run
1credit
The whole run. Reads and the AI still run, but no step is charged.
Full run or Simulate webhook
51.2credits
The same as a real run. This is one morning of Chase overdue invoices.
Validate
0credits
Checking the agent is free, as often as you like.
- Spike test: 1 credit to start, plus 1 credit for each Spike Test on the canvas, so one Spike Test costs 2 credits.
- Dry run: 1 credit, however long the agent is. The AI and the reads are not charged in a dry run, and nothing is sent, so nothing is charged for texts or calls either.
- Full run and Simulate webhook: charged exactly like a real run, step by step.
- Voice preview: the lookups the Voice AI makes cost 0.1 credits each.
- Validate: free.
Worked example: Chase overdue invoices costs about 51.2 credits a run, most of it for the AI writing a dozen emails. Testing it with one Spike Test, four dry runs while you adjust the wording, and one final full run with an Approval in front of the send costs 57.2 credits, against 307.2 for six full runs. For credit costs across every step, see Automation credits and usage limits.
Testing from a phone
On a phone, the builder shows the canvas and a compact toolbar only. Runs and Run spike test are still there as icon buttons, so you can start a test and read its result, and the validation pill still shows at the bottom of the canvas. Validate and the Details panel are hidden, so set up steps and run checks on a larger screen.

Build modular AI workflows with reusable nodes
New Fixflo issue
Reported
Fetch the issue
Get issue
Work out the job
GPT-5.6 Terra
Create the job
Create job
Tell the tenant
1 action enabled
Find the job type ID
Spike · bigchange_rest list_job_types
- 1Runs, which opens the run list and Run now.
- 2Run spike test.
More in Agent Builder
- Open Agent Builder
- Build your first agent from a message
- Build and edit agents from chat and WhatsApp
- Find your way round the canvas
- Choose how an agent starts
- Run an agent on a schedule
- Start an agent when an email arrives
- Start an agent from a system alert
- Run an agent from chat and WhatsApp
- Steps an agent can use
- Conditions, loops and approvals
- Send text messages
- Make outbound calls and answer incoming calls
- Publish, pause and restore versions
- Read the Runs panel
- Share an agent
- Automation credits and usage limits