A weekly list of ServiceM8 quotes worth chasing, with Grok Bot or Claude
Your AI reads your open quotes, ranks them by what they are worth, and hands the calls to Office Voice. One prompt to paste, through ServiceM8’s own connector.
Quotes go quiet because nobody had time to ring. The ones that matter are the big ones, and they are rarely the oldest. Grok Bot and Claude can both read ServiceM8 and build the list from one prompt. Neither should make the calls itself, so the last step hands the list to a service that can.
In short
- What you get
- Every week, open quotes in four queues, ranked by value rather than age, saved as a file you can compare week to week.
- Connecting
- ServiceM8's official connector, in Grok Bot or in Claude: sign in to ServiceM8, no API key to copy.
- The one rule
- The connector can text customers and change job status. The prompt forbids both; the Bot only reads.
- The calls
- Add the Office Voice connector and the Bot queues the quotes over $5,000 and the ones 60 days old. Office Voice rings inside calling hours and logs every outcome.
Take the spec to Claude, ChatGPT or Copilot. The sentence to paste is one click away.
Want the whole thing by email?
This paper, plus the rest of the library. One click to stop them.
1. What the quote list is
In ServiceM8 a quote is a job in Quote status. Most follow-up tools chase the oldest first. The oldest is usually the smallest, because the large ones got chased by hand. The list sorts every open quote into one of four queues, and only the first is ever chased:
- Open. Still waiting on the client. Ranked by quote total, then days since sent.
- Arrived. Accepted or booked. Never touched again.
- Declined. A no, a dispute, or “stop contacting me”. Never re-asked.
- Escalate. Chased three times with nothing back. Goes to you by name, once.
This is the light version, built for a bot. The full Follow-Up standard is the version a business runs at scale: the register, the checks before every touch, the cadence and cap, and a pass test that proves it works.
2. Connect Grok Bot to ServiceM8
ServiceM8 hosts its own connector, so there is no developer app and no key to copy. Grok Bot is xAI’s always-on agent; plans that include it have changed since launch, so check xAI’s own site.
- Click +beside Bots and name it “Quote List”. In Edit Profile, put the standing rules in the description: read only, never send email or SMS, never change a job’s status, ask before any action.
- Sign in to your ServiceM8 dashboard in another tab, then paste this into the Bot’s chat and click Add it:
Add a custom MCP server called ServiceM8 at https://api.servicem8.com/mcp It signs in with OAuth, so give me the Authorize card.
Click Authorizeon the card, sign in to ServiceM8 and allow access. Connected apps are account-wide in Grok Bot: every Bot you run can use ServiceM8 once it is added, so keep the rules in each Bot’s profile.
3. Connect Claude to ServiceM8
- In Claude, open Customize, then Connectors, click + and choose Add custom connector.
- Name it ServiceM8, enter https://api.servicem8.com/mcp, click Add, and sign in to ServiceM8. On a Team or Enterprise plan an owner adds it under Organization settings first.
- Set it to ask before every action, then open the Claude desktop app and start a Cowork task with a folder for the weekly files.
More on what the connector can do, and what to settle before you let it act, in our guide to Claude with ServiceM8.
4. The prompt
The same prompt works in both. Paste it into the Bot’s chat or the Cowork task.
Use the ServiceM8 connector, read only. Do not send any email or SMS, do not change any job's status, and do not add notes. List every job in Quote status. For each one collect: the job number, the client's name and ServiceM8 client ID, the quote total, the date the quote was sent, the client's mobile number, and the last note or diary entry on the job. Put each quote in one queue: - Open: still waiting on the client, with no reply in the notes. - Arrived: the notes show they accepted, or the job has been booked. Leave these alone. - Declined: the notes show a no, a dispute, or "stop contacting me". Leave these alone, permanently. - Escalate: open, and already chased three times with nothing back. These go to me by name, not to another reminder. Rank the Open queue by quote total, largest first, with days since sent breaking ties. Save the list as quotes-YYYY-MM-DD.csv. If last week's file is there, mark any quote that has left the Open queue and say which queue it went to. Give me the Open queue as a table, the Escalate queue as a short list, and the count of open quotes with no mobile number.
Check the first run against ServiceM8’s own list of jobs in Quote status. The count should match before you trust it on a week you are not watching.
5. Run it every week
- Grok Bot:when the table looks right, ask it to “save this as a skill called weekly quote list, and create a routine that runs it every Monday at 8am Brisbane time.”
- Claude: type /schedule and choose weekly, Monday, 8am. It runs while your computer is awake and the app is open.
6. Hand the calls to Office Voice
A quote follow-up call has rules a chatbot cannot keep on its own: say it is an AI, ring inside calling hours, check the Do Not Call Register, and keep a record. Office Voice, our product, places those calls. It rings two kinds of quote: those of $5,000 or more that have not booked, and those sent 60 or more days ago. The rest of the Open queue stays with you.
- Start an Office Voice trial, connect the same ServiceM8 account and switch Get Paid on. That is how Office Voice knows the clients your Bot names. Get Paid is $199 a month, with no call caps.
- In Office Voice, create a key under Keys. Keep it like a password.
- Grok Bot:paste this into the Bot’s chat and click Add it. Enter the key in the secure secret card, never in the chat.
Add a custom MCP server called Office Voice at https://office-voice.com/api/mcp It needs an Authorization header: the word Bearer, a space, then my Office Voice key. Ask me for the key with a secure secret card. Do not ask me to type it in this chat.
Claude: add a custom connector at https://office-voice.com/api/mcp, choose No sign-in, and put the key in a request header named Authorization, as “Bearer” then the key. If your organisation hides the header field, Claude Code takes it in one line.
For your developer. Show the Claude Code line
claude mcp add --transport http office-voice https://office-voice.com/api/mcp \ --header "Authorization: Bearer <your Office Voice key>"
Then add this to the end of the weekly prompt:
Now hand the calls to Office Voice. From the Open queue, take quotes of $5,000 or more, and quotes sent 60 or more days ago, in the ranked order, at most 50 clients. Leave out anyone with no mobile number. Call the Office Voice tool queue_calls twice: once with query_key "quotes_over_5000_not_booked" for the large quotes, and once with query_key "quotes_older_than_60d" for the old ones, each with customer_external_ids set to their ServiceM8 client IDs in ranked order. Add the note "Quote list YYYY-MM-DD". Show me what it queued and what it held back, with the reason for each one held. Do not ring or message anyone yourself.
- Nothing dials straight away. Each client joins the queue in the order your Bot ranked them.
- Office Voice checks the Do Not Call Register and anyone who asked not to be contacted, and holds them back with the reason.
- Each call is placed inside the client’s calling hours and opens by saying it is an AI.
- Every call is recorded with its outcome, so next week’s list shows who said yes, who said no and who needs you.
Steps as each tool set them out on 27 October 2026; menus move, so expect the odd label to differ. Sending invoices instead of quotes? The Xero debtor call list is the same pattern for overdue invoices.
7. Questions
Can Grok Bot connect to ServiceM8?
Yes. ServiceM8 hosts an official connector at https://api.servicem8.com/mcp. Ask your Bot to add it as a custom MCP server, click Authorize on the card it shows, and sign in to ServiceM8. No API key to copy.
Can Claude connect to ServiceM8?
Yes. In Claude, open Customize, then Connectors, add a custom connector with the same URL, and sign in to ServiceM8. On a Team or Enterprise plan an owner adds it first.
Can the connector send texts to my customers?
Yes, it can send job-linked email and SMS and change job status. That is why the prompt here forbids both. Tell the Bot to ask before every action until your rules for who may be messaged are written down.
Why not let the Bot ring or text the quotes itself?
A sales follow-up call has to say it is an AI, stay inside calling hours, respect the Do Not Call Register and keep a record. Office Voice places the calls under those rules and logs each outcome; the Bot only builds and ranks the list.
Grok Bot or Claude for the weekly quote list?
Both sign in to ServiceM8 the same way. Grok Bot runs in the cloud, so the list is ready with your laptop closed. Claude's schedule runs while your computer is awake and the app is open.
Rather skip the build?
Get Paid does it without a Bot in the middle: it reads ServiceM8 through its own connection and rings the quotes worth chasing, alongside the overdue invoices, $199 a month, flat, with no call caps. Hear it first.
Building it properly, at scale? The rules are open. Take the full standard.