Count Calendly bookings
Connect Calendly with a personal access token so every booking, cancellation and no-show reaches Luria from Calendly itself and credits the page version the visitor saw.
About 5 minutes
Connect Calendly and each booked call reaches Luria from Calendly, not from a thank-you page. Cancellations, reschedules and no-shows update the same booking, so your booked-call numbers stay right.
Luria creates one webhook in your Calendly account and deletes it when you disconnect. It never books, cancels or edits anything.
What you'll need
- The Luria tag on the page that shows your Calendly embed (Install on a custom site)
- A Calendly Standard plan or above (Calendly only offers webhooks on paid plans)
- Connections in the Luria dashboard. It is rolling out; if you do not see it, email hello@luriart.com
Steps
Step 1: Create a personal access token
In Calendly open Integrations → API & Webhooks, click Generate new token, name it Luria, and give it these scopes: users:read, webhooks:read, webhooks:write, scheduled_events:read. Copy the token; Calendly shows it once.
Step 2: Paste it into Luria
In luriart.com/app open Connections → Calendly and paste the token. Luria checks it, subscribes to bookings, cancellations and no-shows for your own Calendly user, and shows each check as it passes.
Step 3: Pass the visitor's Luria id into the embed
Calendly keeps utm_content with each booking, so put the visitor's Luria id there. For an inline embed:
<div id="calendly-embed" style="min-width:320px;height:700px"></div>
<script src="https://assets.calendly.com/assets/external/widget.js"></script>
<script>
Calendly.initInlineWidget({
url: "https://calendly.com/YOUR_LINK/30min",
parentElement: document.getElementById("calendly-embed"),
utm: { utmContent: localStorage.getItem("luria_sid") || "" }
});
</script>On a plain Calendly link, add ?utm_content= plus the same id. Without it Luria matches by the invitee's email when that email already reached Luria; otherwise the booking still counts in your numbers, just not toward a split test.
Step 4: Remove any booking thank-you line
If a thank-you or /booked page counts the booking with window.luria.convert("booked_call"), or you rely on the /booked path being auto-counted, remove it. Calendly is the record now, and keeping both counts the call twice.
Verify it worked
- Connections → Calendly shows Token accepted and Webhook active.
- Book a test call from your own page. Within a minute the card shows "Last booking event received", and if your goal is Booked calls, "Conversions this period" on Overview goes up by one.
- Cancel the test call. The booking changes to cancelled instead of adding a second row.
Full checklist: Verify your install.
Common failures
- "It needs a Standard plan or above". The Calendly account is on the free plan, which has no webhooks.
- "Webhook disabled" on the card. Calendly turns a webhook off after 24 hours of failed deliveries. Reconnect to create it again.
- Bookings arrive but no test gets credit.
utm_contentis empty; check Step 3 runs after the Luria tag has loaded once on that browser. - Only your own bookings arrive. The connection covers the Calendly user who made the token. For a whole team, email hello@luriart.com.
- Counted twice. A thank-you line is still active. See Step 4.
Next steps
Count Stripe payments
Paste one private Luria URL into Stripe so every payment, renewal and refund reaches Luria from Stripe itself. No Stripe key needed.
Count PayPal payments
Return PayPal buyers to a thank-you page on your own site and count the purchase there, because there is no PayPal connection to set up.