Skip to main content

Make

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

Make 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 Make lets scenarios react to bubbl3 and act in it:

  • Watch modules (instant): Watch Inbound Messages, Watch Message Status, Watch Contacts Opting Out, Watch Conversion Events.
  • Actions: Send a Message (checked first), Check a Message, Create or Update a Contact, Add a Label to a Contact.
  • Search: Find a Contact.

The app runs on Make and talks to bubbl3 only through the public API with an API key you create.

Setup​

  1. In bubbl3, create an API key just for Make under Developers, API keys, with the least your scenarios need (see the scopes below).
  2. Open the bubbl3 app from Settings, Integrations, Make (the tile links to the app's invite) and add it to your Make organization.
  3. In a scenario, add a bubbl3 module and create a connection with the key.
  4. For Send a Message, map Idempotency key to the record's own id from the trigger plus something unique to the module, like {{1.data.message.id}}-welcome, so a re-run doesn't text twice. Don't use the event id: it changes with each delivery.

Disconnect​

Turn off the scenarios, delete the bubbl3 connection in Make, and revoke the key in bubbl3 under Developers, API keys.

  • Stops at once: once the key is revoked, every module fails and no text is sent. Detaching a Watch module deletes its webhook endpoint in bubbl3.
  • Kept: everything the scenarios created in bubbl3 (contacts, labels, messages) stays.

Data shared​

From bubbl3 to Make: each Watch module reads the message, contact or conversion back from bubbl3 and passes bubbl3's copy on; actions and searches return the records the API returns.

From Make to bubbl3: whatever your scenario maps into a module: the recipient, text, line and idempotency key for Send a Message; a contact's phone, name, email and labels for the contact modules.

Scopes and permissions​

API key scopeWhy the app needs it
readFind contacts, read back what a Watch module received, and fill the dropdowns
sendCheck and send messages
adminOnly for Watch modules (they create and delete webhook endpoints) and for creating, updating or labelling contacts

Events​

What bubbl3 sends Make​

bubbl3 eventModule in Make
message.receivedWatch Inbound Messages
message.statusWatch Message Status (filter on delivered or failed)
contact.opted_outWatch Contacts Opting Out
conversion.<key>Watch Conversion Events, for the event you pick

Make passes a module the parsed delivery rather than the signed original, so each Watch module reads the record back from bubbl3 with your key before the scenario runs. A delivery naming something bubbl3 doesn't have starts nothing.

Sending rules that still apply​

Make 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 Make 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 Make is told when bubbl3 doesn't send​

A refused text stops the Send a Message module with bubbl3's reason, and nothing is sent. A held text is queued, and the 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​

  • Photos and custom fields aren't in the modules yet.
  • If two runs create the same new contact at the same moment, one fails with bubbl3's message.
  • A Watch module looks for the message among the contact's 100 newest of that direction; a delivery retried after more than 100 newer messages starts nothing.
  • The app has no throttle or retries of its own: bubbl3 paces what it accepts, and Make's own retries are safe with an idempotency key.

Troubleshooting​

  • A module stops with a reason. bubbl3 refused the text (for example a link before the first reply, or an opt-out) and sent nothing.
  • A Watch module never fires. Check the key has admin, and that the scenario is on: turning it on creates the webhook endpoint in bubbl3.
  • "Unauthorized". The key was revoked; create a new one and update the connection.