10 n8n Automation Recipes for Small Businesses (2026), Copy-Paste Workflows
Ten production-ready n8n workflow recipes for small businesses, with the exact nodes, trigger logic, and data flow you need. Each recipe includes: what it does, which n8n nodes to use, the node sequence, setup notes, and difficulty level. Built for business owners who are new to n8n and want proven workflows they can clone and adapt in under 30 minutes.
Before you start: how to set up n8n
All recipes below run on n8n. You have two options:
- n8n Cloud ($20/month): No server needed. Sign up at n8n.io and start building immediately. Best for non-technical users.
- Self-hosted on a VPS ($6–12/month): Install n8n on DigitalOcean, Hetzner, or Railway using Docker. Run
docker run -d -p 5678:5678 n8nio/n8nto get started. Best for cost-conscious businesses, free beyond the VPS cost.
Each recipe below lists the exact nodes you need. Most are available in n8n's standard library. Some require credentials (API keys), these are noted in each recipe's setup section.
WhatsApp Order Confirmation
Auto-send a WhatsApp message when a new order comes in from your website or form
What it does
When a customer places an order (via Typeform, Google Forms, WooCommerce, or a webhook), n8n automatically sends them a WhatsApp confirmation message with their order details. No more manually copy-pasting messages.
Node flow
Setup notes
- Trigger: Use a Webhook node if your website POSTs order data, or a Google Sheets / Typeform trigger if orders come via forms.
- WhatsApp: Use the Twilio node with WhatsApp messaging enabled. You need a Twilio account and a WhatsApp-enabled number ($15/month). Alternatively, use the Meta WhatsApp Cloud API via an HTTP Request node.
- Message template: Use n8n's Set node to build a message string:
"Hi {{customer_name}}, your order #{{order_id}} for {{product}} has been confirmed! We'll update you when it ships." - Africa/Kenya note: Twilio WhatsApp works with Kenyan numbers. Safaricom customers can receive WhatsApp messages on their regular Safaricom number if they have WhatsApp installed.
Required credentials
- Twilio Account SID + Auth Token (or Meta WhatsApp Cloud API token)
Instagram DM Auto-Reply
Instantly reply to Instagram DMs with business info, pricing, or a lead capture link
What it does
When someone sends a DM to your Instagram account, n8n sends an instant automated reply, your pricing page link, a Calendly booking link, or a menu PDF. Reduces response time from hours to seconds and captures leads while you're asleep.
Node flow
Setup notes
- Webhook setup: You need a Meta Business account and a connected Instagram Professional account. Create a Meta App, enable the Instagram Messaging API, and set your n8n Webhook URL as the callback URL in your Meta App settings.
- Verification: Meta requires a webhook verification step, use n8n's Webhook node in "respond immediately" mode and set the verify token in Meta's developer console.
- Reply node: Use an HTTP Request node to POST to
https://graph.facebook.com/v19.0/me/messageswith your page access token and the recipient's PSID. - Smart routing: Add an IF node to only reply to first-time DMs (not replies to existing threads) to avoid spammy double-replies.
- Optional: Add a Google Sheets node to log all DM contacts for follow-up.
Required credentials
- Meta App (App ID + App Secret) · Instagram Professional Account · Page Access Token
Mpesa Payment Webhook → Confirmation Message
Auto-confirm Mpesa payments via WhatsApp and update your records instantly
What it does
When a customer pays via Mpesa (STK Push or C2B Paybill/Till), Safaricom's Daraja API sends a webhook to your n8n instance. n8n validates the payment, sends a WhatsApp confirmation to the customer, and logs the transaction in Google Sheets, all in under 3 seconds.
Node flow
Setup notes
- Daraja setup: Register at developer.safaricom.co.ke. Create a Daraja app and get your Consumer Key + Consumer Secret. Set your n8n Webhook URL as the
CallbackURLin your STK Push or C2B API configuration. - Auth token: Daraja tokens expire every hour. Add an HTTP Request node before the webhook to auto-refresh the access token using Basic Auth with your Consumer Key + Secret. Store the token in n8n's static data.
- ResultCode check: Only process payments where
Body.stkCallback.ResultCode = 0(success). Log failed payments separately. - Data extraction: The Daraja callback contains
Amount,MpesaReceiptNumber,PhoneNumber, andTransactionDateinCallbackMetadata.Item. Use a Set node to extract these. - Production note: Always validate the transaction amount matches what you expected before confirming fulfillment.
Required credentials
- Safaricom Daraja API (Consumer Key + Secret) · Twilio (WhatsApp) · Google Sheets OAuth
Google Sheets Inventory Update on Sale
Auto-deduct inventory in a Google Sheet when an order is placed or a sale is recorded
What it does
Every time an order comes in (from your e-commerce platform, Typeform, or a WhatsApp message parsed by n8n), the workflow looks up the product in your inventory Google Sheet, deducts the quantity sold, and flags low-stock items via email.
Node flow
Setup notes
- Inventory sheet structure: Your Google Sheet needs at minimum: Product Name, SKU, Current Quantity. n8n's Google Sheets node can search by SKU using "Lookup Column" to find the right row.
- Deduction formula: Use a Set node with an expression:
{{$node["Find Row"].json["Quantity"] - $node["Trigger"].json["qty_sold"]}} - Low stock alert: Set your threshold (e.g., 5 units) in an IF node. When true, send a Gmail alert with the product name, SKU, and current quantity.
- Multiple products per order: Use a Split In Batches node to process each line item separately if orders can contain multiple products.
Required credentials
- Google Sheets OAuth (read + write) · Gmail OAuth (for alerts)
Daily Business Report Email
Get a daily email summary of orders, revenue, and key metrics from your Google Sheets data
What it does
Every morning at 7am (or any time you set), n8n reads your orders Google Sheet, calculates yesterday's totals (orders count, revenue, top product), and emails you a clean HTML summary. Replace your manual spreadsheet checking habit with a 0-effort daily digest.
Node flow
Setup notes
- Schedule Trigger: Use the Schedule Trigger node. Set it to run at 07:00 daily in your timezone (East Africa Time = UTC+3).
- Date filter: Use n8n's Google Sheets node with a filter on your date column. Yesterday's date =
{{$today.minus(1, 'day').toFormat('yyyy-MM-dd')}}(using Luxon expressions). - Calculations: In a Function (Code) node, use JavaScript to sum revenue, count orders, and find the top-selling product from the returned rows array.
- HTML email: Gmail's HTML body supports basic styling. Use a template with your business name, date, and key metrics in a simple table for a clean report.
- Extend it: Add a Slack or WhatsApp node to also get the report on your phone, or push data to a Notion dashboard.
Required credentials
- Google Sheets OAuth · Gmail OAuth
New Lead → CRM + Follow-Up Email Sequence
Capture leads from any source, add to your CRM, and trigger a timed follow-up sequence
What it does
When a new lead submits a form (Typeform, Tally, your website contact form), n8n adds them to your CRM (HubSpot, Airtable, or a Google Sheet), sends a welcome email immediately, then queues a follow-up email 24 hours later and a final nudge at 72 hours, without any manual action from you.
Node flow
Setup notes
- Wait node: n8n's Wait node pauses the workflow for a set duration (hours or days) without consuming resources. Use it between email steps.
- CRM options: n8n has native nodes for HubSpot, Pipedrive, Salesforce, and Airtable. If you use a Google Sheet as your CRM, the Google Sheets append node works perfectly.
- Personalization: All emails can use lead data from the trigger:
{{$node["Webhook"].json["first_name"]}},{{$node["Webhook"].json["company"]}}, etc. - Exit condition: Add an HTTP Request node to check if the lead has booked a call (via Calendly API) before sending follow-ups. Skip the email if they've already converted.
Required credentials
- Gmail OAuth · HubSpot or Airtable API key (optional)
AI-Powered WhatsApp Customer Support Bot
Answer customer WhatsApp questions automatically using Claude or ChatGPT with your business knowledge
What it does
Incoming WhatsApp messages hit an n8n webhook. n8n sends the message to Claude or GPT-4o with a system prompt containing your business info (menu, prices, opening hours, policies). The AI generates a contextual reply which n8n sends back to the customer on WhatsApp, all in under 5 seconds.
Node flow
Setup notes
- System prompt: Feed the AI a detailed system prompt with your business name, hours, menu, pricing, and common policies. Keep it under 2,000 tokens for speed and cost efficiency.
- API call: Use the HTTP Request node to POST to
https://api.anthropic.com/v1/messages(Claude) orhttps://api.openai.com/v1/chat/completions(OpenAI). Set your API key in n8n Credentials. - Cost: Claude Haiku costs ~$0.001 per WhatsApp message handled. For 500 messages/month: ~$0.50. Extremely affordable.
- Human handoff: Add an IF node to detect keywords like "problem", "complaint", "refund" and route those to a real person via a different WhatsApp message or email alert.
- Memory: For conversation context, store message history in n8n's static data or a Redis node, and include the last 3–5 messages in each API call.
Required credentials
- Meta WhatsApp Cloud API token · Anthropic API key (or OpenAI API key)
Appointment Booking Confirmation + Reminder
Auto-confirm Calendly bookings via WhatsApp and send a reminder 2 hours before
What it does
When someone books a meeting on Calendly, n8n sends them an instant WhatsApp confirmation. 2 hours before the meeting, n8n sends another WhatsApp reminder with the meeting link. Reduces no-shows by 40–60% according to Calendly's own data.
Node flow
Setup notes
- Calendly Trigger: n8n has a native Calendly trigger node. Connect with your Calendly API key. It fires on "invitee.created" events.
- Dynamic wait: Use the Wait node set to "Resume At Specific Time." Calculate the reminder time:
{{DateTime.fromISO($node["Calendly Trigger"].json["payload"]["event"]["start_time"]).minus({hours: 2}).toISO()}} - Phone number: Calendly collects the invitee's phone number if you add a phone field to your booking form. Make sure it's required for this workflow to work reliably.
Required credentials
- Calendly API key · Twilio Account SID + Auth Token
Social Media Post Scheduler
Auto-publish posts to Instagram and Twitter/X from a Google Sheets content calendar
What it does
You write your posts in a Google Sheet (with columns: Platform, Post Date, Caption, Image URL, Status). Every 30 minutes, n8n checks for pending posts scheduled for the current time, publishes them via the Instagram or Twitter API, and marks them as "Published" in the sheet.
Node flow
Setup notes
- Instagram publishing: Use the Meta Graph API
/me/mediaendpoint to upload an image, then/me/media_publishto publish it. Both are HTTP Request nodes with your Page Access Token. - Twitter/X: Use the Twitter node (n8n has a native node) or the Twitter v2 API via HTTP Request. Requires a Twitter Developer account (free tier available).
- Time comparison: In an IF node, check:
{{DateTime.fromISO($node["Sheets"].json["Post Date"]) <= $now}} - Image URLs: Images must be publicly accessible URLs. Host them on Google Drive (with public sharing), Cloudinary (free tier), or any CDN.
Required credentials
- Meta Page Access Token · Twitter Bearer Token · Google Sheets OAuth
Trigger an AI Voice Call After Mpesa Payment
Automatically call a customer via AI voice agent after they pay via Mpesa to confirm or onboard them
What it does
When a customer completes an Mpesa payment, n8n receives the Daraja webhook (see Recipe 3), validates the payment, then triggers an outbound AI voice call via Bland AI or Vapi. The AI agent speaks to the customer, confirms their order, and answers basic questions, all automatically within 30 seconds of payment.
Node flow
Setup notes
- Bland AI trigger: POST to
https://api.bland.ai/v1/callswith JSON body containingphone_number,task(your agent instructions), andvoice. Use an HTTP Request node with your Bland API key in the Authorization header. - Vapi trigger: POST to
https://api.vapi.ai/call/phonewith your assistant ID and the customer's phone number. - Phone number format: Kenyan numbers must be in E.164 format:
+254712345678. Mpesa's Daraja callback returns the number as254712345678, add a Set node to prepend the+. - Agent script: Your Bland or Vapi agent should open with: "Hi [name], this is [business name]. I'm calling to confirm we've received your payment of KSh [amount] for [product]. Your order will be ready by [date]. Is there anything you'd like to confirm?"
- Africa availability: Bland AI has limited Kenya coverage, use Vapi with a Twilio SIP trunk and a +254 number for best Kenya results.
Required credentials
- Safaricom Daraja API · Bland AI or Vapi API key · Google Sheets OAuth
Frequently asked questions
What can n8n automate for a small business? +
Is n8n free for small businesses? +
How do I connect n8n to WhatsApp? +
How do I integrate n8n with Mpesa (Daraja API)? +
Can n8n send automated emails? +
Need these workflows built for your business?
I build n8n automation workflows for small businesses, WhatsApp bots, Mpesa integrations, AI agents, and custom pipelines. Most projects take 1–5 days.
Let's build it →