Quick overview
This workflow captures new jobs and quotes from Jobber via webhooks (with a scheduled poll fallback), syncs them into a Google Sheets tab, and sends Gmail notifications for each new record while also emailing you once per day when Jobber sync or authentication errors occur.
How it works
- Receives a Jobber webhook for events like
JOB_CREATE, QUOTE_CREATE, and APP_DISCONNECT, validates the request using an HMAC-SHA256 signature, and replies with 200 or rejects with 401.
- Routes the incoming event by topic, and for new jobs/quotes builds a Jobber GraphQL query to fetch the full record details by ID.
- Runs every 15 minutes as a fallback, queries Jobber’s GraphQL API for recently created jobs and quotes within a configurable lookback window, and merges these results with webhook-driven fetches.
- Calls the Jobber GraphQL API and normalizes the response into either flattened job/quote records or a structured error payload.
- Flattens each job or quote into a single row format and upserts it into Google Sheets using a stable
record_key so repeat events update the same row.
- Sends a Gmail alert to the configured owner email for each newly seen job/quote (only once per record across executions), and sends a separate Gmail alert for sync problems while deduplicating to one email per problem type per day.
Setup
- Create a Jobber app in the Jobber Developer Center with read access to jobs, quotes, and clients, and configure n8n’s OAuth redirect URL and a webhook pointing to this workflow’s production webhook URL.
- Add a Jobber OAuth2 credential in n8n (used by the HTTP request to
https://api.getjobber.com/api/graphql) and ensure the workflow’s X-JOBBER-GRAPHQL-VERSION header matches a supported Jobber API version.
- Add an n8n Crypto credential containing your Jobber client secret and select it for the HMAC signature verification step.
- Connect Google Sheets and create a sheet/tab with the expected columns (including
record_key) and then paste the Google Sheet URL and tab name into the workflow configuration values.
- Connect a Gmail account, set the owner email address in the workflow configuration, and optionally adjust the polling lookback and max-per-type limits before activating the workflow.
Requirements
- n8n 2.29.0 or newer (earlier versions lose Jobber's rotating refresh token)
Additional info
Limitations: only new jobs and quotes are tracked by default. Add JOB_UPDATE to the Route by event topic node to keep statuses current; rows then update without a new alert.