Publish
The Publish tab is where you decide when, where, and to whom your survey is shown, plug it into external services, and ship it live.
You'll find it as the third top-level tab of the survey editor (after Content and before Results).
Layout
The Publish tab is split into two sub-tabs :
- Configure (default) — three sections in the left sidebar: Trigger, Audience, Period
- Connect — outbound integrations (Webhook for now)
A blue Publish button at the top right opens a confirmation modal that ships the survey live.
The first time you open the Publish tab on a brand new source, a yellow banner reminds you to install the SDK snippet on your website if you haven't done it yet (Remind to install the snippet code if you didn't do it). Click Install → to jump to the source's installation page.
Configure → Trigger
The Trigger section is where you define under which conditions the survey will be shown. Pick from three no-code triggers — you can configure multiple triggers of the same or different types, and they're combined with OR at runtime (one matching trigger is enough to show the survey).
"If you don't define a trigger, it won't be launched."
Page visit
Display the survey when the user visits a page.
Step 1 — On which page do you want to display your in-app survey?
- On all URL (default) — show on every page where the SDK is installed
- On a specific URL — show only when the URL matches a condition. Reveals 3 controls:
| Control | Options |
|---|---|
| Variable | Path / Url / Dynamic URL |
| Operator | Is equal to / Contain / Does not contain / Is not equal to |
| Value | The string to match (e.g., /example) |
Step 2 — When do you want to display your in-app survey?
Three timing options:
- When the page is loaded (default)
- After a delay of
[N]seconds - When I scroll
[N]of the page
Click on an element
Display the survey when the user clicks a specific element.
Step 1 — Which element should launch your in-app survey when clicked?
A dropdown to choose how to identify the element, and a textbox for the value:
| Selector | Targets the element by… |
|---|---|
| Click ID | its HTML id attribute |
| Click classes | one of its CSS classes |
| Click text | the text it contains |
Custom event
Display the survey when a custom event is fired by your code via the told('track', ...) SDK call.
Step 1 — What is your event name?
A dropdown Choose event name that lists every custom event your source has already received via told('track', ...). Pick one to bind the survey to it.
Step 2 — What is/are your properties?
Optional filters on the event payload. Click + New property to add a key/operator/value condition. You can add as many as you want.
Combining and saving triggers
When you have at least one configured trigger, an Add Trigger button appears at the bottom of the section to add another. Each trigger card is separated by an OR divider, making it explicit that the survey will fire as soon as any of them matches.
Configure → Audience
The Audience section lets you target the survey at a specific segment of users.
Step 1 — Who do you want to target?
- A dropdown showing All audience by default
- A button + Create new one to create a new audience inline
- A button View audiences to jump to the source's top-level Audience section, where you build and save audience segments using filters
Audiences are saved segments managed at the source level (sidebar Audience) — see the Audience documentation. The Publish tab only lets you pick which existing audiences trigger the survey.
Step 2 — What percentage of your audience do you want to target?
A numeric field (0-100, default 100%). Use it to roll the survey out gradually — only this percentage of the audience will actually see it.
Configure → Period
The Period section (icon: violet calendar, Date and recurrence) controls when in time and how often the survey is shown.
Step 1 — When do you want to launch your in-app survey?
- Indefinitely (default) — the survey runs from publish to manual stop
- At a specific time period — reveals two date pickers, begin date and end date, defining a fixed window during which the survey is active
Step 2 — Add options to your widget
Three independent toggles, all off by default:
| Toggle | Behavior |
|---|---|
| Recurrence | When enabled, reveals a frequency field. Users will see the survey at the configured interval rather than every time the trigger fires. |
| Display only once | The survey is shown to each user only once, regardless of how many times their triggers fire. |
| Don't display if already replied | If a user has already submitted an answer, the survey is not shown again to them, even if their triggers fire. |
Connect → Webhook
The Connect tab is where you plug your survey into external services. For now, the only available connector is Webhook.
The screen shows:
- A heading Add Webhooks with the description: "Notify external services when someone send or/and complete your survey."
- A visual mockup with icons for popular services that consume webhooks (Hubspot, Zapier, Make, Slack)
- A blue + Add a webhook button to create a new webhook
Webhook is the only native connector at the time of writing. Other native connectors are planned — for now, popular tools (Zapier, Make, Slack…) are reachable via a generic webhook. See Webhooks for the payload reference.
Publishing your survey
When your survey is ready, click the blue Publish button at the top right of the Publish tab. A confirmation modal appears:
Would you like to publish your Told?
If you publish your survey, it will be visible from now until you stop it.
Click Publish in the modal to ship it live. Once published, the survey is immediately served to users matching your triggers, audience and period.