- Recontact Options — how often may this survey be shown to the same user?
- Cooldown Period — has enough time passed since the user last saw any survey?
- Targeting — is the user in the survey’s audience?
Level 0 — Always show
Take a survey with no targeting, no Cooldown Period, and Recontact set to “Keep showing while conditions match”. Nothing gates it, so it shows every time its trigger fires. Simple, but usually too aggressive for anything but a persistent feedback button.Level 1 — Recontact Options (per survey)
Recontact Options control how often a single survey may reappear. They count this survey’s own displays and responses, so they are genuinely per survey:
Example: an onboarding survey set to Ask until they submit a response keeps appearing on each trigger until the user answers, then stops.
See Recontact Options for setup.
Level 2 — Cooldown Period between surveys
On top of per-survey recontact, a Cooldown Period enforces a minimum gap between surveys. Two settings feed it, but they share one clock:- Workspace Cooldown Period (default 7 days): after a user sees any survey, no survey shows again for the Cooldown Period.
- Per-survey override (Ignore Cooldown Period / Set custom Cooldown Period): replaces the workspace number for that survey only.
Level 3 — Targeting with Segments
Targeting is part of Attribute-based Targeting, included in the Enterprise Edition.
plan = "pro" means only Pro users are eligible for the survey.
See Attribute-based Targeting for setup.
Level 4 — Interaction-based Segments
Interaction-based segments add a fourth Segment filter type: target users by how they interacted with your surveys — seen, started, or completed within a recent window. Because these look at a specific survey’s own displays and responses, they do what the shared Cooldown Period clock cannot. A filter reads as one sentence:<operator><any survey | specific surveys>within<number><days | weeks | months>
Interaction operators
“have started responding to” vs “have not completed” are not opposites. Have started requires the user to have engaged at least once. Have not completed is the negation of have completed, so it also matches everyone who never saw or started the survey — use it as an exclusion, not stand-alone targeting. To target drop-offs, combine both with
AND: have started responding to A AND have not completed A.Primary use case: a true per-survey Cooldown Period
This is what interaction segments unlock over the built-in Cooldown Period. To show an NPS survey on its own ~3-month cadence, driven by that survey’s own history rather than the shared cross-survey clock:- Recontact: Keep showing while conditions match.
- Cooldown Period: set a small custom value (e.g. 1 day) — a short guard so it can’t repeat within a session (see the note below). Do not use Ignore Cooldown Period.
- Targeting Segment:
have not seen NPS within 3 months(specific survey = NPS).
Other use cases
- Follow-up funnel: a detail survey targets
have completed NPS within 30 days. - Re-engage drop-offs:
have started responding to Onboarding AND have not completed Onboarding within 14 days.
Interaction membership refreshes on sync, not instantly. Recontact and the Cooldown Period react the moment a survey is shown; interaction-segment membership is recalculated when the user’s data syncs (on load, on
identify/setAttributes, and periodically). This lag is irrelevant for long windows like the 3-month cadence above — the short Cooldown Period guard covers it — but don’t rely on interaction filters for instant re-display suppression, and don’t pair one with Show only once, which already blocks re-display permanently.Putting it all together
Still have questions or seeing unexpected behavior? Join us in GitHub Discussions and we’ll be glad to help.