ServiceM8 helps field service businesses schedule jobs, send quotes, and manage invoices, offering staff mobile apps and real-time job status tracking
ServiceM8 helps field service businesses schedule jobs, send quotes, and manage invoices, offering staff mobile apps and real-time job status tracking On Nagent, Servicem8 is exposed as a fully-configurable scheduling & booking integration that any agent can call — 28 actions, and OAuth authentication. No code is required to wire Servicem8 into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Servicem8 to automate the kinds of tasks scheduling & booking teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Servicem8 into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Every operation an agent can call against Servicem8, with input parameters and output schema. Drop these into any step of an agent built in Helix.
SERVICEM8_CREATE_JOB_NOTECreate a new job note in ServiceM8. Requires the job's UUID (related_object_uuid) and the note content. Returns the UUID of the created note record. Use this to add comments, updates, or action items to a specific job.
Input parameters
Content of the note.
Unique identifier for this note record. If omitted, a UUID will be generated.
Record active flag: 1 = active (default), 0 = deleted.
Timestamp when the note was created (format: YYYY-MM-DD HH:MM:SS). Server sets automatically if omitted.
Type of the related object. Defaults to 'job' for job notes. Other possible values may include 'company'.
Optional follow-up action required description.
UUID of the related job.
UUID of staff member who completed the required action.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_CREATE_JOB_PAYMENTTool to create a new job payment in ServiceM8. Use when you have collected payment details and need to record payment against a job. Example: "Create a 100.00 cash payment for job 123e4567-e89b-12d3-a456-426614174000 at 2023-01-01 13:00:00."
Input parameters
Additional notes or comments regarding the payment.
Optional UUID for the payment record. If omitted, a UUID will be auto-generated by the server.
Record active flag: 1 = active (default), 0 = archived/deleted.
Amount of the payment as a decimal string (e.g., '100.00', '50.50'). Use string format to preserve decimal precision.
Payment method used. Common values: 'cash', 'credit_card', 'eftpos', 'cheque', 'bank_transfer', 'online'.
UUID of the job to record the payment against. Obtain this from list_all_jobs or create_job actions.
Timestamp of last edit in 'YYYY-MM-DD HH:MM:SS' format. Usually auto-set by the server if omitted.
Timestamp when the payment was received in 'YYYY-MM-DD HH:MM:SS' format.
Deposit flag: 1 = this payment is a deposit, 0 = regular payment (default if omitted).
UUID of any attachment (e.g., receipt image) related to the payment.
UUID of the staff member who recorded/processed the payment. Obtain from staff endpoints. If omitted, may default to the authenticated user.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_CREATE_JOBSTool to create a new Job in ServiceM8. Use when you have gathered all job details and need to push a record. Example: "Create a Quote job for 123 Main St with PO #1234."
Input parameters
Date the job is scheduled or created (YYYY-MM-DD).
Active flag (1 = active, 0 = deleted). Defaults to 1.
List of badge UUIDs to apply to this job.
Current status of the job. Controls dispatch board placement.
UUID of the queue to assign this job to.
Physical address where the job is to be performed.
UUID of the customer/company associated with this job.
UUID of the job category.
Brief description of the work to be done.
UUID of the staff member creating this job.
Client purchase order reference number.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_DELETE_CUSTOM_FIELDDelete a custom field in ServiceM8 by its UUID. Use this when you need to permanently remove a custom field definition from the system. This will remove the custom field and any associated data.
Input parameters
The UUID of the custom field to delete. Must be a valid UUID string.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_DELETE_JOB_NOTEDeletes (archives) a job note in ServiceM8 by its UUID. Use this tool when you need to remove a note from a job's diary. In ServiceM8, deletion is a soft-delete: the note is archived (active=0) rather than permanently removed, and can be restored later if needed. Prerequisites: You need the note's UUID, which can be obtained from the 'List All Job Notes' or 'Retrieve Job Note' actions.
Input parameters
UUID of the job note to delete. Example: '123e4567-e89b-12d3-a456-426614174000'
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_DELETE_JOB_PAYMENTArchives (soft-deletes) a job payment record in ServiceM8 by its UUID. In ServiceM8, records are never permanently deleted. Instead, deletion sets the record's 'active' field to 0, which hides it from the UI but keeps it accessible via the API. Archived records can be restored by setting their 'active' field back to 1. Use this tool when you need to remove a payment record from active use, such as when a payment was recorded in error or needs to be voided. Requires the 'manage_job_payments' OAuth scope.
Input parameters
The UUID of the job payment to delete (archive). In ServiceM8, deletion is a soft delete that sets the record's active field to 0, hiding it from the UI but keeping it accessible via API.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_LIST_ALL_ASSETSTool to list all ServiceM8 assets. Use when you need a comprehensive asset registry, including custom fields, for inventory or reporting.
Input parameters
OData-style filter expression to narrow down assets. Supported operators: eq (equal), ne (not equal), gt (greater than), lt (less than). Multiple conditions can be combined with 'and'. Examples: 'active eq 1', 'name eq \\'Pump Model X\\''. String values must be wrapped in single quotes.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_LIST_ALL_CLIENTSTool to list all ServiceM8 clients. Use when you need a complete set of customer records for integrations or reporting.
Input parameters
OData-style filter expression using $filter syntax. Supported operators: eq (equal), ne (not equal), gt (greater than), lt (less than). Combine conditions with 'and' (max 10 conditions). Examples: "active eq 1", "name eq 'Acme Corp'", "create_date gt '2024-01-01'". Note: ge/le operators are not supported.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_LIST_ALL_DOCUMENT_TEMPLATESTool to list document templates. Use when you need to retrieve available template UUIDs and names before generating job documents.
Input parameters
Pagination cursor. Use '-1' for the first page. For subsequent pages, use the value from the 'x-next-cursor' response header. If omitted, returns all templates.
OData-style filter expression to narrow document templates. Examples: 'name eq "Invoice"', 'active eq 1', 'template_type eq "Quote"'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_LIST_ALL_FORMSTool to list all ServiceM8 forms. Use when you need to fetch available form templates with optional filters.
Input parameters
OData-style filter expression to narrow down forms. Supported operators: eq (equals), ne (not equals), gt (greater than), lt (less than). Combine up to 10 conditions with 'and'. String values must use single quotes. Examples: "active eq 1", "name eq 'Safety Checklist'".
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_LIST_ALL_JOB_NOTESList all job notes from ServiceM8. Use this tool to: - Retrieve all notes across all jobs (no filter) - Get notes for a specific job using filter: "related_object_uuid eq '<job_uuid>'" - Filter by active status: "active eq 1" for active notes only The response contains a list of note records with their content, timestamps, and associated job UUIDs. For large result sets, use cursor-based pagination: pass cursor='-1' for the first page, then use the 'next_cursor' value from each response to fetch subsequent pages. Each page returns up to 5,000 records.
Input parameters
Cursor for pagination. Use '-1' for the first page. For subsequent pages, use the 'next_cursor' value from the previous response. Each page returns up to 5,000 records.
OData filter expression to filter notes. Common filters include: 'related_object_uuid eq <job_uuid>' to get notes for a specific job, 'active eq 1' for active notes only. Use actual API field names (e.g., related_object_uuid, not job_uuid).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_LIST_ALL_JOB_QUEUESList all job queues in ServiceM8. Job queues are virtual folders for organizing jobs on hold. Use this to fetch available queues before assigning jobs to a queue, or to check queue configurations. Returns both regular queues (for jobs waiting on external actions) and assignable queues (for staff assignments).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_LIST_ALL_JOBSTool to list all jobs. Use when you need to fetch all job records from your ServiceM8 account.
Input parameters
OData-style filter expression to narrow down jobs. Supported operators: eq (equals), ne (not equals), gt (greater than), lt (less than). Combine up to 10 conditions with 'and'. String values must use single quotes. Examples: "status eq 'Completed'", "status eq 'Work Order' and active eq 1", "date gt '2024-01-01'".
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_LIST_ALL_LOCATIONSLists all ServiceM8 locations. Use to fetch configured service areas, office locations, or warehouses for job assignments, mapping, or reporting.
Input parameters
Optional filter expression to narrow down locations using ServiceM8 filtering syntax (e.g., 'active eq 1'). See ServiceM8 filtering docs for syntax details.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_LIST_ALL_MATERIALSRetrieve all materials (products, labour rates, inventory items) from ServiceM8. Use this to get a complete catalog of materials for quoting, invoicing, or inventory management. Requires the 'read_inventory' OAuth scope.
Input parameters
Filter expression using ServiceM8 filtering syntax to narrow down results. Examples: 'active eq 1' for active materials only, 'name eq "Labour"' for materials with specific name.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_LIST_ALL_TASKSRetrieves all tasks from a ServiceM8 account with optional filtering and cursor-based pagination. Use this to fetch task records, track task assignments, monitor completion status, or sync task data. Requires 'read_tasks' OAuth scope.
Input parameters
Cursor for pagination. Use '-1' to start from the beginning. For subsequent pages, use the 'next_cursor' value from the previous response. Each page returns up to 5000 records.
OData-style filter expression to narrow results. Supported operators: eq (equal), ne (not equal), gt (greater than), lt (less than). String values must use single quotes. Combine up to 10 conditions with 'and'. Example: "active eq 1 and job_uuid eq 'abc-123'"
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_RETRIEVE_CLIENTTool to retrieve details of a specific client by its UUID. Use after confirming the client's UUID is valid.
Input parameters
UUID of the company (client) to retrieve
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_RETRIEVE_FORMRetrieve details of a specific form template by its UUID. Use this tool when you have a form UUID and need to fetch its metadata, such as form name, description, and status. Requires the Forms add-on to be enabled in ServiceM8.
Input parameters
The unique identifier (UUID) of the form to retrieve.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_RETRIEVE_JOBTool to retrieve details of a specific job by its UUID. Use when you have the Job UUID and need its full record.
Input parameters
The UUID of the job to retrieve
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_RETRIEVE_JOB_ACTIVITYTool to retrieve details of a specific job activity by its UUID. Use when you have the job activity UUID and need its full details.
Input parameters
UUID of the ServiceM8 job activity to retrieve
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_RETRIEVE_JOB_NOTERetrieve the full details of a specific job note by its UUID. Use this action when you have a note UUID (e.g., from listing job notes) and need to view its complete record including content, timestamps, and the associated job reference.
Input parameters
UUID of the job note to retrieve. You can obtain this from the 'List All Job Notes' action.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_RETRIEVE_JOB_PAYMENTRetrieve a specific job payment record from ServiceM8 by its UUID. Use this tool when you need to: - Get full details of a specific payment (amount, method, timestamp, notes) - Check if a payment is a deposit or regular payment - View which staff member processed a payment - Verify payment information for a job Prerequisites: You need the job payment UUID, which can be obtained from the 'List All Job Payments' action or from creating a new job payment.
Input parameters
The unique identifier (UUID) of the job payment record to retrieve. This is a 36-character UUID string (e.g., '550e8400-e29b-41d4-a716-446655440000').
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_RETRIEVE_JOB_QUEUETool to retrieve details of a specific job queue by its UUID. Use when you need full queue metadata before dispatching work.
Input parameters
UUID of the job queue to retrieve.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_RETRIEVE_LOCATIONRetrieve a specific ServiceM8 location by its UUID. Returns complete location details including name, address fields (street, city, state, country, postal code), geographic coordinates (lat/lng), contact phone number, and active status. Use this when you have a known location UUID and need its full details. To list all available locations, use the List All Locations action first.
Input parameters
The unique identifier (UUID) of the location to retrieve. Must be a valid 36-character UUID string.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_RETRIEVE_MATERIALRetrieve detailed information about a specific material/product/service by its UUID. Returns pricing, inventory levels, tax settings, and identification details. Use this when you have a material UUID from a job or list operation and need complete details like current stock levels or pricing information.
Input parameters
UUID of the material to retrieve. Obtain this from the 'List All Materials' action or from job material records.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_RETRIEVE_STAFF_MEMBERTool to retrieve details of a specific staff member by their UUID. Use when you need up-to-date staff information given a known staff UUID.
Input parameters
The unique identifier (UUID) of the staff member to retrieve.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_UPDATE_JOB_NOTETool to update details of an existing job note. Use when modifying a note after its creation.
Input parameters
New content for the job note
UUID of the job note to update
Active flag: 1=active, 0=archived
Timestamp when the note was last edited in 'YYYY-MM-DD HH:MM:SS' format
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
SERVICEM8_UPDATE_JOB_PAYMENTUpdate an existing job payment record in ServiceM8. Use this to modify payment details such as amount, method, note, or status. Requires the payment UUID and at least one field to update.
Input parameters
Note or memo for the payment
UUID of the job payment record to update (required)
Active status: 1=active, 0=archived/deleted
New payment amount as a decimal string (e.g., '150.00')
Payment method: 'cash', 'credit_card', 'eftpos', 'cheque', 'direct_deposit', or 'other'
Payment date/time in 'YYYY-MM-DD HH:MM:SS' format
Whether this is a deposit: 1=deposit, 0=regular payment
UUID of an attachment (e.g., receipt image) linked to this payment
UUID of the staff member who recorded or updated the payment
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 30 agents privately built on Nagent that already use Servicem8.
Build on Nagent
Connect Servicem8 to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Servicem8, and click "Connect Now." You'll authenticate with OAuth — Nagent handles credential storage and refresh automatically. Once connected, Servicem8 is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Servicem8 is connected, you configure its 28 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Servicem8 steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Servicem8 event fires, the agent kicks off automatically.
Every Servicem8 action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Servicem8 ships with 28 pre-built scheduling & booking actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Servicem8 together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Servicem8-based workflows tailored to your business.