FAQ
How do I get my API key?
From your project’s settings page at dash.1sygnal.app . Use the
public key (pk_...) in the SDK’s init() call — the secret key (sk_...) is for
server-to-server calls only and should never ship in client code.
Why didn’t my survey show up?
Check, in order: does the survey’s Trigger match the event you fired, do its Rules
pass, and is the user within Cooldown/Daily Cap? See
How Triggering Works for the full two-stage check, and
Testing Surveys Locally for debug: true to see the actual
evaluation in your console instead of guessing.
What’s the difference between event triggering and API targeting?
track() lets a survey’s own trigger rules decide whether to show, based on client-observed
events and user traits. The Server API lets your backend target
specific users directly, for moments the client never sees (a renewal, a resolved ticket).
Targeting adds recipients on top of trigger rules — it doesn’t replace them. See
Triggering Surveys from Code for both.
Do I need to call identify() on every session?
Yes — call it as soon as you know who the user is, on every new session, not just the first time. Trigger rules and targeting both key off the current identified state, and a session that never re-identifies is invisible to any rule that reads user traits. See Identity.
What happens to a user’s data before they’re identified?
They’re tracked anonymously under a device/session ID the SDK generates locally. Calling
identify() associates a stable user ID with that same activity going forward — it doesn’t
discard what was already tracked anonymously. See Identity.
Does the SDK collect personal data automatically?
It collects device, app, network, and screen information as part of normal event tracking, to
power targeting and analytics. Whether that requires user-facing consent under GDPR/CCPA/NDPR
depends on your own privacy policy and consent flow — the SDK provides consentRequired to
gate survey display until your own consent flow completes, but compliance itself is on the
integrator. See Privacy & Consent.
Can I customize what a webhook payload contains?
No — the payload shape is fixed per event type. You choose which events an endpoint receives, not which fields. See Webhooks for the full event catalog and payload reference.
Is there feature parity across platforms?
Mostly, with a handful of intentional exceptions (e.g. reset() doesn’t exist on web). See
Platform Parity for the complete operation-by-operation and
event-by-event table.