Skip to content

Jobber to Google Ads: map the job, the invoice and the payment separately

A Zap can move an event without proving what happened to the customer. Define the stage, preserve its source, and test the correction path before using it for bidding.

TL;DR

  • Jobber and Zapier document events for requests, quotes, created jobs, closed jobs and invoices. A created job is not proof of completion; a created invoice is not proof of payment.
  • Build a field map from the original inquiry to the chosen business event and Google Ads import. Keep the original event time and a stable record identifier through retries.
  • Check the campaign's actual goals before enabling bidding. Secondary actions can still be used for bidding when included in a custom goal. Test missing identifiers, duplicates and cancellation corrections first.

A shop connects Jobber to Google Ads, selects an invoice trigger and starts reporting revenue. The automation runs successfully. Then the owner discovers that some invoices remain unpaid, one job produced multiple invoice records, and a canceled booking still appears as a conversion.

The connector moved the records it was given. The measurement still needs an operating definition and a reconciliation process. This guide provides a setup map and acceptance checklist based on the current public documentation. We have not run this workflow inside a customer's Jobber, Zapier or Google Ads account as part of this review.

What connects Jobber to Google Ads?

The public route reviewed here uses Jobber events and Zapier's Google Ads Send Offline Conversion action. Google's Zapier documentation describes that connector route and its requirements. Verify the current Jobber plan entitlement, Zapier plan and account permissions before building it; this article does not establish what your subscriptions include.

The Zapier integration catalog lists both offline-conversion and customer-list actions. Adding someone to a customer list is a different operation from importing a job conversion. Choose the action deliberately, then inspect the fields exposed in your actual Zap. The catalog lists a conversion action and timestamp, with value and currency among the available fields; the selected matching method determines the identifiers you need.

Jobber's integration documentation also says deactivating the team member who connected Zapier disconnects the integration. Assign a connection owner and an office handover check.

Give each event a business definition

This is a proposed measurement map. The Google Ads action names below are examples you would create, not native Jobber fields or preconfigured goals.

Jobber event in the public documentationProposed Google Ads actionWhat it establishesAdditional rule needed
New RequestServiceable inquiryA request record existsQualify the service and area; remove spam and repeats before calling it qualified
Quote Sent / Quote ApprovedQuote sent / quote approvedA quote reached that office stageKeep the two stages distinct; repairs can bypass a quote
New Job CreatedJob bookedA job record was createdConfirm your office creates it for a genuine booking; exclude internal or unrelated work
New Job Completion, called Job Closed in ZapierJob closedSomeone closed the jobCheck the close status against your definition of completed work
New InvoiceInvoice createdA bill existsInvoice amount is billed value, not collected cash
Invoice UpdatedInvoice changedAn invoice was editedInspect the actual payload; do not assume every edit is a payment

The reviewed trigger lists do not establish a dedicated paid-invoice event. If the owner wants collected revenue, prove where payment status, payment date, partial payments and refunds come from in the actual workflow. Keep invoice value labeled as invoice value until that evidence exists.

For a recurring job, decide whether the conversion represents the original customer acquisition, each completed visit or the closed recurring job. Those are different units. Name the action so the office can tell which it counts.

A campaign name or a “Google” lead-source label cannot identify the particular ad click that preceded a job. Google's GCLID setup requires capturing the click ID and storing it with the prospect. The value is case sensitive. Auto-tagging and a working capture path are prerequisites for that matching route.

Start with a form or capture path you can inspect. Check redirects, form submission and the receiving record; do not assume an embedded third-party form retains every landing-page parameter. A UTM field and a click ID serve different purposes. If your route cannot carry the identifier into Jobber, maintain a controlled linking record outside it and test the join.

Do not join a later job to “the latest lead with this email” without checking the inquiry and property. One customer can submit several requests, own more than one property and have both old and new work. A stable inquiry identifier and explicit relationship to the Jobber records make that ambiguity visible.

Google also supports other matching approaches, including enhanced conversions for leads. Follow the requirements of the method actually selected in your account, including applicable customer-data and consent requirements. Do not manufacture a click ID or substitute another customer's identifier when matching data is absent. Record an unmatched event for review.

Phone-originated jobs need their own proven matching path. A form-only test does not establish that call-originated work is reporting. Check the coverage of calls and forms separately before using the reported job mix for bidding.

Write the field map before building the Zap

The following is a handoff schema for your implementation, not an assertion that all these fields exist in a stock Zapier action. Have the implementer show where each value is stored, how it is retrieved and how a failed join appears.

Handoff valueSource of truthAcceptance rule
Inquiry IDOriginal intake recordStable across retries and linked explicitly to the job
Matching identifierCaptured ad interaction or permitted matching dataPreserve the original value and provenance; missing means unmatched
Jobber client, request and job IDsRelated Jobber recordsVerify the relationship and property; an email match alone is insufficient
Business event and event IDChosen job, invoice or payment eventDistinguish booked, closed, billed and paid; use a stable event key
Conversion actionApproved Google Ads actionMap to one defined stage, with account and action recorded
Conversion timeTime the chosen business event occurredInclude the correct timezone; a retry keeps the original event time
Value and currencyDefined invoice or collected-value ruleState what the value includes; never relabel billed value as paid
Send state and Google resultImport ledger and destination diagnosticsKeep pending, accepted, rejected, unmatched and correction-needed states distinct

For example, an invented closed-job event might use a business key such as job-1042:closed in your import ledger. Retrying that event must refer to the same business occurrence. Creating a fresh timestamp for each retry changes the record you are asking the destination to interpret.

Keep payment allocation rules explicit. If one invoice has two payments, the owner must choose and document how collected value is represented. Summing invoice amount and payment amounts would count the same economic value twice. A new job from a returning customer also needs a rule separate from new-customer acquisition.

Count settings do not replace a duplicate check

Google's counting options distinguish one conversion from every conversion after an ad interaction. Choose the setting that matches the business objective. “One” does not define a new customer, validate the CRM join or prove that your retry handling works.

Maintain a sending ledger and use the destination's supported identifiers. Before releasing a retry, inspect whether the previous request was explicitly rejected, is still pending or was accepted. An uncertain timeout is not proof that nothing arrived. Reconcile it before sending again.

For corrections, Google's adjustment instructions use order IDs to identify conversions and distinguish retraction from value restatement. They require original imports and adjustments in separate files. Check which correction route your actual integration supports before you need it. The presence of a job trigger does not establish an automatic cancellation or refund workflow.

Decide what the campaign bids toward

Read the campaign's goals, the included actions and their primary or secondary settings together. Google's primary and secondary guidance says a primary action is used for bidding when its standard goal is selected. It also states an important exception: actions in a custom goal are used for bidding even when set to secondary.

That makes “set it Secondary” an incomplete isolation instruction. For an observation-only test, verify that the campaign's standard and custom goals exclude the test action from bidding. Then inspect the actual reporting and settings after the import.

Choose the business stage with both decision value and adequate reporting coverage. A completed job may be meaningful but delayed; a booked job may arrive sooner but include cancellations. Keep other stages available for reconciliation while avoiding accidental optimization toward several stages of the same customer's journey. The primary/secondary guide walks through the account-setting review.

Google's import guidelines and selected data source determine timing and eligibility. Verify the action's window, event age and upload schedule in the current setup. A universal “everything up to 90 days imports” rule overlooks source-specific lookback and matching conditions. Preserve late or rejected rows for reconciliation rather than silently dropping them from the office report.

Run these acceptance tests before changing bidding

Start with a controlled test submission and labeled internal records. Inspect identifier capture without clicking your own paid ad. Use supported test or validation facilities where available; keep fabricated identifiers and test events out of live optimization. Confirm a real eligible event separately under your normal measurement process.

TestExpected result before approval
A request becomes a booked job, then a closed jobEach chosen stage has its own definition and original timestamp; none is labeled paid automatically
Invoice created but unpaidBilled value stays billed; collected value remains absent
Same event delivered twiceLedger detects the same occurrence; destination reconciliation shows no unintended extra conversion
Two requests from the same customerCorrect request, property and job remain linked; the latest email row does not overwrite provenance
Missing or malformed matching identifierEvent is quarantined as unmatched or rejected with a reason; no guessed identifier
Canceled job or partial refundNamed owner can execute the tested retraction or restatement path and confirm the result
Connector owner deactivatedMonitoring detects the disconnect and the documented handover restores the right connection
Secondary test action inside a custom goalSettings review catches its bidding eligibility before the test is allowed to affect the campaign

Record both the automation result and the Google Ads import result. A green Zap run establishes that its steps ran; it does not establish that Google matched the event or used the intended stage. Reconcile weekly by action and event date, allowing for processing and reporting delay.

What to ask your agency to show

Ask for one traceable inquiry-to-job example, the field map, the import ledger, the destination's accepted and rejected results, and the campaign-goal readback. Include the correction test and a count of unmatched events. Agree who checks the connection when the office team changes.

If these definitions are still being cleaned, use the first-20 inquiry review before judging a channel from a CRM source total. For planning jobs, available hours and cash together, use the 90-day HVAC marketing plan template.

Before connecting a correction to your account, use the conversion-adjustment ledger and offline lab to reconcile a cancellation or refund against its original import. The worked records are synthetic; the tool prepares a review rather than uploading to Google Ads.

What this doesn't cover

This is a documented setup and acceptance map, not a tested integration in your accounts. Actual field availability, account entitlements, identifier coverage, payment semantics and destination acceptance still need proof in the chosen workflow. It does not estimate incremental advertising revenue.

FAQ

Does Jobber integrate with Google Ads? The documented route reviewed here uses Zapier events and Google Ads offline conversion import. Verify the event, matching method and actual destination action; a customer-list template does a different job.

Should I send the request, the job or the invoice? Give each stage a separate definition and reconcile them first. Choose bidding goals only after checking reporting coverage, delay and campaign settings. An invoice is billed value until payment is separately established.

Does Count One remove duplicate customers? It is a Google Ads counting choice after an ad interaction. It does not define a unique customer in Jobber or validate the linkage between an inquiry and a later job. Test retries and returning-customer rules separately.

Sources

All checked October 19, 2026. Provider documentation supports the platform behavior; the field map and acceptance tests are our proposed operating method.

Lonta AI provides managed marketing for home-service businesses. The free strategy can include a review of what your account counts and which job-stage connection still needs proof.

Request your free strategy

One page, five details, no card and no call.

Would rather talk it through? Ask for a callback on the form and pick a window. The person who would run your account calls you, not a salesperson.

This sets the testing pace. There is no minimum.

A good callback window or the first problem you want us to look at

No card and no call. Read-only access only.