ServiceM8
The ServiceM8 app connects ServiceM8, the field service job management platform for trades, to Sprigr Team. Agents can answer “what have we got on tomorrow?”, book a technician, quote a customer, complete and invoice a job, record a payment, and triage the ServiceM8 inbox, all from chat. New enquiries arriving in ServiceM8 are filed into the Sprigr Inbox, and ServiceM8 events (a job created, a quote accepted, an invoice paid) can start workflows.
Prerequisites
Section titled “Prerequisites”- An active ServiceM8 account, and a ServiceM8 login for each person who will use it through an agent.
- Admin or Owner role in your Sprigr Team organisation to install the app.
- The Sprigr add-on activated in your ServiceM8 account before anyone connects. ServiceM8 only lets an account authorise an add-on it has already installed, and only the ServiceM8 account owner can activate add-ons; staff logins cannot. See the first troubleshooting entry below for what happens if this step is skipped.
Installing and connecting
Section titled “Installing and connecting”-
Install the app
Sign in to team.sprigr.com, open Apps in the sidebar, find ServiceM8 under Available, and install it. See Installing Apps.
-
Activate the Sprigr add-on in ServiceM8
Signed in to ServiceM8 as the account owner, install Sprigr from the ServiceM8 Add-on Store, or open the private install link your Sprigr contact gave you. Do this once per ServiceM8 account.
-
Connect your ServiceM8 login
Open the app’s settings page from Apps > Installed and click Connect ServiceM8. ServiceM8 asks you to sign in and approve the requested permissions, then returns you to Sprigr. Each person who wants their agent to use ServiceM8 does this once with their own login. The settings page lists every connected account with its timezone.
-
Check the connection
Ask your agent “What jobs are on today?” A person who has not connected gets a clear not-connected message and is pointed at the settings page rather than shown someone else’s data.
An owner or admin can also connect a ServiceM8 login for an agent itself, with no person attached. That connection is what the agent uses for scheduled and background work where nobody is in the chat. The app refuses this for anyone who is not an owner or admin.
How quotes and invoices work in ServiceM8
Section titled “How quotes and invoices work in ServiceM8”ServiceM8 has no separate quote or invoice record: a quote is a job whose status is Quote, and an invoice is the same job rendered through the invoice document template. A job has exactly four statuses: Quote, Work Order, Completed and Unsuccessful. When you ask an agent to quote a customer it creates a job at Quote with priced line items; accepting the quote moves that same job to Work Order; invoicing renders the document into the job diary and moves the job off Quote if it is still there. The agent never hand-builds a quote or invoice document; it asks ServiceM8 to generate the real one so your branding, numbering and terms are used.
Inbox, webhooks and events
Section titled “Inbox, webhooks and events”- ServiceM8 inbox in the Sprigr inbox. Every 10 minutes the app files new ServiceM8 inbox messages (emails, SMS, online bookings, phone records and form submissions that are not yet jobs) as threads in the Sprigr Inbox, so enquiries can be triaged, assigned and replied to alongside your email. Machine-generated chatter is skipped.
- Webhooks. On connect the app registers ServiceM8 webhook subscriptions for the connected account: job lifecycle (created, updated, status changed, queued, completed, quote sent and accepted, invoice sent and paid, checked in and out, note, photo and review added), client created and updated, form responses, inbox messages, proposals, staff clock on and off, plus job activity, job payment and task records. ServiceM8 caps an add-on at 25 subscriptions, so three low-signal events (badge added, badge removed, video added) are not subscribed.
- Daily repair. ServiceM8 silently deactivates a subscription that keeps failing. A daily reconciler compares ServiceM8’s own subscription list with the app’s and re-registers anything missing or deactivated, so events do not quietly stop.
- Events for workflows. Each delivery is emitted as a Sprigr event (
servicem8source, event types such asjob.created,job.invoice_paid,inbox.message_received) that a workflow can subscribe to. The payload carries the record id and the names of changed fields only; the workflow re-reads the record through theservicem8tool before acting on it.
Human approval and confirmation
Section titled “Human approval and confirmation”Every write is declared, and the risky ones are gated. Twenty-five actions require the agent to confirm with you before running: creating or quoting a job, converting an inbox message to a job, invoicing a job, recording a payment, cancelling a booking or allocation, every delete, and sending any customer email, customer SMS or staff message. Twenty-one of those go further and produce an approval card in the chat: the action does not run until a person taps approve, and the card names the specific ServiceM8 account it will change. See Decisions and approvals.
Five actions are billable on your ServiceM8 account and never fire without an explicit instruction: create_job, quote_job, convert_inbox_to_job (ServiceM8 may charge for jobs created), send_customer_email and send_customer_sms (a real message reaches a real customer, and an SMS over 153 characters uses more than one credit). ServiceM8 policy prohibits marketing or promotional SMS through the API; operational messages about a job only.
ServiceM8 deletes are soft, so a deleted job can be restored with restore_job, with one exception: assets have no API create, so a deleted asset cannot be recreated from Sprigr. A sent email or SMS cannot be recalled.
Scheduled and background runs get no approval card, because there is nobody to ask, so gated writes are refused there. Scope what a background agent may do instead, or save a standing approval on the workflow step.
What agents can do
Section titled “What agents can do”The app exposes a single servicem8 tool that takes an action, with 111 actions. Ask the agent what it can do with ServiceM8, or have it call list_actions, to see the current catalogue with each action’s parameters and its mutates and billable flags. At a category level:
- Jobs: list and search jobs, read a job by uuid or by its job number (for example
PAC35210), create and update jobs, change status, quote a job with priced lines, invoice a job, generate documents, delete and restore. - Clients and contacts: list and search clients, read, create and update clients, manage client contacts and job contacts, badges.
- Scheduling and staff: today’s or any day’s schedule, book and reschedule jobs, cancel bookings, allocate staff to a job, allocation windows, recorded time, staff list and staff locations.
- Money: job materials and line items, the materials price book and bundles, tax rates, job payments and
record_job_payment(bookkeeping only; it charges nobody). - Notes, tasks, attachments and checklists: add and list job notes, create and complete tasks, upload and download attachments, job checklists, the knowledge base.
- Forms, assets, badges and custom fields: form templates, fields and responses; assets and asset types (needs the ServiceM8 Asset Management add-on); custom field definitions and values.
- Inbox: list and read inbox messages, mark read, archive, snooze, add an internal note, convert an enquiry to a job or attach it to an existing job.
- Messaging: customer email and SMS with your ServiceM8 templates, staff messages.
- Search and setup: keyword and semantic search, categories, queues, locations, suppliers, security roles, account details.
Common use cases
Section titled “Common use cases”- Today’s run. “What have we got on today?” returns each booking with its time, technician, site address and job description.
- Enquiry to booked job. An agent reads a new inbox enquiry, drafts the job description from what the customer actually asked for, and converts it to a job once you approve.
- Quote from a conversation. Office staff describe the work and the agent creates the quote job with the right client, description and priced lines, then generates the quote document for review.
- Complete, invoice, get paid. “Mark PAC35210 complete, invoice it, and record the $880 EFT payment” runs as three confirmed steps.
- Act on an invoice. A workflow subscribed to
job.invoice_sentorjob.invoice_paidposts to the team or updates your accounting system, without polling. - Morning briefing. A scheduled workflow, running as an agent-owned connection, sends each technician their day.
Troubleshooting
Section titled “Troubleshooting”“The user denied access to your application” with no permission screen Nothing was denied. Your ServiceM8 account has not activated the Sprigr add-on, so ServiceM8 refused the authorisation before showing consent. Sign in to ServiceM8 as the account owner, install Sprigr from the Add-on Store or your private install link, then click Connect again. Staff logins cannot activate add-ons.
“You have not connected ServiceM8 yet” The person asking has no ServiceM8 login linked. One teammate being connected does not connect anyone else. Open the app’s settings page and click Connect ServiceM8.
The connection used to work and now fails
The add-on was disconnected inside ServiceM8, or the refresh token was revoked. Reconnect from the settings page. If the agent reports an insufficient_scope error, the login was connected with a narrower consent than the action needs; reconnecting approves the added access.
“Payment required” or “account not in good standing” Your ServiceM8 subscription has lapsed. The request is fine; retrying will not help until ServiceM8 billing is sorted.
Rate limits and quotas ServiceM8 allows 180 API requests a minute and 20,000 a day per account. Document generation and messaging have their own, lower daily quotas that scale with the account, and trial accounts exhaust the document quota quickly. “Daily message quota exceeded” needs a ServiceM8 support ticket to raise.
Email or SMS refused with “account in quarantine” ServiceM8 has suspended outbound messaging on the account, which it can do without warning. No message was sent, and only the account holder contacting ServiceM8 support lifts it.
Asset actions return not found Assets need the ServiceM8 Asset Management add-on. A not-found result on an asset usually means the feature is off rather than the record missing.
Filters reject my query ServiceM8’s list filters are limited: exact match and greater or less than only, combined with AND, at most 10 conditions, and field names are case-sensitive. Ask the agent to search instead of filter for partial words.
Next steps
Section titled “Next steps”- Integrations Overview: See all available integrations.
- Inbox: Where ServiceM8 enquiries land.
- Workflows: Trigger on ServiceM8 events such as an invoice being sent or a quote accepted.
- Decisions and approvals: How approval cards work for billable and destructive actions.
- Creating Agents: Create a dedicated ServiceM8 agent for the office.