Skip to main content

Zapier

StatusKindHow you connect
Coming soonAutomation toolAdd the bubbl3 app in Zapier with a bubbl3 API key

Zapier 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​

The bubbl3 app for Zapier connects bubbl3 to the thousands of apps Zapier supports, with no code.

  • Triggers: New Inbound Message, Message Delivered or Failed, Contact Opted Out, New Conversion Event.
  • Actions: Send Message (checked first), Check Message, Create or Update Contact, Add Label to Contact.
  • Search: Find Contact. Pair it with Create or Update Contact for "Find or Create Contact".

The app runs on Zapier and talks to bubbl3 only through the public API with an API key you create, so every text follows the same rules as any API send.

Setup​

  1. In bubbl3, create an API key just for Zapier under Developers, API keys. Give it the least your Zaps need (see the scopes below).
  2. Open the bubbl3 app from Settings, Integrations, Zapier (the tile links to the app's invite), or search for bubbl3 in Zapier.
  3. In Zapier, connect your bubbl3 account and paste the key. Zapier checks it with one read call.
  4. Build a Zap. For Send Message, map an Idempotency key: the trigger's ID plus something unique to the step, like {{trigger id}}-welcome, so a replayed run doesn't text twice.

Disconnect​

Turn the Zaps off and remove the bubbl3 connection in Zapier, then revoke the key in bubbl3 under Developers, API keys.

  • Stops at once: once the key is revoked, every action fails with "reconnect" and no text is sent. Turning a Zap with a bubbl3 trigger off deletes its webhook endpoint in bubbl3.
  • Kept: everything the Zaps created in bubbl3 (contacts, labels, messages) stays. Nothing bubbl3 sent Zapier is deleted from Zapier's task history by bubbl3.

Data shared​

From bubbl3 to Zapier: for triggers, the message, status, contact or conversion event in each signed webhook delivery; for actions and searches, the records the API returns (messages, contacts, labels, lines).

From Zapier to bubbl3: whatever your Zap maps into an action: the recipient, text, line and idempotency key for Send Message; a contact's phone, name, email and labels for the contact actions.

Scopes and permissions​

API key scopeWhy the app needs it
readTest the connection, find contacts, and fill the line, label and event dropdowns
sendCheck and send messages
adminOnly for triggers (they create and delete webhook endpoints) and for creating, updating or labelling contacts

admin also lets a key manage the workspace's webhooks, lines, contacts and workflows, so don't add it if your Zaps don't need it. A step that needs it says so.

Events​

What bubbl3 sends Zapier​

bubbl3 eventTrigger in Zapier
message.receivedNew Inbound Message
message.statusMessage Delivered or Failed, with the reason for a failed text
contact.opted_outContact Opted Out
conversion.<key>New Conversion Event, for the event you pick

Each delivery is signed, and the app checks the signature before the Zap runs.

Sending rules that still apply​

Zapier reaches bubbl3 only through the public API with your key. Sending checks the text first (POST /v1/messages/check), then sends it through the same checks as any API send. No setting in the app turns a check off.

  • Consent. When you connect Zapier 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 Zapier is told when bubbl3 doesn't send​

A refused text halts the Zap step with bubbl3's reason, and nothing is sent. A held text is queued, and the step's output says "Scheduled for …" with the reason.

ReasonCodeWhat you see
A link before the contact repliespre_reply_link_blockedNot sent: "Links can't be sent until the contact replies"
A photo or file before the contact repliespre_reply_media_blockedNot sent: "Photos and files can't be sent until the contact replies"
A phone number before the contact repliespre_reply_phone_blockedNot sent: "Phone numbers can't be sent until the contact replies"
An email address before the contact repliespre_reply_email_blockedNot sent: "Email addresses can't be sent until the contact replies"
A first message that is too longpre_reply_too_longNot sent: "First messages must be 300 characters or fewer"
Too many texts without a replypre_reply_message_limitNot sent: "Already sent 3 texts without a reply. Wait for the contact to reply"
The same text to too many people todayidentical_text_limitNot sent: "This exact text went to 20 people from this line today"
The line is paused after unanswered textsunanswered_streak_limitNot sent: "This line is paused after too many unanswered texts"
The contact opted outcontact_opted_outNot sent: "The contact opted out of texts"
The workspace texts only opted-in contactsconsent_requiredNot sent: "This workspace only texts contacts who opted in"
No line can reach the contactline_unavailableNot sent: "bubbl3's line for this contact isn't available"
Quiet hoursquiet_hoursHeld: "Scheduled for 9:00 AM America/Chicago, quiet hours"
The line's daily limitdaily_new_contact_capHeld: "Scheduled for Oct 15, 9:00 AM America/Chicago: today's limit for this line is reached"
The line's hourly limit of new contactshourly_new_contact_capHeld: "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​

  • Zapier gives an app no stable run id, so Send Message only avoids double texts when you map an idempotency key.
  • A Zap that loops one text to many people can pass the check every time and still have texts past the line's identical-text limit fail at send time. "Message Delivered or Failed" reports each one with its reason.
  • The check decides as if a contact is on iMessage when bubbl3 doesn't know yet. If they turn out not to be, the SMS rules decide at send time.
  • The app has no throttle or retries of its own: bubbl3 paces what it accepts.

Troubleshooting​

  • "Reconnect" in Zapier. The key was revoked or expired. Create a new key and reconnect.
  • "Triggers need a key with the admin scope". Create a key with admin for that Zap, or use a trigger-free Zap.
  • The step halted with a reason. bubbl3 refused the text, for example a link before the contact's first reply or an opt-out. Nothing was sent; fix the text or the audience.
  • The output says scheduled. bubbl3 accepted the text and is holding it for quiet hours or a line limit; it goes out at the time shown.