The ServiceM8 connector lets your AI agent act in each user's ServiceM8 account. Each user signs in to ServiceM8 once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 114 tools.
- Tools
- 114
- What they doRead · write · destructive
- 71 · 41 · 271 read41 write2 destructive
- Users sign in with
- OAuth
- OAuth app
- Your own ServiceM8 app
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the ServiceM8 connection
In AgentKit > Connections, create a ServiceM8 connection and copy its redirect URI. The name you give it is the
connection_nameyour code passes. See Configure connections.Register an OAuth app
ServiceM8 connections use your own OAuth app. Register one with ServiceM8 and add the redirect URI you copied.
Then enter the app's Client ID and Client Secret on the ServiceM8 connection.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'servicem8'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize ServiceM8:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'servicem8_list_asset_types',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "servicem8"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize ServiceM8:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="servicem8_list_asset_types",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolservicem8_get_assetGet one Asset from ServiceM8 by UUID.Read-onlyRetrieve an Asset
Get one Asset from ServiceM8 by UUID. Returns the Asset record with fields such as uuid, active, edit_date, company_uuid, asset_code. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_assets OAuth scope.
Inputs
asset_uuidstringrequired- UUID of the Asset. Get UUIDs from the matching list tool.
servicem8_get_asset_typeGet one Asset Type from ServiceM8 by UUID.Read-onlyRetrieve an Asset Type
Get one Asset Type from ServiceM8 by UUID. Returns the Asset Type record with fields such as uuid, active, edit_date, name. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_assets OAuth scope.
Inputs
asset_type_uuidstringrequired- UUID of the Asset Type. Get UUIDs from the matching list tool.
servicem8_get_attachmentGet one Attachment from ServiceM8 by UUID.Read-onlyRetrieve an Attachment
Get one Attachment from ServiceM8 by UUID. Returns the Attachment record with fields such as related_object, related_object_uuid, attachment_name, file_type, attachment_source. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_attachments OAuth scope.
Inputs
attachment_uuidstringrequired- UUID of the Attachment. Get UUIDs from the matching list tool.
servicem8_get_badgeGet one Badge from ServiceM8 by UUID.Read-onlyRetrieve a Badge
Get one Badge from ServiceM8 by UUID. Returns the Badge record with fields such as uuid, active, edit_date, name, automatically_allocated. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_badges OAuth scope.
Inputs
badge_uuidstringrequired- UUID of the Badge. Get UUIDs from the matching list tool.
servicem8_get_categoryGet one Category from ServiceM8 by UUID.Read-onlyRetrieve a Category
Get one Category from ServiceM8 by UUID. Returns the Category record with fields such as name, colour, uuid, active, edit_date. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_job_categories OAuth scope.
Inputs
category_uuidstringrequired- UUID of the Category. Get UUIDs from the matching list tool.
servicem8_get_clientGet one Client from ServiceM8 by UUID.Read-onlyRetrieve a Client
Get one Client from ServiceM8 by UUID. Returns the Client record with fields such as name, abn_number, address, billing_address, is_individual. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_customers OAuth scope.
Inputs
client_uuidstringrequired- UUID of the Client. Get UUIDs from the matching list tool.
servicem8_get_company_contactGet one Company Contact from ServiceM8 by UUID.Read-onlyRetrieve a Company Contact
Get one Company Contact from ServiceM8 by UUID. Returns the Company Contact record with fields such as company_uuid, first, last, phone, mobile. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_customer_contacts OAuth scope.
Inputs
company_contact_uuidstringrequired- UUID of the Company Contact. Get UUIDs from the matching list tool.
servicem8_get_document_templateGet one Document Template from ServiceM8 by UUID.Read-onlyRetrieve a Document Template
Get one Document Template from ServiceM8 by UUID. Returns the Document Template record with fields such as uuid, active, edit_date, template_type, related_object. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_templates OAuth scope.
Inputs
document_template_uuidstringrequired- UUID of the Document Template. Get UUIDs from the matching list tool.
servicem8_get_email_templateGet one Email Template from ServiceM8 by UUID.Read-onlyRetrieve an Email Template
Get one Email Template from ServiceM8 by UUID. Returns the Email Template record with fields such as name, subject, message, uuid, active. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_templates OAuth scope.
Inputs
email_template_uuidstringrequired- UUID of the Email Template. Get UUIDs from the matching list tool.
servicem8_get_feedbackGet one Feedback from ServiceM8 by UUID.Read-onlyRetrieve a Feedback
Get one Feedback from ServiceM8 by UUID. Returns the Feedback record with fields such as timestamp, related_object, related_object_uuid, rating, comment. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_feedback OAuth scope.
Inputs
feedback_uuidstringrequired- UUID of the Feedback. Get UUIDs from the matching list tool.
servicem8_get_formGet one Form from ServiceM8 by UUID.Read-onlyRetrieve a Form
Get one Form from ServiceM8 by UUID. Returns the Form record with fields such as name, document_template_uuid, can_be_used_independently, badge_mandatory_state, template_fields. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_forms OAuth scope.
Inputs
form_uuidstringrequired- UUID of the Form. Get UUIDs from the matching list tool.
servicem8_get_form_responseGet one Form Response from ServiceM8 by UUID.Read-onlyRetrieve a Form Response
Get one Form Response from ServiceM8 by UUID. Returns the Form Response record with fields such as form_uuid, staff_uuid, regarding_object, regarding_object_uuid, field_data. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_forms OAuth scope.
Inputs
form_response_uuidstringrequired- UUID of the Form Response. Get UUIDs from the matching list tool.
servicem8_get_inbox_messageGet one ServiceM8 inbox message, including its attachments and conversation history.Read-onlyGet Inbox Message
Get one ServiceM8 inbox message, including its attachments and conversation history. Returns the full message record. Use after servicem8_list_inbox_messages to read a single message. Prerequisite: get the message UUID from servicem8_list_inbox_messages.
Inputs
message_uuidstringrequired- UUID of the inbox message. Get UUIDs from the matching list tool.
servicem8_get_jobGet one Job from ServiceM8 by UUID.Read-onlyRetrieve a Job
Get one Job from ServiceM8 by UUID. Returns the Job record with fields such as created_by_staff_uuid, date, company_uuid, billing_address, status. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_jobs OAuth scope.
Inputs
job_uuidstringrequired- UUID of the job. Get job UUIDs from servicem8_list_jobs.
servicem8_get_job_activityGet one Job Activity from ServiceM8 by UUID.Read-onlyRetrieve a Job Activity
Get one Job Activity from ServiceM8 by UUID. Returns the Job Activity record with fields such as job_uuid, staff_uuid, start_date, end_date, activity_was_scheduled. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_schedule OAuth scope.
Inputs
job_activity_uuidstringrequired- UUID of the Job Activity. Get UUIDs from the matching list tool.
servicem8_get_job_allocationGet one Job Allocation from ServiceM8 by UUID.Read-onlyRetrieve a Job Allocation
Get one Job Allocation from ServiceM8 by UUID. Returns the Job Allocation record with fields such as job_uuid, queue_uuid, staff_uuid, allocation_date, allocation_window_uuid. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_schedule OAuth scope.
Inputs
job_allocation_uuidstringrequired- UUID of the Job Allocation. Get UUIDs from the matching list tool.
servicem8_get_job_checklistGet one Job Checklist from ServiceM8 by UUID.Read-onlyRetrieve a Job Checklist
Get one Job Checklist from ServiceM8 by UUID. Returns the Job Checklist record with fields such as uuid, active, edit_date, job_uuid, name. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_job_checklists OAuth scope.
Inputs
job_checklist_uuidstringrequired- UUID of the Job Checklist. Get UUIDs from the matching list tool.
servicem8_get_job_contactGet one Job Contact from ServiceM8 by UUID.Read-onlyRetrieve a Job Contact
Get one Job Contact from ServiceM8 by UUID. Returns the Job Contact record with fields such as job_uuid, first, last, phone, mobile. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_job_contacts OAuth scope.
Inputs
job_contact_uuidstringrequired- UUID of the Job Contact. Get UUIDs from the matching list tool.
servicem8_get_job_emailGet one job email record from ServiceM8 by UUID.Read-onlyGet Job Email
Get one job email record from ServiceM8 by UUID. Returns the email record with its related object, timestamp and direction. Use after servicem8_list_job_emails. Prerequisite: get the email UUID from servicem8_list_job_emails.
Inputs
email_uuidstringrequired- UUID of the email record. Get UUIDs from the matching list tool.
servicem8_get_job_materialGet one Job Material from ServiceM8 by UUID.Read-onlyRetrieve a Job Material
Get one Job Material from ServiceM8 by UUID. Returns the Job Material record with fields such as job_uuid, material_uuid, name, quantity, price. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_job_materials OAuth scope.
Inputs
job_material_uuidstringrequired- UUID of the Job Material. Get UUIDs from the matching list tool.
servicem8_get_job_paymentGet one Job Payment from ServiceM8 by UUID.Read-onlyRetrieve a Job Payment
Get one Job Payment from ServiceM8 by UUID. Returns the Job Payment record with fields such as job_uuid, actioned_by_uuid, timestamp, amount, method. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_job_payments OAuth scope.
Inputs
job_payment_uuidstringrequired- UUID of the Job Payment. Get UUIDs from the matching list tool.
servicem8_get_job_queueGet one Job Queue from ServiceM8 by UUID.Read-onlyRetrieve a Job Queue
Get one Job Queue from ServiceM8 by UUID. Returns the Job Queue record with fields such as uuid, active, edit_date, name, default_timeframe. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_job_queues OAuth scope.
Inputs
job_queue_uuidstringrequired- UUID of the Job Queue. Get UUIDs from the matching list tool.
servicem8_get_job_sms_messageGet one job SMS record from ServiceM8 by UUID.Read-onlyGet Job SMS Message
Get one job SMS record from ServiceM8 by UUID. Returns the SMS record with its related object, timestamp and direction. Use after servicem8_list_job_sms_messages. Prerequisite: get the SMS UUID from servicem8_list_job_sms_messages.
Inputs
sms_uuidstringrequired- UUID of the SMS record. Get UUIDs from the matching list tool.
servicem8_get_job_templateGet one Job Template from ServiceM8 by UUID.Read-onlyRetrieve a Job Template
Get one Job Template from ServiceM8 by UUID. Returns the Job Template record with fields such as uuid, active, edit_date, name. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_jobs OAuth scope.
Inputs
job_template_uuidstringrequired- UUID of the Job Template. Get UUIDs from the matching list tool.
servicem8_get_knowledge_articleGet one Knowledge Article from ServiceM8 by UUID.Read-onlyRetrieve a Knowledge Article
Get one Knowledge Article from ServiceM8 by UUID. Returns the Knowledge Article record with fields such as uuid, active, edit_date, name, content. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_knowledge OAuth scope.
Inputs
knowledge_article_uuidstringrequired- UUID of the Knowledge Article. Get UUIDs from the matching list tool.
servicem8_get_locationGet one Location from ServiceM8 by UUID.Read-onlyRetrieve a Location
Get one Location from ServiceM8 by UUID. Returns the Location record with fields such as name, line1, line2, line3, city. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_locations OAuth scope.
Inputs
location_uuidstringrequired- UUID of the Location. Get UUIDs from the matching list tool.
servicem8_get_materialGet one Material from ServiceM8 by UUID.Read-onlyRetrieve a Material
Get one Material from ServiceM8 by UUID. Returns the Material record with fields such as name, item_number, price, cost, quantity_in_stock. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_inventory OAuth scope.
Inputs
material_uuidstringrequired- UUID of the Material. Get UUIDs from the matching list tool.
servicem8_get_noteGet one Note from ServiceM8 by UUID.Read-onlyRetrieve a Note
Get one Note from ServiceM8 by UUID. Returns the Note record with fields such as uuid, active, edit_date, related_object, related_object_uuid. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_job_notes OAuth scope.
Inputs
note_uuidstringrequired- UUID of the Note. Get UUIDs from the matching list tool.
servicem8_get_sms_templateGet one SMS Template from ServiceM8 by UUID.Read-onlyRetrieve a SMS Template
Get one SMS Template from ServiceM8 by UUID. Returns the SMS Template record with fields such as name, message, uuid, active, edit_date. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_templates OAuth scope.
Inputs
sms_template_uuidstringrequired- UUID of the SMS Template. Get UUIDs from the matching list tool.
servicem8_get_staff_memberGet one Staff Member from ServiceM8 by UUID.Read-onlyRetrieve a Staff Member
Get one Staff Member from ServiceM8 by UUID. Returns the Staff Member record with fields such as first, last, email, mobile, lng. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_staff OAuth scope.
Inputs
staff_member_uuidstringrequired- UUID of the Staff Member. Get UUIDs from the matching list tool.
servicem8_get_supplierGet one Supplier from ServiceM8 by UUID.Read-onlyRetrieve a Supplier
Get one Supplier from ServiceM8 by UUID. Returns the Supplier record with fields such as uuid, active, edit_date, name, business_number. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_suppliers OAuth scope.
Inputs
supplier_uuidstringrequired- UUID of the Supplier. Get UUIDs from the matching list tool.
servicem8_get_taskGet one Task from ServiceM8 by UUID.Read-onlyRetrieve a Task
Get one Task from ServiceM8 by UUID. Returns the Task record with fields such as due_date, task_details, name, related_object, related_object_uuid. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_tasks OAuth scope.
Inputs
task_uuidstringrequired- UUID of the Task. Get UUIDs from the matching list tool.
servicem8_get_tax_rateGet one Tax Rate from ServiceM8 by UUID.Read-onlyRetrieve a Tax Rate
Get one Tax Rate from ServiceM8 by UUID. Returns the Tax Rate record with fields such as name, amount, is_default_tax_rate, uuid, active. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the read_tax_rates OAuth scope.
Inputs
tax_rate_uuidstringrequired- UUID of the tax rate to apply. Get tax rate UUIDs from servicem8_list_tax_rates.
servicem8_get_vendorGet one Vendor from ServiceM8 by UUID.Read-onlyRetrieve a Vendor
Get one Vendor from ServiceM8 by UUID. Returns the Vendor record with fields such as business_number, email, email_accounts, billing_address, accepted_payment_methods. Use when you already have the UUID. Use the matching list tool to find records or filter. Prerequisite: get the UUID from the matching list tool. Requires the vendor OAuth scope.
Inputs
vendor_uuidstringrequired- UUID of the Vendor. Get UUIDs from the matching list tool.
servicem8_list_asset_typesList Asset Types in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Asset Types
List Asset Types in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Asset Types; each record includes fields such as uuid, active, edit_date, name. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_assets OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_assetsList Assets in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Assets
List Assets in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Assets; each record includes fields such as uuid, active, edit_date, company_uuid, asset_code. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_assets OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_attachmentsList Attachments in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Attachments
List Attachments in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Attachments; each record includes fields such as related_object, related_object_uuid, attachment_name, file_type, attachment_source. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_attachments OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_badgesList Badges in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Badges
List Badges in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Badges; each record includes fields such as uuid, active, edit_date, name, automatically_allocated. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_badges OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_categoriesList Categories in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Categories
List Categories in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Categories; each record includes fields such as name, colour, uuid, active, edit_date. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_job_categories OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_clientsList Clients in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Clients
List Clients in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Clients; each record includes fields such as name, abn_number, address, billing_address, is_individual. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_customers OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_company_contactsList Company Contacts in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Company Contacts
List Company Contacts in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Company Contacts; each record includes fields such as company_uuid, first, last, phone, mobile. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_customer_contacts OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_document_templatesList Document Templates in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Document Templates
List Document Templates in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Document Templates; each record includes fields such as uuid, active, edit_date, template_type, related_object. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_templates OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_email_templatesList Email Templates in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Email Templates
List Email Templates in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Email Templates; each record includes fields such as name, subject, message, uuid, active. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_templates OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_feedbackList Feedback in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Feedback
List Feedback in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Feedback; each record includes fields such as timestamp, related_object, related_object_uuid, rating, comment. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_feedback OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_form_responsesList Form Responses in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Form Responses
List Form Responses in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Form Responses; each record includes fields such as form_uuid, staff_uuid, regarding_object, regarding_object_uuid, field_data. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_forms OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_formsList Forms in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Forms
List Forms in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Forms; each record includes fields such as name, document_template_uuid, can_be_used_independently, badge_mandatory_state, template_fields. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_forms OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_inbox_messagesList messages in the ServiceM8 inbox, optionally filtered by status or searched by subject or sender.Read-onlyList Inbox Messages
List messages in the ServiceM8 inbox, optionally filtered by status or searched by subject or sender. Returns a messages array and pagination details (limit and offset based). Use to browse the inbox. Use servicem8_get_inbox_message for one message with its attachments and conversation history.
Inputs
filterstring- Filter messages by status: all, unread, archived, snoozed. Defaults to all.one of
allunreadarchivedsnoozed limitinteger- Maximum number of messages to return (1-500) Default 50.
offsetinteger- Number of messages to skip for pagination
searchstring- Search messages by subject, from name, or from email
servicem8_list_job_activitiesList Job Activities in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Job Activities
List Job Activities in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Job Activities; each record includes fields such as job_uuid, staff_uuid, start_date, end_date, activity_was_scheduled. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_schedule OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_job_allocationsList Job Allocations in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Job Allocations
List Job Allocations in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Job Allocations; each record includes fields such as job_uuid, queue_uuid, staff_uuid, allocation_date, allocation_window_uuid. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_schedule OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_job_checklistsList Job Checklists in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Job Checklists
List Job Checklists in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Job Checklists; each record includes fields such as uuid, active, edit_date, job_uuid, name. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_job_checklists OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_job_contactsList Job Contacts in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Job Contacts
List Job Contacts in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Job Contacts; each record includes fields such as job_uuid, first, last, phone, mobile. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_job_contacts OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_job_emailsList job email history (inbound and outbound) for the ServiceM8 account, optionally filtered by direction or job.Read-onlyList Job Emails
List job email history (inbound and outbound) for the ServiceM8 account, optionally filtered by direction or job. Returns an array of email records with UUID, related object, timestamp and direction. Use to review correspondence on jobs. Use servicem8_get_job_email for one record.
Inputs
cursorstring- Cursor value for merged email pagination. Use -1 to start a cursor walk. Pass the value -1 to start. A cursor from a previous page is only usable if the response exposes it.
filterstring- OData filter expression. Supports eq conditions for direction, related_object, and related_object_uuid joined with and. Example: direction eq inbound and related_object eq job.
limitinteger- Maximum number of records to return. Default 1000.
servicem8_list_job_materialsList Job Materials in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Job Materials
List Job Materials in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Job Materials; each record includes fields such as job_uuid, material_uuid, name, quantity, price. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_job_materials OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_job_paymentsList Job Payments in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Job Payments
List Job Payments in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Job Payments; each record includes fields such as job_uuid, actioned_by_uuid, timestamp, amount, method. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_job_payments OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_job_queuesList Job Queues in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Job Queues
List Job Queues in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Job Queues; each record includes fields such as uuid, active, edit_date, name, default_timeframe. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_job_queues OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_job_sms_messagesList job SMS history (inbound and outbound) for the ServiceM8 account, optionally filtered by direction or job.Read-onlyList Job SMS Messages
List job SMS history (inbound and outbound) for the ServiceM8 account, optionally filtered by direction or job. Returns an array of SMS records with UUID, related object, timestamp and direction. Use to review text messages on jobs. Use servicem8_get_job_sms_message for one record.
Inputs
cursorstring- Cursor value for merged SMS pagination. Use -1 to start a cursor walk. Pass the value -1 to start. A cursor from a previous page is only usable if the response exposes it.
filterstring- Limited OData filter. Supported fields: direction, related_object (job only), related_object_uuid. Conditions must use eq and may be joined with and. Example: direction eq inbound and related_object_uuid eq 5a2b1c0d-1234-4abc-9def-000000000001.
limitinteger- Maximum number of records to return. Default 1000.
servicem8_list_job_templatesList Job Templates in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Job Templates
List Job Templates in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Job Templates; each record includes fields such as uuid, active, edit_date, name. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_jobs OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_jobsList Jobs in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Jobs
List Jobs in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Jobs; each record includes fields such as created_by_staff_uuid, date, company_uuid, billing_address, status. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_jobs OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_knowledge_articlesList Knowledge Articles in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Knowledge Articles
List Knowledge Articles in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Knowledge Articles; each record includes fields such as uuid, active, edit_date, name, content. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_knowledge OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_locationsList Locations in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Locations
List Locations in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Locations; each record includes fields such as name, line1, line2, line3, city. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_locations OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_materialsList Materials in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Materials
List Materials in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Materials; each record includes fields such as name, item_number, price, cost, quantity_in_stock. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_inventory OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_notesList Notes in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Notes
List Notes in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Notes; each record includes fields such as uuid, active, edit_date, related_object, related_object_uuid. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_job_notes OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_sms_templatesList SMS Templates in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all SMS Templates
List SMS Templates in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of SMS Templates; each record includes fields such as name, message, uuid, active, edit_date. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_templates OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_staff_membersList Staff Members in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Staff Members
List Staff Members in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Staff Members; each record includes fields such as first, last, email, mobile, lng. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_staff OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_suppliersList Suppliers in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Suppliers
List Suppliers in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Suppliers; each record includes fields such as uuid, active, edit_date, name, business_number. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_suppliers OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_tasksList Tasks in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Tasks
List Tasks in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Tasks; each record includes fields such as due_date, task_details, name, related_object, related_object_uuid. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_tasks OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_tax_ratesList Tax Rates in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Tax Rates
List Tax Rates in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Tax Rates; each record includes fields such as name, amount, is_default_tax_rate, uuid, active. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the read_tax_rates OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_list_vendorsList Vendors in the connected ServiceM8 account, optionally narrowed with an OData-style filter.Read-onlyList all Vendors
List Vendors in the connected ServiceM8 account, optionally narrowed with an OData-style filter. Returns an array of Vendors; each record includes fields such as business_number, email, email_accounts, billing_address, accepted_payment_methods. Use to browse or filter. Use the matching get tool for one record by UUID, or servicem8_search for free-text lookups. Requires the vendor OAuth scope. ServiceM8 caps a response at 1,000 records, so narrow large result sets with the filter.
Inputs
filterstring- OData-style filter on public field names. Operators: eq, ne, gt, lt; combine up to 10 conditions with and (no or, no ge/le). Quote strings with single quotes. Example: status eq 'Work Order' and active eq 1.
servicem8_searchSearch jobs, clients and materials in ServiceM8 with one free-text query.Read-onlySearch
Search jobs, clients and materials in ServiceM8 with one free-text query. Returns a results array ranked by relevance, plus the query and a result count. Use servicem8_search for a quick lookup across object types. Use servicem8_search_object_type to search one type, servicem8_search_jobs_semantic for meaning-based job search, or the list tools with a filter for exact field matches.
Inputs
qstringrequired- Free-text search query, 1 to 100 characters (semantic search has no upper limit). Example: plumbing repair.
limitinteger- Maximum number of results to return (max 50) Default 20.
servicem8_search_jobs_semanticFind jobs by meaning rather than exact keywords, using ServiceM8 semantic (embedding) search over job content.Read-onlySearch Jobs Semantic
Find jobs by meaning rather than exact keywords, using ServiceM8 semantic (embedding) search over job content. Returns a results array ranked by similarity, plus the query, a result count and the search type. Use for descriptive queries such as 'replace hot water system'. Use servicem8_search_object_type with object type job for keyword matches.
Inputs
qstringrequired- Free-text search query, 1 to 100 characters (semantic search has no upper limit). Example: replace hot water system.
limitinteger- Maximum number of results to return (max 50) Default 10.
similarity_thresholdnumber- Minimum similarity score (0.0 to 1.0)
servicem8_search_object_typeSearch one ServiceM8 object type (job, company, material, knowledgearticle, attachment, formresponse, asset or materialbundle) with a free-text query.Read-onlySearch Object Type
Search one ServiceM8 object type (job, company, material, knowledgearticle, attachment, formresponse, asset or materialbundle) with a free-text query. Returns a results array ranked by relevance, plus the query, object type and a result count. Use when you already know the object type. Use servicem8_search to search jobs, clients and materials together.
Inputs
object_typestringrequired- Type of object to search. One of: job, company, material, knowledgearticle, attachment, formresponse, asset, materialbundle.one of
jobcompanymaterialknowledgearticleattachmentformresponseassetmaterialbundle qstringrequired- Free-text search query, 1 to 100 characters (semantic search has no upper limit). Example: emergency repair.
limitinteger- Maximum number of results to return (max 100) Default 50.
servicem8_add_inbox_message_noteAdd an internal note to a ServiceM8 inbox message.WriteAdd Inbox Message Note
Add an internal note to a ServiceM8 inbox message. Returns a success flag and a confirmation message. Use to record context on a message before it is converted or archived. Use servicem8_create_note for notes on jobs and other records. Prerequisite: get the message UUID from servicem8_list_inbox_messages.
Inputs
message_uuidstringrequired- UUID of the inbox message. Get UUIDs from the matching list tool.
notestringrequired- Text of the internal note to add to the inbox message.
servicem8_archive_inbox_messageArchive or unarchive a ServiceM8 inbox message.WriteArchive Inbox Message
Archive or unarchive a ServiceM8 inbox message. Returns a success flag and a confirmation message. Use to file away a handled message, or set archived to false to restore it. Use servicem8_snooze_inbox_message to hide it only temporarily. Prerequisite: get the message UUID from servicem8_list_inbox_messages.
- Idempotent
Inputs
message_uuidstringrequired- UUID of the inbox message. Get UUIDs from the matching list tool.
archivedboolean- Set true to archive the message or false to move it back to the inbox. Defaults to true.default
true reasonstring- Optional reason for archiving the message.
servicem8_attach_inbox_message_to_jobAttach a ServiceM8 inbox message to an existing job.WriteAttach Inbox Message To Job
Attach a ServiceM8 inbox message to an existing job. Returns a success flag, the job and a confirmation message. Use when the job already exists. Use servicem8_convert_inbox_message_to_job to create a new job from the message. Prerequisite: get the message UUID from servicem8_list_inbox_messages and the job UUID from servicem8_list_jobs.
Inputs
job_uuidstringrequired- UUID of the job. Get job UUIDs from servicem8_list_jobs.
message_uuidstringrequired- UUID of the inbox message. Get UUIDs from the matching list tool.
servicem8_convert_inbox_message_to_jobConvert a ServiceM8 inbox message into a new job, optionally from a job template.WriteConvert Inbox Message To Job
Convert a ServiceM8 inbox message into a new job, optionally from a job template. Returns a success flag, the new job and a confirmation message. Use to turn an enquiry into work. Use servicem8_attach_inbox_message_to_job to link the message to an existing job instead. Prerequisite: get the message UUID from servicem8_list_inbox_messages.
Inputs
message_uuidstringrequired- UUID of the inbox message. Get UUIDs from the matching list tool.
notestring- Optional free-text note to send along with the conversion request.
template_uuidstring- UUID of a job template to base the new job on. Leave empty to create a plain job. Get template UUIDs from servicem8_list_job_templates.
servicem8_create_attachmentCreate a new Attachment in ServiceM8.WriteCreate a new Attachment
Create a new Attachment in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_attachments OAuth scope.
Inputs
attachment_namestring- Name of the attachment file. Used for display purposes and for naming the file when downloaded. Does not need to include file extension as this is determined by the file_type field.
attachment_sourcestring- Indicates the source or type of the attachment (e.g., 'INVOICE', 'QUOTE'). Used for filtering and determining how to display the attachment.
created_by_staff_uuidstring- UUID of the staff member who created the record. Get staff UUIDs from servicem8_list_staff_members.
file_typestring- File extension including the leading dot (e.g., '.pdf', '.jpg'). Determines how the file is processed and displayed. Always stored in lowercase.
is_favouriteinteger- Flag indicating whether this attachment has been marked as a favorite. Used for filtering and displaying attachments.. Valid values are [0,1]one of
01 latnumber- Latitude coordinate where the attachment was created. Used for geolocation of photos and other attachments. Decimal degrees format.
lngnumber- Longitude coordinate where the attachment was created. Used for geolocation of photos and other attachments. Decimal degrees format.
related_objectstring- The type of object this attachment is related to (e.g., 'job', 'company', 'staff'). Must be a valid object type. Always stored in lowercase.
related_object_uuidstring- UUID of the related object to which this attachment belongs. Must be a valid UUID of an existing object of the type specified in the related_object field.
tagsstring- Comma-separated list of tags associated with the attachment. Used for categorization and filtering of attachments.
timestampstring- Date and time the record was created, formatted YYYY-MM-DD HH:MM:SS.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_categoryCreate a new Category in ServiceM8.WriteCreate a new Category
Create a new Category in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_job_categories OAuth scope.
Inputs
namestringrequired- The name of the job category. Used to classify and organize jobs.
colourstring- The colour associated with this job category. This colour is used to visually identify the category on the dispatch board and in calendar views. The value is a hexadecimal colour code (6 characters 0-9a-f).
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_clientCreate a new Client in ServiceM8.WriteCreate a new Client
Create a new Client in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_customers OAuth scope.
Inputs
namestringrequired- Company Name
abn_numberstring- Australian Business Number. A unique 11-digit identifier issued by the Australian Taxation Office to businesses. Required for tax compliance and validation of business identity in Australia.
addressstring- The complete address of the company in a single text field. Supports up to 500 characters and may contain multiple lines. Used when individual address components (street, city, etc.) are not available or when displaying the full address in a single field.
address_citystring- City or suburb of the client's address.
address_countrystring- Country of the client's address.
address_postcodestring- Postcode or ZIP code of the client's address.
address_statestring- State or region of the client's address.
address_streetstring- Street part of the client's address.
badgesstring- Badges to apply, given as a JSON array of badge UUIDs encoded as a string. Get badge UUIDs from servicem8_list_badges. Example: ["123e4567-e89b-12d3-a456-426614174000"].
billing_addressstring- The complete billing address for the company in a single text field. Supports up to 500 characters and may contain multiple lines. Used for invoicing and financial transactions when the billing address differs from the primary company address.
billing_attentionstring- Attention line (person or department) printed on the client's invoices.
deposit_percentinteger- Deposit percentage requested from the client, as a whole number such as 25.
fax_numberstring- Fax number of the client.
parent_company_uuidstring- If provided, specifies the UUID of this Site's parent Company. If blank, this record is a Head Office rather than a Site. This field is only present on ServiceM8 Accounts with the Company Sites addon activated.
payment_termsstring- Payment terms for the client's invoices, as stored by ServiceM8. Read an existing client with servicem8_get_client to see the format in use.
tax_rate_uuidstring- UUID of the tax rate to apply. Get tax rate UUIDs from servicem8_list_tax_rates.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
websitestring- Website address of the client.
servicem8_create_company_contactCreate a new Company Contact in ServiceM8.WriteCreate a new Company Contact
Create a new Company Contact in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_customer_contacts OAuth scope.
Inputs
company_uuidstring- The UUID of the company this contact belongs to
emailstring- Email address of the contact. Used for sending email communications, quotes, invoices, and other electronic correspondence.
firststring- First name of the company contact. Used for identifying and addressing the contact in communications.
is_primary_contactstring- Indicates whether this contact is the primary contact for the company. Value of 1 means this is the primary contact, 0 means it is not. A company should have only one active primary contact.
laststring- Last name of the company contact. Used together with the first name to identify the contact.
mobilestring- Mobile phone number for the contact. Used for SMS communications and alternative voice contact. Should include area code and can include international code.
phonestring- Primary phone number for the contact. Used for voice communications with the contact. Should include area code and can include international code.
typestring- Specifies the type of contact. Common values include 'BILLING' for billing contacts and 'JOB' for job contacts. This field determines how the contact is used in the system.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_inbox_messageCreate a new message in the ServiceM8 inbox, for example to hand an external enquiry to the team.WriteCreate Inbox Message
Create a new message in the ServiceM8 inbox, for example to hand an external enquiry to the team. Returns the created inbox message. Use to push leads or requests into ServiceM8. Structured job details can be supplied so the message converts cleanly to a job later with servicem8_convert_inbox_message_to_job.
Inputs
message_textstringrequired- Plain text content of the message
subjectstringrequired- Subject of the message
from_emailstring- Email address of the sender
from_namestring- Name of the sender
jobDataobject- Structured job details merged into the message data for later conversion to a job. Include contact names, company name, email, phone numbers, billing contact details, job description and job address as needed. Example: {"contact_first": "Jane", "contact_last": "Smith", "job_description": "Leaking tap", "job_address": "1 Main St"}.
json_dataobject- Free-form extra data kept with the message and used when the message is later converted to a job. Pass an object of key/value pairs.
regarding_company_uuidstring- UUID of the company this message is regarding
servicem8_create_jobCreate a new Job in ServiceM8.WriteCreate a new Job
Create a new Job in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the create_jobs OAuth scope.
Inputs
statusstringrequired- Current status of the job. Controls where the Job appears in the Dispatch Board.. Valid values are [Quote,Work Order,Unsuccessful,Completed]one of
QuoteWork OrderUnsuccessfulCompleted badgesstring- Badges to apply, given as a JSON array of badge UUIDs encoded as a string. Get badge UUIDs from servicem8_list_badges. Example: ["123e4567-e89b-12d3-a456-426614174000"].
billing_addressstring- The address where invoices and billing information should be sent. If not specified, defaults to the job address.
category_uuidstring- UUID reference to the job category this job belongs to. Categories help organize jobs by type of work or department.
company_uuidstring- UUID reference to the client/company record associated with this job. Links the job to a client in the system, establishing the client-job relationship for billing and contact purposes.
completion_datestring- The date and time that the job status was changed to Completed.
created_by_staff_uuidstring- UUID of the staff member who created this job. Records which staff member initially added the job to the system.
datestring- The date the job was created or scheduled. Used for organizing jobs chronologically and for reference in reports.
invoice_datestring- The date the invoice was issued. This determines when payment is due based on the client's payment terms. Automatically set when a job is completed or manually when invoice is created.
invoice_sentinteger- Indicates whether an invoice has been sent for this job.. Valid values are [0,1]one of
01 job_addressstring- Physical address where the job is to be performed. This address is used for geocoding to place the job on the map.
job_descriptionstring- Description of the work to be done on the job.
payment_actioned_by_uuidstring- Not used. Refer to JobPayment endpoint.
payment_amountstring- Not used. Refer to JobPayment endpoint.
payment_datestring- Not used. Refer to JobPayment endpoint.
payment_methodstring- Not used. Refer to JobPayment endpoint.
payment_notestring- Not used. Refer to JobPayment endpoint.
payment_processedinteger- Indicates whether the job has been exported to the connected Accounting Package.. Valid values are [0,1]one of
01 payment_receivedinteger- Indicates whether full payment has been received for this job.. Valid values are [0,1]one of
01 purchase_order_numberstring- Client purchase order reference number for this job. Used for cross-referencing with external accounting or order management systems.
queue_assigned_staff_uuidstring- The UUID of the staff member assigned to this job in the queue.
queue_expiry_datestring- The date and time when the job expires from the queue.
queue_uuidstring- The UUID of the queue this job belongs to.
quote_datestring- The date and time that the job status was changed to Quote.
quote_sentinteger- Boolean flag indicating whether a quote has been sent to the client for this job.. Valid values are [0,1]one of
01 unsuccessful_datestring- The date and time that the job status was changed to Unsuccessful.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
work_done_descriptionstring- Description of the work that was carried out on the job.
work_order_datestring- The date and time that the job status was changed to Work Order.
servicem8_create_job_activityCreate a new Job Activity in ServiceM8.WriteCreate a new Job Activity
Create a new Job Activity in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_schedule OAuth scope.
Inputs
activity_was_automatedstring- Integer flag indicating if the activity was automated: 0
activity_was_recordedstring- Boolean flag indicating whether this activity was recorded after completion rather than scheduled in advance. Cannot be true if activity_was_scheduled is true.
activity_was_scheduledstring- Boolean flag indicating whether this activity was scheduled in advance. Cannot be true if activity_was_recorded is true.
end_datestring- The scheduled end date and time of the activity
has_been_openedstring- Boolean flag indicating whether the assigned staff member has viewed this job activity. Resets to false if the staff member or start time is changed. Only relevant when activity_was_scheduled is true.
has_been_opened_timestampstring- The date and time when the assigned staff member first viewed this job activity. Format is YYYY-MM-DD HH:MM:SS. Resets when staff member or start time is changed. Only relevant when activity_was_scheduled is true.
job_uuidstring- The UUID of the job this activity belongs to
material_uuidstring- The UUID of the material associated with this activity. Used to determine the cost of the activity.
staff_uuidstring- The UUID of the staff member assigned to this activity
start_datestring- The scheduled start date and time of the activity
travel_distance_in_metersinteger- The estimated travel distance to reach this activity location in meters
travel_time_in_secondsinteger- The estimated travel time to reach this activity location in seconds
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_job_allocationCreate a new Job Allocation in ServiceM8.WriteCreate a new Job Allocation
Create a new Job Allocation in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_schedule OAuth scope.
Inputs
allocated_by_staff_uuidstring- The UUID of the staff member who allocated the job.
allocated_timestampstring- The timestamp when the job was allocated.
allocation_datestring- The minimum start date for a job allocation to be completed by a staff member. Setting this date will ensure the job allocation appears in the future on staff schedules.
allocation_window_uuidstring- The UUID of the allocation window that defines when the job should be completed (e.g. Urgent, Early Morning, During Business Hours).
completion_timestampstring- The timestamp when the job allocation was marked as completed.
expiry_timestampstring- The timestamp when the job allocation expires.
job_uuidstring- The UUID of the job that this allocation relates to.
read_timestampstring- The timestamp when the job allocation was read by the staff member.
sort_prioritystring- The sort priority for displaying this job allocation.
staff_uuidstring- The UUID of the staff member this job is allocated to.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_job_checklistCreate a new Job Checklist in ServiceM8.WriteCreate a new Job Checklist
Create a new Job Checklist in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_job_checklists OAuth scope.
Inputs
assigned_to_staff_uuidsarray- JSON array of staff UUIDs to whom this checklist item is assigned. Determines which staff members are responsible for completing this checklist item. Currently limited to a maximum of 1 staff member.
completed_by_staff_uuidstring- UUID of the staff member who completed this checklist item. References a Staff object. Empty if the item is not completed.
completed_during_checkin_uuidstring- UUID of the job check-in during which this checklist item was completed. This links the checklist completion to a specific check-in event in the job history.
completed_timestampstring- The date and time when the checklist item was marked as completed. Empty or '0000-00-00 00:00:00' indicates the item is not completed.
fulfilled_by_object_namestring- The type of object which completes this checklist item. For example, for Form checklists, this will be 'FormResponse'.
fulfilled_by_object_uuidstring- The UUID of the object which completes this checklist item. For example, for Form checklists, this references the UUID of a FormResponse record.
item_typestring- The type of checklist item. Valid values are: 'Todo', 'Asset', 'Photo', 'Form', and 'Document'. Defaults to 'Todo' if not specified. This determines the functionality and appearance of the checklist item.
job_uuidstring- UUID of the job this checklist item belongs to. This links the checklist item to a specific job in the system.
namestring- The name or description of the checklist item. This is displayed to users in the mobile app and web interface.
regarding_objectstring- The type of object which this checklist item is related to. For example, for Form checklists, this will be 'Form'.
regarding_object_uuidstring- The UUID of the object which this checklists item is related to. For example, for Form checklists, this is the UUID of the Form that must be completed to complete the checklist item.
reminder_datastring- JSON data containing additional information for the reminder. Format depends on the reminder_type. For ABSOLUTE_DATETIME, includes 'absoluteDateTime'. For RELATIVE_DATETIME, includes 'relativeDateTime' with 'baseDate', 'unit', and 'quantity'. Exposed via API as 'reminder_data'.
reminder_typestring- The type of reminder associated with this checklist item. Valid values are: '' (no reminder), 'CHECK_IN', 'NAVIGATE', 'CHECK_OUT', 'ABSOLUTE_DATETIME', or 'RELATIVE_DATETIME'. Determines when the system will remind users about this checklist item.
section_namestring- The section or category name under which this checklist item is grouped. This helps organize related checklist items together.
sort_orderinteger- A numeric value determining the order in which checklist items appear in the user interface. Lower values appear first. Used to customize the display sequence of items.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_job_contactCreate a new Job Contact in ServiceM8.WriteCreate a new Job Contact
Create a new Job Contact in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_job_contacts OAuth scope.
Inputs
emailstring- Email address of the job contact. Should be a valid email format. Used for sending job-related communications. This field syncs with the job's email field for job contacts or billing_email field for billing contacts.
firststring- First name of the job contact. This information is synced with the job's contact information fields depending on the contact type.
job_uuidstring- UUID of the job this contact is associated with. Each job contact must be linked to a valid job in the system. This field cannot be changed once set.
laststring- Last name of the job contact. This information is synced with the job's contact information fields depending on the contact type.
mobilestring- Mobile phone number of the job contact. Format is flexible but should represent a valid mobile number. This field syncs with the job's mobile field for job contacts or billing_mobile field for billing contacts.
phonestring- Landline or office phone number of the job contact. Format is flexible but should represent a valid phone number. This field syncs with the job's phone_1 field for job contacts or phone_2 field for billing contacts.
typestring- Type of contact relationship to the job. Valid values are: 'JOB' (or 'Job Contact'), 'BILLING' (or 'Billing Contact'), or 'Property Manager'. Controls which job fields are updated when this contact record changes.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_job_diary_itemAdd an immutable plain-text item to a job's diary, attributed to the connected add-on.WriteCreate Job Diary Item
Add an immutable plain-text item to a job's diary, attributed to the connected add-on. Returns whether the item was created and the new diary item UUID. Use to log an activity on a job's timeline. Diary items cannot be read, edited or deleted afterwards; use servicem8_create_note for editable notes. Prerequisite: get the job UUID from servicem8_list_jobs.
Inputs
contentstringrequired- Plaintext Diary item content. Markup is displayed literally.
job_uuidstringrequired- UUID of the Job whose Diary receives the item.
servicem8_create_job_from_templateCreate a new job by cloning a ServiceM8 job template, including its tasks, materials and checklists.WriteCreate Job From Template
Create a new job by cloning a ServiceM8 job template, including its tasks, materials and checklists. Returns the new job UUID (jobUUID), its location and a confirmation message. Use when a job template already exists for the work. Use servicem8_create_job for a blank job. Optionally override the description, client and address; give either a client UUID or a client name, not both. Prerequisite: get the template UUID from servicem8_list_job_templates.
Inputs
template_uuidstringrequired- UUID of a job template to base the new job on. Leave empty to create a plain job. Get template UUIDs from servicem8_list_job_templates.
company_namestring- Name of the company/client. If a company with this name exists, it will be used. Otherwise, a new company will be created. Cannot be used together with company_uuid.
company_uuidstring- UUID of the company/client. Cannot be used together with company_name.
job_addressstring- Street address for the job
job_descriptionstring- Job description
servicem8_create_job_materialCreate a new Job Material in ServiceM8.WriteCreate a new Job Material
Create a new Job Material in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_job_materials OAuth scope.
Inputs
quantitystringrequired- The quantity of this material used on the job. This field is mandatory and cannot be empty.
coststring- The cost of the material for this job. This is the ex-tax amount.
displayed_amountstring- The unit price amount as displayed on invoices and quotes. This can be either tax-inclusive or tax-exclusive depending on the displayed_amount_is_tax_inclusive field value. Used for presentation to customers.
displayed_amount_is_tax_inclusivestring- Boolean flag indicating whether the displayed_amount includes tax (true) or excludes tax (false). This controls how prices are presented to customers and determines which price value (inclusive or exclusive) is used in calculations.
displayed_coststring- The cost of the material for this job, displayed as inc-tax or ex-tax depending on jobMaterial.displayed_amount_is_tax_inclusive.
job_material_bundle_uuidstring- UUID of a JobMaterialBundle which this JobMaterial belongs to. The default value is blank, which means that the JobMaterial is not part of a JobMaterialBundle.
job_uuidstring- The UUID of the job this material is associated with. This is a required field that establishes the relationship between the job material and its parent job.
material_uuidstring- The UUID of the material catalog item this job material is based on. Links the job material to the corresponding material in the materials catalog.
namestring- The name of the material item used on the job. This is displayed on invoices and is used to identify the material to the customer. The name typically comes from the associated material object but can be customized per job.
pricestring- The unit price of the material excluding tax. Used in calculations to determine the total price for this line item on the job. The system may automatically adjust this value to maintain consistency with tax-inclusive pricing.
sort_orderstring- Integer value controlling the display order of materials on a job. Lower values appear first in lists. Used to customize the presentation order of materials on quotes, invoices and job forms.
tax_rate_uuidstring- The UUID of the tax rate applied to this job material. Determines how tax is calculated for this specific line item.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_job_paymentCreate a new Job Payment in ServiceM8.WriteCreate a new Job Payment
Create a new Job Payment in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_job_payments OAuth scope.
Inputs
actioned_by_uuidstring- UUID of the staff member who recorded or processed this payment. Used for tracking which staff member handled the transaction.
amountstring- The payment amount in the account's currency.
attachment_uuidstring- UUID linking to a stored attachment related to this payment, such as a receipt image. This is an optional reference to an Attachment record.
job_uuidstring- UUID of the job this payment is associated with. Each payment must be linked to a valid job in the system.
methodstring- The payment method used for this transaction. Examples include 'Cash', 'Credit Card', 'Bank Transfer', 'Stripe', etc.
notestring- Optional text field for storing additional information about the payment. Can be used to record reference numbers, transaction IDs, or other payment-specific details.
timestampstring- The date and time when this payment was recorded or processed. Format is YYYY-MM-DD HH:MM:SS. Used for payment reconciliation and reporting.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_job_queueCreate a new Job Queue in ServiceM8.WriteCreate a new Job Queue
Create a new Job Queue in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_job_queues OAuth scope.
Inputs
default_timeframeinteger- Default number of days that jobs should remain in this queue before requiring attention. Common values are 7 days (1 week) or 14 days (2 weeks).
namestring- Name of the job queue. Used to identify the queue in the system. Examples include 'Workshop', 'Pending Quotes', etc.
requires_assignmentinteger- Determines if jobs in this queue require assignment to staff members. If true, jobs must be explicitly assigned to staff. If false, jobs are visible to all staff.. Valid values are [0,1]one of
01 subscribed_staffstring- Semicolon-delimited list of staff UUIDs who are subscribed to receive notifications for this queue.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_locationCreate a new Location in ServiceM8.WriteCreate a new Location
Create a new Location in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_locations OAuth scope.
Inputs
namestringrequired- Location's name
statestringrequired- Address State
citystring- City, town, or suburb of the location's address.
countrystring- Country of the location's address. Country names are sanitized through the RegionsanitiseCountryName function.
latnumber- Latitude coordinate of the location in decimal degrees format. Used for geolocation and distance calculations. Expected range is between -90 and 90 degrees.
line1string- First line of the location's address. Contains the street number and street name.
line2string- Second line of the location's address. Used for additional address information such as building/suite numbers or street details.
line3string- Third line of the location's address. Used for additional address details when line1 and line2 are not sufficient.
lngnumber- Longitude coordinate of the location in decimal degrees format. Used for geolocation and distance calculations. Expected range is between -180 and 180 degrees.
phone_1string- Primary contact phone number for the location. Can include formatting characters.
post_codestring- Postal code or ZIP code of the location's address. Format varies by country.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_materialCreate a new Material in ServiceM8.WriteCreate a new Material
Create a new Material in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_inventory OAuth scope.
Inputs
namestringrequired- Name of the material, product or labour rate. The maximum length varies based on accounting package integration 30-100 characters for standard mode, up to 2000 characters for description billing mode. Required field that identifies the material in inventory lists, job forms, and invoices.
barcodestring- The barcode identifier for the material. Can store UPC, EAN, or other barcode formats. Used for inventory scanning and quick material lookup in the mobile app.
coststring- The purchase cost of the material. May include or exclude tax depending on the price_includes_taxes setting. Used for profit calculations and reporting. This field may be hidden from users without appropriate permissions.
item_descriptionstring- Description of the material item, shown on quotes and invoices when enabled.
item_is_inventoriedinteger- Boolean flag indicating whether inventory tracking is enabled for this material (1/true) or disabled (0/false). When enabled, the quantity_in_stock is tracked and updated automatically when the material is used in jobs. Only physical products typically have this enabled.. Valid values are [0,1]one of
01 item_numberstring- Unique identifier code for the material. max length. Must be unique within an account.
pricestring- The selling price of the material. May include or exclude tax based on the price_includes_taxes field. Used as the default price when adding this material to jobs and generating invoices.
price_includes_taxesinteger- Boolean flag indicating whether the price and cost values include tax (1/true) or exclude tax (0/false). Controls tax calculations when determining final pricing. New materials inherit this setting from the account's default tax display preference.. Valid values are [0,1]one of
01 quantity_in_stocknumber- The current inventory quantity of this material available in stock. Stored as a numeric value with decimal support. Updated automatically when materials are used in jobs or when inventory is manually adjusted. Only tracked if item_is_inventoried is enabled.
tax_rate_uuidstring- UUID of the tax rate to apply. Get tax rate UUIDs from servicem8_list_tax_rates.
use_description_for_invoicingstring- Flag controlling whether the item description is used when invoicing, as stored by ServiceM8. Read an existing material with servicem8_get_material to see the value format in use.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_noteCreate a new Note in ServiceM8.WriteCreate a new Note
Create a new Note in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the publish_job_notes OAuth scope.
Inputs
action_completed_by_staff_uuidstring- UUID of the staff member who completed the follow-up action on the note.
action_requiredstring- Flag marking the note as needing follow-up action, as stored by ServiceM8. Read an existing note with servicem8_get_note to see the value format in use.
notestring- Text of the note.
related_objectstring- Type of record the note is attached to, such as job, company or staff. Stored in lowercase.
related_object_uuidstring- UUID of the record the note is attached to; must match the type in related_object.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_create_taskCreate a new Task in ServiceM8.WriteCreate a new Task
Create a new Task in ServiceM8. Returns an errorCode and message confirming the result; the new record UUID is sent in the x-record-uuid response header. Use to add a record. Use the matching update tool to change an existing one. Supply your own uuid if you need to fetch the record straight afterwards. Requires the manage_tasks OAuth scope.
Inputs
namestringrequired- The name or title of the task. This field is mandatory and used to identify the task in listings and the user interface.
assigned_to_staff_uuidstring- UUID of the staff member assigned to complete this task. Must be a valid staff UUID in the system.
completed_by_staff_uuidstring- UUID of the staff member who marked the task as complete. Automatically set to the current staff member's UUID when task_complete is changed to 1.
completed_timestampstring- The date and time when the task was marked as complete. Format is YYYY-MM-DD HH:MM:SS. Automatically set when task_complete is changed to 1.
created_by_staff_uuidstring- UUID of the staff member who created the record. Get staff UUIDs from servicem8_list_staff_members.
due_datestring- The date by which the task should be completed. Format is YYYY-MM-DD. For mobile app compatibility, may be returned with time component (HHMMSS) in some contexts.
related_objectstring- The name of the object class this task is related to. Must be a valid object class name in the system (e.g., 'job', 'client', etc.). The value is always stored as lowercase regardless of input case.
related_object_uuidstring- UUID of the specific object instance this task is related to. Must be a valid UUID corresponding to an existing object of the type specified in related_object.
task_completestring- Boolean flag indicating whether the task has been completed (1) or is still pending (0). When set to 1, the completed_timestamp and completed_by_staff_uuid fields are automatically populated.
task_detailsstring- Detailed description of the task. Contains more comprehensive information about what needs to be done, how to complete the task, or any other relevant notes.
uuidstring- Optional UUID to assign to the new record. If omitted ServiceM8 generates one and returns it in the x-record-uuid response header, which tools may not surface, so supply your own UUID when you need to fetch the record afterwards.
servicem8_mark_inbox_message_readMark a ServiceM8 inbox message as read.WriteMark Inbox Message Read
Mark a ServiceM8 inbox message as read. Returns a success flag and a confirmation message. Use to clear an unread message. Use servicem8_archive_inbox_message to remove it from the main inbox. Prerequisite: get the message UUID from servicem8_list_inbox_messages.
- Idempotent
Inputs
message_uuidstringrequired- UUID of the inbox message. Get UUIDs from the matching list tool.
servicem8_send_emailSend an email from the connected ServiceM8 account, optionally linked to a job so it appears in the job diary.WriteSend Email
Send an email from the connected ServiceM8 account, optionally linked to a job so it appears in the job diary. Returns a confirmation with the message ID, submission time and recipient. Use to email a customer or staff member. Use servicem8_send_sms for text messages. Provide at least one of htmlBody or textBody. Prerequisite: the publish_email OAuth scope; get a job UUID from servicem8_list_jobs to link the message.
Inputs
subjectstringrequired- Email subject line
tostringrequired- Recipient email address
attachmentsarray- UUIDs of existing ServiceM8 attachments to include with the email. Example: ["123e4567-e89b-12d3-a456-426614174000"].
ccstring- Carbon copy recipient email address
htmlBodystring- HTML-formatted email body. Provide at least one of htmlBody or textBody.
regardingJobUUIDstring- UUID of the job that this message is regarding. This is used to link the message to the job in ServiceM8, causing the email to appear in the job diary. If you do not specify a job UUID, the message will not be linked to any job.
replyTostring- Reply-to email address
textBodystring- Plain text email body. Provide at least one of htmlBody or textBody.
servicem8_send_smsSend an SMS from the connected ServiceM8 account, optionally linked to a job so it appears in the job diary.WriteSend SMS
Send an SMS from the connected ServiceM8 account, optionally linked to a job so it appears in the job diary. Sending incurs SMS charges on the ServiceM8 account. Returns a confirmation with the message ID, submission time and recipient. Use to text a customer or staff member. Use servicem8_send_email for email. Marketing and promotional SMS is not permitted. Prerequisite: the publish_sms OAuth scope; get a job UUID from servicem8_list_jobs to link the message.
Inputs
messagestringrequired- Content of the SMS message. Special characters are not supported. Messages longer than 153 characters will consume multiple SMS credits.
tostringrequired- Phone number of the message recipient in E.164 format, including + prefix, country code and area code
regardingJobUUIDstring- UUID of the job that this message is regarding. This is used to link the message to the job in ServiceM8, causing the SMS to appear in the job diary. If you do not specify a job UUID, the message will not be linked to any job.
servicem8_snooze_inbox_messageSnooze a ServiceM8 inbox message until a chosen date and time, or unsnooze it.WriteSnooze Inbox Message
Snooze a ServiceM8 inbox message until a chosen date and time, or unsnooze it. Returns a success flag and a confirmation message. Use to defer a message. Leave the snooze time empty to unsnooze. Use servicem8_archive_inbox_message to remove it permanently. Prerequisite: get the message UUID from servicem8_list_inbox_messages.
- Idempotent
Inputs
message_uuidstringrequired- UUID of the inbox message. Get UUIDs from the matching list tool.
notestring- Optional note to record on the message when snoozing it.
snooze_untilstring- ISO 8601 date and time to snooze the message until, such as 2025-06-01T09:00:00Z. Leave empty to unsnooze the message.
servicem8_update_categoryUpdate fields on an existing Category in ServiceM8.WriteUpdate a Category
Update fields on an existing Category in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_job_categories OAuth scope.
Inputs
category_uuidstringrequired- UUID of the Category. Get UUIDs from the matching list tool.
colourstring- The colour associated with this job category. This colour is used to visually identify the category on the dispatch board and in calendar views. The value is a hexadecimal colour code (6 characters 0-9a-f).
namestring- The name of the job category. Used to classify and organize jobs.
servicem8_update_clientUpdate fields on an existing Client in ServiceM8.WriteUpdate a Client
Update fields on an existing Client in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_customers OAuth scope.
Inputs
client_uuidstringrequired- UUID of the Client. Get UUIDs from the matching list tool.
abn_numberstring- Australian Business Number. A unique 11-digit identifier issued by the Australian Taxation Office to businesses. Required for tax compliance and validation of business identity in Australia.
addressstring- The complete address of the company in a single text field. Supports up to 500 characters and may contain multiple lines. Used when individual address components (street, city, etc.) are not available or when displaying the full address in a single field.
address_citystring- City or suburb of the client's address.
address_countrystring- Country of the client's address.
address_postcodestring- Postcode or ZIP code of the client's address.
address_statestring- State or region of the client's address.
address_streetstring- Street part of the client's address.
badgesstring- Badges to apply, given as a JSON array of badge UUIDs encoded as a string. Get badge UUIDs from servicem8_list_badges. Example: ["123e4567-e89b-12d3-a456-426614174000"].
billing_addressstring- The complete billing address for the company in a single text field. Supports up to 500 characters and may contain multiple lines. Used for invoicing and financial transactions when the billing address differs from the primary company address.
billing_attentionstring- Attention line (person or department) printed on the client's invoices.
deposit_percentinteger- Deposit percentage requested from the client, as a whole number such as 25.
fax_numberstring- Fax number of the client.
namestring- Company Name
parent_company_uuidstring- If provided, specifies the UUID of this Site's parent Company. If blank, this record is a Head Office rather than a Site. This field is only present on ServiceM8 Accounts with the Company Sites addon activated.
payment_termsstring- Payment terms for the client's invoices, as stored by ServiceM8. Read an existing client with servicem8_get_client to see the format in use.
tax_rate_uuidstring- UUID of the tax rate to apply. Get tax rate UUIDs from servicem8_list_tax_rates.
websitestring- Website address of the client.
servicem8_update_company_contactUpdate fields on an existing Company Contact in ServiceM8.WriteUpdate a Company Contact
Update fields on an existing Company Contact in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_customer_contacts OAuth scope.
Inputs
company_contact_uuidstringrequired- UUID of the Company Contact. Get UUIDs from the matching list tool.
company_uuidstring- The UUID of the company this contact belongs to
emailstring- Email address of the contact. Used for sending email communications, quotes, invoices, and other electronic correspondence.
firststring- First name of the company contact. Used for identifying and addressing the contact in communications.
is_primary_contactstring- Indicates whether this contact is the primary contact for the company. Value of 1 means this is the primary contact, 0 means it is not. A company should have only one active primary contact.
laststring- Last name of the company contact. Used together with the first name to identify the contact.
mobilestring- Mobile phone number for the contact. Used for SMS communications and alternative voice contact. Should include area code and can include international code.
phonestring- Primary phone number for the contact. Used for voice communications with the contact. Should include area code and can include international code.
typestring- Specifies the type of contact. Common values include 'BILLING' for billing contacts and 'JOB' for job contacts. This field determines how the contact is used in the system.
servicem8_update_jobUpdate fields on an existing Job in ServiceM8.WriteUpdate a Job
Update fields on an existing Job in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_jobs OAuth scope.
Inputs
job_uuidstringrequired- UUID of the job. Get job UUIDs from servicem8_list_jobs.
badgesstring- Badges to apply, given as a JSON array of badge UUIDs encoded as a string. Get badge UUIDs from servicem8_list_badges. Example: ["123e4567-e89b-12d3-a456-426614174000"].
billing_addressstring- The address where invoices and billing information should be sent. If not specified, defaults to the job address.
category_uuidstring- UUID reference to the job category this job belongs to. Categories help organize jobs by type of work or department.
company_uuidstring- UUID reference to the client/company record associated with this job. Links the job to a client in the system, establishing the client-job relationship for billing and contact purposes.
completion_datestring- The date and time that the job status was changed to Completed.
created_by_staff_uuidstring- UUID of the staff member who created this job. Records which staff member initially added the job to the system.
datestring- The date the job was created or scheduled. Used for organizing jobs chronologically and for reference in reports.
invoice_datestring- The date the invoice was issued. This determines when payment is due based on the client's payment terms. Automatically set when a job is completed or manually when invoice is created.
invoice_sentinteger- Indicates whether an invoice has been sent for this job.. Valid values are [0,1]one of
01 job_addressstring- Physical address where the job is to be performed. This address is used for geocoding to place the job on the map.
job_descriptionstring- Description of the work to be done on the job.
payment_actioned_by_uuidstring- Not used. Refer to JobPayment endpoint.
payment_amountstring- Not used. Refer to JobPayment endpoint.
payment_datestring- Not used. Refer to JobPayment endpoint.
payment_methodstring- Not used. Refer to JobPayment endpoint.
payment_notestring- Not used. Refer to JobPayment endpoint.
payment_processedinteger- Indicates whether the job has been exported to the connected Accounting Package.. Valid values are [0,1]one of
01 payment_receivedinteger- Indicates whether full payment has been received for this job.. Valid values are [0,1]one of
01 purchase_order_numberstring- Client purchase order reference number for this job. Used for cross-referencing with external accounting or order management systems.
queue_assigned_staff_uuidstring- The UUID of the staff member assigned to this job in the queue.
queue_expiry_datestring- The date and time when the job expires from the queue.
queue_uuidstring- The UUID of the queue this job belongs to.
quote_datestring- The date and time that the job status was changed to Quote.
quote_sentinteger- Boolean flag indicating whether a quote has been sent to the client for this job.. Valid values are [0,1]one of
01 statusstring- Current status of the job. Controls where the Job appears in the Dispatch Board.. Valid values are [Quote,Work Order,Unsuccessful,Completed]one of
QuoteWork OrderUnsuccessfulCompleted unsuccessful_datestring- The date and time that the job status was changed to Unsuccessful.
work_done_descriptionstring- Description of the work that was carried out on the job.
work_order_datestring- The date and time that the job status was changed to Work Order.
servicem8_update_job_activityUpdate fields on an existing Job Activity in ServiceM8.WriteUpdate a Job Activity
Update fields on an existing Job Activity in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_schedule OAuth scope.
Inputs
job_activity_uuidstringrequired- UUID of the Job Activity. Get UUIDs from the matching list tool.
activity_was_automatedstring- Integer flag indicating if the activity was automated: 0
activity_was_recordedstring- Boolean flag indicating whether this activity was recorded after completion rather than scheduled in advance. Cannot be true if activity_was_scheduled is true.
activity_was_scheduledstring- Boolean flag indicating whether this activity was scheduled in advance. Cannot be true if activity_was_recorded is true.
end_datestring- The scheduled end date and time of the activity
has_been_openedstring- Boolean flag indicating whether the assigned staff member has viewed this job activity. Resets to false if the staff member or start time is changed. Only relevant when activity_was_scheduled is true.
has_been_opened_timestampstring- The date and time when the assigned staff member first viewed this job activity. Format is YYYY-MM-DD HH:MM:SS. Resets when staff member or start time is changed. Only relevant when activity_was_scheduled is true.
job_uuidstring- The UUID of the job this activity belongs to
material_uuidstring- The UUID of the material associated with this activity. Used to determine the cost of the activity.
staff_uuidstring- The UUID of the staff member assigned to this activity
start_datestring- The scheduled start date and time of the activity
travel_distance_in_metersinteger- The estimated travel distance to reach this activity location in meters
travel_time_in_secondsinteger- The estimated travel time to reach this activity location in seconds
servicem8_update_job_allocationUpdate fields on an existing Job Allocation in ServiceM8.WriteUpdate a Job Allocation
Update fields on an existing Job Allocation in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_schedule OAuth scope.
Inputs
job_allocation_uuidstringrequired- UUID of the Job Allocation. Get UUIDs from the matching list tool.
allocated_by_staff_uuidstring- The UUID of the staff member who allocated the job.
allocated_timestampstring- The timestamp when the job was allocated.
allocation_datestring- The minimum start date for a job allocation to be completed by a staff member. Setting this date will ensure the job allocation appears in the future on staff schedules.
allocation_window_uuidstring- The UUID of the allocation window that defines when the job should be completed (e.g. Urgent, Early Morning, During Business Hours).
completion_timestampstring- The timestamp when the job allocation was marked as completed.
expiry_timestampstring- The timestamp when the job allocation expires.
job_uuidstring- The UUID of the job that this allocation relates to.
read_timestampstring- The timestamp when the job allocation was read by the staff member.
sort_prioritystring- The sort priority for displaying this job allocation.
staff_uuidstring- The UUID of the staff member this job is allocated to.
servicem8_update_job_checklistUpdate fields on an existing Job Checklist in ServiceM8.WriteUpdate a Job Checklist
Update fields on an existing Job Checklist in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_job_checklists OAuth scope.
Inputs
job_checklist_uuidstringrequired- UUID of the Job Checklist. Get UUIDs from the matching list tool.
assigned_to_staff_uuidsarray- JSON array of staff UUIDs to whom this checklist item is assigned. Determines which staff members are responsible for completing this checklist item. Currently limited to a maximum of 1 staff member.
completed_by_staff_uuidstring- UUID of the staff member who completed this checklist item. References a Staff object. Empty if the item is not completed.
completed_during_checkin_uuidstring- UUID of the job check-in during which this checklist item was completed. This links the checklist completion to a specific check-in event in the job history.
completed_timestampstring- The date and time when the checklist item was marked as completed. Empty or '0000-00-00 00:00:00' indicates the item is not completed.
fulfilled_by_object_namestring- The type of object which completes this checklist item. For example, for Form checklists, this will be 'FormResponse'.
fulfilled_by_object_uuidstring- The UUID of the object which completes this checklist item. For example, for Form checklists, this references the UUID of a FormResponse record.
item_typestring- The type of checklist item. Valid values are: 'Todo', 'Asset', 'Photo', 'Form', and 'Document'. Defaults to 'Todo' if not specified. This determines the functionality and appearance of the checklist item.
job_uuidstring- UUID of the job this checklist item belongs to. This links the checklist item to a specific job in the system.
namestring- The name or description of the checklist item. This is displayed to users in the mobile app and web interface.
regarding_objectstring- The type of object which this checklist item is related to. For example, for Form checklists, this will be 'Form'.
regarding_object_uuidstring- The UUID of the object which this checklists item is related to. For example, for Form checklists, this is the UUID of the Form that must be completed to complete the checklist item.
reminder_datastring- JSON data containing additional information for the reminder. Format depends on the reminder_type. For ABSOLUTE_DATETIME, includes 'absoluteDateTime'. For RELATIVE_DATETIME, includes 'relativeDateTime' with 'baseDate', 'unit', and 'quantity'. Exposed via API as 'reminder_data'.
reminder_typestring- The type of reminder associated with this checklist item. Valid values are: '' (no reminder), 'CHECK_IN', 'NAVIGATE', 'CHECK_OUT', 'ABSOLUTE_DATETIME', or 'RELATIVE_DATETIME'. Determines when the system will remind users about this checklist item.
section_namestring- The section or category name under which this checklist item is grouped. This helps organize related checklist items together.
sort_orderinteger- A numeric value determining the order in which checklist items appear in the user interface. Lower values appear first. Used to customize the display sequence of items.
servicem8_update_job_contactUpdate fields on an existing Job Contact in ServiceM8.WriteUpdate a Job Contact
Update fields on an existing Job Contact in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_job_contacts OAuth scope.
Inputs
job_contact_uuidstringrequired- UUID of the Job Contact. Get UUIDs from the matching list tool.
emailstring- Email address of the job contact. Should be a valid email format. Used for sending job-related communications. This field syncs with the job's email field for job contacts or billing_email field for billing contacts.
firststring- First name of the job contact. This information is synced with the job's contact information fields depending on the contact type.
job_uuidstring- UUID of the job this contact is associated with. Each job contact must be linked to a valid job in the system. This field cannot be changed once set.
laststring- Last name of the job contact. This information is synced with the job's contact information fields depending on the contact type.
mobilestring- Mobile phone number of the job contact. Format is flexible but should represent a valid mobile number. This field syncs with the job's mobile field for job contacts or billing_mobile field for billing contacts.
phonestring- Landline or office phone number of the job contact. Format is flexible but should represent a valid phone number. This field syncs with the job's phone_1 field for job contacts or phone_2 field for billing contacts.
typestring- Type of contact relationship to the job. Valid values are: 'JOB' (or 'Job Contact'), 'BILLING' (or 'Billing Contact'), or 'Property Manager'. Controls which job fields are updated when this contact record changes.
servicem8_update_job_materialUpdate fields on an existing Job Material in ServiceM8.WriteUpdate a Job Material
Update fields on an existing Job Material in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_job_materials OAuth scope.
Inputs
job_material_uuidstringrequired- UUID of the Job Material. Get UUIDs from the matching list tool.
coststring- The cost of the material for this job. This is the ex-tax amount.
displayed_amountstring- The unit price amount as displayed on invoices and quotes. This can be either tax-inclusive or tax-exclusive depending on the displayed_amount_is_tax_inclusive field value. Used for presentation to customers.
displayed_amount_is_tax_inclusivestring- Boolean flag indicating whether the displayed_amount includes tax (true) or excludes tax (false). This controls how prices are presented to customers and determines which price value (inclusive or exclusive) is used in calculations.
displayed_coststring- The cost of the material for this job, displayed as inc-tax or ex-tax depending on jobMaterial.displayed_amount_is_tax_inclusive.
job_material_bundle_uuidstring- UUID of a JobMaterialBundle which this JobMaterial belongs to. The default value is blank, which means that the JobMaterial is not part of a JobMaterialBundle.
job_uuidstring- The UUID of the job this material is associated with. This is a required field that establishes the relationship between the job material and its parent job.
material_uuidstring- The UUID of the material catalog item this job material is based on. Links the job material to the corresponding material in the materials catalog.
namestring- The name of the material item used on the job. This is displayed on invoices and is used to identify the material to the customer. The name typically comes from the associated material object but can be customized per job.
pricestring- The unit price of the material excluding tax. Used in calculations to determine the total price for this line item on the job. The system may automatically adjust this value to maintain consistency with tax-inclusive pricing.
quantitystring- The quantity of this material used on the job. This field is mandatory and cannot be empty.
sort_orderstring- Integer value controlling the display order of materials on a job. Lower values appear first in lists. Used to customize the presentation order of materials on quotes, invoices and job forms.
tax_rate_uuidstring- The UUID of the tax rate applied to this job material. Determines how tax is calculated for this specific line item.
servicem8_update_job_queueUpdate fields on an existing Job Queue in ServiceM8.WriteUpdate a Job Queue
Update fields on an existing Job Queue in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_job_queues OAuth scope.
Inputs
job_queue_uuidstringrequired- UUID of the Job Queue. Get UUIDs from the matching list tool.
default_timeframeinteger- Default number of days that jobs should remain in this queue before requiring attention. Common values are 7 days (1 week) or 14 days (2 weeks).
namestring- Name of the job queue. Used to identify the queue in the system. Examples include 'Workshop', 'Pending Quotes', etc.
requires_assignmentinteger- Determines if jobs in this queue require assignment to staff members. If true, jobs must be explicitly assigned to staff. If false, jobs are visible to all staff.. Valid values are [0,1]one of
01 subscribed_staffstring- Semicolon-delimited list of staff UUIDs who are subscribed to receive notifications for this queue.
servicem8_update_locationUpdate fields on an existing Location in ServiceM8.WriteUpdate a Location
Update fields on an existing Location in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_locations OAuth scope.
Inputs
location_uuidstringrequired- UUID of the Location. Get UUIDs from the matching list tool.
citystring- City, town, or suburb of the location's address.
countrystring- Country of the location's address. Country names are sanitized through the RegionsanitiseCountryName function.
latnumber- Latitude coordinate of the location in decimal degrees format. Used for geolocation and distance calculations. Expected range is between -90 and 90 degrees.
line1string- First line of the location's address. Contains the street number and street name.
line2string- Second line of the location's address. Used for additional address information such as building/suite numbers or street details.
line3string- Third line of the location's address. Used for additional address details when line1 and line2 are not sufficient.
lngnumber- Longitude coordinate of the location in decimal degrees format. Used for geolocation and distance calculations. Expected range is between -180 and 180 degrees.
namestring- Location's name
phone_1string- Primary contact phone number for the location. Can include formatting characters.
post_codestring- Postal code or ZIP code of the location's address. Format varies by country.
statestring- Address State
servicem8_update_materialUpdate fields on an existing Material in ServiceM8.WriteUpdate a Material
Update fields on an existing Material in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_inventory OAuth scope.
Inputs
material_uuidstringrequired- UUID of the Material. Get UUIDs from the matching list tool.
barcodestring- The barcode identifier for the material. Can store UPC, EAN, or other barcode formats. Used for inventory scanning and quick material lookup in the mobile app.
coststring- The purchase cost of the material. May include or exclude tax depending on the price_includes_taxes setting. Used for profit calculations and reporting. This field may be hidden from users without appropriate permissions.
item_descriptionstring- Description of the material item, shown on quotes and invoices when enabled.
item_is_inventoriedinteger- Boolean flag indicating whether inventory tracking is enabled for this material (1/true) or disabled (0/false). When enabled, the quantity_in_stock is tracked and updated automatically when the material is used in jobs. Only physical products typically have this enabled.. Valid values are [0,1]one of
01 item_numberstring- Unique identifier code for the material. max length. Must be unique within an account.
namestring- Name of the material, product or labour rate. The maximum length varies based on accounting package integration 30-100 characters for standard mode, up to 2000 characters for description billing mode. Required field that identifies the material in inventory lists, job forms, and invoices.
pricestring- The selling price of the material. May include or exclude tax based on the price_includes_taxes field. Used as the default price when adding this material to jobs and generating invoices.
price_includes_taxesinteger- Boolean flag indicating whether the price and cost values include tax (1/true) or exclude tax (0/false). Controls tax calculations when determining final pricing. New materials inherit this setting from the account's default tax display preference.. Valid values are [0,1]one of
01 quantity_in_stocknumber- The current inventory quantity of this material available in stock. Stored as a numeric value with decimal support. Updated automatically when materials are used in jobs or when inventory is manually adjusted. Only tracked if item_is_inventoried is enabled.
tax_rate_uuidstring- UUID of the tax rate to apply. Get tax rate UUIDs from servicem8_list_tax_rates.
use_description_for_invoicingstring- Flag controlling whether the item description is used when invoicing, as stored by ServiceM8. Read an existing material with servicem8_get_material to see the value format in use.
servicem8_update_noteUpdate fields on an existing Note in ServiceM8.WriteUpdate a Note
Update fields on an existing Note in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the publish_job_notes OAuth scope.
Inputs
note_uuidstringrequired- UUID of the Note. Get UUIDs from the matching list tool.
action_completed_by_staff_uuidstring- UUID of the staff member who completed the follow-up action on the note.
action_requiredstring- Flag marking the note as needing follow-up action, as stored by ServiceM8. Read an existing note with servicem8_get_note to see the value format in use.
notestring- Text of the note.
related_objectstring- Type of record the note is attached to, such as job, company or staff. Stored in lowercase.
related_object_uuidstring- UUID of the record the note is attached to; must match the type in related_object.
servicem8_update_taskUpdate fields on an existing Task in ServiceM8.WriteUpdate a Task
Update fields on an existing Task in ServiceM8. Only the fields you provide are changed. Returns an errorCode and message confirming the update. Use to modify a record by UUID. Use the matching create tool for new records. Send only the fields to change. Prerequisite: get the UUID from the matching list tool. Requires the manage_tasks OAuth scope.
Inputs
task_uuidstringrequired- UUID of the Task. Get UUIDs from the matching list tool.
assigned_to_staff_uuidstring- UUID of the staff member assigned to complete this task. Must be a valid staff UUID in the system.
completed_by_staff_uuidstring- UUID of the staff member who marked the task as complete. Automatically set to the current staff member's UUID when task_complete is changed to 1.
completed_timestampstring- The date and time when the task was marked as complete. Format is YYYY-MM-DD HH:MM:SS. Automatically set when task_complete is changed to 1.
created_by_staff_uuidstring- UUID of the staff member who created the record. Get staff UUIDs from servicem8_list_staff_members.
due_datestring- The date by which the task should be completed. Format is YYYY-MM-DD. For mobile app compatibility, may be returned with time component (HHMMSS) in some contexts.
namestring- The name or title of the task. This field is mandatory and used to identify the task in listings and the user interface.
related_objectstring- The name of the object class this task is related to. Must be a valid object class name in the system (e.g., 'job', 'client', etc.). The value is always stored as lowercase regardless of input case.
related_object_uuidstring- UUID of the specific object instance this task is related to. Must be a valid UUID corresponding to an existing object of the type specified in related_object.
task_completestring- Boolean flag indicating whether the task has been completed (1) or is still pending (0). When set to 1, the completed_timestamp and completed_by_staff_uuid fields are automatically populated.
task_detailsstring- Detailed description of the task. Contains more comprehensive information about what needs to be done, how to complete the task, or any other relevant notes.
servicem8_delete_clientDelete a Client in ServiceM8.DestructiveDelete a Client
Delete a Client in ServiceM8. This archives the record (sets active to 0) rather than erasing it. Returns an errorCode and message confirming the record was archived. Use only when the record should disappear from normal use. Use the matching update tool to correct fields instead. Prerequisite: get the UUID from the matching list tool. Requires the manage_customers OAuth scope.
- Idempotent
Inputs
client_uuidstringrequired- UUID of the Client. Get UUIDs from the matching list tool.
servicem8_delete_jobDelete a Job in ServiceM8.DestructiveDelete a Job
Delete a Job in ServiceM8. This archives the record (sets active to 0) rather than erasing it. Returns an errorCode and message confirming the record was archived. Use only when the record should disappear from normal use. Use the matching update tool to correct fields instead. Prerequisite: get the UUID from the matching list tool. Requires the manage_jobs OAuth scope.
- Idempotent
Inputs
job_uuidstringrequired- UUID of the job. Get job UUIDs from servicem8_list_jobs.
No tools match.