KLM-INT Integrations / Bask Health
Meta Conversions API for Bask Health brands
Send the outcomes your Bask Health stack already knows about, like purchases, provider approvals and refills, to Meta server-side. Kalman builds every event from an allowlist, so nothing that names a product, condition or medication goes with it.
How Bask Health connects today
Kalman has no native Bask Health integration yet. Today you connect it with Kalman's webhook catcher: a Kalman URL that accepts a webhook payload in the shape the sender already uses. You catch a sample, map its fields once, and every delivery after that becomes an event. Any system that can post JSON to a URL can use it: the platform itself, or an automation tool you already run.
A native Bask Health integration is on the way. Ask for early access and we'll set you up on the catcher now and move you over when it ships.
Bask Health is a trademark of its owner. Kalman isn't affiliated with, partnered with or endorsed by Bask Health.
Which events to send
The browser pixel sees a checkout at best. The events that tell Meta who became a patient happen later, on the server. Send these, and map each one to a Kalman event:
| Kalman event | Send it when | Meta receives by default |
|---|---|---|
lead | Someone leaves contact details | Lead |
purchase | The first payment is captured | Purchase, with the amount (you can switch it off) |
provider_ | A clinician approves treatment | Qualified, valued at the product’s projected lifetime value |
refill_ | A renewal or refill is paid | Repeat, with the amount |
checkout_ | Optional: checkout opens | InitiateCheckout |
provider_ | Each happens | Nothing. Kept in Kalman for reporting |
You can change each mapping, or turn one off, on the Meta destination in Kalman. Values come from the event amount or from the price and projected lifetime value you set for each product in Kalman.
What Kalman sends Meta
Every outbound event is built from an allowlist. Kalman reads each allowed field, checks its format and copies it. Nothing else can leave, whatever the inbound payload contained.
- Event name, time and id. A Meta standard event (like Lead or Purchase) or a neutral custom name (like Qualified). Custom names that contain a condition, medication or body term are rejected.
- Your site's root URL, such as
https://northwindhealth.com/. Never a page path or query string. - Hashed identifiers: email, phone, external id, zip, city, state and country, as SHA-256 hashes, plus Meta's click ids (
fbc,fbp). IP address and user agent are added only if you turn that on for the destination. - Value and currency, when the event has one.
Never sent: product names or ids, conditions, medications, doses, intake answers, page paths or free text. Every delivery is in Kalman's outbound event log, so you can see exactly what Meta received. How the firewall works.
Setup
- Sign the BAA. Kalman signs one with every customer, on every plan, before any data flows.
- Create the catcher. In Kalman, open Integrations and choose Bask Health. That creates a webhook catcher with its own URL and token, already listening for samples for 15 minutes.
- Point the sender at it. Send the token as
Authorization: Bearer <token>or in theX-Kalman-Tokenheader. A?token=in the URL also works, but headers stay out of server logs. - Trigger test events. Take a test order through paid, approved and refill. While listening, deliveries are stored as samples (encrypted, deleted after 30 days) instead of events.
- Map the fields. Kalman lists every field path it saw and what kind of value it holds, never the values. Map the event type, event id, time, order id, amount, currency, product id, email, phone and patient id, then translate each event type to a Kalman event. If the sender posts the same shape for everything, use one URL per event instead (
&event=provider_approved). - Test, then record. Test the mapping on a sample, process the samples, connect your Meta destination and check the outbound event log.
Keep clinical fields out at the source. Kalman only reads the fields you map, but the payload shouldn't
carry condition, medication or dose fields at all. Use a non-descriptive product id (like program-a)
and register it in Kalman with its price.
Tie events to the ad click. Capture the _kl_id cookie from Kalman's first-party tag at checkout
and send it as kl_id. If the sender can't carry it, map email: Kalman matches it to visitors your
site identified.
Related
- Sylaris OS guide (dedicated source in kalman)
- Telegra guide (webhook catcher today)
- MDI guide (webhook catcher today)
- Kalman compared (Ours Privacy, Curve)
- Kalman for agencies
- Pricing
Bask Health and Meta: common questions
Is there an official Bask Health integration?
No. Kalman isn’t partnered with Bask Health. It connects today through the webhook catcher, and a native integration is coming soon. Get early access.
Does Meta see which product or condition a patient has?
No. Meta gets an event name, time, id, your site’s root URL, hashed identifiers, click ids and a value. Products, conditions, medications, page paths and intake answers are never copied into the outbound event.
Why send provider approvals?
An approval is the moment a visitor becomes a patient, and the browser pixel never sees it. Kalman sends it as Qualified, valued at the product’s projected lifetime value, so Meta can learn which clicks turn into patients.
Do we have to remove the Meta pixel?
From pages where people share health details, yes. Kalman’s first-party tag and server-to-server events replace it there.
What about Google Ads?
Google Ads conversions open as a beta in Q1 2027. Meta Conversions API is live today. TikTok, Snapchat and Reddit are coming soon.
Do you sign a BAA?
Yes, with every customer, on every plan, before any data flows.
KLM-SCN Free scan
See what your site sends Meta today.
Scan your site free. In about a minute you'll see every tracker on it, what each one receives, and what to fix first.
No health information needed · See pricing