type field that identifies what it contains, a payload with the relevant data, and a time value recording when that trace was generated as a Unix timestamp. The time field can be useful for debugging: steps like message generation may take noticeably longer than simple text steps, and the timestamps make that visible.
Trace types
text
Returned by the Message step, Playbooks, and no-match and no-reply reprompts.message field contains the plain text content. The slate field contains the same content in a structured rich-text format. delay controls the pause in milliseconds before the next trace is rendered, defaulting to 1000ms.
cardV2
Returned by the Card step. When a card contains buttons, each button’srequest.type is a Voiceflow-generated path ID. Pass that value as the action.type in your next request to advance the conversation along the corresponding path.
carousel
Returned by the Carousel step. The same button handling applies as withcardV2 - pass the button’s request.type as the action.type in your next request.
choice
Returned by the Condition step and Playbooks or the Agent when the buttons system tool is enabled. How you handle a choice trace depends on what’s in each button’srequest.type.
Path buttons
When buttons are connected to specific paths in your workflow,request.type is a Voiceflow-generated path ID. Pass it directly as action.type in your next request. The label field is optional — if included, its value is set as the last_utterance variable.
Agent-generated buttons
When the buttons system tool is enabled on Playbook or on the Agent, the agent may dynamically generate buttons. These userequest.type: "text" and simulate raw user input rather than triggering a specific path:
no-reply
Returned when a No Reply timeout is active. Thetimeout value is in seconds.
no-reply action to retrieve the configured reprompt:
Custom actions
Custom action traces can be returned by functions and use the string you defined in Voiceflow as thetype value. The defaultPath field indicates which path is set as the default: 0 for the first path, 1 for the second, and so on. Their payload is provided as JSON, as shown:
end
Returned when the conversation reaches an End step. On receiving this trace, your application should treat the session as closed.Completion event traces
When using the streaming endpoint, you may also encountercompletion-start, completion-continue, and completion-end traces. These mark the lifecycle of an AI generation event within a stream.