Bonsai-27B-GGUF
lmstudio-community · Kit
A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…
An n8n workflow that scores each new lead with an AI step, texts hot ones at once with calendar slots, alerts sales, and starts the rest on a nurture. It runs on a backend you bring.
Inbound leads scored by AI and answered at once by SMS 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.
Lead webhook
It starts when a form, an ad platform or a CRM posts a lead to the lead-in webhook. A second webhook, call-ended, takes voice agent call summaries. A lead can carry:
A scored contact in your CRM and a reply to the lead, plus three slots, a sales task and a Slack alert for a hot lead
What you need before you start.
Backend
Answers the calls for the model, the CRM, the calendar, messages and alerts.
NeedsAn address that answers the nine calls listed in the notes
Alerts
Receives the hot lead alert and the failure alert, through your backend.
NeedsA Slack channel your backend can post to
Voice agent
Can post a call ended summary to the call-ended webhook.
NeedsA Vapi assistant set to post to the webhook
Voice agent
Can post the same call ended summary.
NeedsA Retell AI agent set to post to the webhook
Checked by Mindket on 13 Nov 2026
This n8n workflow answers new leads the moment they arrive. A webhook takes a lead from a form, an ad platform or a CRM and puts it in one shape. A 24 hour check skips repeats. An AI step scores the lead. A hot lead gets a text, three open times to book, a task for sales and a Slack alert. The rest start a five day nurture. A second webhook takes voice agent call summaries. Thirty two nodes do the work, beside two sticky notes.
Teams that answer leads too slowly: agencies, clinics, estate agents and B2B service firms. It also suits builders who want a blueprint for lead handling. Skip it if you have no backend or n8n nodes to stand behind the HTTP calls, since every outside system is reached that way.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Agencies | Marketing agencies | Reply to ad leads before a rival does | An agency’s ad form sends a lead, and the lead gets a text right away. |
| Healthcare | Clinics | Offer appointment slots to new enquiries | A clinic’s web form sends an enquiry, and the person receives three slots by text. |
| Real estate | Estate agents | Send hot buyers to an agent with a short deadline | A buyer enquiry scores high, and an agent gets a task due in 15 minutes. |
| B2B services | Service firms | Log every lead in the CRM and nurture the cooler ones | A cooler lead gets an email that starts a nurture sequence. |
You need a fair amount of n8n and a backend: import a file, set one address and make your systems answer nine calls. Nothing in the file states a setup time.
Any n8n that can reach your backend and be reached by your forms will run it.
Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. The notes list the nine calls your backend must answer.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| A backend | An address that answers the nine calls in the notes, or n8n nodes in their place |
| A model | Behind /llm/complete, for the lead score and the call summary |
| Your tools | A form, ad platform or CRM to post leads, and a voice agent to post calls |
workflow.json.base to your backend’s address in Config, Config (calls) and Config (errors). In Config, also set brand and hot_threshold.lead-in webhook, and your voice agent at the call-ended webhook.Post a lead to the lead-in webhook as JSON. The usual field names work, such as name, email, phone, service and message. The reply tells you the score and the route taken. Post a call summary to call-ended with call_id, from, transcript and duration_s.
| To change | Where |
|---|---|
| The hot score | hot_threshold in Config, 70 in the file |
| The brand name | brand in Config |
| The texts | Offer 3 slots, Nurture: start 5-day sequence and SMS confirmation |
| The Slack channels | Slack alert to sales and Alert ops (Slack) |
| Your own systems | Swap any HTTP Request node for a native node |
A web form sends a lead named Sam Lee who wants a quote.
Your backend scores the lead 82, above the file’s threshold of 70. The contact is saved with the tag hot-lead, and Sam gets the AI’s drafted reply by text. Three open slots follow, a task is due in 15 minutes, and sales sees a Slack alert. The webhook answers with the score and the route taken.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A webhook is a web address that starts a run when something posts to it. Most boxes here call your backend by web address, so the workflow is the plan and your backend does the work.
For experts. Every rule lives in a Code or Set node and every outside call goes through base, so swapping a system means swapping one HTTP node.
| Node | What it does | What to know |
|---|---|---|
Normalise + dedupe (24h) | A Code node that maps common field names and keeps seen contacts in the workflow’s static data | The repeat check survives only runs that a trigger starts on a published workflow |
Merge lead + AI verdict | A Code node that marks a lead hot when the score reaches hot_threshold | It reads the AI answer from output |
Reply in < 60 s (SMS / WhatsApp / email) | An HTTP Request 4.2 with channel set to sms when there is a phone, else email | It retries up to three times, and no WhatsApp channel is set |
Appointment requested? | An If node on the call outcome appointment_requested | It books the first slot your backend returns |
Error trigger | Posts failures to #ops-alerts | It runs only for workflows that name this one as their error workflow |
It needs your backend, and its webhooks are open.
base answers. The address in the file is a placeholdersms or email, and your backend decides what sms meanstest_mode is set in Config, but no node reads itAn n8n workflow for a sales team, in three parts. A webhook takes a new lead from a form, an ad platform or a CRM. The workflow puts it in
one shape, skips repeats from the last day, scores it with an AI step and saves the contact. A hot lead gets an instant
text, three calendar slots, a task for a sales rep and a Slack alert. A cooler lead starts a five day nurture. A second
webhook takes call summaries from a voice agent, and a third part alerts you when a run fails.
Every outside system is reached through an HTTP Request node against one address, base. You bring a backend that answers
the calls in the table below, or you swap each HTTP Request node for the n8n node of your own system.
workflow.json: the workflow as n8n exports it, 32 nodes beside 2 sticky notes. It holds no credential.README.md: these notes.Mindket cut one line from the first sticky note, which pointed to a personal site. Nothing else changed. The copy
already held only placeholders: https://api.your-company.example as the address and Your Business Name as the brand.
| Call | Sent | Expected back |
|---|---|---|
| POST /llm/complete, task qualify_lead | name, service, message, company, budget | output with score, intent, summary, reply and next_step, and a usage field |
| POST /crm/contacts/upsert | email, phone, name, source, service, lead_score, intent, tags | id and status |
| POST /messages/send | channel (sms or email), to, body, and for the nurture a sequence name | nothing is read |
| GET /calendar/slots | nothing | slots, a list of date and time strings |
| POST /crm/tasks | contact_id, title, due | nothing is read |
| POST /alerts | channel, text | nothing is read |
| POST /crm/notes | contact_id, text | nothing is read |
| POST /llm/complete, task summarise_call | transcript | output with outcome, summary and follow_up |
| POST /calendar/book | slot, contact, reason | slot |
workflow.json.base to your backend's address in all three of Config, Config (calls) and Config (errors). In Config, alsobrand and hot_threshold, the score from which a lead counts as hot. The file has 70.lead-in webhook, and your voice agent at the call-ended webhook. Use theError trigger runs when such a workflow fails.A lead arrives:
Webhook: new lead (form / ad / GHL) takes a POST on lead-in and answers with the output of the last node.Config sets base, test_mode, hot_threshold and brand.Normalise + dedupe (24h) reads the lead from common field names, such as name, full_name or first_name withlast_name. It rejects a lead with neither an email nor a phone, and marks a repeat when the same email or phone came inNot a duplicate? sends a repeat to Skip duplicate, which answers with a short note.AI: qualify lead asks your backend for a score, and Merge lead + AI verdict marks the lead hot when the score reacheshot_threshold.CRM: upsert contact (HubSpot / GHL) saves the contact with the tag hot-lead or nurture, and Attach contact id keepsHot lead? splits the path. A hot lead gets Reply in < 60 s (SMS / WhatsApp / email). The reply goessms when there is a phone number and by email when there is not. Next, Calendar: next open slots reads the freeOffer 3 slots sends the first three. After that, CRM: task for sales rep (15 min SLA) makes a task due inSlack alert to sales posts to #sales-hot-leads.Nurture: start 5-day sequence, an email with the sequence name nurture-5-day.CRM: note with AI summary writes the AI's summary, and Respond to webhook answers with the lead, the score, the routeA call ends:
Webhook: voice agent call ended (Retell / VAPI) takes a POST on call-ended, and Config (calls) sets base.Parse call payload expects call_id, from, transcript and duration_s, and rejects a call with no transcript.AI: summarise call + detect booking intent asks your backend for an outcome, a summary and a follow-up.CRM: upsert caller and CRM: call summary note save the caller and the summary.Appointment requested? checks for the outcome appointment_requested. If so, Calendar: slots, Book first slot andSMS confirmation book the first free time and text the caller. Respond (call) closes the run either way.A run fails: Error trigger passes through Config (errors) to Alert ops (Slack), which posts to #ops-alerts.
Config.Reply in < 60 s (SMS / WhatsApp / email) uses the AI's reply. Offer 3 slots, `Nurture: start 5-day and SMS confirmation` hold their own words. The last one says "technician visit", so change it if you do notSlack alert to sales and Alert ops (Slack).base answers. The address in the file is a placeholder.sms or email, and your backend decides what sms means.test_mode is set in Config, but no node reads it.NOTICE.md 732 B README.md 7 KB workflow.json 29 KB
lmstudio-community · Kit
A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…
LibertAIDAI · Kit
Runs DeepSeek-V4.1-Flash-1017 as a 2.9 bits-per-weight EXL3 quantization, a 196 GiB copy for people serving large models on their own hardware. Perplexity stay…
facebook · Kit
Generates short music clips from a text description or an audio prompt, in the small checkpoint of facebook's MusicGen. It suits developers and music hobbyists…
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…