For trigger steps: auto-fetches recent records from the trigger’s source (e.g. recent calls for Calls/call_started) and uses the latest as the persisted sample. The chosen sample’s data is what every downstream step’s {{stepN.field}} resolves against. Pass data: {...} to skip the auto-fetch and use a manual payload. Pass sample_uuid to pick a specific record from samples[]. Returns 404 with samples:[] if the source has no matching records — the MCP should then prompt the user to either generate a real event or supply manual data.
For action steps: resolves the step’s config against upstream last_test.data, then either dry-runs (validates config without external calls) or executes live. Default behavior uses a safe-list — read-only actions execute live, destructive actions (post message, create record) dry-run. Pass live: true to force real execution; pass dry_run: true to force validation-only. Call actions (end_call, transfer_call) always dry-run since they need a live call’s control_url.
Side effect on success when persist=true: step status flips from draft → active (this is what unlocks POST /deploy).
Documentation Index
Fetch the complete documentation index at: https://developers.mindhunters.ai/llms.txt
Use this file to discover all available pages before exploring further.
Use a Bearer token to access these API endpoints. Example: "Bearer {your-token}"
Save the result to step.last_test and activate the step. Set false to test without committing.
(triggers) Manual sample payload. When set, skips auto-fetch and persists this object as test_data.
(triggers) Pick a specific record from the auto-fetched list.
(triggers) Max samples to return.
x <= 50(actions) Override the upstream {{stepN.…}} resolution. Useful to test with hypothetical input.
(actions) Test with a config different from step.config (does not persist).
(actions) Force dry-run even for normally-live actions.
(actions) Force real execution. Bypasses the safe-list — destructive sends/writes will actually go through to the third party.