Jobber → Zapier → EMR · 12 min read
Set up review requests for a plumber using Jobber
Written by Mannie Gill, Founder & Lead Developer at EmbedMyReviews. LinkedInPublished
For a plumber using Jobber, connect the Job Closed event in Zapier to EMR’s inbound automation. Add a completion check before sending the customer to your campaign: a closed Jobber job can also be a cancellation. This walkthrough uses a simple staff completion marker, then sends an email review request automatically.
TL;DR
The short version
- The owner connects Jobber to Zapier and adds DONE | to a job title only after the work is finished. You build and maintain the Zap.
- Job Closed → check completion and customer email → Webhooks by Zapier POST → EMR campaign.
- Budget for a paid Zapier plan and a Jobber plan with Zapier access. This is a bridge workflow; there is no native Jobber connection to switch on in EMR.
Before you set this up
This Jobber recipe needs a completion marker, suitable trigger fields and paid Zapier. If staff would be adding a new manual step either way and you only need a first request per customer, a short form may be easier.
Compare the simpler staff-form route first →Worked client example
A plumbing company using Jobber
“We finish a tap repair, close the job in Jobber, and want the customer to get our review request an hour later. Can you set that up?”
Their starting point: The office closes one-off repair jobs in Jobber. Each client record has an email. They already have a Jobber plan with Zapier access and are happy to confirm completion when closing a job.
Why this route: Use Jobber’s existing Zapier connector and EMR’s receiving URL. A filter checks completion before EMR gets the customer. There is no custom API build.
What happens automatically?
- 01
Office confirms completion and closes the job
- 02
Zapier checks the job and sends its customer to EMR
- 03
EMR waits one hour, then starts the review request
Choose this when: One-off plumbing repairs where staff close the job after completing the work and can reliably add the completion marker.
Choose another route when: A request after every visit on an ongoing contract, or a team that cannot maintain a completion check. Closing a whole job is different from finishing one visit.
Who does what?
The business owner
Authorises Jobber, provides an email on client records, and teaches the office to confirm completed work before closing each job. The owner does not build the Zap or copy contacts into EMR.
You, the agency
Prepares the campaign, builds the filter and POST action, maps the fields in EMR, tests successful and cancelled jobs, and monitors failures.
Set up EMR Automations while signed in as the agency owner and working in the intended client location. The business owner handles access to their own software. They do not need your agency login or a daily EMR task.
A message you can send the business owner
“I can connect your completed plumbing jobs to your review campaign. You will approve Jobber’s connection and add DONE | to the job title only when the work is finished, before closing it. I will set up the automation, test it with our own contact details and look after failures. We will confirm the Jobber and Zapier plan costs before switching it on.”
Once it is connected
The office keeps customer emails accurate and marks each eligible completed repair before closing it. Zapier and EMR handle the transfer and request. The agency checks failed runs and rechecks the connection after staffing or workflow changes.
Have these ready
- Jobber Connect, Grow or Plus, and someone who can authorise its connection to Zapier.
- A paid Zapier account that you or the client will maintain, plus a tested email campaign in this EMR client location.
- A test client with your own email and a one-off test job with no customer billing or automatic payment attached.
- Before paying for new tools, confirm a Job Closed sample in this account includes the job title, job ID and actual client email. If the connector does not provide them, use the simpler form route instead of building on guessed fields.
First client? Prepare the review campaign first
From your agency, open Business → Customers → Manage Customers → Open dashboard (or the Customer tab if shown). Select the business location you are setting up.
A campaign is the review message and any follow-ups you want EMR to send. A feedback form controls where the customer is invited to leave their review.
Use Grow → Review Tools → Feedback Forms to prepare the customer’s review destination, then Grow → Campaigns → Request Reviews to create the campaign. Choose its feedback form, message and working sender. Start with one email step for this walkthrough. Add your own test contact through Grow → Campaigns → Invites and verify the message and link.
Set the campaign’s sending window and duplicate-request window. Honour opt-outs. For Google review campaigns, ask eligible customers consistently, leave review gating off and offer no incentives.
Do I need to understand APIs or write code?
Zapier watches the job event and passes the customer details to EMR’s receiving URL. EMR then runs the review campaign. You choose fields from menus; you do not write code or need an EMR API key. Use the Zapier card under EMR Automations. The separate outbound EMR app in Zapier sends events in the other direction.
A key or token is a private connection credential. A webhook is an automatic notice that something happened, such as a payment completing. Keep connection credentials private; the business owner does not need to share their everyday login password.
The walkthrough
Set it up, step by step
Build one Zap with a completion check. Work through this together the first time.
Together
Agree what counts as finished
For this example, the plumbing office adds DONE | at the beginning of the job title after the repair is finished: DONE | Kitchen tap repair. This is a convention you are choosing, not a built-in Jobber status.
Apply it to all eligible completed repairs, regardless of how happy you think the customer is. Never add it to cancelled work, quotes or future jobs. If a marked job is reopened, remove the marker until it is complete again.
Agree that the request follows completed work, not payment. If the owner needs a paid-invoice trigger, this Job Closed workflow is the wrong event.
Before moving on: The office understands that DONE | means the work actually happened.
Agency
Create a receiving URL in EMR
Open the client dashboard and select the right location. Go to Connect → Integrations → Automations → Connect Zapier. If you see Manage Zapier instead, open it and choose New Connection.
Name the connection for this client and workflow, select the prepared email campaign, and continue to the test screen. Copy the Endpoint URL. Leave the wizard open while you build the Zap. The URL is private: it identifies this connection.
Leave the optional signing setting at its default for this basic setup. You do not need to add an EMR API key or use the developer API.
Before moving on: You have one receiving URL for this client location and campaign.
Together
Connect Jobber and capture one finished job
In Zapier, create a Zap named for the plumbing client. Choose Jobber as the trigger app and Job Closed as the event. Have the owner sign in to Jobber and approve the connection when prompted.
In Jobber, prepare the test job using your own client email. Add DONE | to its title, save it, then open the job and choose More Actions → Close Job. Do not use a real customer or a job that could collect an automatic payment.
Back in Zapier, test the trigger and select that job. Inspect the returned fields. You need the completed job’s title, its ID and the client’s email. Check the actual email value rather than relying on a field label. If one is absent, follow the missing-fields help below before proceeding.
Before moving on: The sample is your marked test job and contains your email, not the plumber’s address.
Agency
Block cancellations and jobs without an email
Add Filter by Zapier between the Jobber trigger and the send action. Set an AND group: the job title (Text) Starts with DONE |, and the client email Exists.
Test the filter against your marked job: it should continue. An unmarked title or an empty email must stop here. Choose the client email from this job’s data; do not search for a similarly named customer.
Use the completion marker only when the client is eligible for this follow-up, and honour any recorded contact preferences. EMR’s own opt-outs and duplicate rules remain in place.
Before moving on: Only a confirmed completed job with a customer email can reach the next step.
Agency
Send three fields to EMR
After the filter, add Webhooks by Zapier. Choose the POST action. Paste EMR’s Endpoint URL into URL and choose Json as the Payload Type.
In Data, add the three rows shown below: first_name, email and job_id. Use the field picker to select each value from the job trigger. These must be changing values from the job, not a name or email typed into every request. Leave Wrap Request In Array off, and leave Basic Auth and custom headers empty.
Test this action using your own test customer. Return to EMR and wait for Submission received. Confirm that the captured email is yours. This setup test supplies a sample for mapping; it has not sent the review request.
Before moving on: EMR displays your test customer’s details, including the correct email.
The fields to map
- first_name
- The client’s first name from the Jobber trigger. Leave it blank if absent and use a campaign greeting that works without a name.
- The actual client email attached to this Jobber job. Check your test address appears here.
- job_id
- The Jobber job ID from the trigger, to help identify the source record when checking a request.
Agency
Map the customer and activate both sides
In EMR, map First Name to first_name and Email to email. Leave Appointment or order date empty: this walkthrough times the request from arrival, not the original booking date. The job_id is useful context in the received data; it is not a permanent duplicate-prevention key.
Choose A set time after the moment, select 1 hour later, then finish with Activate Webhook. Publish the Zap in Zapier and confirm it is on.
Check the campaign’s sending hours and repeat-customer window. Keep any separate review-request automation for this same event turned off so two systems do not invite the same customer.
Before moving on: The EMR connection is active and the Zap is published. Next, test a fresh job.
Together
Prove it with a fresh job, then hand it over
Create another safe test job with a different email address you control. Add the completion marker, close the job, and follow its new run through Zap History and EMR. The sample captured during setup is not your live-delivery test.
Wait through the one-hour delay and the campaign’s sending window. Open the email and check the plumbing company name, reply details and review destination.
Run the cancellation check below, then save the connection name, timing and failure owner in your client handover. Give staff one instruction: after eligible work is finished, add DONE |, save, and close the job.
Before moving on: You received the correct request, and an unmarked cancelled test job was blocked.
Follow one tap repair from job to review request
An illustrative client visit: the plumber finishes a kitchen tap repair at 2 pm. At 2:10 pm, the office confirms completion, adds DONE | to the title and closes the job. Zapier passes the filter and sends the client’s email to EMR. EMR schedules the first request one hour after receiving it, subject to campaign sending hours. A cancelled repair closed without the marker stops at the filter. The office records completion; it never has to send the review email.
How to know it is working
Follow the event all the way to a message you receive. A green connection or a successful test response is only part of that journey.
Where to look: Open Zapier’s Zap History and inspect the trigger, filter and POST result. In EMR, open Connect → Integrations → Automations → Manage Zapier, open this connection and check Recent requests. Then find your email under Grow → Campaigns → Invites, check its activity and open the delivered message.
When to expect the message: The one-hour delay starts when EMR receives the qualifying job. It replaces the campaign’s first-step delay; it does not add another hour on top. Campaign sending hours and follow-ups still apply. A request due outside the sending window waits until the next allowed time.
Testing again? Use another email address you control for a second successful-send test. Reusing the first address can correctly trigger your duplicate-request rule. Keep that protection on for real customers.
Test 1: Finish and close a fresh marked test job
Expected result: Zap History shows the filter passing and the POST succeeding. EMR records the request, the campaign shows the right recipient, and your inbox receives the correct message.
Test 2: Close an unmarked cancelled test job
Expected result: The filter stops the run. There is no matching inbound request or new campaign invitation in EMR.
Test 3: Use a marked job whose test client has no email
Expected result: The filter stops the run. No placeholder, staff or guessed email is sent to EMR.
Test 4: Check a repeat visit within your campaign’s duplicate window
Expected result: The repeat-customer rule prevents another invitation to the same contact while that rule applies. Do not turn it off just to make a test pass.
If something does not work
The trigger sample has no customer email or job title
Check that the source record contains those values, close a new populated test job and fetch a fresh sample. Do not map an ID into Email or use a fuzzy name lookup. If this account’s connector still omits the required data, use the completed-job form or Google Sheets guide linked below, or have a developer retrieve the exact client by ID.
The plumber finished a visit, but nothing ran
Job Closed is about closing the job. A visit can finish while an ongoing job stays open. Keep this walkthrough for one-off completed jobs; use a separate completion form for each eligible visit if that is the business process.
Zapier says success but no email arrived
Check the POST response and EMR’s Recent requests. A paused connection can receive a successful HTTP response without accepting an invitation. Then check the campaign’s sending window, duplicate rules, sender and recipient activity.
The connection stopped after staff changes
Reconnect Jobber using an authorised, active account. Inspect recent failures and check EMR before replaying anything that might already have created an invite.
At handover, record the connection name, source account, client location, campaign, timing, test result and person responsible for failures. Test again after changing the workflow. Keep passwords, API keys and private webhook URLs out of the handover notes.
Cost, reliability and the simpler alternatives
Cost: Jobber’s Zapier access is available on Connect, Grow and Plus. Webhooks by Zapier needs a paid Zapier plan. Add EMR and message delivery to the budget, and use Zap History to check actual monthly task usage. If this would mean buying two upgrades, compare the completed-job form or existing Google Sheet route first.
Reliability: The completion filter is essential because closing is not proof that work happened. The connection also depends on the Jobber user who authorised it remaining active. Give the agency responsibility for failed Zap runs. EMR’s five-minute identical-payload check is not permanent job deduplication; the campaign’s repeat-customer rule is still needed.
When to use something else: If the office already maintains a completed-jobs Google Sheet, connect that directly to EMR. If Jobber’s trigger data is insufficient, a short staff completion form through Make is easier to own than a custom API integration. Both involve a staff handoff. Use a developer only when you need a fully automatic lookup or more complex job rules.