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

Stop chasing tyre-kickers: auto-score every inbound lead with free AI

Every form enquiry gets scored HOT, WARM or COLD against your own ideal-customer rules by Gemini, free. Hot ones buzz your Telegram; the rest are logged. No code, about 2 hours.

Beginner⏱About 2 hours the first time (Step 4 is the meat)💳S$0 on free tiers (up to a few hundred leads a month)sales🧰Google Forms · Google Sheets · Make · Google Gemini · Telegram

Published 15 Sept 2026 · Facts checked 15 Sept 2026

What you'll have by the end: every enquiry that lands in your lead form gets read by an AI, checked against a short list of rules you wrote about who your best customers are, and stamped HOT, WARM or COLD. The hot ones buzz your phone on Telegram with the person's name, number and what they want. The rest go quietly into a spreadsheet tab for when you have a spare ten minutes. Nobody gets an automated reply. You stop opening twenty enquiries to find the three worth calling, that's all.

This is the sister of catch every lead from your form. That one captures. This one triages. If you haven't built the form and the spreadsheet yet, do its Step 1 first (ten minutes), then come back here. Don't build its Make scenario, because this one replaces it.

Is this for you?

Start with the unglamorous question: how many enquiries do you get a week?

Under ten a week, don't build this. Read them yourself. Ten enquiries is fifteen minutes of your Monday, and no scoring rule beats an owner who knows the trade. The form-to-Telegram sibling is all you need, and you can stop reading here with a clear conscience.

Build it if you get more than that, and a decent share are people who were never going to buy. Renovation firms fielding "how much for a 4-room HDB?" with no budget and no date. Tuition centres getting enquiries for subjects they don't teach. Agencies whose contact form pulls in job seekers and vendors selling them SEO. Clinics, movers, wedding vendors, anyone who quotes before they sell and has started dreading the inbox. If that's you, this is a sensible first taste of AI automation in Singapore. It's small and it's free, and it fixes a real Monday.

Skip it if you already run a CRM with lead scoring switched on. Or if your rules can't be written down. "I know a good one when I see it" is a real skill, but it isn't a rule, and the AI can only follow rules. One more cut: the AI scores what the form tells it, so Step 2 adds two or three questions (budget, timeline) to your form. If you can't bear a slightly longer form, this build isn't for you yet.

What it costs

S$0 a month at the volumes above, with no card anywhere. Checked 15 September 2026; free tiers move, so open the links before you build.

PartFree tierCard to start?
Google Forms + SheetsIncluded with a normal Google accountNo
Make (the wiring)"$0/mo", "Up to 1,000 credits/mo", "No time limit on the Free plan", 2 active scenariosNo
Google Gemini (the scorer)Flash models: "Free of charge" for input and output on the free tierNo, and new accounts start on the Free Tier
Telegram (the buzz)Bots are "free for both users and developers"No

The number that decides whether this stays free is Make's 1,000 credits. Here's how they get spent, from Make's own operations page: the module that watches your sheet costs "1 operation (one per check)", whether or not it finds anything. Then each lead that does arrive costs one operation to score with Gemini, one to log the result, and one more for the Telegram buzz if it's hot. Non-AI modules are "1 operation equals 1 credit", and Gemini connected with your own key is billed "based on operations" too, per Make's credits page. So a lead costs two or three credits, and the checks cost one each.

That "one per check" is the trap. Make's default is a check every 15 minutes, which is about 2,900 checks a month before a single lead arrives. That alone blows the free plan. Step 5 sets the scenario to check six times a day during working hours instead, which is roughly 180 checks a month. Add 100 leads with 30 hot ones and you're at about 410 credits. Add 300 leads and you're around 870. Still free.

If you want it faster than that, you'll outgrow the free tier. The next step up is printed on Make's pricing page as the "Make Plan" at "$9/mo" for "5k credits/mo". The page has a switch between paying monthly and paying yearly, and yearly is shown as "Save 15% or more", so the monthly-billed figure is higher than US$9. Read it off the page in whichever mode you'd actually pay. On that plan a 15-minute check all month long fits comfortably.

Gemini's free tier has daily request caps too. Your own limits show inside AI Studio rather than on a public page, and the daily ones "reset at midnight Pacific time". A few hundred short scoring requests a month is a light load, but read your own page.

Before you start (about 15 minutes)

  1. A Google account that owns your lead form and its spreadsheet. If you built the form-to-Telegram sibling, you have this. If not, do its Step 1 now: a Google Form with Name, Phone, "What do you need?" and "How did you hear about us?", with responses going to a spreadsheet.
  2. The Telegram app on your phone, signed in.
  3. A free Make account. Stay on the Free plan. Its pricing page says "No time limit on the Free plan", so there's no trial clock running.
  4. A free Gemini API key. Google's own instructions are short: go to the AI Studio API Keys page and click Create API key. Copy the key into a private note. Google's warning is worth repeating word for word: "Treat your Gemini API key like a password." There's no card involved: new accounts begin on the Free Tier, and moving to the paid tier is a separate, deliberate act that means "linking a billing account and prepaying to add a minimum of $5", so you can't drift into it by accident.

Keep that note open. You'll paste the key and, later, a bot token and a chat number into Make.

Build it, step by step

Step 1 — Write the rules a good lead has to pass (10 minutes)

This is the step people skip, and it's the one that decides whether the AI is useful or noise. Open a blank note and write two short lists in plain English. No jargon, no scoring formulas. Write it the way you'd brief a new sales assistant on their first morning.

Ideal customer. Three to five things that make an enquiry worth your time today. Be concrete. "Serious buyer" is useless; "budget of S$30,000 or more" is a rule.

Not a fit. Two to four things that mean you should politely pass, or reply when you get around to it.

Here's the shape, with a Singapore renovation contractor as the worked example. Swap in your own trade.

Our ideal customer:

  • Budget of S$30,000 or more
  • Wants to start within the next 3 months
  • Property is in Singapore
  • A whole-home, kitchen or bathroom job, not a single cabinet or a repair

Not a fit:

  • Asking only for a price list with no details about the job
  • Vendors, job seekers, students doing research
  • Wants to start "next year" or "no idea when"

A tuition centre's list looks completely different (subject and level we teach, starting this term, lives near the centre). The test is whether a busy stranger could sort your enquiries with it. If they couldn't, the AI can't either.

You'll know this worked when you can look at your last ten enquiries and sort them by hand with your own list, and agree with the result.

Step 2 — Make the form ask what the rules need, and add a Scored tab (10 minutes)

Look at your rules. Each one needs an answer from the form. "Budget of S$30,000 or more" needs a budget question. "Start within 3 months" needs a timeline question. Open your Google Form and, per Google's own steps, click Add, then "To the right of the question title, choose the type of question you want". Use a drop-down of ranges rather than a free-text box wherever you can. "Under S$10k / S$10–30k / S$30–60k / Over S$60k" gives the AI (and you) a clean answer, and it's quicker for the customer to fill in. Turn on Required for the ones your rules can't live without.

Two or three questions is the ceiling. You're adding only enough for the rules to work, not building an interrogation.

Then open the spreadsheet the form writes to. It has one tab, usually called "Form Responses 1", and you're going to leave that tab alone. Add a second tab and name it Scored. The control for a new tab sits at the bottom-left of the sheet, a plus sign next to the tab names. Type these headers across row 1, one per column:

Time · Name · Phone · What they need · Budget · Start · Via · Label

Match the middle ones to whatever your form actually asks. The Label column is where HOT, WARM or COLD will land.

You'll know this worked when the form has a question for every rule, and the sheet has a Scored tab with headers and nothing else.

Step 3 — Make a Telegram bot and read your chat number (10 minutes)

Make needs a bot to send from and a number that identifies your chat. Getting the number is the fiddliest part of this build. It's four minutes of work wrapped in five minutes of "am I doing this right?". You are.

3a. Make the bot. In Telegram, open a chat with @BotFather and send /newbot. Telegram's own documentation says it asks for two things. First "the name of your bot", which is what people see, so something like "Lead Scorer". Then a username, which must end in "bot", like "sunshine_leads_bot", and "cannot be changed later – so choose it carefully". BotFather replies with a token, a long string with a colon in the middle. Paste it into your private note.

Make a fresh bot for this even if you already have one. If you built the receipt bot, that bot is wired to Make in a way that blocks the trick in 3c.

3b. Say hello to it. Open a chat with your new bot (search its username) and send it any message. /start is fine. Nothing visible happens. That's expected. It heard you anyway.

3c. Read the number. In a browser, go to this address, swapping in your token from 3a:

https://api.telegram.org/bot8123456789:AAF.../getUpdates

Telegram documents this address shape itself: "All queries to the Telegram Bot API must be served over HTTPS and need to be presented in this form: https://api.telegram.org/bot<token>/METHOD_NAME" (Telegram Bot API). Three things to get right, so read slowly:

  • The word bot is glued to the front of your token. No space, no slash between them.
  • There are no angle brackets. You're replacing <token>, not keeping the < and >.
  • The /getUpdates on the end has a capital U.

You'll get a screen of dense text starting {"ok":true,"result":[. Use your browser's find (Ctrl-F or Cmd-F) and search for "chat". You want the number right after "id": inside that chat block. For a one-to-one chat with your bot it's a plain positive number, and you'll see "type":"private" close by, which is exactly what Telegram's docs say a private chat looks like. Copy the number into your note next to the token.

If you see {"ok":true,"result":[]}, an empty pair of brackets, the bot has nothing waiting. Telegram only keeps these for a while: updates "will not be kept longer than 24 hours". Send the bot another message, then reload the page.

You'll know this worked when your note has three things: a Gemini key, a bot token, and a chat number.

Step 4 — Build the scoring scenario in Make (give this one a patient 45–60 minutes)

This is the heart of it. Four modules in a line, with one filter between the last two. Build them in order, and don't skip the trial run in the middle. Make's screens move around a little between updates, so if a field label here reads slightly differently on yours, look for the field that does the same job.

In Make, create a new scenario and add the first module.

Module 1 — Google Sheets → "Watch New Rows". It "Triggers when a new row is added" (Make). The fields that matter, per Make's Sheets documentation: Connection (create one, sign in with the Google account that owns the sheet, and allow access on Google's permission screen), Spreadsheet ID (pick your lead spreadsheet), Sheet Name (the "Form Responses 1" tab, not Scored), Table contains headers (yes), and Limit, which is "the maximum number of results that make will work with during one execution cycle". Set Limit to something like 20 so a busy day doesn't get cut short.

Now the trial run. Submit one fake enquiry to your own form, then run the scenario once. Make should show a bubble on Module 1 with your test row inside, columns named after your form questions. Without this, the next modules can't show you the fields by name.

Module 2 — Google Gemini AI → "Generate a response". Make lists it as "Generates a response for the provided input" (Make). Add it after Module 1. Two decisions first:

  • Connection. Click to create one. Make's Gemini documentation has you enter an optional name, then in the API key field "enter the api key you copied from your google ai studio account", then save. Use this connection, the one built on your own key. The Gemini app also has a "Simple text prompt" module that offers Make's own built-in AI connection, and on that route Make charges "credits based on tokens", not one per run (Make's credits page). Your own key keeps it at one credit and keeps the tokens on Google's free tier.
  • Model. Pick a Flash model. Those are the ones marked "Free of charge" on Google's pricing table. A Pro model can cost money or refuse on the free tier.

Then the prompt. Inside the module, look for the large text box where you give the AI its instruction. Paste the following into it, replace the bracketed parts with your Step 1 lists, and where you see {{...}} delete my placeholder and click the matching field from Module 1's list so it becomes a proper tag.

You are sorting a new sales enquiry for [YOUR BUSINESS, e.g. a Singapore home-renovation contractor].

Our ideal customer:

  • [rule 1]
  • [rule 2]
  • [rule 3]

Not a fit:

  • [rule A]
  • [rule B]

The enquiry: What they need: {{What do you need?}} Budget: {{Budget}} When they want to start: {{Start}} How they found us: {{How did you hear about us?}}

Decide: HOT if it matches most of the ideal-customer rules and none of the not-a-fit rules. COLD if it matches a not-a-fit rule or is clearly a poor match. WARM for anything in between, or if the information is missing.

Reply with exactly one word: HOT, WARM or COLD. No punctuation, no explanation, no formatting.

Notice what's not in there: the name and the phone number. The scorer doesn't need them, and Google's terms for the free tier say plainly "Do not submit sensitive, confidential, or personal information to the Unpaid Services" (Gemini API terms). Keep it that way. Leave any other settings at their defaults.

Run the scenario once more. Module 2's bubble should now show a result that reads HOT, WARM or COLD and nothing else. If it comes back with extra words or a full stop, tighten the last line of the prompt and run again.

Module 3 — Google Sheets → "Add a Row". It "Appends a new row to the bottom of the table" (Make). Same connection as Module 1. Pick the same spreadsheet, but this time Sheet Name is Scored, and Table contains headers is yes. Make then shows a box per column under Values in columns ("enter or map the desired cells of the row you want to add"). Map each one: Time from the form's timestamp, Name, Phone, the need, budget, start and via fields from Module 1, and Label from Module 2's result. Every lead, hot or cold, lands here.

The filter — only HOT continues. Between Module 3 and the next module there's a line with dots on it. Make's filter guide says to click the wrench on those dots and choose Set up a filter, or right-click the dots for the same option. Then:

  • Label: something like "Hot leads only". Make's guide says the label matters because "it appears in the Scenario Builder, making it easier to understand the flow of data through your scenario".
  • Condition: click into the box and choose Module 2's result (the same field you mapped into the Label column).
  • Keep the Text operators dropdown on Equal to, and in the box below type HOT in capitals, exactly as the prompt asks for it.
  • Save.

Module 4 — Telegram Bot → "Send a Text Message or a Reply". Add it after the filter. Create the connection the way Make's Telegram documentation describes: in the token field, paste the token from 3a, and save. Then the fields the doc lists: Chat ID is the number from 3c; Text is your alert, with fields clicked in from Module 1; Parse mode can stay empty. Something like:

🔥 HOT lead: {{Name}} · {{Phone}} Wants: {{What do you need?}} Budget: {{Budget}} · Start: {{Start}} Via: {{How did you hear about us?}}

Save the scenario. Don't switch it on yet; the schedule comes first.

You'll know this worked when the scenario shows four modules in a line, the filter icon sits between the third and fourth, and a run with a test lead produces a row on the Scored tab.

Step 5 — Set the schedule and switch it on (10 minutes)

Remember the arithmetic: every check costs a credit. Make's default of every 15 minutes will eat the free plan on its own. So change it.

Make's scheduling page says: "Go to the Scenario Builder. Click Every 15 minutes on the Scenario toolbar." A panel opens with options including "At regular intervals", "Daily", "Weekdays (Mon-Fri)" and others. Choose Daily (or Weekdays (Mon-Fri) if you never quote on weekends) and add run times. Make's own words: "You can add as many run times as you need in the Daily schedule". Six spread through the working day is a good start: 9:00, 11:00, 13:00, 15:00, 17:00, 19:00. That's about 180 checks a month. A hot lead reaches your phone within about two hours during the day, and the sheet catches up first thing in the morning for anything that came in overnight.

Hourly is about 720 checks a month, which leaves little room for leads on the free plan. Faster than that means the Make Plan from the costs section.

Then, per Make's own getting-started steps, click Save. In Make's words: "After you schedule your scenario, you'll be prompted to activate it. Click Activate scenario." The scenario is now live.

One caveat from the pricing page: the free plan allows "2" active scenarios. If you've got the receipt bot and the form-to-Telegram sibling both switched on, this is a third and won't activate. Switch the sibling's scenario off. This one does its job and more.

You'll know this worked when the scenario shows as active and the schedule on the toolbar reads your chosen times instead of "Every 15 minutes".

Test it works (10 minutes)

Do this from your phone, the way a customer would.

  1. Open your form link in a private browser window. Fill it in as an obviously ideal customer using your own rules: right budget, right timeline, right kind of job. Submit.
  2. In Make, run the scenario once by hand rather than waiting for the schedule. Within a moment: a new row on the Scored tab with HOT in the Label column, and a buzz on Telegram with that lead's details.
  3. Submit a second fake enquiry as an obvious tyre-kicker: "only want a price list", no budget, "no idea when". Run the scenario once. A row appears on Scored with COLD. Telegram stays silent. That silence is the feature.
  4. Submit a third with a middling answer or a blank budget. It should land WARM, no buzz.

If all three labels came out the way you'd have sorted them by hand, you're done. If the AI disagreed with you, that's a rules problem, not a tool problem: go back to Step 1 and make the rule it got wrong more concrete, then paste the new list into Module 2.

Delete the three test rows from the Scored tab afterwards.

When it doesn't

Module 1 shows no fields to map, only a blank list. You haven't run the scenario with a real row in the sheet yet. Submit a test enquiry, run once, then open Module 2 or 3 again. The columns appear by name.

Module 2 comes back with more than one word. The model added a full stop, a sentence, or bold text. Open the bubble on Module 2 after a run and read exactly what it sent. Then tighten the last line of the prompt ("Reply with only the single word HOT, WARM or COLD. Nothing before it, nothing after it.") and run again. If it keeps sneaking characters in, Make's filter has other text operators besides Equal to; one of them checks whether the text contains your value rather than matching it exactly, and that will tolerate a stray full stop. The exact wording varies between Make versions, so read the dropdown.

The Scored tab fills, but no Telegram buzz ever. In order: is the filter's value HOT in capitals? Is it comparing Module 2's result and not a Module 1 field? Is the Chat ID the number from 3c, not the bot's username? And did the test lead actually score HOT? If the Scored tab says WARM, the filter did its job and the rules need work.

Module 2 errors mentioning quota, rate limit or 429. That's Gemini's free-tier cap; Google says exceeding any limit "will trigger a rate limit error". Read your own limits on AI Studio's rate-limit page. Daily caps "reset at midnight Pacific time", mid-afternoon in Singapore, so a run that fails at lunch can recover by evening. If it happens on a normal day's volume, check you're not scoring the same rows repeatedly (next item), and check the Model is a Flash one. Pro models can refuse on the free tier or cost money.

The same leads get scored again and again, and credits vanish. Module 1 is pointed at the wrong tab, or the Limit is set oddly, or a run was stopped halfway. Check Sheet Name is "Form Responses 1", and look at the Scored tab for duplicate rows. Delete the duplicates, then check Make's run history to see what each run picked up.

The getUpdates page in 3c shows an error mentioning a webhook. That bot is already wired to another automation (the receipt bot does this), and Telegram's docs say the getUpdates method "will not work if an outgoing webhook is set up". Make a fresh bot with BotFather and use that one here.

The scenario won't activate. Two active scenarios is the free plan's ceiling. Switch another one off, then activate this one.

Credits ran out before the month ended. Open the schedule. If it says "Every 15 minutes", that's the whole problem; set it to Daily as in Step 5. If the schedule is right, count the Scored tab; past a few hundred leads a month it's the Make Plan or fewer checks.

Your data (read this one)

Let's be specific about what leaves your business and where it goes.

What goes to Google's Gemini. Only what you map into the prompt: the job description, budget range, timeline and how they found you. If you follow Step 4, no name, phone or email goes to Gemini at all. That matters because this build runs on Gemini's free tier, and Google's terms for the unpaid tier say Google uses what you submit "to provide, improve, and develop Google products and services and machine learning technologies", that "human reviewers may read, annotate, and process your API input and output", and, in so many words, "Do not submit sensitive, confidential, or personal information to the Unpaid Services". So don't. A budget range and "kitchen reno, Tampines" is not personal data on its own. A phone number is.

If you'd rather nothing you send were used to improve Google's products, the paid tier is the switch: on it, per the same terms, Google "doesn't use your prompts … or responses to improve our products". That means a billing account and a minimum US$5 prepay, and it's a reasonable upgrade if enquiries routinely describe people's homes or health.

What goes through Make. The full row: name, phone, everything the form collected. Make is a cloud service and it reads your sheet to do its job. Its run history, which includes the data each run handled, is kept for "7" days on the Free plan per Make's pricing page, then gone.

What goes to Telegram. Hot leads' names and numbers, in a chat only you can see. The bot token is the key to that bot; Telegram says to "store it in a secure place, and only share it with people who need direct access to the bot".

The PDPA bit. A lead's name and number are personal data. PDPC's obligations summary is plain about the ones that bite here. Notification: "Notify individuals of the purposes for collecting, using and disclosing their personal data", so put one line on the form ("We'll use your details only to reply to this enquiry"). Purpose limitation: use the data for "purposes that a reasonable person would consider appropriate", which scoring an enquiry to reply to it is, and a marketing broadcast later isn't without fresh consent. Transfer limitation: Make, Google and Telegram are all overseas, so keep the personal data you send them to the minimum the job needs. That's the reason the prompt in Step 4 leaves the name and phone out.

Switch it off

Three things, in this order, and it's fully off:

  1. In Make, open the scenario and switch it to inactive, or delete it. That stops everything at once: no more checks, no more buzzes. Then, if you're done with Make for good, remove Make's access from your Google account: in your Google account's security settings, find the list of third-party apps with access and remove Make.
  2. In AI Studio, delete the API key on the same API Keys page you made it. Google's advice when you're finished with a key is to "delete or revoke" it "to prevent misuse".
  3. In Telegram, message BotFather and send /deletebot if you want the bot gone ("delete your bot and free its username. Cannot be undone"), or /token to invalidate the old token if you'd rather keep the bot and lock everyone else out.

The form, the sheet and the Scored tab are yours. Nothing was ever charged, so there's nothing to cancel.

What's next

Run it for two weeks and then do the only maintenance this needs: open the Scored tab, read the WARM rows, and ask whether any should have been HOT. Each time the answer is yes, make the rule that would have caught it and add it to the prompt. Ten minutes a fortnight, and the scorer gets sharper without you touching Make.

Want every lead pinged, with its label on the front? Delete the filter. The Telegram message then arrives for HOT, WARM and COLD alike, and you glance at the first word. Same credits, more buzzes; some owners prefer it.

Once the hot ones are reliably reaching your phone, the next thing that leaks is the reply. The quote follow-up chaser nags you when a quote goes quiet, and the after-hours WhatsApp auto-reply means an 11pm enquiry hears something back before you do. If a vendor is pitching you a paid "lead management system" this month, put its price through the markup math first. What you've built here is the part they'd charge for.

A note on the numbers: every price and limit above was read from the vendor's own page on 15 September 2026, and the Make paid-plan figure is quoted as the page printed it, without assuming which billing period the page was showing. Nothing here was run by us; the steps follow each tool's own documentation, so where a screen has moved since, look for the field that does the same job.

Sources

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

  1. Make pricing — Free plan $0/mo, up to 1,000 credits/mo, 2 active scenarios, 15-minute minimum interval; Make Plan $9/mo, 5k credits (fetched 15 Sep 2026)
  2. Make — credits: 1 operation = 1 credit for non-AI apps; own-key AI apps billed by operations; Make's automatic AI connection billed by tokens (fetched 15 Sep 2026)
  3. Make — operations: Watch New Rows = 1 operation per check (fetched 15 Sep 2026)
  4. Make — schedule a scenario: options list, Daily run times (fetched 15 Sep 2026)
  5. Make — save and activate a scenario (fetched 15 Sep 2026)
  6. Make — add a filter: Label, Condition, Text operators, Equal to, Save (fetched 15 Sep 2026)
  7. Make — Google Sheets modules: Watch New Rows and Add a Row field labels (fetched 15 Sep 2026)
  8. Make — Google Sheets + Telegram pairing: Watch New Rows, Add a Row, Send a Text Message or a Reply (fetched 15 Sep 2026)
  9. Make — Google Gemini AI app: connection with an AI Studio key, module list (fetched 15 Sep 2026)
  10. Make — Google Gemini AI integration: Generate a response, Extract structured data (fetched 15 Sep 2026)
  11. Make — Telegram Bot app: token connection, Send a text message or reply fields (fetched 15 Sep 2026)
  12. Google — Gemini API pricing: Flash models free of charge on the free tier, data used to improve products (fetched 15 Sep 2026)
  13. Google — Gemini API billing: new accounts start on the Free Tier; paid tier needs a billing account and US$5 prepay (fetched 15 Sep 2026)
  14. Google — Gemini API Additional Terms, effective 23 Mar 2026: unpaid-tier data use, human reviewers, no personal information (fetched 15 Sep 2026)
  15. Google — create a Gemini API key in AI Studio; treat it like a password (fetched 15 Sep 2026)
  16. Google — Gemini API rate limits: RPM/TPM/RPD, viewed in AI Studio, daily reset at midnight Pacific (fetched 15 Sep 2026)
  17. Telegram — bots are free for users and developers; keep the token secure (fetched 15 Sep 2026)
  18. Telegram — BotFather /newbot, username rules, /token, /deletebot (fetched 15 Sep 2026)
  19. Telegram Bot API — request URL shape, getUpdates, Chat id/type, 24-hour update retention (fetched 15 Sep 2026)
  20. Google Forms — add a question, choose its type, Required (fetched 15 Sep 2026)
  21. Google Forms — send responses to a spreadsheet (fetched 15 Sep 2026)
  22. PDPC — Data Protection Obligations under the PDPA (infographic, read 15 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.