Turn new Jobber requests into HubSpot deals and Slack alerts

Every new service request in Jobber becomes a HubSpot contact and deal, plus an instant Slack alert so your team can call the customer back the same day.

Deterministic Code
JobberHubSpotSlack BotSalesOperationsData SyncNotifications & Alerts
PromptCreate

When a new service request comes into Jobber, create the matching lead in HubSpot and alert my sales channel in Slack. Trigger this workflow on the Jobber REQUEST_CREATE webhook, which fires whenever a new request is created.

Important implementation detail: the Jobber webhook payload carries only the topic, the account id, and the item id. It does not include the object body, so the workflow has nothing useful to work with until it fetches the record itself. Start by calling Jobber Get Request with the item id from the webhook payload to retrieve the request title, the associated property, the request notes, and the status.

Next, call Jobber Get Client for the client on that request to get the contact details: first name, last name, email address, and phone number. Also call Jobber Get Property for the property referenced on the request so you have the full service address.

Create the person in HubSpot with Create Contact, using the email address as the dedupe key so a repeat customer is matched to their existing record rather than duplicated. Map the client first name, last name, email, and phone onto the contact properties.

Then create the opportunity with HubSpot Create Deal. Set the deal name from the Jobber request title. Leave the deal amount blank, since a request arrives before the work has been quoted and the value is not known yet. Store the Jobber request id on the deal so the two systems stay traceable, and associate the deal with the contact from the previous step.

Handle the missing email case explicitly: when the Jobber client has no email address on file, skip the email keyed contact creation and attach the deal to the phone only record instead, matching on the client phone number and name. A request should never be dropped just because the contact details are incomplete.

Finish with slackbot Send a Message to the sales channel. The message should show the client name, the service address from the property, and the request notes, along with the request title and status, so whoever is on intake has everything they need to call the customer back the same day.

Additional information

What does this prompt do?
  • Watches Jobber for new service requests and pulls the full details the moment one comes in, including the job notes and the service address
  • Adds the customer to HubSpot as a contact, matching on email address so repeat customers do not get duplicated
  • Creates a matching deal named after the request and tags it with the originating Jobber request, so both systems stay in step
  • Posts an alert to your sales channel with the customer name, service address, and what they asked for
What do I need to use this?
  • A Jobber account where customers submit service requests
  • A HubSpot account you can add contacts and deals to
  • A Slack workspace, plus the channel your sales or intake team watches for new work
How can I customize it?
  • Choose which Slack channel gets the alert, such as a shared intake channel or a specific regional team
  • Set which pipeline and stage new deals land in, and decide when to fill in a value once the job is quoted
  • Add more detail to the alert, such as the request status or the customer phone number, so intake has everything in one place

FAQs

How quickly does the alert arrive after a request comes in?
It runs as soon as Jobber records the new request, so the Slack message usually lands within seconds. There is no waiting around for a scheduled sync to catch up.
What happens if the customer did not leave an email address?
The workflow skips the email based contact match and files the deal against the phone only record instead. A request never gets dropped just because the contact details are incomplete.
Will this create duplicate contacts in HubSpot?
No. The email address is used as the matching key, so a repeat customer is recognized and reused rather than added to your CRM a second time.
Does the new deal have a value attached to it?
Not at first. Requests arrive before you have quoted the work, so the amount is deliberately left blank and you fill it in once the quote goes out.
Will this work on a free HubSpot plan?
Yes. Contacts and deals are both part of the free HubSpot CRM, so you do not need a paid plan to run this.

Related templates

Chase past-due JobNimbus invoices with escalating emails

Every weekday, find every unpaid JobNimbus invoice, email each customer one reminder that gets firmer as it ages, and post a receivables summary to Slack.

JobNimbus
Gmail
Slack Bot
Agentic Task
Flag at-risk students in Canvas before they fall behind

Every weekday at 7am, your active courses are checked for missing work, silent logins, and slipping grades, with a ranked list sent to your advising channel.

Canvas
Google Sheets
Slack Bot
Agentic Task
Catch Jira service desk tickets before their SLA runs out

Every hour, find the tickets closest to breaching, leave a nudge on each one, and post a ranked at-risk list to your support channel.

Jira Service Management
Slack Bot
Agentic Task
Send Canvas students a kind nudge about missing work

Every weekday afternoon, each student who is behind gets a warm, personal message in their Canvas inbox listing exactly what they owe.

Canvas
Slack Bot
Agentic Task
Weekly Canvas grading backlog report in Slack and Sheets

Every Monday at 8am, see exactly which assignments have work waiting, sorted worst first, posted to Slack and logged to a spreadsheet.

Canvas
Slack Bot
Google Sheets
Deterministic Code
Revoke Bitwarden access when someone leaves in BambooHR

Every weekday morning we compare your password vault against your HR records and suspend access for anyone who has already left.

Bitwarden
BambooHR
Slack Bot
Agentic Task

Stop copying Jobber requests into your CRM by hand.

Every new request lands in HubSpot and in front of your sales team automatically, so no customer is left waiting on a callback.