ServiceM8 add-on · Setup guide

Orval Voice Agent for ServiceM8

Connect Orval's AI voice receptionist to your ServiceM8 account and turn inbound phone calls into scheduled jobs — automatically, in real time. This guide walks you through installing, connecting, and using the integration end to end.

Reading time — 6 minLast updated — 11 May 2026

What this add-on does

Orval Voice Agent integrates with ServiceM8 to answer your inbound phone calls with an AI voice receptionist and create jobs in your connected ServiceM8 account in real time. When a customer rings your business, Orval picks up, has a natural spoken conversation, captures the work details, and books the job — without anyone on your team having to touch the phone.

The integration runs in the ServiceM8 Online Dashboard (browser). It is not available inside the ServiceM8 iOS or Android apps; jobs created via Orval will still sync into the apps as normal once they exist. The Orval add-on itself is free to install — the Orval product is a paid monthly subscription. See Orval pricing for current plan details.

Naming

Throughout this guide we use the exact capitalisation ServiceM8. It's pronounced "ServiceMate". Orval is an independent product that integrates with ServiceM8 — Orval is not made by ServiceM8 and is not part of ServiceM8.

Before you start

You'll need all four of the following:

  • An active Orval subscription on any plan. If you don't have one yet, sign up at orval.ai/pricing.
  • An active ServiceM8 account in good standing.
  • An Orval agent set up on a trades template (Plumbers, Electricians, HVAC, General Trades, or similar). The ServiceM8 job-creation flow is enabled automatically on trades templates. Non-trades templates (Restaurants, Salons) won't trigger job creation.
  • ServiceM8 admin permissions on the ServiceM8 account you're connecting — you need to be able to authorise add-ons on behalf of your organisation.

Installing the add-on

Installation is a one-time, three-step OAuth flow. The whole process typically takes under two minutes.

  1. 1

    Click Install in the ServiceM8 Add-on Store

    From within the ServiceM8 Online Dashboard, open the Add-on Store, find the Orval Voice Agent listing, and click Install. ServiceM8 will redirect you to Orval to sign in or create an account.

  2. 2

    Pick which Orval agent should connect

    Once signed into Orval, you'll land on the Integrations tab for your selected agent. Choose the trades-template agent you want ServiceM8 jobs to flow into, and click Connect ServiceM8.

  3. 3

    Complete the OAuth consent in ServiceM8

    You'll be redirected back to ServiceM8 to confirm the permissions Orval is requesting. Review the scopes (listed below), click Authorise, and you'll be redirected back to Orval with the connection live.

ServiceM8 Add-on Store listing for Orval Voice Agent with an Install button highlighted.
Step 1 – Click Install in the ServiceM8 Add-on Store. You're redirected to Orval to sign in or create an account.
Orval Integrations tab showing an agent selector and a Connect ServiceM8 button.
Step 2 – In Orval, pick which agent should connect to ServiceM8, then click Connect ServiceM8.
ServiceM8 OAuth consent screen showing the scopes Orval Voice Agent is requesting.
Step 3 – Complete the OAuth consent inside ServiceM8 and you're redirected back to Orval with the connection live.

Choosing a default staff member

Once ServiceM8 is connected, the Integrations tab will show a Default staff member dropdown populated with the staff in your ServiceM8 account. Pick the person who should be assigned to new jobs that come in from voice calls — typically the on-call tradesperson for the day, or a dispatcher who triages incoming work.

Every job Orval creates from a call is scheduled against this default staff member, at the start time agreed with the caller. You can change the default staff member at any time from the same Integrations tab — the change applies to the next call, no reconnection required.

What the agent records in ServiceM8

During a phone call, the Orval voice agent collects the following information from the caller:

  • Caller's name
  • Caller's phone number
  • Full job address
  • A brief description of the work needed
  • Preferred date and start time

With those details, the agent then performs three actions against your ServiceM8 account:

  1. Match or create a client. The phone number is checked against your existing ServiceM8 customers. If we find a match, the new job is attached to that client. If we don't, a new client record is created with the caller's name, phone, and address.
  2. Create a job. A new ServiceM8 job is created against the matched or new client, with the work description in the job description field and the address in the job address field.
  3. Schedule a visit. A scheduled visit is added to your default staff member's diary at the agreed start time.

Only the documented OAuth scopes are used — see the permissions section below for the exact list. Orval does not access financial, invoicing, or payment data inside ServiceM8.

Permissions Orval requests, and why

During the OAuth consent step you'll see ServiceM8 request approval for the following seven scopes. Each one maps directly to the agent's job-creation workflow described above — we don't request anything we don't need.

read_customers

Read customers

Match an incoming caller's phone number to an existing client record so we don't create duplicates.

manage_customers

Manage customers

Create a new client record when a first-time caller books work and isn't already in your ServiceM8.

read_jobs

Read jobs

Check whether a related job already exists for that client before creating a new one from a call.

manage_jobs

Manage jobs

Create a new job in ServiceM8 with the caller's name, address, work description, and chosen date.

manage_schedule

Manage schedule

Add the new visit to the schedule at the time agreed on the call, against the default staff member.

read_staff

Read staff

List your ServiceM8 staff members so you can pick a default assignee from the Orval Integrations tab.

read_locations

Read locations

Identify which of your business locations a job belongs to when you operate from more than one.

What we don't access

Orval does not request scopes for invoices, quotes, payments, materials, inventory, or any financial data inside ServiceM8. If a future feature requires additional scopes, we'll ask you to re-consent during a fresh OAuth flow — we never silently expand permissions.

Disconnecting the integration

You can disconnect the ServiceM8 integration at any time via either route. Both delete Orval's stored OAuth tokens and stop all further reads or writes against your ServiceM8 account.

From Orval (recommended)

Open Orval → Agents → (your agent) → Integrations, find the ServiceM8 row, and click Disconnect. We'll immediately purge our copy of your access and refresh tokens. Existing jobs already in ServiceM8 are not affected.

From ServiceM8

From the ServiceM8 Online Dashboard, open Add-ons → Installed, find Orval Voice Agent, and revoke access. ServiceM8 will invalidate the OAuth token, and Orval will mark the connection as disconnected on the next call attempt.

After disconnecting

Calls handled by your Orval agent after disconnection will still be answered, transcribed, and summarised in Orval — they just won't produce ServiceM8 jobs. Reconnect from the Integrations tab whenever you want to resume.

Troubleshooting

Most setup issues fall into one of four categories. If you're seeing something not covered here, email [email protected] with the call ID from your Orval call log.

A job didn't appear in ServiceM8 after a call

Three things to check, in order:

  1. Open Orval → Agents → (your agent) → Integrations and confirm the ServiceM8 connection shows Connected. If it shows Needs Reconnection, see the next question.
  2. On the same Integrations tab, confirm a default staff member has been selected. Without a default staff member set, the agent has nowhere to assign new visits and will skip the ServiceM8 create step.
  3. Confirm the agent is on a trades template (Plumbers, Electricians, HVAC, General Trades, or similar). Non-trades templates like Restaurants or Salons don't trigger the ServiceM8 job-creation flow.

If all three are correct and a job still isn't appearing, send us the call ID from the Orval call log and we'll investigate.

Connection shows “Needs Reconnection”

ServiceM8 refresh tokens periodically expire, particularly if your ServiceM8 password is reset or two-factor authentication is changed. When this happens Orval flags the connection as needing attention.

Open Orval → Agents → (your agent) → Integrations, click Reconnect next to ServiceM8, and complete the OAuth consent again. Your default staff member selection is preserved across reconnections.

I want to switch from ServiceM8 to Jobber (or another CRM)

Each Orval agent connects to one CRM at a time. To switch, disconnect ServiceM8 first from the Integrations tab (this deletes our stored tokens), then connect the replacement CRM from the same tab.

If you run multiple trades or locations on different CRMs, you can create a separate Orval agent per CRM and point each phone number at the relevant agent.

The caller's address ended up on the wrong job

Orval matches incoming callers to existing ServiceM8 clients by phone number. If two different people share the same phone number in your ServiceM8 (e.g. a household with one landline, or a property managed for several owners), the agent may attach the new visit to the first match it finds.

The fix is to clean up the duplicate phone numbers inside ServiceM8 so each client has a unique number. Going forward, the agent will match callers correctly and create the job against the right client.

Support contact

Email [email protected] for any help with the ServiceM8 integration. Please include your Orval account email and, if applicable, the call ID from the Orval call log.

Response times. We aim to respond within a few hours during UK business hours (Monday–Friday, 09:00–17:30 GMT/BST), and within one business day outside those hours. For urgent connection failures affecting live calls, flag the email as urgent in the subject line.

[email protected]

Replies within a few hours during UK business hours.

Email support

Privacy and data handling

Orval stores the OAuth access and refresh tokens issued by ServiceM8 encrypted at rest, and uses them only to make API calls on your behalf during inbound phone calls. We do not share, sell, or use ServiceM8-sourced data for advertising. Call transcripts and job-creation logs are retained for 90 days for support and quality-assurance purposes, after which they are deleted from our systems.

For the full data-protection picture — including UK GDPR / EU GDPR / applicable regional law, sub-processors, international transfers, and your data-subject rights — see the full Orval privacy policy. The ServiceM8-specific clauses are in section 7, “Third-Party Integrations You Connect”.

Ready to go

Connect Orval to ServiceM8

Install from the ServiceM8 Add-on Store, or start an Orval account first and connect from the Integrations tab.

ServiceM8 Voice Agent Add-on — Help & Setup Guide | Orval - Orval