Skip to content
Little Red Bot AI automation for Singapore SMEs
Playbooks15 min readSource-verified · our method

The onboarding emails you keep meaning to send (built free in an afternoon)

A three-email welcome sequence over 14 days, sent from your own Gmail, run by one Google Sheet and one Make scenario. No code, no email platform. Checked 10 Sep 2026.

IntermediateAbout 1.5 hours (Step 3 is the meat)💳S$0 on free tiers at about 20 new customers a monthmarketing🧰Google Sheets · Make · Gmail

Published 1 Sept 2026 · Facts checked 10 Sept 2026

What you'll have by the end of the afternoon: a Google Sheet where you type a new customer's name, their email and today's date. That's your whole job. Three emails then go out on their own — a welcome the same day, a get-the-most-out-of-this note on day three, and a "how's it going?" on day fourteen. They send from your own Gmail address, so when someone replies it lands in your inbox like normal mail.

The reason this never happens by hand isn't laziness. It's that the third email falls due two weeks after you stopped thinking about that customer, and nothing on earth reminds you. A sheet remembers. You don't have to.

A quick skills check before you build: a non-technical SME owner can understand this workflow, but setting it up is not a complete beginner's job. You need to be reasonably comfortable with spreadsheet formulas, connecting Google accounts to Make, configuring modules, filters and router branches, mapping fields, and troubleshooting when a test does not behave as expected. If you have never used an automation tool, expect to work alongside someone technically comfortable for the build.

What you're building
  1. New customer added
  2. Day 0Welcome
  3. Day 3Useful tip
  4. Day 14How's it going?

Is this for you?

Build it if you take on somewhere between a handful and a few dozen new customers a month and you know there's a conversation you should be having with each of them in the first fortnight. A clinic with new patients. An agency signing a retainer. A gym with new members.

Skip it if any of these are true:

  • You get one or two new customers a month. Write the email. Put a reminder in your phone. Building a machine for six emails a quarter is a hobby, not a saving.
  • Something you already pay for sends them. Shopify, WooCommerce, a booking system, a membership platform: most have a welcome-email feature sitting switched off in the settings. Native beats glued-on, so go and turn theirs on first.
  • What you actually want is a mailing list. Unsubscribe handling, open rates, templates, two hundred people at once. That's an email marketing platform's job, and we've compared two of them for Singapore SMEs in GetResponse vs Brevo. This build sends one email to one person from your own address. It's small on purpose.
  • You'd be emailing more than a few dozen people a day. Google warns you hit a wall "if you send an email to a total of more than 500 recipients in a single email and or more than 500 emails sent in a day" (Gmail sending limits). Onboarding one at a time you won't get close. If you would, you've outgrown this before you start.

What it costs

S$0 a month at roughly 20 new customers, under the assumptions in this playbook. Pricing and limits checked on Make's own page on 10 September 2026.

Google Sheets and Gmail come free with a Google account. Make's pricing page lists the Free plan at "$0/mo" with "Up to 1,000 credits/mo", "Routers & filters", and a "15-minute minimum interval between runs". This build wants a router and one run a day, so it sits comfortably inside all of that.

One thing we won't claim: Make's pricing page carries no "no credit card required" line today, so we're not putting those words in their mouth. What the page does print is US$0 for Free. Nothing in this playbook needs a paid plan at the volume above.

Show the maths

The credit arithmetic is ours, not Make's. Make defines an operation as "a single module run to process data or check for new data", and a sheet check as "1 operation (one per check)" (Make help). Your scenario looks at the sheet once a day, then for each customer who's due it sends one email and ticks one cell. Call it 30 credits a month for the daily looks, plus about two per email that goes out. Twenty new customers means sixty emails, so roughly 150 credits all in, out of 1,000.

If you do outgrow it, Make's current pricing view shows Core at about US$12 a month for 10,000 credits. Regional and billing-period presentations can differ, so verify the current price on Make's page before budgeting. The useful point here is simpler: this example should fit Free comfortably under the assumptions above.

Where's the AI?

There is no AI in this workflow, intentionally. Dates and rules are predictable, so ordinary rule-based automation is cheaper, simpler and easier to maintain.

Use AI when the work requires interpreting messy information. Use rules when the rules already work.

Before you start (about 10 minutes)

  1. A Google account. The ordinary free kind. Your sheet lives there and the emails send from that Gmail address.
  2. A free Make account. Sign up and stop. Don't build anything yet.
  3. Three emails, roughly drafted. Not polished, drafted. One: welcome, what happens next, who to contact. Two: the one thing new customers get wrong in week one. Three: a real question you'd like answered, not a survey. There's a starter set in Step 3 if you'd rather edit than invent.
  4. Ninety minutes where nobody needs you. Step 3 is fiddly and you'll want a clear head.

Never built a Make scenario before? The receipt-to-sheet flagship walks through a first one click by click, and doing it makes this one feel familiar.

How the automation works
  1. Google Sheetcustomer + email + signup date
  2. Make checksonce each morning
  3. Which email is due?
  4. Welcome / Day 3 / Day 14three routes
  5. Gmail sends
  6. Sheet records sent

Build it, step by step

Step 1 — The customer sheet (10 minutes)

Open a new Google Sheet and name it Onboarding. In row 1, type five headers, spelled exactly like this, one per column:

Name | Email | Signed up | Sent | Send now

Three are yours to fill in: Name, Email, and Signed up (the date they came on board, typed as 2026-09-01 so the sheet reads it as a real date rather than text). Sent stays empty — the automation owns that column and writes a 1, 2 or 3 into it as each email goes out. Send now is a formula that does the thinking.

Copy this formula → paste into E2

=IF(OR($B2="",$C2=""),"",IF(AND(IFERROR(VALUE($D2),0)<1,TODAY()-$C2>=0),1,IF(AND(IFERROR(VALUE($D2),0)<2,TODAY()-$C2>=3),2,IF(AND(IFERROR(VALUE($D2),0)<3,TODAY()-$C2>=14),3,""))))

That's the fiddliest-looking thing in the build, and you don't have to understand every character. In plain English: Day 0 → email 1; Day 3 → email 2; Day 14 → email 3; already sent → do nothing.

Day 0 email 1Day 3 email 2Day 14 email 3Already sent do nothing

Copy cell E2, select E3 down to about E500, and paste. Every future row is now covered.

That design buys you two quiet things. If Make misses a day, nobody gets skipped — the row still says what it's owed and goes out next morning. And because Sent is written down rather than assumed, the same person can't be welcomed twice.

You'll know this worked when you type a test row with your own name, your own email and today's date, and column E turns into a 1. Clear the date and it goes blank again.

Step 2 — A scenario that finds who's due today (20 minutes)

In Make, create a new scenario and add one module: Google Sheets → Search Rows.

The first time, Make asks you to connect your Google account. Its docs describe adding the module and clicking "create a connection", then "Click sign in with google" and granting the permissions it asks for (Make's Google Sheets docs). Expect a Google consent screen with tick boxes. You're giving your own Make account access to your own sheet.

Then fill the module in. Its field labels include Spreadsheet ID, Sheet name, Table contains headers, Filter and Limit (module reference). Point it at your Onboarding sheet and its tab, say the table does have headers, then do the two that matter:

  • Filter — one condition on the Send now column meaning "there's something in here". Depending on how your Make reads that column, it's either greater than 0 or an is not empty / exists style operator. The wording moves around, so pick the one that means "this cell isn't blank". This is the whole point of the column: without it, the scenario drags your entire sheet back every morning.
  • Limit — put 25 in. It's a seatbelt. If the filter ever misbehaves, this stops the scenario chewing a month of credits in one go.

Now test the module on its own. Right-click it and choose the option to run only that module — Make's docs put it as "right click the module select run this module only" (Make on mapping). A small bubble appears showing what came back.

You'll know this worked when that bubble shows only the rows with a number in Send now — with one test row, that's one. If it shows your whole sheet, the filter isn't doing anything yet. Fix that before you go on, because everything after this depends on it.

Step 3 — Three routes, three emails (30–45 minutes)

The three branches
Search due rows
Router
  1. Branch 1Send now = 1Welcome emailSent = 1
  2. Branch 2Send now = 2Day 3 emailSent = 2
  3. Branch 3Send now = 3Day 14 emailSent = 3

Give this one a patient 30 to 45 minutes the first time. You're building the same little chain three times, and the third takes five minutes because you'll know the shape by then.

First, a router. Make's docs describe adding one as clicking add another module, then "type flow controls and click it select router" (Make on routers). Attach it after Search Rows. A router splits one flow into several, and each branch gets its own condition. Why one scenario with three branches instead of three tidy little scenarios? Make's free plan allows 2 active scenarios. This way you use one and keep a spare.

Now build branch one: filter → Gmail → tick the sheet.

The filter. In Make, filters sit on the line between two modules. Click the line coming out of the router and set a condition saying: carry on only if Send now equals 1. Name it welcome so the canvas stays readable. The setup panel's wording shifts between versions; you want somewhere to state that condition and somewhere to label it.

The email. Add Gmail → Send an Email after the filter. Make will ask for a connection and a Google sign-in, the same way the Sheets one did. Then, per Make's own walkthrough, you click "Add a recipient" to get an "Email address 1" field, and fill in a Subject and the Content. Map the recipient to the Email column from the search step, and drop Name into your greeting.

The tick. Add Google Sheets → Update a Row after the Gmail module. Its fields include Row number. Click that field and pick the row-number value the search step produced; if the list looks empty, run the search module on its own once and it'll be there. Then fill in one thing only: put 1 in the Sent column. Leave every other column's field completely blank, so the automation touches nothing it shouldn't.

That's branch one. Do it twice more on the router's other lines, changing three things each time:

BranchFilter saysGoes outSent column gets
1 — welcomeSend now = 1signup day1
2 — how to get the most out of itSend now = 2day 32
3 — check-inSend now = 3day 143

Three starters to edit rather than write from scratch:

Keep the third one short and answerable. A question someone can reply to in eight words gets replies. A survey link gets silence.

Step 4 — Set the clock and switch it on (5 minutes)

Open the schedule. Make's docs describe going to the builder and clicking "every 15 minutes on the toolbar", which is the default (scheduling a scenario). Change the mode to Once daily and pick a time. Mid-morning is kind: 9am or 10am, so nothing lands at 3am looking automated.

Then turn the scenario on. Make's docs describe activating it "by clicking the on/off button in the scenario details page" (active and inactive scenarios). Until you do that, nothing runs on its own, however well your manual test went.

Test it works (15 minutes)

The safety check
Before runSarahSent: blankSend now: 1
Email sent
After runSarahSent: 1Send now: blank

Writing back to the sheet prevents the same email from being sent twice.

Do this before a single real customer goes in the sheet.

  1. Put three fake rows in, all pointing at your own email address, with Signed up set to today, three days ago, and fifteen days ago. Column E should read 1, 2 and 3. If it doesn't, the sheet is wrong, not Make.
  2. Click Run once, the button "at the bottom left of the scenario editor" (Make's walkthrough). Three different emails should reach your inbox within a minute or two.
  3. Look back at the sheet. Sent should now read 1, 2 and 3, and column E should have gone blank on all three rows. Check your other columns are untouched — names and dates exactly as you left them.
  4. Click Run once again, straight away. Nothing should send. That's the Sent column doing its job, and it's the most reassuring thing you'll see today.
  5. Delete the fake rows, then wait for tomorrow's scheduled run with one real customer in the sheet. Until it has fired on its own once, the build isn't finished.

When it doesn't

Open troubleshooting guide

Column E shows #VALUE!. The Signed up cell is text that looks like a date. Retype it as 2026-09-01.

Column E is blank when it should say 1. Either the Email cell is empty or the Signed up date is in the future. The formula ignores both on purpose.

The scenario ran but nothing sent. Check the search step first. Nothing returned means nothing was due, which is correct. Rows returned but no email means a branch filter is wrong — those conditions have to be 1, 2 and 3, one per branch.

Every row came back, not the due ones. Your Search Rows filter isn't applied. That's the one from Step 2, on Send now, and it's also what eats credits. Set Limit to 25 while you're in there.

Somebody got the same email two days running. Update a Row isn't writing back. Check it points at the same spreadsheet and tab as the search, that the row number is mapped from the search step, and that Sent has the right number in it.

Other columns got blanked. Update a Row had values in fields you meant to leave alone. Only Sent should contain anything. Clear the rest and retest on a throwaway row.

Everyone on your sheet got a welcome email. You pasted in an existing customer list. Before importing anyone historical, put a 3 in their Sent column — that tells the sheet they've had everything.

A test email went out with {{Name}} printed in it. That placeholder wasn't mapped. Reopen the Gmail module and pick the field from the search step's output instead of typing the text.

Nothing happens overnight. The scenario is off. It's the on/off button, and manual runs don't change it.

Your data (read this one)

Your customers' names and email addresses are personal data. Keep these emails about the customer's existing relationship or service: a welcome, service instructions and a genuine service check-in are different from quietly turning the sequence into a promotions list. If you want to send offers, newsletters or unrelated promotions, treat that as a separate marketing use and check the applicable consent and messaging requirements. This is practical guidance, not legal advice.

What moves, and where. Once a day Make reads the rows in your sheet that are due and passes a name and an email address to Gmail, which sends from your own account. Google already holds all of it: the sheet is in your Drive, the sent mail is in your Gmail. The new party is Make, which processes those rows on its servers as the scenario runs and keeps a record of each run in the scenario's history. Treat that history as a second copy of the data, because that's what it is.

Housekeeping. Restrict the sheet to whoever handles customer comms rather than the whole team. A plain line such as "If these onboarding notes aren't useful, reply stop and we'll end the sequence" is good user experience; honour it the same day by putting a 3 in that person's Sent column. That line alone does not settle every PDPA or direct-marketing obligation, particularly if you add promotional content. And since these send from your real address, everything that goes out is already sitting in your Sent folder, which is a useful audit trail.

Switch it off

To pause it, turn the scenario off with its on/off button. Everything stays built and nothing sends.

To remove it properly:

  1. Delete the scenario in Make.
  2. Revoke Make's access to your Google account. Open the page in your Google Account that lists apps with access, find Make, and choose "Remove access" and then "Confirm". Google notes that "If you remove access, the app can't access your Google Account" (managing third-party access). That's the step that genuinely cuts the connection — deleting the scenario alone doesn't.
  3. Decide about the sheet. It's yours either way. Keep it as a record of who came on board when, export it, or delete it.

What's next

Let people add themselves. Build a Google Form with name and email and send its responses into this same sheet. Google's route is the Responses tab, then Summary, then More, then "Select destination for responses", where you pick "Select existing spreadsheet" (sending responses to a sheet). One catch stops people cold: a form has to be published before anyone can use the link. While it stays unpublished, "responders with the link can't access it," says Google's own page, so click Publish, then Published, then Copy responder link. Afterwards, submit one test response and check that column E filled itself in on the new row. If it stayed blank, copy the formula down again.

Move the dates, or add a fourth touch. The 3 and the 14 inside the column E formula set the whole rhythm. Change them and the sequence moves with them. A fourth email means one more branch on the router and one more step in the formula, and by then you'll find that straightforward.

Then leave it alone for a month. The point of this build is that you stop thinking about it. If you're weighing where else that's worth doing, our overview of AI automation in Singapore is the sane starting point, and the real cost of automation covers the maintenance side the word "free" hides. Chasing quotes rather than welcoming customers? The quote follow-up chaser is the same shape with a different job.

Every price and limit above was checked against vendor documentation on 10 September 2026; button names were checked against the linked official documentation. That's what Level 1 research means here: sourced, dated, and not pretending to be a screenshot tour. Screens move faster than prices do, so where a button has been renamed since, the thing you're hunting for is described in words right next to it. More builds like this one live in the playbooks library.

Sources

Every factual claim above traces to one of these, fetched on the fact-check date in the byline.

  1. Make pricing — Free is US$0 with up to 1,000 credits, routers and filters, 2 active scenarios and a 15-minute minimum interval; Core is shown at about US$12/month for 10,000 credits on the applicable pricing view (fetched 10 Sep 2026)
  2. Make help — 'An operation is a single module run to process data or check for new data'; a sheet check is '1 operation (one per check)' (fetched 1 Sep 2026)
  3. Make help — Google Sheets module field labels: Search Rows has 'Filter' and 'Limit'; Update a Row has 'Row number' (fetched 1 Sep 2026)
  4. Make help — connecting Google Sheets: 'click create a connection' then 'Click sign in with google' (fetched 1 Sep 2026)
  5. Make how-to — the Gmail 'Send an Email' module's fields ('Add a recipient', Subject, Content) and the 'Run once' button 'at the bottom left of the scenario editor' (fetched 1 Sep 2026)
  6. Make help — adding a router: 'type flow controls and click it select router'; filters use operators (fetched 1 Sep 2026)
  7. Make help — mapping: 'right click the module select run this module only' so its output becomes available to later modules (fetched 1 Sep 2026)
  8. Make help — scheduling: 'click every 15 minutes on the toolbar', then modes including 'Once daily' (fetched 1 Sep 2026)
  9. Make help — activating a scenario 'by clicking the on/off button in the scenario details page' (fetched 1 Sep 2026)
  10. Google — Gmail warns you at 'more than 500 recipients in a single email and or more than 500 emails sent in a day' (fetched 1 Sep 2026)
  11. Google — a Form must be published: while it is unpublished, 'responders with the link can't access it' (fetched 1 Sep 2026)
  12. Google — sending Form responses to a sheet via 'Select destination for responses' (fetched 1 Sep 2026)
  13. Google — removing an app's access to your Google Account: 'Remove access' then 'Confirm' (fetched 1 Sep 2026)

How we're funded: some links on this page are affiliate links — if you sign up through one, we may earn a commission, at no extra cost to you. It never changes what we recommend. Full disclosure.

Get the next one in your inbox

The Red Dot Report — one useful automation email a week.