Quick Answer
You can build a complete referral engine for under £30 a month using n8n, ServiceM8 or Xero, WhatsApp Business and Gift Up. The customer refers, the new job books, the gift card auto-sends, and a thank you message follows. Referred customers stay 37 percent longer than ones you paid Google for, and your acquisition cost on these jobs is near zero. This guide builds the whole workflow step by step. No coding. About two hours of setup.
Table of Contents
- Why referrals are the cheapest growth channel you are ignoring
- How the automated referral engine works end to end
- What you need before you start
- Step 1: Capture the referral with a tracking link
- Step 2: Trigger the workflow when the job is paid
- Step 3: Generate and send the gift card with Gift Up
- Step 4: Send the thank you message on WhatsApp
- Step 5: Ask for the next referral at the right moment
- Testing the workflow without burning real gift cards
- Common pitfalls and how to avoid them
- What tradespeople are saying about referrals
- Recommended videos
- Frequently asked questions
- My verdict
n8n
ServiceM8
Xero
WhatsAppWhy referrals are the cheapest growth channel you are ignoring

Most trades I speak to know referrals are their best source of work. Ask them what they spend chasing referrals and the answer is usually nothing. Ask them how many came in last month and the answer is usually I am not sure.
That is the problem. The cheapest customer acquisition channel in your business has no system, no tracking and no reward loop. So when the work goes quiet, you reach for Google Ads or Checkatrade leads at £15 to £40 a pop. The referral channel sits dormant.
Survey work from Installer Online found 58 percent of UK plumbers rely mainly or exclusively on word of mouth, and 79 percent admit they do not know how to market well. Those two numbers say the same thing. The channel that already works has no engine behind it.
And it gets better. Wharton found referred customers have 16 to 25 percent higher lifetime value and convert 30 percent better than other channels. The retention number that sticks with me most is 37 percent higher than paid acquisition, reported by GrowSurf in their 2026 referral statistics roundup. Referred customers stay. Paid ones often do not.
The catch is that 83 percent of customers say they would happily refer after a good job. Only 29 percent actually do. The gap is not enthusiasm. The gap is friction. They forget. You forget to ask. The reward is vague or comes weeks later. The whole thing fizzles.
That is exactly the problem a referral engine fixes.
How the automated referral engine works end to end
The build is simple to describe. A customer gets a unique referral link from you, usually sent after their job completes. They forward it to a mate. The mate books, the job runs, the invoice gets paid. The minute that payment lands in your accounting software, n8n picks it up, identifies the referrer, fires a £25 gift card to their email, and follows up on WhatsApp with a thank you. Two days later, a second automated message goes out asking if there is anyone else they know who could use you.
Four moving parts:
- Attribution layer. A unique referral link or code so the system knows who referred whom.
- Trigger layer. Either ServiceM8 marking the job as Complete with payment, or Xero marking the invoice as Paid.
- Reward layer. Gift Up generating a real e-gift card and emailing the recipient.
- Thank you layer. WhatsApp Business sending a templated message a few minutes later.

The orchestration sits in n8n. If you have never used it, n8n is a visual workflow builder, similar in feel to Make or Zapier but with a generous free tier when self-hosted. Drag a node, connect it to the next, fill in the blanks. The native ServiceM8 node was released in October 2025 and now ships a long list of triggers including Job Details Modified and Job Completed, which is what you need.
The same logic applies if you are on Xero instead of ServiceM8. The trigger swaps from Job Completed to Invoice Paid. Everything downstream stays the same.
What you need before you start

Set aside two hours and grab a coffee. The build is not difficult but it does need patience for the API setup. Here is the list of accounts and tools.
- n8n. Either self-hosted for £3 to £7 a month on a VPS, or n8n Cloud Starter at €24 a month. Self-hosted on a £5 VPS is what I run.
- ServiceM8 or Xero. ServiceM8 Starter is £25 a month for 50 jobs. Xero Standard is £33 a month. Either works.
- Gift Up. No monthly fee. You pay a 3.49 percent fee on gift cards sold or issued. £25 gift card costs you 88p in platform fees.
- WhatsApp Business Cloud API. Free for the first 1,000 service messages per month, then pennies after that. Set up via Meta Business Suite.
- A custom short link. Bitly free tier or a one-off domain. Used for the referrer attribution.
Skill level honest assessment: if you can use ServiceM8 already, you can do this. If you have never touched an API, give yourself three hours instead of two. The hardest bit is the WhatsApp Cloud API approval, which Meta does in 24 to 48 hours.
Step 1: Capture the referral with a tracking link
Attribution is where most home-grown referral schemes die. You hear from a new customer that Mike across the road sent them, but Mike sent two others last year and you never thanked him. You feel bad. He stops referring. Whole channel breaks.
The fix is a unique link per customer. The link goes to a simple landing page on your site or a contact form, with the referrer ID stitched into the URL.
The format I use is dead simple:
https://yourwebsite.co.uk/quote?ref=MIKE-J-PLUMBING23
The ref code is generated when the customer completes their first job. n8n picks up the Job Completed event, takes the customer name and a short hash, and writes the link to a Google Sheet. The sheet becomes your referral register. One row per customer, one link per customer.
How that link gets to the customer matters too. The best moment is the day after the job, when the work is fresh and they are still telling people about you. Stick it in a WhatsApp message:
Hi Sarah, hope the new shower is behaving itself. Just wanted to say thanks for trusting us with the job. If you know anyone else who needs work, send them this link and we will pop a £25 high street gift card over the moment they book. No catch, no spam. Cheers, Ettan.
That is one message, one link, one promise. Nothing to print, nothing to remember, nothing to lose.

On the quote form itself, you only need one hidden field. Most form builders, Tally and Typeform especially, capture URL parameters automatically. The ref code lands in the form submission. The submission triggers an n8n workflow that flags this is a referred lead and tags the originating customer.
yourwebsite.co.uk/refer/mike looks like a personal recommendation. bit.ly/3aFx9k?utm_source=referral looks like a marketing email.Step 2: Trigger the workflow when the job is paid
This is the bit n8n exists to do. We want a workflow that wakes up the moment a referred job gets paid.
If you are on ServiceM8, the native trigger node has a Job Details Modified event. You configure it to fire when a job moves into the Completed status with the invoice marked as paid. The node pushes the job payload, including the customer record, into the rest of the workflow.
If you are on Xero, the trigger is simpler. Use the Xero node, set the operation to On Invoice Paid, and authenticate with OAuth. n8n will check Xero on a schedule, usually every five minutes, and fire when a payment is recorded.
The next n8n node is a Filter. We only want to act on jobs that came in through a referral. The way I do this is by tagging the ServiceM8 customer record with a Referrer Code custom field. If that field is populated, the workflow continues. If not, the workflow exits silently. Simple binary check.
The third node is a Lookup. n8n pulls the referrer record from your Google Sheet (or whatever you are using as the register) and grabs their name, email, phone number and total referral count to date. We use the count later to scale the reward.
The four nodes at this point are: Trigger, Filter, Lookup, Switch. The Switch checks the referral count and routes the workflow to one of three paths: standard reward, premium reward, hamper reward. Drag the right Gift Up generation node into each path.
Step 3: Generate and send the gift card with Gift Up
Gift Up has a clean REST API with full documentation, and it is the cheapest way to send branded e-gift cards in the UK. You pay 3.49 percent when a card is sold or issued. No monthly fee. No setup cost.
Inside n8n, this is an HTTP Request node. The API call you want is:
POST https://api.giftup.com/gift-cards/
You pass a JSON body with the recipient name, recipient email, value in pounds, currency code GBP, and a personal message field. The Gift Up API generates the card, emails it directly to the recipient with your branding, and returns the redemption code to you so you can store it against the referrer record.
The branding piece is worth doing properly. Gift Up lets you upload a logo, set a brand colour, and add a custom message. Spend ten minutes here. A £25 gift card from a faceless platform feels like spam. A £25 gift card with your van photo and a personal note from you feels like a thank you.
Thanks for sending {{ $json.referred_customer_name }} our way, {{ $json.referrer_first_name }}. The job came in last week and they were over the moon. Customers love specifics. Generic thank you notes feel automated. Specific ones feel personal even when they are automated.If you do not want to commit to a card on every referral, you can put a small condition before the Gift Up node. Only issue the card if the referred job value was over £200, for example. That stops you from spending £25 on a referral that turned into a £40 call out. The full automation audit playbook has a section on protecting yourself against runaway costs that is worth a read if you are nervous about this.

Test it once with your own email. The card needs to look right, the message needs to read naturally, and the redemption process at the other end needs to be one tap. If any of those three things feel clunky, fix them now before you let it run live.
Step 4: Send the thank you message on WhatsApp
Email is for the gift card. WhatsApp is for the human bit.
The reason is open rates. Email sits at 25 to 30 percent. WhatsApp business messages sit at 95 to 98 percent. If you want the referrer to know you noticed, sent the card, and were grateful, you need it to land where they actually look.
The setup is the WhatsApp Business Cloud API, owned by Meta and free for the first 1,000 service messages per month. You will need a verified business profile, a phone number that is not currently in personal WhatsApp use, and 24 to 48 hours patience while Meta approves the account.
Once approved, the n8n node for WhatsApp Business Cloud handles the rest. The message you send needs to be a pre-approved template, because WhatsApp does not allow open marketing messages. Templates take 30 minutes to write, submit and get approved.
The template I run looks like this:
Hi {{1}}, thanks again for sending {{2}} our way. The job came in this week and they were brilliant to work with. A £25 gift card has just landed in your inbox as a small thank you. Keep the recommendations coming. {{3}}.
The three variables are referrer first name, referred customer first name, and your sign off. n8n fills them in dynamically from the job payload. The whole thing fires within five minutes of the invoice being paid.
This is the moment customers reply. They send back a thumbs up, a thanks mate, or sometimes another name. That last one is the gold dust. The referrer engine has just generated a second referral while sending a thank you for the first. The full WhatsApp Business setup guide covers templates, the 24 hour reply window, and the rules that keep you on the right side of Meta policies if you want to go deeper.
Step 5: Ask for the next referral at the right moment
The final piece is the ask. Most trades stop after the thank you. The smart move is to wait, then ask again.
n8n has a Wait node. You configure it to pause the workflow for 48 hours after the thank you message went out. After that, a follow up message fires, also via WhatsApp template:
Hi {{1}}, just checking in. The gift card from yesterday should have landed. If you know anyone else who might need a hand, your referral link is here: {{2}}. No pressure, just keeping it handy.
This is the moment the engine turns from a one-off thank you into a loop. The referrer has just had a positive experience with you, the reward arrived in their pocket, and now there is a frictionless way to send the next name your way.
Real data from Referral Rock HVAC report shows businesses that ask twice get 2.7 times the referral volume of businesses that ask once. The second ask is the unlock.
Testing the workflow without burning real gift cards
Before you let this run loose on real customers, test it end to end with a sandbox.
Gift Up has a test mode toggle. Switch it on in the dashboard, and any cards generated through the API will be marked test only. They will not deduct from your billing and they will not arrive in real inboxes. Use a Gmail throwaway as the recipient and watch the whole flow run through.
For ServiceM8 or Xero, create a fake customer, raise a fake job, mark it complete with payment. The n8n trigger should fire. If it does not, the most common cause is a misconfigured webhook URL. Open the n8n executions tab, find the failed run, and the error message will usually tell you exactly which credential needs reauthenticating.
For the WhatsApp step, Meta provides a sandbox number you can use for testing during your first week. Once you have proven the templates render correctly and the variables are populating, switch to your real number.
Common pitfalls and how to avoid them
Five things go wrong with home built referral engines. All five are fixable in advance.
The attribution link gets stripped. When customers forward a WhatsApp message, sometimes the link loses its query parameters. Test the forwarding flow on iOS and Android. If your tracking gets stripped, switch to a path based URL like yourwebsite.co.uk/refer/mike rather than a query parameter URL.
The gift card bounces. Email deliverability is brittle. If the referrer inbox is full or the email goes to spam, you will not know. Set Gift Up to send a delivery confirmation back to your n8n workflow, and have the workflow fall back to WhatsApp if the email does not confirm within an hour.
The trigger fires twice. ServiceM8 in particular can fire the Job Details Modified event multiple times as the status updates. Build a deduplication check in n8n by storing every fired job ID in a Google Sheet, then checking against it on each trigger. One line of code, no double gift cards.
The customer refers themselves. Someone gives the referral link to a relative who shares a surname or address. The system thinks it is a genuine referral. Add a check that compares the referrer postcode against the new customer postcode. If they match, the referral is logged but no card fires until you review it.
The WhatsApp template gets rejected. Meta template approval is strict on anything that sounds like a hard sell. Avoid words like discount, offer, deal, limited time. Stick to thank you, appreciate, and gift card. Templates with friendly conversational language get approved in hours. Marketing-style templates take days or get refused.
What tradespeople are saying about referrals
Recommended videos
Frequently asked questions
Under £30 a month including the VPS for n8n, your existing ServiceM8 or Xero, and the WhatsApp Business API free tier. Gift Up is pay as you go. If you send four £25 cards in a month, that is £100 in cards plus £3.50 in fees, against four referred jobs averaging £450 each. The maths is not close.
No. n8n is visual and the ServiceM8, Xero, Gift Up and WhatsApp nodes are all configured by filling in forms. The hardest bit is the WhatsApp business verification, which is paperwork rather than code. If you can set up a router or configure your accounting software, you can do this.
Gift Up sends a delivery confirmation back to your n8n workflow. If the email does not confirm within an hour, the workflow falls back to a WhatsApp message asking the referrer to check their spam folder. If still nothing, an alert lands in your inbox and you can reissue the card manually.
Yes. Amazon, Love2shop and One4all all sell e-vouchers in bulk that you can email manually. The downside is none of them have a clean API for automation, so you would be back to manual issuing. Gift Up is the only one I have found in the UK with a free API that connects cleanly to n8n.
Three safeguards. Match postcodes between referrer and referred to catch self-referrals. Cap the rewards per customer per year, three is plenty. And only trigger the card when the invoice is paid, never on quote acceptance. The whole system rewards real completed work, not promises.
The workflow stays the same, only the trigger node changes. Jobber and simPRO both expose webhook events for job completion and invoice payment. In n8n you swap the ServiceM8 node for a generic Webhook node and point your FSM platform at it. Twenty minutes of reconfiguration.
Yes, when the customer has an existing relationship with you and the message is a service notification. WhatsApp templates approved by Meta are designed to comply with their policies. The grey area is unsolicited marketing messages to people who have not transacted with you. That is what gets you suspended.
Tell them upfront. The whole point of a referral programme is that customers know they will be thanked. Hidden rewards do not motivate behaviour. The surprise is the speed and the personalisation, not the existence of the card itself.
My verdict
A referral engine is one of the rare builds where two hours of setup creates a permanent acquisition channel. The maths is brutal in your favour. £25 a card, £450 a job, near total customer retention, and the warmth of a recommendation no Google Ad can buy. Most trades have the customer base for this already. They just have not built the loop. Build the loop, and the loop runs itself. That is the whole point of automation, mate. Set the boring bits to autopilot so you can spend your time on the work that actually pays.










