ServiceFlow Pro Docs

Google Ads & Local Services Ads

Updated
Google Ads integration is the connection that turns a lead-form submission into a lead in ServiceFlow. You sign in with Google and pick the account. ServiceFlow stores that connection under Settings. New form leads then show up in the lead list. The connection uses Google Ads and the Google Ads API.
A lead form reaches ServiceFlow only after the OAuth connection is saved under Settings. The webhook URL and validation key are pasted into the lead form in Google Ads. The person who connects the account has to be able to open that Google Ads account. ServiceFlow creates a lead record when Google posts the form, and it can create the customer from that lead. A test send from the lead form is the check that the webhook is live. If the organization has not turned the Google Ads integration on, the connect button is not there. A CSV export is still the only way those leads arrive in that case. The same path covers Local Services Ads lead forms. The admin who manages integrations does this work, not the technician on the job. One missed webhook means the form still sits in Google Ads and never becomes a lead in the list.

What does the Google Ads integration do?

After you connect, ServiceFlow receives leads from Google Ads Lead Forms and Local Services Ads via webhooks, creates lead records, and can create customers. You manage the connection and webhook credentials from Settings → Integrations.

1. Connect in ServiceFlow Pro

Go to Settings → Integrations → Google Ads / Local Services and start Connect Google Ads Account. Complete the Google OAuth consent screen and sign in with the Google account that has access to the Ads accounts you use.

2. Configure the webhook in Google Ads

When the connection succeeds, you will see a Webhook URL and a validation key (sometimes shown as google_key). In Google Ads, open your Lead Form extension or asset, enable webhook integration, paste the URL and key, then use Send test data to confirm delivery.

3. Leads and customers

Incoming leads are stored in ServiceFlow with source information for reporting. Depending on your settings, new customers may be created automatically from lead data. You can review and adjust behavior in the same integration area.

Technical reference

For API endpoints, payload mapping, and platform-level configuration details, use your organization's technical documentation link below.
The full API and webhook reference is available from your team or administrator.

What arrives, and what does not

A successful webhook creates a lead in ServiceFlow with source information you can filter later. It does not create a job, it does not put a technician on the calendar, and it does not send the customer an estimate. Those are the same steps as any other lead: qualify it, create the customer if you want a full record, then estimate or schedule. If your integration settings say to auto-create a customer, a matching customer is reused instead of inserting a duplicate when ServiceFlow can match the lead. If that setting is off, the lead stays a lead until someone converts it.
Lead Form extensions and Local Services Ads both use the webhook you copied. They are not two different menus inside ServiceFlow. The Google side is where you choose which form or asset posts to that URL. A form that never had webhook delivery turned on will keep collecting leads in Google and ServiceFlow will stay empty. That is a Google Ads setting, not a delay in the CRM.
Send test data from the Google lead form after you paste the URL and the validation key. A test that fails usually means the URL was trimmed, the key does not match the one on Settings → Integrations, or the Google account you authorized cannot see that Ads account. Re-copy both values from ServiceFlow. Do not invent a second webhook. Regenerating credentials invalidates the key already pasted in Google, so update Google in the same sitting.

Who can connect it

The organization has to have Google Ads integration available. A technician who can see jobs cannot finish OAuth if they cannot open Settings → Integrations. Use the Google user that actually administers the Ads account. A personal Gmail with no access to the client account will connect and then deliver nothing useful. After consent, the integration page is the place you copy the webhook URL and the key Google calls google_key. Store them in Google Ads, not in a shared note that drifts out of date.
Pause or disconnect when you stop a campaign. New posts stop. Leads already stored stay in Leads so reporting for the weeks you were running ads does not disappear. Manual leads your office typed are a different source. Do not delete them to “clean up” a Google test. Angi is a separate integration with its own webhook and its own registration email. Connecting Google does not register Angi.

After the first real lead

Open Leads and confirm the source, the name, the phone, and whatever comment the form sent. Assign an owner if the list is shared. Create Customer when they are a real account. Create Estimate when the form was a quote-style submission and you want the builder. Neither button schedules the work. If the same person already exists, ServiceFlow opens that customer instead of erroring on a duplicate. Follow up from the lead while the phone number is still the one they typed. This integration does not issue a masked Angi-style number. If you also run Angi, those masked expirations are documented on the Angi setup page, not here.
Reporting on ad spend stays in Google. ServiceFlow shows the leads that were delivered and what your office did with them. If a campaign has spend and zero ServiceFlow leads, check the webhook test before you change the bid. The technical payload map, when your admin has published a link, is the reference for field names. Day-to-day staff only need the integration page, the test send, and the Leads list.

A week after you turn a campaign on

Compare Google's lead count for that form with the Leads list filtered to the Google source. They should be close. A gap means posts are failing, not that ServiceFlow is slow. Open one lead and check that the phone and the form comment survived. Then decide customer versus estimate. Leave status at new until a person owns it. Do not drag it to converted on the estimate board. Converted on a lead means a customer was created. Converted on an estimate means a job was created. Those words are not the same screen.
Local Services Ads reviews and dispute tools stay in Google. ServiceFlow does not answer an LSA review from this integration. It only receives the lead the webhook delivered. If you need the raw JSON, use the technical reference your admin linked. If that link is empty, the integration page and the test send are still enough to go live.
Related: Setup & Configuration for other integrations and business settings.