Execution history
Every time the bot executes an action on behalf of a visitor (a form submission, a mailto dispatch, a booking prefill), a row is written to action_executions. This table is the source of truth for "did my bot actually deliver that contact form message?"
List recent executions
curl https://api.mimicbot.app/api/bots/{botId}/actions/executions \
-H "Authorization: Bearer $MIMICBOT_TOKEN"
The endpoint returns the most recent executions across every action on the bot, newest first. Pass ?limit=N (max 100) to tune the page size.
The row shape
Each execution row captures:
id— unique execution IDactionId— which action was invokedactionLabel— human label from the action definitionactionKind— matches the action'sBotActionKind(for examplecontact_form,newsletter)visitorId— anonymous per-visitor identifierresult—pending,success,failure,cancelled, orexpirederror— human-readable error ifresultisfailurecreatedAt/completedAt— timestamps for submission and final state
On the underlying row, a contactMetadata JSONB blob carries deliveryStatus, deliveryMethod, signalSource, and timing for form replays — useful when debugging why a submission silently failed.
Debugging failed executions
For a row with result: failure or a contact_form row whose contactMetadata.signalSource is timeout, see the Form replay debugging checklist — it walks through the three-layer submission strategy and the common reasons replay falls back.