Nanosaur2-670M
well9472 · Kit
Makes illustrations from text prompts with a small 670M-parameter diffusion model, run through ComfyUI. Built as a low-budget research model for people who wan…
An n8n workflow that answers new leads on a WhatsApp business number, scores them with an OpenAI model and offers booking hours. A complaint goes to your team in Slack, and quiet chats get a nudge every hour.
WhatsApp lead qualifier with human handoff and follow-ups is an n8n workflow in the Business category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
A WhatsApp message
It starts when Meta sends a customer message to your webhook, and an hourly schedule runs the follow-ups:
Each lead gets an instant answer in its own language, and your team sees only the chats that need a person
What you need before you start.
Chat app
Receives the customer’s messages and delivers the replies and nudges.
NeedsA Meta app with the WhatsApp product, a phone number id, an access token and an approved template
AI model
Reads each message and returns the intent, the language, a score and a reply.
NeedsAn OpenAI account and key
Spreadsheet
Holds the leads and the activity log with its tasks.
NeedsA Google account and a sheet with the tabs Leads and Activity
Team chat
Alerts your team to a handoff, a forged call or a failed run.
NeedsAn incoming webhook for the channel
Checked by Mindket on 13 Nov 2026
This n8n workflow runs the first conversation with a new lead on your WhatsApp business number. It checks that each call comes from Meta, drops repeats and keeps each chat in memory. An OpenAI model reads the message, answers in the customer’s language and gives the lead a score. A booking request gets three open hours, a complaint pauses the AI and alerts your team in Slack, and a quiet chat gets a nudge every hour. Forty-five nodes do the work, beside two sticky notes.
Service businesses that get most of their leads on WhatsApp, such as clinics, estate agents, home services and trading companies. You need a Meta developer app, an approved message template, an OpenAI key, a Google Sheet and a Slack incoming webhook. Read the notes on running it live below first.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Home services | Cleaning and AC companies | Answer price questions at any hour and book a visit | A customer asks about deep cleaning at night, gets the price from your list and three hours for a visit. |
| Healthcare | Small clinics | Take first questions and pass worried patients to staff | A patient who writes that they are in pain pauses the AI, and the front desk gets a Slack alert. |
| Property | Estate agents | Qualify buyers before an agent calls | A buyer’s area and budget land in the sheet with a score, so the agent starts with the best leads. |
| Trade | Trading companies | Keep leads warm after a quote | A buyer who went quiet for two hours gets a short nudge, or an approved template after a day. |
You need some n8n and some of Meta’s tools: import a file, set a callback address, add four credentials and make two tabs in a sheet.
Any n8n with a public HTTPS address can run it, because Meta must reach the webhook.
Config, the hours and the nudge textsDownload saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. You need a Meta developer app with the WhatsApp product, an OpenAI key, a Google sheet and a Slack incoming webhook.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on your own server, with a public HTTPS address |
| Meta app | The WhatsApp product, a phone number id, an access token and the app secret |
| Message template | One that Meta approved, named lead_followup_v1, with one body value |
| OpenAI | An account and a key |
| Google Sheets | A sheet with the tabs Leads and Activity |
| Slack | An incoming webhook for the channel that gets the alerts |
workflow.json.Config, fill in app_secret, phone_number_id, slack_webhook and business_profile with your own business, areas, services and prices.Verify token matches?, replace <YOUR_VERIFY_TOKEN> with a long random string. Fill in Config (follow-ups) and Config (errors) the same way.WhatsApp API node, add a Header Auth credential named Authorization with the value Bearer and your access token.OpenAI: intent and reply, pick your OpenAI credential. In Webhook: run follow-ups now, pick a Header Auth credential of your own.Leads and Activity with the column names listed in the README. In each Google Sheets node, sign in and replace <YOUR_SPREADSHEET_ID>.Webhook: Meta verification (GET) with your verify token, and subscribe to messages.Once the workflow is on, it answers every message by itself. Read the Leads tab for scores and the Activity tab for tasks. A booking task is due in 15 minutes, and a handoff task is due in 15 minutes too.
| To change | Where |
|---|---|
| The business, areas and prices | business_profile in Config |
| The offered hours | open_hour and close_hour in Config |
| The quiet time before a nudge | nudge_after_min in Config |
| The template name | followup_template in Config |
| The rules for a human | The system prompt in OpenAI: intent and reply |
| The nudge texts | WhatsApp API: free-form nudge |
A cleaning company answers a night enquiry.
At 11 pm a customer asks how much a deep clean costs. The signature checks out, and the model answers from the price list in one short message. It scores the lead at 6. The next morning the same customer asks for Friday. The reply carries three open hours, and a task for the front desk appears in the Activity tab, due in 15 minutes. A colleague confirms the visit.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A webhook is an address that another service calls when something happens. A signature is a code that proves the call came from Meta. This workflow listens at that address and decides what to do with each message.
For experts. The signature is checked against the raw body, and chat memory sits in workflow static data keyed by the sender’s id. A person with a WhatsApp username can arrive with no phone number, so replies go by recipient.
| Node | What it does | What to know |
|---|---|---|
Verify signature, parse, dedupe, remember | Checks X-Hub-Signature-256, drops repeats, keeps the last ten turns of each chat | Static data is kept only while the workflow is on, and it is not a database |
Route event | Sorts a call into message, status, repeat, opt-out, human-owned chat or forged call | Any later message from an opted-out person counts as a return |
OpenAI: intent and reply | Returns the intent, language, score, reply and two flags as JSON | The model is gpt-6-luna in a plain call, with no tools |
Offer the next three slots | Picks the next three hours inside the business hours on a weekday | It does not read a calendar |
Find quiet conversations | Chooses a free text, a template or no message for each chat | Meta’s 24-hour window decides which |
Nothing here was run against Meta, OpenAI, Google or Slack, and the model writes to real customers, so test it with your own phone first.
Config and one body value, the first namerecipientband karo mark a person as opted out. A person who then writes anything is treated as backAn n8n workflow that answers new leads on a WhatsApp business number. An OpenAI model reads each message, replies in the customer's language and scores the lead.
A booking request gets three open hours, a complaint goes to your team in Slack, and a quiet chat gets a nudge every hour.
workflow.json: the workflow as n8n exports it, 45 working nodes and two sticky notes. It holds no credential.README.md: these notes.base in Config. That covered WhatsApp, the model, a CRM, a calendar and Slack. Each call now goes to a real service, as listed below.https://graph.facebook.com/v27.0/. That version comes from the examples in Meta's docs, read on 12 November 2026.gpt-6-luna, and it is asked for a JSON answer. Nothing was run against OpenAI, so test it first.Leads and Activity. The calendar is now a Code node that offers the next three hours inside the business hours set in Config. It does not read a calendar.from_user_id and replies with recipient in place of to.lead_followup_v1, in English and in Urdu if you use both.Leads and Activity.workflow.json.Config and fill in app_secret, phone_number_id, slack_webhook and business_profile. Write your own business name, areas, services and the price from each.Verify token matches? and replace <YOUR_VERIFY_TOKEN> with a long random string of your own.Config (follow-ups) and Config (errors) and replace the same placeholders.WhatsApp API, add one Header Auth credential with the name Authorization and the value Bearer <your access token>.OpenAI: intent and reply, pick your OpenAI credential. In Webhook: run follow-ups now, pick a Header Auth credential of your own.Leads with the columns wa_id, contact, name, language, lead_score, service, area, intent, opted_out and updated_at. Make a tab Activity with time, wa_id, kind, text and due.<YOUR_SPREADSHEET_ID> with your sheet.Webhook: Meta verification (GET), with your verify token, and subscribe to messages.Verify signature, parse, dedupe, remember checks the X-Hub-Signature-256 header against the raw body. A forged call gets a 401 and a Slack alert.Route event sorts the call. A delivery status is acknowledged. The words STOP, UNSUBSCRIBE, CANCEL or band karo mark the person as opted out. A chat that a person owns only pings Slack.OpenAI: intent and reply returns the intent, the language, a score from 0 to 10, a reply and two flags.Sheet: save the lead and Sheet: log the exchange write the lead and the turn.Intent route then picks one of three paths. A greeting or a price answer is sent as it is. A booking request gets the reply with three open hours and a task due in 15 minutes. A request for a person pauses the AI for that chat, alerts Slack and adds a call-back task.Find quiet conversations looks at each chat that has been quiet for 120 minutes. Inside 24 hours it sends a free text. After that it sends the approved template. A chat is nudged once until the person writes again.business_profile in Config. The prompt tells the model never to invent a price, a service or an area outside it.open_hour and close_hour in Config. The weekend is skipped in Offer the next three slots.nudge_after_min, and the template name is followup_template.WhatsApp API: free-form nudge.OpenAI: intent and reply.Webhook: run follow-ups now, with force in the body to ignore the quiet time.Config and a body that takes one value, the first name.recipient.Activity tab.<YOUR_META_APP_SECRET>, <YOUR_PHONE_NUMBER_ID>, <YOUR_SLACK_WEBHOOK_URL>, <YOUR_VERIFY_TOKEN> and <YOUR_SPREADSHEET_ID>.NOTICE.md 719 B README.md 8 KB workflow.json 65 KB
well9472 · Kit
Makes illustrations from text prompts with a small 670M-parameter diffusion model, run through ComfyUI. Built as a low-budget research model for people who wan…
Waqf-AI · Kit
Reads handwritten Arabic text from images and returns it as text. A fine-tuned PaddleOCR-VL model for people digitizing Arabic handwriting.
Wan-AI · Kit
Makes video clips from a text prompt or an image plus text, at up to 720P and 24 frames per second, in the Diffusers format for a single consumer GPU.
perplexity-ai · Kit
Picks the best option for a decision from text and images, such as which team should handle a request, with a probability for each choice, for developers who b…
numind · Kit
Reads documents as text or images and fills a JSON template with the fields you ask for, or converts the pages to Markdown. A 4B model for teams that process s…
nace-ai · Kit
Scores yes or no, multiple choice and rating questions about a document in one pass, with a probability for every option. An 8B decision model from Nace.AI tha…