Install
The script tag
<script type="module"
src="https://app.try-signal.com/sdk/signal-auto.js"
data-signal-key="sig_pk_live_…"
data-signal-api="https://app.try-signal.com"></script>
Paste it on every page, just before </body>. It loads in the background and never blocks your page; if anything goes wrong, Signal stays quiet rather than breaking your site.
| Attribute | Required | What it does |
|---|---|---|
data-signal-key |
yes | Your publishable key (sig_pk_…). |
data-signal-api |
yes | The Signal API address, https://app.try-signal.com. |
data-signal-popup |
no | The popup is on; set "false" to draw your own UI (see JavaScript API). |
data-signal-storage |
no | persistent, session or none. See Consent and storage. |
data-signal-debug |
no | "true" shows a debug panel with Signal's estimates and decisions. |
The client is available as window.signal once the script has run.
Allowed domains
Signal only accepts a publishable key from your own website. Add every host name your site uses under Settings → General, exactly as it appears in the address bar: example.com and www.example.com are different. Subdomains aren't included automatically.
Where to paste it
| Platform | Where |
|---|---|
| WordPress | Install the free plugin "WPCode" → Code Snippets → Header & Footer → Footer |
| Shopify | Online Store → Themes → … → Edit code → layout/theme.liquid, just above </body> |
| Wix | Settings → Custom code (Premium plan) → Add custom code → All pages, Body – end |
| Squarespace | Settings → Advanced → Code injection → Footer |
| Webflow | Site settings → Custom code → Footer code, then publish |
| Anything else | Before </body> on every page, or in your template's footer |
Smart forms
A smart form asks your questions one at a time, skips what Signal already knows, and ends with the contact details you need. Put an empty element where the form should appear:
<div data-signal-form="earlyAccess"></div>
earlyAccess is the form's key in your configuration (see Configuration → Forms). While a smart form is on the page, the popup doesn't ask its own questions next to it.
Single-page apps
Signal records a page view on load and whenever the address changes through history.pushState, replaceState or the back button, so routers like React Router, Vue Router and Next.js work without extra code.
Testing safely: shadow mode
In shadow mode, Signal reads visits and records what it would have asked and offered, but visitors see nothing, and no emails, alerts or webhooks go out. Switch it on in Configuration ("mode": "shadow") or in the setup wizard, check the Overview for a few days, then switch to live.
Checking it works
- Settings → Install shows the last visit and visits in the last 24 hours.
- Add
data-signal-debug="true"to see Signal's estimates and why it did or didn't speak up. - In the browser console,
window.signal.visitorIdshows the visitor id once Signal has connected.
Shopify product recommendations
To recommend products, connect your shop under Settings → Shop. Signal reads your public catalog every 6 hours and suggests shopping questions; product pages are recognised by their /products/<handle> address, and adds to cart of recommended products are counted automatically.