Integrations · Native

PreviewMD integrates with any webhook.

Paste a URL into your dashboard and every captured lead posts to it as JSON the moment it happens. That covers your EMR, an automation platform, or something your own developer wrote.

POST · your URL
{
“first_name”: “Sarah”,
“last_name”: “M.”,
“email”: “sarah.m@example.com”,
“phone”: “+12395550148”,
“procedure”: “Facelift Visualization”,
“page_url”: “https://yourpractice.com/facelift/”,
“source”: “PreviewMD Widget”,
“consent”: true,
“session_id”: “a3f9…”,
“timestamp”: “2026-08-12T14:02:11Z”
}

The whole lead, as JSON.

The same payload every time, so whoever wires up the receiving side can build against it once and leave it alone.

Name, email and phone, exactly as the patient entered them.

The procedure previewed and the page it happened on, so attribution survives the hand-off.

Consent and a timestamp, for the record you have to keep.

A session id, which ties the lead to the preview in your PreviewMD analytics.

Under the hood

The payload, and what happens when your endpoint refuses it.

The webhook fires once per captured lead, as a JSON POST to the URL you provide, at the moment of capture rather than on a schedule. The body carries the patient’s first and last name, email, phone, the procedure they previewed, the page they were on, their consent, a session id and a timestamp. That is the whole payload. There is no photo, because PreviewMD keeps none once the preview is made, and there is nothing else appended for you to filter back out. The delivery is one attempt and no safety net: the payload is held in memory and posted, never written to disk, never queued, and never retried out of storage if your endpoint refuses it. A failure alerts us with the status code and nothing else, so a broken endpoint gets chased without lead data sitting in a spool somewhere.

How it connects

01

Paste your URL into the Integrations tab in your PreviewMD dashboard.

02

Fire a test payload that mirrors a real lead key for key, so the receiving side can be built and checked before you go live.

03

Every captured lead posts to that URL as it happens. Add native destinations alongside it and each one gets the full lead independently.

Questions

Questions.

Does PreviewMD support webhooks?

Yes, on every paid plan. Set your URL in the dashboard and each captured lead posts as JSON the moment it happens, with a key-for-key test payload available while you wire up the receiver.

What is in the webhook payload?

First and last name, email, phone, the procedure previewed, the page URL, the source, consent, a session id and a timestamp, as JSON. No patient photos; PreviewMD does not store them.

Can I use a webhook and a native integration together?

Yes. Every destination you connect gets the full lead independently, so a webhook into your EMR and a GoHighLevel connection can run side by side.

Does it retry a failed delivery?

No. Delivery is a single immediate post. The lead is always captured in PreviewMD either way, and a delivery failure raises an alert on our side.

What can I connect it to?

Anything that accepts an inbound post: an EMR’s inbound API, an automation platform like Keragon, or software your practice had built.

PreviewMD mark

See your result before you decide.

Put it on your site before your next consult.

14 days free on any plan. Card up front, cancel anytime.