Short answer
An AI ServiceM8 integration connects a model to your jobs, clients, notes and materials, through ServiceM8’s built-in AI Smart Helpers, its REST API and webhooks, or its official MCP server for ChatGPT and Claude. For New Zealand trades the best first job is turning site notes and photos into a quote draft priced from your own materials list, approved by the office before the customer sees it.
- AI Smart Helpers, including quote and invoice drafting, are listed on every ServiceM8 plan.
- ServiceM8’s official MCP server can schedule jobs, change statuses and send SMS or email.
- The API allows 180 requests a minute and 20,000 a day per app and account.
- Webhooks send the record ID and changed field names, never the new values.
- Jobs created by AI use job credits from your plan’s monthly allowance.
What ServiceM8’s own AI does (October 2026)
ServiceM8’s NZ pricing page, as listed on 19 October 2026, includes AI Smart Helpers on every plan: Free (30 jobs a month), Starter $29 (50 jobs), Growing $79 (150), Premium $149 (500) and Premium Plus $349 (1,500+). The page does not state the currency or whether GST is included. The Smart Helper drafts emails and texts, generates quotes and invoices, and summarises jobs. The NZ feature list adds AI Automated Quoting, which drafts a quote description and a list of materials and services, plus AI Scheduling, an AI Phone Agent, AI Report Builder and AI Photo Tagging.
Try AI Automated Quoting first. Build your own when quotes depend on rules ServiceM8 does not apply, such as minimum call-out charges or margin by job type, or on data held elsewhere, such as a supplier price file.
Integration routes and when to use each
| Route | What it gives you | Use it when |
|---|---|---|
| AI Smart Helpers and AI Automated Quoting | Drafting inside ServiceM8 | Always the first test; no build |
| Private add-on (API key) | REST access to your own account with an X-API-Key header |
A quick custom build for one business |
| Public add-on (OAuth 2.0) | Granular scopes, webhooks and platform SMS and email | Production integrations that need least privilege |
| Webhooks | Change notices for jobs, notes, materials, clients, attachments and form responses | Drafting should start when a note or job changes |
| Official MCP server | ChatGPT plugin and Claude connector: search, notes, scheduling, status changes, SMS and email | Office staff working in their AI assistant, with supervision |
Automation 1: job notes to quote draft
- Inputs
- The job description, diary notes and site photos (
read_jobs,read_job_notes,read_job_photos), your materials and bundles (read_inventory), and pricing rules written by the owner. - Model step
- Propose quote lines as JSON: a material ID from your list, quantity, labour hours and a plain-English scope, each citing the note or photo behind it. Anything not on your list is flagged, never invented.
- Validation
- Code confirms every material exists, takes prices from ServiceM8 rather than the model, applies call-out and labour rules, and totals the quote using the account’s GST setting.
- Human approval
- The job stays in Quote status. The office manager or owner reviews, adjusts and sends it personally.
- Write-back
- Lines through
manage_job_materialsand a diary note saying “AI draft, needs review” throughpublish_job_notes. No SMS or email scopes are granted. - Failure and recovery
- Draft lines carry a marker, so a reviewer can delete them in one pass and quote by hand.
| Model output | ServiceM8 target | Rule |
|---|---|---|
material_id |
Job material | Must exist in your materials list |
quantity |
Job material quantity | Greater than zero, in the listed unit |
| Price | Job material price | Taken from ServiceM8, never from the model |
scope_text |
Quote description | Plain English, no prices |
evidence |
Diary note | Links each line to a note or photo |
The wider workflow, including site visit capture, is mapped in quote preparation from job notes.
Automation 2: enquiry triage to a draft job
- Read. New inbox messages and web form entries arrive (
read_inbox). - Classify. Emergency, new quote request, existing job follow-up or not work. Emergencies go straight to the on-call phone, not a queue.
- Match. Find the existing client by email or phone and link the message to an open job where one exists.
- Draft. For new work, prepare a job from a template with address and description, plus a reply draft.
- Approve. A person creates the job and sends the reply. Creating jobs uses job credits, and ServiceM8 notes the
create_jobsscope may incur charges.
Permissions and approval design
ServiceM8’s scopes separate reading from writing for jobs, notes, materials, the inbox, SMS and email, and ServiceM8 says requesting fewer scopes earns a higher rate limit. Grant read scopes to the drafting step and add manage_job_materials and publish_job_notes only for write-back. Leave out publish_sms, publish_email and create_jobs unless a person triggers them. Our guide to agent permissions and approvals sets out the pattern.
The MCP server can change job status and send messages, and ServiceM8 says the assistant may ask for confirmation depending on app permissions and settings. Treat confirmation as not guaranteed. In ChatGPT, uninstalling the plugin leaves the connection in place; disconnect it under Settings, Apps.
Customer names, addresses and phone numbers reach the model provider. The Privacy Commissioner treats a provider that processes data only on your behalf as part of your organisation, so you stay responsible; a provider that trains on it would change that.
Costs and limits (as listed 19 October 2026)
- API: 180 requests a minute and 20,000 a day, applied separately to each app and account pairing; excess returns 429.
- Plan effects: job credits are consumed by AI-created jobs, and SMS beyond the plan cap attracts overage fees.
- Model cost, worked example: 200 quote drafts a month at about 10,000 input and 1,000 output tokens on Claude Sonnet 5.5 (US$2 and US$10 per million) is 200 × US$0.03 = US$6.
Where it goes wrong
- Webhooks without values. Notices carry the ID and changed field names; fetch the record from
resource_url. Failed deliveries retry for up to 72 hours and are then cancelled, so checklast_failure_reasonregularly. - GST confusion. ServiceM8 lets amounts be tax inclusive or exclusive. A model reading “$450” from a note does not know which; take totals from code.
- Errors flowing to accounts. Approved invoices sync to Xero or MYOB, so a wrong line lands in your books too. See our Xero guide.
Larger trade businesses comparing platforms should read our Simpro guide. For a build with approvals designed in, see AI workflow automation.
Sources
- ServiceM8 pricing (NZ), ServiceM8, accessed 19 October 2026
- ServiceM8 feature overview (NZ), ServiceM8, accessed 19 October 2026
- Authentication, ServiceM8 Developer, accessed 19 October 2026
- HTTP response codes, ServiceM8 Developer, accessed 19 October 2026
- Webhooks overview, ServiceM8 Developer, accessed 20 October 2026
- Connect ServiceM8 to ChatGPT or Claude, ServiceM8 Support, accessed 19 October 2026
- Working with third-party providers, Office of the Privacy Commissioner, 26 November 2024
- Pricing, Anthropic, accessed 19 October 2026
Written by the Levy Street team in Wellington. Last updated 19 October 2026.