Turn website enquiries into ServiceM8 clients and jobs

Every enquiry from your website form becomes a ServiceM8 client and a job in your quoting queue, with a Slack ping so someone can call the lead back fast.

Deterministic Code
Google FormsServiceM8SlackSalesOperationsLead EnrichmentNotifications & Alerts
PromptCreate

Watch my website enquiry form in Google Forms and run this every time a new response lands, so no enquiry is lost between the website and the job board. Use a poll trigger for a new Google Forms response on my enquiry form. For each new response, read the full set of answers with Get Response so I have the raw question and answer pairs rather than just the response id.

From those answers, pull out the customer name, email address, phone number, the site address including the suburb, and the free text describing what they need done. Match the answers to my form questions by their question text rather than by position, so reordering the form does not break the mapping. Trim whitespace, and normalise the phone number to digits only for comparison purposes, dropping spaces, brackets, dashes and any leading country code, while keeping the original formatting for what gets saved.

Before creating anything, check whether this person is already a customer. Call ServiceM8 List Clients and look for an existing client whose email address matches the form email case insensitively, or whose phone number matches the normalised form phone. Compare against every phone field on the client record, not just the primary one. If exactly one client matches, reuse that client and do not create a new one, because a repeat customer must not end up duplicated on the client list. If nothing matches, call ServiceM8 Create Client with the customer name, email, phone and address from the form.

Important ServiceM8 API detail: creates return an empty response body, and the new record UUID comes back in the x-record-uuid response header. Read the new client UUID from that header, not from the body. Clients are created on company.json. If the header is missing, fail the run loudly rather than continuing with an empty client reference.

Work out where the job should sit by calling ServiceM8 List Job Queues and resolving my quoting queue by its name, so the queue UUID is looked up at run time instead of being hardcoded. Match the queue name case insensitively and ignore inactive queues. If the quoting queue cannot be found, still create the job so the lead is not lost, and say clearly in the Slack message that the job was created without a queue and needs to be moved manually.

Create the job with ServiceM8 Create Job. Link it to the client UUID from the previous step, set the job address to the site address from the form, and put the customer's enquiry text into the job description so whoever picks it up sees exactly what was asked for in the customer's own words. Place the job in the quoting queue UUID that was resolved. Read the new job UUID from the x-record-uuid response header, then call Get Job with that UUID to fetch the human readable job number, because the create call itself returns no body and the job number is generated server side.

Finish by posting to my new enquiries channel in Slack with Send a Message. The message should show the client name, the suburb, the enquiry text, and the new job number, and it should say whether this is a new client or an existing one so the person on the phones knows the history before they dial. Keep it short and scannable, since the whole point is that someone calls the lead back within the hour.

Process each new response exactly once, and never create the same job twice for the same form response if the workflow retries. If a response is missing both an email address and a phone number, skip the ServiceM8 client lookup, still create the client and job from whatever details were given, and flag in the Slack message that there are no contact details on the enquiry.

What does this prompt do?

  • Picks up every new response to your website enquiry form within minutes, so leads stop sitting unread between the website and the job board.
  • Checks your existing ServiceM8 client list by email and phone first, and only creates a new client when it is genuinely a new customer.
  • Creates the job with the site address and the customer's own description of the work, then drops it straight into your quoting queue.
  • Posts the client name, the suburb, the enquiry text and the new job number to your new enquiries Slack channel so whoever is on the phones can call back within the hour.

What do I need to use this?

  • A ServiceM8 account you can sign in to, with permission to add clients and create jobs.
  • The Google Forms enquiry form your website sends submissions to.
  • A Slack workspace and the channel where you want new enquiries posted.
  • A queue in ServiceM8 for work that still needs quoting, such as Quote or To Quote.

How can I customize it?

  • Change which queue new enquiries land in, for example send them to your work order queue instead of quoting when the form says it is an emergency callout.
  • Change the Slack channel, or route different trades or job types to different channels based on an answer on your form.
  • Adjust which form questions feed the site address and the job description if your form words those questions differently.

FAQs

Will this create a duplicate client if the same customer enquires twice?
No. Before creating anything it looks through your existing ServiceM8 clients for a match on the email address or the phone number from the form. If it finds one, the new job is attached to that existing client instead of a second copy of them.
How quickly does a new enquiry show up in ServiceM8?
It watches the form for new responses continuously, so a submission usually turns into a client and a job within a few minutes. That is what makes the callback-within-the-hour goal realistic.
What happens if someone leaves the address or phone number blank?
The job is still created with whatever they did give you, and the Slack message shows exactly what came through. Your team can see at a glance what is missing and ask for it on the callback.
Do I need a particular ServiceM8 plan for this?
Any ServiceM8 plan where you can create clients and jobs will work. When you connect your account you allow access to clients, jobs and job queues, and nothing else is needed.
Can I use a different form tool instead of Google Forms?
This version watches a Google Form, which most website builders can submit to or embed directly. If your site uses a different form tool, the same client lookup, job creation and Slack alert steps still apply once that tool is connected.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Turn each week's football fixtures into a venue staffing plan

Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.

API-Sports
Google Calendar
Slack
Agentic Task
Turn 5 star Yotpo reviews into a weekly marketing content queue

Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.

Yotpo
Notion
Slack
Agentic Task
Catch bad shipping addresses before you buy the label

Every weekday morning, unfulfilled orders get an address check: harmless typos fixed automatically, risky addresses held with a note to the customer.

Shippo
Shopify
Gmail
+1
Agentic Task

Never lose a website enquiry between the form and the job board.

Connect your enquiry form to ServiceM8 once, and every new lead lands as a client, a job in your quoting queue, and a Slack ping to call them straight back.