Content Security Policy (CSP)
If your website uses a Content Security Policy, you need to whitelist Told's domains for the SDK to work properly.
Domains to allow
| Domain | Purpose | CSP directives |
|---|---|---|
https://scripts.told.club | SDK script | script-src |
https://widget.told.club | Survey widget (iframe) | frame-src, connect-src |
https://producttour.told.club | Product tour (iframe) | frame-src, connect-src |
https://producttoureditor.told.club | Product tour editor (iframe) | frame-src, connect-src |
https://api.told.club | API (GraphQL HTTP) | connect-src |
wss://api.told.club | API (GraphQL WebSocket) | connect-src |
https://app.told.club | Dashboard communication | frame-src |
Example CSP header
Content-Security-Policy:
script-src 'self' https://scripts.told.club;
frame-src 'self' https://widget.told.club https://producttour.told.club https://producttoureditor.told.club https://app.told.club;
connect-src 'self' https://api.told.club wss://api.told.club https://widget.told.club https://producttour.told.club https://producttoureditor.told.club;
Example CSP meta tag
<meta http-equiv="Content-Security-Policy"
content="script-src 'self' https://scripts.told.club;
frame-src 'self' https://widget.told.club https://producttour.told.club https://producttoureditor.told.club https://app.told.club;
connect-src 'self' https://api.told.club wss://api.told.club https://widget.told.club https://producttour.told.club https://producttoureditor.told.club;">
What happens if a domain is missing
| Missing domain | Symptom |
|---|---|
scripts.told.club in script-src | SDK doesn't load at all |
api.told.club in connect-src | SDK loads but can't reach the API — no surveys appear |
widget.told.club in frame-src | Surveys don't display (iframe blocked) |
producttour.told.club in frame-src | Product tours don't display |
producttoureditor.told.club in frame-src | Product tour editor doesn't open |
wss://api.told.club in connect-src | Real-time features don't work (subscriptions) |
warning
CSP violations appear as errors in the browser console, typically starting with "Refused to load..." or "Refused to connect...". Check the console if surveys or product tours don't appear.