See llms.txt for all machine-readable content.

Back to Templates

Sync Jobber jobs and quotes to Google Sheets with Gmail notifications

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

  1. 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.
  2. Routes the incoming event by topic, and for new jobs/quotes builds a Jobber GraphQL query to fetch the full record details by ID.
  3. 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.
  4. Calls the Jobber GraphQL API and normalizes the response into either flattened job/quote records or a structured error payload.
  5. 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.
  6. 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

  1. 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.
  2. 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.
  3. Add an n8n Crypto credential containing your Jobber client secret and select it for the HMAC signature verification step.
  4. 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.
  5. 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.