Calendly
| Status | Kind | How you connect |
|---|---|---|
| Coming soon | Scheduling | One click: approve bubbl3 on Calendly's own page |
Calendly isn't offered yet. This page says what it will do and what you can use meanwhile: a Lead URL, or Zapier, Make or n8n.
What it does
Connecting Calendly sends each new booking, and each routing form submission, to bubbl3 as it's made. Each one:
- becomes (or updates) a contact, matched on phone and email, with the answers to your booking questions and any UTM tracking;
- goes through the connection's lead source, which sets its labels, owner, consent and workflow;
- for someone bubbl3 already has, also counts as the conversion event Appointment booked.
Cancellations are recorded on the lead and change nothing else.
Setup
- In bubbl3, open Settings, Integrations, choose Calendly, then Connect, and approve bubbl3 on Calendly's page.
- Open the connection's lead source and set How did these leads agree to hear from you? Calendly records no consent, so "Not sure" records it as unknown; new invitees can still be texted, because you confirmed when connecting that everyone you send has agreed to receive texts. To use a booking question as consent, name it as the source's consent field.
- Choose the source's workflow if you want each booking texted.
Routing form submissions come in only if the Calendly user who connects is an owner or admin of the organization.
Disconnect
Disconnect from the connection page in Settings, Integrations.
- Stops at once: new bookings and submissions. bubbl3 deletes its webhook subscriptions in Calendly, and the lead source is paused.
- Deleted at once: bubbl3's tokens (Calendly is asked to revoke them).
- Kept: contacts made from bookings, with their messages, labels and consent. The paused lead source and its settings stay.
- Deleted later: stored deliveries are deleted 30 days after they arrived.
Data shared
From Calendly to bubbl3: each invitee's name, email, the number Calendly texts reminders to, the answers to your booking questions and UTM tracking; each routing form submission's answers.
From bubbl3 to Calendly: nothing but bubbl3's webhook subscriptions. bubbl3 never books, cancels or changes anything in Calendly.
Scopes and permissions
| Scope | Why bubbl3 needs it |
|---|---|
default | Calendly apps have one scope: read your account and manage bubbl3's webhook subscriptions |
Events
What bubbl3 receives
| Event in Calendly | In bubbl3 |
|---|---|
invitee.created | New lead. A booking: matched, labelled and, if you chose one, enrolled in the source's workflow. For someone bubbl3 already has, also "Appointment booked". |
invitee.canceled | New lead. Recorded on the lead as a cancellation; nothing else changes. |
routing_form_submission.created | New lead. Matched, labelled and enrolled like a booking. |
What bubbl3 writes back
Nothing. Calendly only sends bookings to bubbl3.
Sending rules that still apply
Calendly never texts anyone itself. What it sends bubbl3 can start the lead source's workflow, and every workflow text goes through the same checks as a text you send from bubbl3. Nothing in Calendly can turn them off.
- Consent. When you connect Calendly or create a lead source, you confirm that everyone you send to bubbl3 has agreed to receive texts from you, so its contacts can be texted straight away. bubbl3 never texts a contact who opted out, and a workspace set to text only opted-in contacts texts only them.
- Opt-out. Replying STOP opts a contact out at once.
- Quiet hours. No texts from 8:00 PM to 9:00 AM in the contact's own time zone (from the phone's area code). A text due then waits until the morning.
- Pacing. Each line texts at most 15 new contacts an hour and 50 a day (fewer while a new line warms up), and spaces texts 20 to 90 seconds apart. A big import or batch is queued and sent as the limits allow, never dropped.
- First messages. Until a contact replies, a text can't include links, photos or files, phone numbers or email addresses, must be 300 characters or fewer, and at most 3 texts go out.
What Calendly is told when bubbl3 doesn't send
Calendly has nothing to write a refusal to. You see it in bubbl3: on the message, or on the workflow run's step.
| Reason | Code | What you see |
|---|---|---|
| A link before the contact replies | pre_reply_link_blocked | Not sent: "Links can't be sent until the contact replies" |
| A photo or file before the contact replies | pre_reply_media_blocked | Not sent: "Photos and files can't be sent until the contact replies" |
| A phone number before the contact replies | pre_reply_phone_blocked | Not sent: "Phone numbers can't be sent until the contact replies" |
| An email address before the contact replies | pre_reply_email_blocked | Not sent: "Email addresses can't be sent until the contact replies" |
| A first message that is too long | pre_reply_too_long | Not sent: "First messages must be 300 characters or fewer" |
| Too many texts without a reply | pre_reply_message_limit | Not sent: "Already sent 3 texts without a reply. Wait for the contact to reply" |
| The same text to too many people today | identical_text_limit | Not sent: "This exact text went to 20 people from this line today" |
| The line is paused after unanswered texts | unanswered_streak_limit | Not sent: "This line is paused after too many unanswered texts" |
| The contact opted out | contact_opted_out | Not sent: "The contact opted out of texts" |
| The workspace texts only opted-in contacts | consent_required | Not sent: "This workspace only texts contacts who opted in" |
| No line can reach the contact | line_unavailable | Not sent: "bubbl3's line for this contact isn't available" |
| Quiet hours | quiet_hours | Held: "Scheduled for 9:00 AM America/Chicago, quiet hours" |
| The line's daily limit | daily_new_contact_cap | Held: "Scheduled for Oct 15, 9:00 AM America/Chicago: today's limit for this line is reached" |
| The line's hourly limit of new contacts | hourly_new_contact_cap | Held: "Scheduled for 2:00 PM America/Chicago: this hour's limit of new contacts for this line is reached" |
The numbers are the default limits; a line's own limits change them. bubbl3's other checks (no phone number, a number that doesn't match) have their own plain reasons.
Limits and known gaps
- A rescheduled booking arrives as a cancellation and a new booking.
- Every event type's bookings come in; you can't pick only some yet.
- No-shows aren't tracked.
Troubleshooting
- Bookings arrive but nobody is texted. The person opted out, or the lead source has no workflow chosen.
- Routing forms don't arrive. Reconnect as a Calendly organization owner or admin.
- The connection needs attention. Calendly refused to renew bubbl3's access. Reconnect.