Salesforce
| Status | Kind | How you connect |
|---|---|---|
| Coming soon | CRM | One click: approve bubbl3 on Salesforce's own page |
Salesforce 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 Salesforce lets bubbl3:
- import Leads (not converted) and Contacts: both, or only one kind, by Lead status, owner, or those changed since a date;
- check for new and changed Leads and Contacts every five minutes;
- log every text bubbl3 sends or receives as a completed Task on the record;
- keep opt-outs in step through a checkbox field you add,
bubbl3_SMS_Opt_Out__c; - update fields and a Lead's status when a workflow or conversion event asks.
Setup
You need full access to integrations in bubbl3, and a Salesforce user who can read and edit Leads and Contacts and create Tasks.
- Recommended: ask your Salesforce admin to add a checkbox field with the API name
bubbl3_SMS_Opt_Out__cto Lead and to Contact, visible to the connecting user. bubbl3 can't create fields. - In bubbl3, open Settings, Integrations, choose Salesforce, then Connect, and sign in on Salesforce's page.
- Choose what to import, check the count and the field mapping. Mobile is the number texts go to, then phone.
- Answer How did these leads agree to hear from you? It records each contact's consent; "Not sure" records it as unknown. Either way the contacts can be texted, because you confirmed when connecting that everyone you send has agreed to receive texts from you, unless your workspace only texts opted-in contacts.
Without the checkbox, a STOP is recorded as a completed Task that says the person opted out.
Disconnect
Disconnect from the connection page in Settings, Integrations.
- Stops at once: imports, the five-minute check, Task logs and writebacks.
- Deleted at once: bubbl3's access tokens (Salesforce is asked to revoke them) and the links between bubbl3 contacts and Salesforce records. Opt-outs still waiting to reach Salesforce are dropped.
- Kept: contacts imported from Salesforce, with their messages, labels and consent, unless you tick Also delete the contacts imported from it (needs full access to contacts). Tasks and field values bubbl3 wrote stay in Salesforce.
- Deleted later: the changes bubbl3 read are deleted 30 days after they were read.
Data shared
From Salesforce to bubbl3: Leads' and Contacts' names, mobile and phone, email, company (or account name), owner, lead source, a Lead's status, custom fields, and the opt-out checkbox.
From bubbl3 to Salesforce: a completed Task for each text sent or received, and for each text held or refused with the reason; the opt-out checkbox on STOP; field values and Lead statuses when you ask.
Scopes and permissions
| Scope | Why bubbl3 needs it |
|---|---|
api | Read and update Leads and Contacts, run the queries for imports and changes, and create Tasks |
refresh_token | Stay connected past your org's session timeout |
bubbl3 asks for nothing else: no full access, metadata or web scopes.
Events
What bubbl3 receives
| Event in Salesforce | In bubbl3 |
|---|---|
| A new Lead or Contact, found by the five-minute check | New contact. Imported and matched on phone and email; starts "Lead imported from CRM" workflows. |
| A changed Lead or Contact, found by the five-minute check | Contact updated. Changes are applied; starts "CRM contact updated" workflows. Ticking the opt-out checkbox opts the contact out. |
What bubbl3 writes back
| What | Where it shows in Salesforce |
|---|---|
| Text log | A completed Task on the Lead or Contact |
| Opt-outs | bubbl3_SMS_Opt_Out__c ticked, or a Task when the field doesn't exist |
| Field updates | The field you chose, by API name |
| Stage changes | A Lead's status (Contacts have none) |
| Notes | A completed Task from a conversion event |
Sending rules that still apply
Salesforce never texts anyone through bubbl3 itself. Its new and changed contacts can start your workflows, and every workflow text goes through the same checks as a text you send from bubbl3. Nothing in Salesforce can turn them off.
- Consent. When you connect Salesforce 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. bubbl3 also records it in Salesforce.
- 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 Salesforce is told when bubbl3 doesn't send
A completed Task on the Lead or Contact says "Text from bubbl3 to … wasn't sent" with the reason. A held text gets a Task saying when it's scheduled.
| 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 checkbox as the consent field opts out everyone not ticked. If you choose "A field in the CRM records it" and name a checkbox field, every record whose box isn't ticked reads
falseand is opted out in bubbl3 (not copied to your other CRMs). Name a field that's empty until someone answers, or a picklist with a real "No". - Changes arrive within about six minutes, not instantly: records changed in the last minute wait for the next check.
- bubbl3 leaves the last tenth of your org's daily API allowance for your other tools: at 90% used it waits an hour before calling again.
- Salesforce records have no tags, and list views aren't offered as import filters; filter by status, owner or date.
- Government Cloud orgs aren't supported.
- Salesforce has no contact time zone field, so quiet hours use the phone's area code.
Troubleshooting
- The connection needs attention. Salesforce stopped accepting bubbl3's access (a revoked session or a changed password policy). Reconnect from the connection page.
- Opt-outs show as Tasks. The
bubbl3_SMS_Opt_Out__cfield is missing or not visible to the connecting user. - A change didn't arrive. Wait for the next check; the connection page shows when it last ran and any error.