Skip to main content
SurveyMessage adds a page of information to a survey without asking the respondent—or a language model—to provide an answer. It behaves like a question in the survey flow: it has a question_name, occupies a normal survey position, and can be the source or destination of a routing rule. Use it for introductions, consent or privacy information, section transitions, eligibility notices, and thank-you pages.

Basic usage

An interactive survey client should display the message and offer a Continue action (or Finish when it is the last node). SurveyMessage does not render an input control.

Routing to a message

Because a message is a normal survey node, rules can route respondents to it by name. This example sends ineligible respondents to a terminal message while eligible respondents continue to a follow-up question:
The message participates in ordinary navigation, including back navigation and resume behavior in clients that support those features.

Running with language models

When an EDSL job reaches a SurveyMessage, EDSL records a deterministic response and continues without calling the language model:
If the message was visited, its recorded answer is "continued". If routing skipped it, it has no response. The deterministic value makes the visited path observable in Results without spending inference tokens on display-only content.

SurveyMessage versus Instruction

Use Instruction when text should become model context for later questions. Use SurveyMessage when the text is itself a visible step in the survey experience.

Human survey clients

SurveyMessage serializes with question_type="survey_message" and has an empty Humanize schema because it accepts no respondent input. A survey builder or Humanize client must explicitly support this question type by rendering the message and submitting the deterministic continuation action. Check client compatibility before deploying a human survey that contains messages.