Let a bot prospect all night, and wake up to leads waiting in your chat

Most sales teams spend half their day building lists rather than selling, even though that part is work a machine does better. This article assembles an n8n workflow that gathers prospects overnight, has AI filter them in the morning, and drops only the worthwhile ones into the team chat — with the limits you need so it never turns into a spam cannon.

n8nLead generationSales
An overnight workflow qualifies prospects with AI and delivers a selected lead to the sales inbox
Concept illustration by Room64

The problem is not a lack of leads, it is leads never reaching the seller

Ask a sales team what eats the most time and the answer is rarely closing. It is everything before that: working out who is worth contacting, opening one site after another, copying names and numbers into a spreadsheet, and having little energy left when it is finally time to call.

Worse, those lists usually end up in a file nobody opens again, because it does not live where the team actually works — which is the chat inbox.

So the workflow we are building has one goal: move the finding and filtering to the system, and make the result appear where sellers already are, rather than creating one more place they have to go and check.

The n8n Editor showing Schedule Trigger connected to NASA and If, branching into two PostBin nodes
Screenshot from n8n Docs: schedule a run, fetch data, filter with a condition, and send the result. Apply this structure to collecting and delivering leads. Source: n8n Docs — Build your first workflow

The scraping bot: where to collect from, and how far to go

Sources worth using are public and have an official way in. Always start with anything that offers an API — it is more stable and you are not rewriting selectors every time a page changes.

  • Business directories and professional associations that publish member lists publicly
  • Business listings on maps, through the provider API rather than scraping the page
  • Contact pages on company websites, which owners publish precisely to be contacted
  • Job ads and new-branch announcements, which signal a business that is expanding
  • Your own forms and surveys — the cleanest source of all, because consent is explicit

Reference: n8n HTTP Request node

Three rules to build in before the bot goes out

A bot that collects too fast is a bot that gets blocked in week one, and a bot that collects more than it needs is a legal risk. Put these in from day one.

  1. Respect robots.txt and the terms of each source. If it says do not collect, skip that source.
  2. Throttle requests and cap each run — a Wait node inside the loop, and a few hundred records a day is plenty.
  3. Keep only what a business contact actually requires, record where and when each record came from, and provide a way to have it removed.
An n8n workflow connecting Loop Over Items to OpenAI and Wait, then back to the loop
Screenshot from n8n Docs: batch items with Loop Over Items and pause between requests with Wait. This example calls the OpenAI API. Source: n8n Docs — Handle rate limits

Let AI filter before anyone is interrupted

A hundred raw records are worth no more than ten filtered ones. The filtering step is what turns this workflow from a spam generator into an actual sales tool.

This is the right place for a language model, because what you collected is free text — a company describing itself on its own site — which is hard to pin down with fixed rules. Have the model read it and return a fixed structure: business type, rough size, a fit score, and a one-line reason.

The important part is forcing JSON against a defined schema, then having the workflow drop everything below the threshold outright. The reason the model gave travels with the lead, so the seller can judge for themselves whether to believe it.

Deliver into chat ready to act on, not as a notification

The best destination is somewhere the team already has open — Chatwoot, LINE, or Slack. The message should be readable in one pass, after which someone can decide to pursue or skip.

  • Business name, contact channel, and a link back to the source
  • The score and a one-line reason it made the cut
  • A draft opening message that references something specific about that business
  • A button or short command to claim the lead, so two people do not call the same company
The n8n Expression editor showing If node data, a message with the classType field, and the evaluated Result
Screenshot from n8n Docs: compose a message from JSON fields and inspect the Result. The example uses NASA data; apply the same approach to a lead’s business name, score, and reason. Source: n8n Docs — Build your first workflow

The line not to cross

Workflows like this fail for non-technical reasons. Somebody points out that the message is already drafted, so why not let the system send it. That is the moment it becomes mass unsolicited outreach, and the moment your reputation and your sending channels start taking damage.

Stop the system at the draft, every time. A person reads and sends. The first message should reference something specific to that business rather than one template going to everyone, and every channel needs a way for recipients to opt out — one the system genuinely remembers.

Done this way, what you get is a sales team starting the day with a filtered list rather than an empty screen and the feeling of starting the search over every morning.

See all articles

What could software, AI or automation make easier for you?

Tell us about your workflow or the challenges your team faces. We can help you choose existing software, connect your current tools or develop the parts you need.

Chat with us on LINEhello@room64.net