Question Types
Told offers 9 question types. Each type can be mandatory or optional, translated into multiple languages, and enhanced with skip logic conditions.
Common features
All question types share these capabilities:
- Multi-language — Content is stored per language. The SDK displays the translation matching the user's browser/device language, or falls back to the default language.
- Mandatory/optional — Choose whether an answer is required to proceed
- Conditions (skip logic) — Redirect respondents based on their answer to another question, the thank-you message, an external link, or close the survey
- AI translation — Translate questions automatically
- Media — Add an image, video, or link to any question (with an optional "fit to screen" toggle)
- Custom buttons — Override the default "Next" and "Previous" button labels
- Label — Add a colored label/tag above the question
- Confidentiality notice — Attach a privacy policy link to the question
Multiple Choice
Let respondents select from predefined options.
Options:
| Setting | Description |
|---|---|
mandatory | Require a selection |
multiple | Allow selecting multiple choices |
otherChoice | Add a free-text "Other" option |
shuffle | Randomize the order of choices |
Webhook answer kind: SurveyAnswerChoice — contains a choices array with the selected options.
Open Text
Collect free-form written feedback.
Options:
| Setting | Description |
|---|---|
mandatory | Require a response |
type | Response format: text, email, website, number, or date |
The type setting controls input validation — for example, email validates email format, number accepts only numeric input, date shows a date picker.
Webhook answer kind: SurveyAnswerText — contains a content string.
Opinion Scale
Present a visual scale for rating.
Options:
| Setting | Description |
|---|---|
mandatory | Require a selection |
displayType | Visual style: emoji, number, star, or weather |
stepLength | Scale size (default: 5) |
withLabels | Show labels at the ends of the scale |
animation | Animate the selection |
csat | Enable CSAT (Customer Satisfaction) mode |
Labels: You can set labels for the low and high ends of the scale (e.g., "Very bad" / "Excellent").
Webhook answer kind: SurveyAnswerNumber — contains content as the selected value.
NPS (Net Promoter Score)
The standard question for measuring customer loyalty: "How likely are you to recommend us?" on a scale of 0 to 10.
Responses are automatically categorized:
- Detractors (0-6) — Unhappy users
- Passives (7-8) — Neutral users
- Promoters (9-10) — Enthusiastic users
NPS Score = % Promoters − % Detractors (ranges from −100 to +100)
Options:
| Setting | Description |
|---|---|
mandatory | Require an answer |
stepLength | Scale size (default: 11, for 0–10) |
startAt | Starting value (default: 0) |
withLabels | Show min/max labels |
goal | Target NPS score to track against |
Webhook answer kind: SurveyAnswerNumber — contains content as the score (0–10). A separate surveyNPSAnswer webhook event is also triggered.
Message
Display information without requiring a response. Useful for introductions, transitions, or redirects.
Options:
| Setting | Description |
|---|---|
button.show | Show a CTA button |
button.label | Button text (translatable) |
button.link | URL the button opens |
color | Custom text color (hex) |
Webhook answer kind: SurveyAnswerDefault — records that the user viewed the message.
Contact Info
Request personal information from respondents (name, email, phone, etc.).
Options:
| Setting | Description |
|---|---|
mandatory | Require all fields |
When collecting personal data, ensure you have proper consent. You can enable the confidentiality notice on this question to link your privacy policy. See the GDPR guide.
Calendar
Invite respondents to schedule a meeting directly from the survey.
Supported services:
| Service | iframeSource value |
|---|---|
| Calendly | calendly |
| Google Calendar | googlecalendar |
| HubSpot Meetings | hubspot |
| Brevo (Sendinblue) | brevo |
Configuration: Paste your scheduling URL in iframeUrl and the calendar widget is embedded directly in the survey question.
Chat (AI-powered)
An interactive AI chat question where the respondent has a conversation with an AI assistant.
Configuration:
| Setting | Description |
|---|---|
prompt | Link to a Prompt configured in the AI settings of your source |
context | System message / context for the AI conversation |
model | LLM model to use (default: gpt-4o-mini) |
The chat question uses AI prompts and resources configured in your source's AI section (Settings → AI). Prompts can reference uploaded resources (documents, images, links) for context.
Legal
Display a legal document or terms that the respondent must acknowledge.
Configuration:
| Setting | Description |
|---|---|
file | URL of the legal document |
Summary
| Type | Response | Webhook kind | Best for |
|---|---|---|---|
| Multiple Choice | Selected choices | SurveyAnswerChoice | Categorization, preferences |
| Open Text | Free text (or email/number/date) | SurveyAnswerText | Detailed feedback |
| Opinion Scale | Number (1–5, emoji/star/weather) | SurveyAnswerNumber | Quick ratings, CSAT |
| NPS | Number (0–10) | SurveyAnswerNumber | Customer loyalty |
| Message | View only | SurveyAnswerDefault | Info, transitions, redirects |
| Contact Info | Form fields | SurveyAnswerContact | Lead capture |
| Calendar | Booking | SurveyAnswerDefault | Scheduling meetings |
| Chat | Conversation | — | AI-powered feedback |
| Legal | Acknowledgement | — | Terms acceptance |