ServiceM8
ERPDrive ServiceM8 field service work from agent workflows. Agents create jobs from inbound leads, advance them through the quote-to-completed lifecycle, sync clients, and read staff, materials, activities, and job contacts for scheduling and billing.
What This Integration Enables
Trade and home-service businesses lose money in the gaps between systems: the lead that never became a quote, the finished job that took three weeks to invoice, the logged hours nobody reconciled. ServiceM8 holds the operational truth, jobs with a fixed lifecycle from Quote to Completed, clients, staff, activities, and materials. This connector lets FlowRunner agents work that truth continuously, so the office runs at the speed of the field instead of the speed of paperwork. The lifecycle enum is the connector's backbone: Quote, Work Order, Invoice, Completed, Unsuccessful. Agents advance jobs through it as milestones happen elsewhere, and read it to drive everything downstream: - Inbound leads become clients and jobs with UUIDs linked correctly from the first record - Status changes propagate to scheduling boards, billing systems, and customer notifications - Logged time from List Job Activities feeds timesheets and job-cost reconciliation without manual collation - Job contacts keep the billing party and the site contact straight on every job - The materials catalog is queryable when workflows assemble quotes or check pricing The status that moves money, Completed, is the one FlowRunner's [human-in-the-loop](/concepts/human-in-the-loop) layer refuses to let an agent set on inference alone.
Without FlowRunner
With FlowRunner
Use Case Scenarios
The 9pm enquiry that was a scheduled job by 9:05
A homeowner submits the emergency form at night. The agent creates the client, raises the job with the address and fault description, and posts it to the crew channel with the customer's phone number from the enquiry. By the time the on-call tech looks at their phone, the job exists in ServiceM8 with a job number, not as an email to transcribe in the morning. The business that responds first wins the job, and responding first is now structural.
Completed jobs that bill themselves the same day
When a job's status reaches Completed, the agent pulls the full record with Get Job, collects logged time from List Job Activities and the billing contact from List Job Contacts, and raises the invoice in [QuickBooks Online](/integrations/quickbooks). [Gmail](/integrations/gmail) delivers it to the billing contact with the job reference. The gap between finishing work and asking to be paid drops from weeks to hours, which for a small trade business is the difference between chasing cash and having it.
The morning board that builds itself
At 6am the agent runs List Jobs filtered to Work Order, joins each with its client and site contact, and writes the day's board to [Google Sheets](/integrations/google-sheets): job number, address, description, status age. Jobs stuck in Quote past a week get flagged for a follow-up call, because quotes decay. A summary posts to [Slack](/integrations/slack) before the crew loads the vans. The scheduler starts the day making decisions, not assembling data.
Human-in-Loop Highlight
Update Job setting status to Completed is the write that moves money on this connector: the billing workflow keys off it, so the moment an agent sets Completed, an invoice is being generated and emailed to a customer. Set it on inference, the calendar slot ended, the tech stopped logging time, and the business bills a homeowner for work that is half done, or done differently than quoted, and the correction happens in a phone call that costs the relationship. So FlowRunner keeps the completion attestation human: the tradesperson who stood in the crawlspace confirms the job is done and whether variations apply, and only then does the agent advance the status and fire the billing chain. The same discipline covers Unsuccessful, because writing off a quote is a sales decision. Everything else, creation, scheduling visibility, reporting, invoicing mechanics, runs at machine speed on both sides of that human moment.
Agent Capabilities
10 actionsJobs
6- List Jobs Retrieves jobs from ServiceM8. Returns an array of job records, each identified by its UUID, including the linked client (company), job address, description, status, and generated job number. Optionally filter to a single status (Quote, Work Order, Invoice, Completed, Unsuccessful) to narrow the results.
- Get Job Retrieves a single job by its UUID. Returns the full job record including the linked client (company_uuid), job address, description, current status, generated job number, and scheduling/billing details.
- Create Job Creates a new job in ServiceM8 linked to an existing client (company). Provide the client UUID, job address, and a description of the work; optionally set the initial status. Returns the UUID of the newly created job, which can be used with Get Job or Update Job.
- Update Job Updates an existing job identified by its UUID. Only the fields you provide are changed; empty fields are left untouched. Use this to change a job's status (e.g. move a Quote to Work Order or Completed), correct the address, or revise the description.
- List Job Activities Retrieves job activities (time/labour entries) from ServiceM8. Returns an array of activity records with the linked job UUID, the staff member (allocated_to), and the start/end timestamps. Optionally filter to a single job by its UUID to see only that job's logged time.
- List Job Contacts Retrieves job contacts from ServiceM8. Returns an array of contact records linked to jobs, including the job UUID, contact type (e.g. Job Contact, Billing), name, email, and phone. Optionally filter to a single job by its UUID.
Clients
2- List Clients Retrieves clients (companies) from ServiceM8. Returns an array of client records, each identified by its UUID, including the client name, email, phone, and billing/physical address. Use a client UUID when creating jobs.
- Create Client Creates a new client (company) in ServiceM8. Provide the client name and optionally an email and address. Returns the UUID of the newly created client, which can be used as the client when creating jobs.
Staff
1- List Staff Retrieves staff members from the ServiceM8 account. Returns an array of staff records, each identified by its UUID, including first and last name, email, and mobile number. Useful for assigning jobs or matching activity records to a person.
Materials
1- List Materials Retrieves materials (line-item catalog products/services) from ServiceM8. Returns an array of material records, each identified by its UUID, including name, price, cost, and tax settings. Useful for referencing catalog items when building quotes or invoices.
Frequently Asked Questions
What can FlowRunner do with ServiceM8?
FlowRunner agents can run List Jobs, Get Job, and Create Job in ServiceM8, plus 7 more actions.
Does connecting ServiceM8 to FlowRunner require OAuth?
No. ServiceM8 connects to FlowRunner with basic authentication (a username and password), no OAuth flow required.
Can ServiceM8 trigger a FlowRunner workflow automatically?
ServiceM8 doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with ServiceM8
$100 in credits. No card required. Connect in minutes.