Fired when the execution leaves the queue and the engine starts working.
It is the moment the run stops being a promise: from here on there is a session being opened against the source. status_reason is RUNNING — nothing has been retrieved yet, and nothing is readable yet.
Subscribe to it for the clock, not for the data. Nothing about this event requires you to act: it is what separates waiting in the queue from working, which is the difference between a slow platform and a busy one when somebody asks you why a case is taking so long.
Somebody is now logging in on your customer’s behalf. If your product shows a state, this is when it stops saying queued.
The gap between 202 Accepted and this event is queue time — it depends on load and on whether the execution can pause for a person. Measure the work from here, not from the request.
Not every execution reaches this event. One rejected at validation, or aborted before it was ever picked up, goes straight to ended. Treat ended as the only event you are guaranteed to receive.
The application this execution was launched with — the one your secret belongs to. Worth keeping when your product uses more than one, a sandbox and a production app being the usual case: every record and every event we send carries it.
The customer_id you supplied when the execution was initialised, returned as you sent it — so an answer can be routed to the right case with no lookup on your side.
The execution this belongs to — the value you poll for the state and address every results endpoint with. Always present here: an event exists because an execution does.
The event type: started.
When the event was raised, in UTC. Deliveries can arrive out of order — a retry is delivered after whatever came next — so order your own records by this, not by arrival.
Whether the execution was started as one a person can answer (customer_interaction_available). When false, a challenge from the source cannot be solved and the execution ends instead of waiting.
The precise reason for the state at the moment of the event — one of the execution reasons, or a feature’s own when producer names a feature. Branch on this and not on the message: it is a stable code. Every reason by family.
Payload class discriminator — always this value for an execution event. If the same endpoint also receives flow events, branch on it first.
Who raised it: engine for the execution itself — the login, typically — or the feature’s own code when a single feature is what needs something. An action_required from the accounts reader says accounts_read, so you know what is being asked for before reading the form.