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
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:Running with language models
When an EDSL job reaches aSurveyMessage, EDSL records a deterministic response and continues without calling the language model:
"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.