# 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.

- Workflow type: code
- Services: Jobber, HubSpot, Slack Bot
- Categories: Sales, Operations
- Published: 2026-08-04

## What it does

- 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 you'll need

- 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

## Prompt

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.

## How to customize

- 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

## FAQ

### 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.

Use this prompt in General Input: https://www.generalinput.com/prompts/turn-new-jobber-requests-into-hubspot-deals-and-slack-alerts