KLM-INT Integrations / Sylaris OS
Meta Conversions API for Sylaris OS brands
Sylaris OS knows when an order is paid, when a clinician approves it and when a refill comes in. Kalman turns those moments into Meta Conversions API events, built from an allowlist, so nothing that names a product, condition or medication leaves.
Two ways to connect
- Sylaris OS source (dedicated). Kalman has a built-in Sylaris OS source. It gives your clinic a webhook URL and a signing secret; Sylaris signs each event (
X-Kalman-Signature, HMAC-SHA256) in Kalman's event format, and the Kalman tag covers on-site steps like intake started and checkout. - Webhook catcher. Sylaris's existing order webhook can post to a Kalman webhook catcher as it is today. You catch a sample, map its fields once, and each delivery becomes an event. This is the quickest start.
Kalman and Sylaris OS are built by the same founder. That's why Sylaris OS has a dedicated source first; it isn't a reason to choose either product.
Which events to send
Approvals and refills matter most: they're the signal the browser pixel can't see. With the webhook catcher, Sylaris's order events map like this:
| Sylaris event | Kalman event | Meta receives by default |
|---|---|---|
order_ | purchase | Purchase, with the amount (you can switch it off) |
order_ | provider_ | Qualified, valued at the product’s projected lifetime value |
refill_ | refill_ | Repeat, with the amount |
checkout_ | checkout_ | InitiateCheckout |
questionnaire_ | intake_ | Nothing |
order_ | provider_ | 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 the price and projected lifetime value you set for each product.
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 with the webhook catcher
- 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 Webhook catcher. It gets its own URL and token and listens for samples for 15 minutes.
- Point Sylaris at it. Post the order webhook to the catcher with
Authorization: Bearer <token>, one event per request, with a stableevent_idon every retry. - Trim the payload. Leave out patient name, treatment, product name, conditions, medications and any other clinical field. Send a non-descriptive
product_id(likeprogram-a) and register it in Kalman with its price. - Carry the click. Save the
_kl_idcookie on the order at checkout and send it askl_idon every later event for that order. - Map, test, record. Take a test order through paid, approved and shipped, map the fields, test the mapping, then connect Meta and check the outbound event log.
For the dedicated source, choose Sylaris OS under Integrations instead; Kalman shows the webhook URL and signing secret to paste into the clinic's settings in Sylaris.
Related
- Bask Health guide (webhook catcher today)
- Telegra guide (webhook catcher today)
- MDI guide (webhook catcher today)
- Kalman compared (Ours Privacy, Curve)
- Kalman for agencies
- Pricing
Sylaris OS and Meta: common questions
Which should we use, the dedicated source or the catcher?
Start with the catcher if your clinic already sends Sylaris’s order webhook: no code changes beyond trimming the payload. The dedicated source adds signed events and on-site steps from the Kalman tag.
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.
Is Kalman only for Sylaris OS brands?
No. Stripe connects directly, and Bask Health, Telegra, MDI, CRMs and other systems connect through the webhook catcher.
What about Google Ads?
Google Ads conversions open as a beta in Q1 2027. Meta Conversions API is live today.
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