Google Ads lead forms
| Status | Kind | How you connect |
|---|---|---|
| Coming soon | Lead source | A bubbl3 lead source and its lead URL |
Google Ads lead forms 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
Google Ads lead forms can post each submission to a webhook. bubbl3's lead sources accept that payload as it is, so there's no app to install: each lead becomes (or updates) a contact, matched on phone and email, with its click id and campaign details, and can start the source's workflow.
Setup
- In bubbl3, open Settings, Integrations, choose Google Ads lead forms and create a lead source for it (or call
POST /v1/inbound-sourceswith the kindgoogle_ads_lead_form). Set its labels, owner, consent and workflow. - Copy the source's lead URL and key.
- In Google Ads, open the lead form's Lead delivery settings, paste the lead URL as the webhook URL, with the key, and send Google's test data. It shows up on the source as a test lead.
The lead forms quick-start has the details.
Disconnect
Remove the webhook from the lead form in Google Ads, then pause or delete the source in bubbl3.
- Stops at once: a paused source refuses every lead.
- Kept: contacts made from leads, with their consent evidence and click ids.
- Deleted later: stored lead deliveries are deleted 30 days after they arrived.
Data shared
From Google Ads to bubbl3: each lead's answers (name, phone, email and your questions), its gclid, campaign, ad group and form ids, and whether it's a test.
From bubbl3 to Google Ads: nothing. To send conversions back to Google Ads, use the Google Data Manager API integration.
Scopes and permissions
None: Google Ads posts to the source's address with the key you set, and bubbl3 never calls Google Ads for this.
Events
What bubbl3 receives
| Event in Google Ads | In bubbl3 |
|---|---|
| A lead form submission | New lead. Matched, labelled and, if the source has one, enrolled in its workflow. |
What bubbl3 writes back
Nothing.
Sending rules that still apply
Google Ads lead forms 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 Google Ads lead forms can turn them off.
- Consent. When you connect Google Ads lead forms 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 Google Ads lead forms is told when bubbl3 doesn't send
Google Ads 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 lead needs a phone number.
- Anything bubbl3 can't accept for that source (a wrong key, a paused source) gets the same refusal, so the answer never says which part was wrong.
Troubleshooting
- Google's test fails. Check the address and key match the source exactly, and that the source isn't paused.
- Leads arrive but nobody is texted. Check the source's consent setting and workflow.