Skip to main content
Traces are the output of a Voiceflow agent. Each time your application sends an action to the Conversations API, the runtime returns an array of trace objects describing how the agent responded. A single turn often produces multiple traces in sequence - for example, a message followed by a set of buttons. Every trace has a 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.
The 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’s request.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.
Returned by the Carousel step. The same button handling applies as with cardV2 - 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’s request.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.
To handle this button click, send:

Agent-generated buttons

When the buttons system tool is enabled on Playbook or on the Agent, the agent may dynamically generate buttons. These use request.type: "text" and simulate raw user input rather than triggering a specific path:

no-reply

Returned when a No Reply timeout is active. The timeout value is in seconds.
If the user doesn’t respond within the timeout window, send a no-reply action to retrieve the configured reprompt:

Additional trace types

Every remaining type value in the runtime schema. Field tables are projected from the spec; a field marked required is always present on the payload.

log

Diagnostic log output attached to the turn. Carries no payload properties; the envelope fields identify the event.

path

Reports which path the conversation took out of a step.

flow

Marks the conversation entering a flow, identified by its diagram ID.

goto

Instructs the client to re-send the wrapped request on the next turn.

speak

A spoken response for voice channels, carrying the message text and optionally a synthesized audio source and voice name.

block

Marks the conversation entering a block, identified by its block ID.

debug

Debug output for the turn, with a message and optional level, context, and metadata. Surfaced in agent logs rather than to end users.

stream

A chunk of a streamed audio response: the audio source, a continuation token, and whether the stream starts, continues, or ends.

visual

Displays an image, with optional device sizing and layout options.

reasoning

Marks model reasoning activity during the turn. Carries no payload properties.

completion

Marks a model completion event during the turn. Streaming clients receive the completion lifecycle described under completion event traces.

audio

An audio response event. Carries no payload properties.

call-forward

Signals that the call is being forwarded. Carries no payload properties; see the call forward step for configuration.

live-agent-handoff

Signals a handoff of the conversation to a live agent platform. Carries no payload properties.

entity-filling

Requests a value for a named entity, wrapping the intent request being filled.

channel-action

A channel-specific action, named by the channel integration, with an action-defined payload.

knowledgeBase

Reports a knowledge base retrieval: the chunks returned and the query that produced them.

realtime-agent

Marks realtime agent activity on the turn. Carries no payload properties.

dtmf

Configures keypad (DTMF) input collection on a call: whether it is enabled, the timeout, the ending delimiter, and the digit cap.

tool-call

Marks a tool call made by the agent during the turn. Carries no payload properties.

simulation-test-result

simulation-test-result is declared in the runtime’s trace type enum with no published payload schema. Recorded as a spec defect; this entry updates automatically when upstream adds the schema.

Custom actions

Custom action traces can be returned by functions and use the string you defined in Voiceflow as the type 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 encounter completion-start, completion-continue, and completion-end traces. These mark the lifecycle of an AI generation event within a stream.