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.
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?
How quickly does a new enquiry show up in ServiceM8?
What happens if someone leaves the address or phone number blank?
Do I need a particular ServiceM8 plan for this?
Can I use a different form tool instead of Google Forms?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
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.
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.
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.
Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.
Every weekday morning, unfulfilled orders get an address check: harmless typos fixed automatically, risky addresses held with a note to the customer.
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.