Troubleshooting: no data or nothing sent
Updated
Start with the symptom you're seeing.
Verify installation never finishes
You pressed Verify installation and it stays on Waiting for the first page view….
- Is the snippet on the page? Open a page of your site and view its source. Look for the snippet from Integrations → Tracking. If you use a site builder, check that the change was published.
- Is your domain allowed? Check Allowed origins in Privacy settings. The tag refuses hits from any domain that isn't listed. A common miss is listing only
*.northwindhealth.com, which coverswww.but notnorthwindhealth.comitself. List both. In your browser's developer tools, a refused hit usually shows only as a CORS error. - Is the workspace live? The tag's hits are refused until the workspace has an active plan. That includes a preview workspace, one whose subscription has lapsed or failed payment, and a deleted one. Check Billing.
- Are you a bot to Kalman? Hits from crawlers, headless browsers and page-preview tools are ignored. Test in a normal browser window.
A Content Security Policy blocks the tag
If Verify installation never finishes and your site sends a Content-Security-Policy header, open your browser's console on your site. A message like "Refused to load the script" or "Refused to connect" names the blocked host. Add your tracking subdomain to script-src, connect-src and img-src, and allow the inline snippet with a nonce or hash. See Install the tag for the exact entries.
Events are missing from the Event log
- Open Event log with the last-10-minutes filter (the link under Check it worked on the install page), then do the step again.
- An event name the browser isn't allowed to send (
provider_approved,refund_issued,refill_purchasedand the like) is refused. Those come from your platform. - A custom name must start with a letter and use only letters, numbers and underscores, up to 40 characters. A name that refers to a condition or medication is refused.
identifysends nothing if the email has no@or the phone has too few digits, and it only works onhttpspages.- A field in the wrong format (such as a SKU with spaces) is dropped, but the event itself still arrives.
See Track events for the exact formats.
The tracking domain is stuck
- Waiting for the CNAME record: check the record's name and target on Integrations → Tracking. If your DNS is on Cloudflare, set the record to DNS only (grey cloud). Press Check now after a few minutes.
- We're activating your domain: DNS is verified and HTTPS is being turned on. This usually takes a few minutes, and Kalman re-checks every 10 minutes. A workspace without a plan waits here until it has one.
- Activation failed: remove the domain, check the record, and add it again. If it fails again, contact support.
The tag keeps working from Kalman's own address in the meantime. See Tracking domains.
Events arrive but don't reach an ad platform
- Open Event log and switch to Deliveries to Meta.
- Check the Status column:
sent,pending,skipped,failedorshadowed. - For a skipped one, click What we sent to see the reason. The Meta page's 4. Preview panel also shows "Not sent:" and a reason for your latest event of each type.
| Reason | What it means | What to do |
|---|---|---|
not_mapped |
The event isn't mapped to a Meta event. | Map it on the Meta page, if you want it sent. |
outside_event_time_window |
Older than Meta's 7-day window. | Nothing. Newer events send normally. |
workspace_... |
The workspace isn't live (preview, inactive, deleted, no BAA). | Choose a plan or check Billing. |
consent_denied |
The visitor said no to ad sharing, or their browser sends Global Privacy Control. | Expected. Kalman respects it. |
consent_missing |
Your consent mode is opt-in and the visitor hasn't said yes. | Expected under opt-in. See Consent and GPC. |
clinical_unacknowledged |
A provider-decision event is mapped without the acknowledgement. | Review that mapping on the Meta page. |
missing_required_website_field |
A website event without the visitor's user agent or the site URL, which Meta requires. Held, not sent. | Turn on Send visitor user agent and turn off Leave the site URL out on the Meta page, if your privacy review allows. |
rejected_by_firewall / canary_blocked |
Kalman's privacy checks stopped the payload, for example a custom event name containing a sensitive term. | Rename the event. |
test_code_missing |
The destination is in test mode without a test event code. | Add the code, or go live. |
shadow_backlog |
Still waiting when the destination switched from shadow to live. It's never sent. | Nothing. New events send. |
Pending deliveries are waiting, not lost:
- Waiting for the BAA: nothing is sent until your account signs its Business Associate Agreement. See Sign your BAA.
- Paused: someone pressed Pause sending on the Meta page. Resume there.
Anything still pending once Meta's 7-day window has passed is skipped.
Shadowed means the destination is in shadow mode. Kalman records what it would have sent but doesn't send it. See Shadow mode and going live.
Many events skipped for consent
- If you use opt-in, every visitor who hasn't said yes is skipped. Check Consent mode under 4. Ad consent on Privacy review.
- Check that Consent manager (CMP) the tag reads matches the banner your site actually uses.
- Some browsers and privacy extensions send Global Privacy Control, which counts as a no.
Campaigns show as unknown
Add the URL parameters to your Meta ads. See Click IDs and intake links.
What Kalman never sends
Whatever the delivery status, Kalman never sends names, conditions, medications, intake answers or free text to an ad platform. Skipped and held events stay in Kalman.
Related articles
- Install the Kalman tagCopy the snippet from Integrations → Tracking, paste it in the head of every page, allow your domains, then press Verify installation.
- Set up your tracking domainServe the Kalman tag from your own subdomain, like kl.northwindhealth.com: add a CNAME record, wait for Live, then swap your snippet.
- Track funnel events with track and identifyWhen to fire each Kalman event, the fields it accepts, what gets dropped, where to paste the calls and how to check they arrived.
- Consent and Global Privacy ControlChoose opt-in or opt-out, honour Global Privacy Control, and pick where consent comes from: your CMP, your own banner, or the Kalman banner.
- The Event log, deliveries and the data-flow recordSee every event Kalman received, exactly what it sent to Meta and why anything was held back, and download a data-flow record.
- Shadow mode and going liveDestinations start live. Turn on shadow mode to see what Kalman would send, check the signal-gap report, share it, then switch to live.
- Sign your BAAWho signs Kalman's Business Associate Agreement, what waits until it's signed, and how to get a copy.
- Getting help from KalmanSend a support request with the Support button, follow replies under Your requests, and keep patient details out of your messages.
Support
Still stuck? Log in and open a request.
We answer in writing within one business day.
Open a request