CRM
Jobber
Connect Jobber once and hand every teammate a governed MCP endpoint with 15 tools ready to call from Claude, ChatGPT, Cursor, or any MCP client, inside the same permissions they already have, with every call checked and logged.
Automations & dashboards
From answering questions to doing the work
A person no longer has to ask. A trigger starts the work, inside the same permissions and the same audit log as everything else. Automations and live dashboards ship on the Black plan.
Automations
Put Jobber work on a schedule.
A trigger starts a sequence of steps: call a Jobber tool, transform the result, branch, wait, and ask a person when it matters.
Jobber digest
Run 418 · started 2 minutes ago · on behalf of Emma Laurent
-
✓
Schedule
Every weekday at 08:00
0.2s -
✓
Fetch clients
Jobber
1.4s -
✓
Group by owner
Transform
0.1s -
✓
Draft the digest
Agent step
Ran with 4 tools, returned a structured summary
6.2s -
Approve the digest
Needs approval
Assigned to Michael Brennan
Approve Deny -
Post the digest
Jobber
Queued
Collections and dashboards
Report on Jobber without asking.
Collections hold your own data, written by an automation and read by a dashboard that refreshes on a schedule.
Jobber health
Refreshed 4 minutes ago · every 15 minutes · from the clients collection
Clients
1,284 ↓ 12%
Requests
96 ↓ 8%
Needs attention
3 ↑ 2
Updated this week
412 ↑ 9%
Clients created
Last 14 days
By workspace
Share of activity
Engineering 34%
Product 27%
Support 21%
Sales 18%
AI tools
Jobber tools for your AI agents
15 tools are ready to call through Elaichi's MCP endpoint the moment you connect Jobber, governed by the same roles, restrictions, and audit log as everything else in Elaichi.
list_all_jobber_account
Get information about the authorized Jobber account. Returns: id, name, countryCode, phone. No required parameters — the account is determined by the access token.
list_all_jobber_clients
List Jobber clients. Returns: id, name, isLead, leadSource, email, phone, balance, tags, billingAddress, and totalCount rollups for jobs, requests, quotes and invoices. Filter with the filter param, e.g. {"isLead": true} for leads only. A client whose jobs.totalCount is 0 has never had work booked.
get_single_jobber_client_by_id
Get a single Jobber client by id. Returns: id, name, isLead, leadSource, email, phone, balance, tags, billingAddress, and jobs/requests/quotes/invoices totalCount. Required: id.
jobber_clients_count
Count Jobber clients matching a filter, without fetching the records. Returns: totalCount. Use filter {"isLead": true} to count how many leads have come through, optionally narrowed by createdAt.
create_a_jobber_client
Create a Jobber client, e.g. to lodge a qualifying lead. Returns the created client; new clients start with isLead true. Accepts scalar fields only — to set emails, phones, addresses or custom fields, use the graphql tool with the clientCreate mutation.
update_a_jobber_client_by_id
Update a Jobber client's scalar details. Returns the updated client. Required: id. Status tags (tagsToAdd / tagsToDelete) are not settable here — use the graphql tool with the clientEdit mutation. isLead is managed by Jobber and cannot be set at all.
jobber_clients_archive
Archive a Jobber client. Required: client_id. Jobber refuses while the client has open jobs or work requests, returning a userErrors message.
list_all_jobber_requests
List Jobber requests (incoming work enquiries). Returns: id, title, requestStatus, contactName, companyName, email, phone, source, client, salesperson, and jobs/quotes totalCount. Filter with e.g. {"status": "new"}.
get_single_jobber_request_by_id
Get a single Jobber request by id. Returns: id, title, requestStatus, contact details, source, client, salesperson, and jobs/quotes totalCount. Required: id.
jobber_requests_count
Count Jobber requests matching a filter, without fetching the records. Returns: totalCount. Use filter {"status": "new"} to count new leads awaiting action.
create_a_jobber_request
Create a Jobber request (work enquiry) against an existing client. Returns the created request with requestStatus "new". Required in body: client_id. Accepts scalar fields only — for requestDetails, lineItems or formIds use the graphql tool with the requestCreate mutation.
update_a_jobber_request_by_id
Update a Jobber request. Returns the updated request. Required: id. Only title, property, salesperson and referring client are editable — requestStatus is driven by Jobber workflow, not set directly.
list_all_jobber_jobs
List Jobber jobs (booked work). Returns: id, jobNumber, title, jobStatus, jobType, total, scheduling timestamps, client and property. Use this to see which customers have actually had services delivered.
get_single_jobber_job_by_id
Get a single Jobber job by id. Returns: id, jobNumber, title, jobStatus, jobType, total, scheduling timestamps, client and property. Required: id.
create_a_jobber_graphql
Send an arbitrary GraphQL query or mutation to Jobber. Body: {query, variables}. Use this for anything the typed tools cannot express — setting client emails/phones/addresses, adding or removing status tags, or any mutation with a nested input object. Returns Jobber's raw response including data, errors and userErrors.
No tools match your search.
How it works
From Jobber account to governed MCP endpoint
Connect
Link a Jobber account through Elaichi's hosted connect flow. Credentials are vaulted, so nobody, including the AI, ever sees them.
Compose
The connection becomes a toolbox instantly. Curate which Jobber tools are exposed, rename them, or freeze arguments.
Authorize
Point Claude, ChatGPT, Cursor, or any MCP client at the one Elaichi endpoint and sign in with OAuth, governed by roles, restrictions, and audit logs.
Put your agents to work in the tools you already use
Start a 14-day Gold trial. Connect a product, curate a toolbox, and paste a governed MCP endpoint into Claude, ChatGPT, or Cursor in minutes.