Mindket

Lead list builder with scheduled cold email drafts

Newversion 1 · updated

Overview

An n8n workflow in two halves. A form search on Apify adds people with verified emails to a Google Sheet. Once a day, gpt-4.1-mini drafts a short cold email for each row you mark REVIEW. Nothing is sent.

Lead list builder with scheduled cold email drafts is an n8n workflow in the Marketing & SEO 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.

At a glance

Runs in
  • n8n Cloud: import the file into a new workflow there, then publish it
  • Your own n8n server: the same file, with the schedule following its time zone
  • Google Sheets: the leads and their drafts sit in one tab, ready to filter
  • A mail tool: copy a draft from Email Prepared, or add a sending node after Update Google Sheets

Platform

Connects 3 apps

How it works

Trigger

Form and daily schedule

Two triggers start it: a form for the search and a daily schedule for the drafts. The form asks for:

  • Job Management Level, one or more of five
  • Employees Size and Industry, as free text
  • Location, from ten countries
  • About You & Your Service, which is required

Actions

  1. A model tidies your answers into the industry names and size bands the search takes
  2. Apify’s Leads Finder Actor returns matching people with verified emails
  3. People without an email or listed twice are dropped, and the rest are added to the Leads tab
  4. Each day, the rows you have marked REVIEW get a short cold email written by gpt-4.1-mini
  5. The draft replaces REVIEW in Email Prepared, and nothing is sent

Result

A sheet of leads with verified emails, and a ready draft for each lead you approve

Integrations

What you need before you start.

Apify

Lead search

Runs the Leads Finder Actor with your level, size, industry and country filters, and returns each person with an email.

NeedsApify API token, typed into the node’s header, and credit for the leads

OpenAI

Language models

Tidies the form’s answers into JSON, then writes each draft with gpt-4.1-mini.

NeedsOpenAI API key

Google Sheets

Lead sheet

Keeps one row for each person, hands back the rows marked REVIEW and takes each draft into its row.

NeedsA Google account to sign in with, and a sheet with a Leads tab

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
12 steps, starting on a form or on a schedule
AI
2 steps call an AI model: Message a model and Basic LLM Chain
Sign-ins
Signs in to: Google Sheets, OpenAI and Apify
API keys
No API key is left in the file; 1 blank in it for your own key
Step types
Mindket’s checker reads all 9 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow builds a list of people to email and drafts the emails later, when you say so. A form takes the level, company size, industry and countries you want and a few lines about you, then an Apify Actor returns matching people with verified emails. Google Sheets keeps each one as a row. The second half runs once a day. It drafts a short cold email for every row you have marked REVIEW and writes it back. Fourteen working nodes and two sticky notes make it up. Nothing is sent.

Who it suits

Freelancers, agencies and small B2B teams who sell a service to companies and want owners, founders or managers with an email for each. The REVIEW mark suits someone who picks the leads before any copy is written. Skip it if you want the emails sent.

Who uses it, and how
IndustryWho uses itHow they use itExample
Marketing agenciesAgency ownersSearch founders of small companies in one industry and countryAn agency owner lists founders of UK software firms with up to 50 staff and marks the best twenty.
IT and software servicesBusiness development repsSend one form for each industry and keep each list in its own sheetA rep builds a list of directors at logistics firms in Germany.
Freelance consultingSolo consultantsDescribe the offer in About You & Your Service so every draft carries itA bookkeeper gets drafts that open on each lead’s company and name the service once.
RecruitingAgency recruitersSearch heads of departments at growing firmsA recruiter lists heads of engineering at Canadian firms of 51 to 200 people.

You need some n8n and three accounts: Apify, OpenAI and Google. Its author puts setup at about 12 minutes with the accounts ready, and one node also needs a new model, because the file names one that OpenAI has retired.

Where to use it

Any n8n that can reach Apify, OpenAI and Google will run it. It has to stay published for the daily half to run.

  • n8n Cloud: import the file into a new workflow there, then publish it
  • Your own n8n server: the same file, with the schedule following its time zone
  • Google Sheets: the leads and their drafts sit in one tab, ready to filter
  • A mail tool: copy a draft from Email Prepared, or add a sending node after Update Google Sheets

Setup

Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Make the sheet first, since three nodes point at it.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
ApifyAn account and its API token, with credit for the Leads Finder Actor
OpenAIAn API key for gpt-4.1-mini or another current model
GoogleAn account that can edit the sheet, for a Google Sheets OAuth2 credential
A sheetA tab named Leads with ten headers in row 1: FirstName, LastName, Title, Email, LinkedIn, Organization, OrganizationLinkedIn, OrganizationSite, Email Prepared and About You & Your Service
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Make the sheet, then copy its ID: the long part of its address between /d/ and /edit.
  3. Add a Google Sheets OAuth2 credential. In Google Sheets, Get Pending Leads and Update Google Sheets, select it and replace YOUR_SHEET_ID with the ID.
  4. Add an OpenAI credential and select it in Message a model and OpenAI Chat Model.
  5. In Message a model, swap chatgpt-4o-latest for a current model such as gpt-4.1-mini.
  6. In HTTP Request, replace <YOUR_APIFY_TOKEN> in the Authorization header with your token. The brackets go too, so the header reads Bearer, a space and the token.
  7. In Edit Fields, lower totalResults from 1000 to about 20 for the first runs.
  8. Save, send the form once from its test address, mark a row or two REVIEW and run Schedule Trigger by hand. Press Publish when the drafts read well.

OpenAI’s deprecations page, read on 2 November 2026, lists chatgpt-4o-latest as shut down on 17 February 2026. That is why step 5 is there.

How to use it

Send the form whenever you want a new list. It confirms at once, and the people arrive in Leads when Apify finishes. Read the rows and type REVIEW in Email Prepared for each lead you want, and at midnight the scheduled half swaps each mark for a draft you send yourself. Nothing goes out on its own.

What to change for a different result
To changeWhere
Who is searchedThe form, and the lists in the prompt of Message a model that its answers are matched to
How many peopletotalResults in Edit Fields, 1000 in the file
The email’s content and lengthThe prompt of Basic LLM Chain, which caps the body at 130 words
The greeting and sign-offThe Email Prepared value in Update Google Sheets
When drafts are writtenThe rule in Schedule Trigger, daily at midnight in the file

Example

You send the form with these answers.

Job Management Level: Founder, Owner
Employees Size: up to 50 people
Industry: dental clinics
Location: United Kingdom
About You & Your Service: I’m Sam. I build online booking pages for clinics.

The model maps the industry and the size to its lists, for example Medical Practice and the bands for 2 to 10 and 11 to 50 people. Each person found becomes a row with a name, title, email, LinkedIn address and company. You mark three rows REVIEW. That night each of them gets a draft in this shape, with the middle written by the model:

Hey Priya!

<a line about her clinic, Sam’s intro, how a booking page fits, and a short question>

Best,
Sam

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This one has two starting points, the form on the top line and the clock on the bottom one, and they share only the sheet. Send the form first and check the rows. Then press the clock node’s own run button to see a draft without waiting for midnight.

For experts. The two halves meet only in the sheet, and the REVIEW mark is the handover between them.

The model or service behind each step
StepModel or serviceWhat to know
Message a modelchatgpt-4o-latest in the file, now retiredAnswers in JSON. Its first message holds your answers, and its system message holds the rules and 148 industry names
Basic LLM Chaingpt-4.1-mini, through OpenAI Chat ModelA parser holds the answer to text and name, so a reply in another shape stops the run
HTTP RequestLeads Finder on ApifyA synchronous call, which Apify ends after 300 seconds according to its API reference

The Actor’s input page, read the same day, writes seniority as values like director_level and size as bands like 10-19. The prompt produces Director, and its size bands are written differently. Try a small search first.

Good to know

It spends money at two vendors, sends nothing and fills one column wrongly.

  • Billing: Apify’s listing charges $0.03 for each start and $0.0017 for each lead on the free plan, less on paid plans. OpenAI bills one call for each form and one for each draft
  • Nothing is sent: drafts stay in Email Prepared until you copy them
  • Duplicates: Remove Duplicates compares the people of one run only, so a later search can add someone you already have
  • A wrong column: the file puts the company’s website in OrganizationLinkedIn. Map {{ $json.organizationLinkedIn }} there instead
  • Open form: once the workflow is published, anyone with the form’s address can start a search on your Apify account
  • Personal data: names, emails and LinkedIn addresses are stored in your sheet, and each lead’s title, company and links go to OpenAI. Check the rules for cold email where you and your leads are
  • Your token: the Apify token sits in a header, so take it out before you share the workflow
  • Credentials: the JSON holds none, and nothing from its author’s sheet

README and files

README

Lead list builder with scheduled cold email drafts

An n8n workflow in two halves. A form takes the people you want to reach, by level, company size, industry and country,
and a few lines about you. An Apify Actor finds matching people with verified emails, and each one becomes a row in a
Google Sheet. Once a day, the workflow drafts a short cold email for every lead you have marked REVIEW and writes it
into that row. Nothing is sent.

What is inside

  • workflow.json: the workflow as n8n exports it, sixteen nodes. Two of them are sticky notes that name the halves. It
    holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • The Apify header held a placeholder, Bearer <token>. It now says Bearer <YOUR_APIFY_TOKEN>.
  • The author's sheet and its tab id are gone. The three Google Sheets nodes ask for YOUR_SHEET_ID and find the tab by
    the name Leads.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • An Apify account and its API token, with credit for the lead search.
  • An OpenAI API key. The file names two models, chatgpt-4o-latest and gpt-4.1-mini, and the first one is gone (step 5).
  • A Google account, and a Google Sheet for the leads.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Make a Google Sheet with a tab named Leads and these headers in row 1: FirstName, LastName, Title, Email,
    LinkedIn, Organization, OrganizationLinkedIn, OrganizationSite, Email Prepared and
    About You & Your Service. Copy the sheet's ID: the long part of its address between /d/ and /edit.
  3. Add a Google Sheets OAuth2 credential. In Google Sheets, Get Pending Leads and Update Google Sheets, select it
    and replace YOUR_SHEET_ID with the ID.
  4. Add an OpenAI credential and select it in Message a model and OpenAI Chat Model.
  5. In Message a model, pick another model. OpenAI's deprecations page, read on 2 November 2026, lists
    chatgpt-4o-latest as shut down on 17 February 2026. gpt-4.1-mini, which the other half already uses, can answer
    in JSON as this node asks.
  6. In HTTP Request, replace <YOUR_APIFY_TOKEN> in the Authorization header with your token. The brackets go too, so
    the header reads Bearer, a space and the token.
  7. In Edit Fields, lower totalResults from 1000 to 20 or so for your first runs.
  8. Save. Send the form once from its test address, then open the sheet and type REVIEW in Email Prepared on a row or
    two.
  9. Run Schedule Trigger by hand to draft those rows. When the drafts read well, press Publish, and the schedule takes
    over.

How a run goes

The form half:

  1. On form submission shows a form titled Lead Scraper. Job Management Level lets you pick any of Owner, Founder,
    Head, Director and Manager, and Location has a checkbox for each of ten countries. Employees Size and Industry
    are free text. About You & Your Service is the one required field.
  2. Message a model tidies the answers into JSON. It matches your industry to the nearest of 148 names held in its
    prompt and fits the size to nine bands, from a company of one up to more than 10,000 people.
  3. Edit Fields turns that JSON into the Actor's input: verified emails only, emails included, the four filters and a
    totalResults of 1000.
  4. HTTP Request posts it to Apify's run-sync-get-dataset-items address for the Actor cdTI90GLKIsTHSjgE and waits for
    the people. Apify's listing for that ID names it Leads Finder, from the account boneswill.
  5. Edit Fields1 keeps eight fields for each person. Then Filter drops anyone without an email, and
    Remove Duplicates drops a second copy of the same email within this run.
  6. Google Sheets appends each person as a row, with your About You & Your Service text beside them. Email Prepared
    stays empty.

The scheduled half:

  1. Schedule Trigger fires once a day at midnight, in the workflow's time zone. Its rule is empty in the file, and that
    is what n8n does with an empty rule.
  2. Get Pending Leads reads every row whose Email Prepared says REVIEW.
  3. Basic LLM Chain has gpt-4.1-mini write the body of a cold email of 130 words at most, with no subject, greeting or
    sign-off. It also picks your first name out of About You & Your Service. A parser holds the answer to text and
    name.
  4. Update Google Sheets finds the row by its number and replaces REVIEW with the draft. The draft opens with Hey
    and the lead's first name, and closes with Best, and yours.

Change the look

  • The email: the prompt and the message in Basic LLM Chain. The prompt sets the 130-word cap and the order: a line
    about the lead's company, your intro, how the two fit and a short ask.
  • The frame around it: the Email Prepared value in Update Google Sheets.
  • The search: the lists in the prompt of Message a model, and totalResults in Edit Fields.
  • The time of the drafts: the rule in Schedule Trigger.

Good to know

  • Nothing is sent. Drafts land in Email Prepared, and only for rows you mark REVIEW. That mark is your approval step,
    since the workflow never sets it.
  • On 2 November 2026, the Actor's input page wrote seniority as values like director_level and company size as
    bands like 10-19. The prompt here produces Director, writes its size bands differently, and sends
    contactEmailStatus and includeEmails, which the page does not list. Run one small search and check that the people
    match. If they don't, put the Actor's own values into the lists in Message a model.
  • Apify bills the run. Its listing, read the same day, charges $0.03 for each start and $0.0017 for each lead on the free
    plan, less on paid plans. OpenAI bills one call for each form and one for each draft.
  • Apify ends a synchronous call after 300 seconds, according to its API reference. A large search can time out before
    the people come back.
  • Remove Duplicates only compares the people of one run, so a second search can add someone already in the sheet.
  • In the file, OrganizationLinkedIn receives the company's website, not its LinkedIn page. To fix it, map
    {{ $json.organizationLinkedIn }} into that column in Google Sheets.
  • Title is filled from the Actor's functional field, which may hold a department more than a job title.
  • Each lead's name, title, email and LinkedIn address are kept in your sheet. The form's answers and each lead's title,
    company and links go to OpenAI. Check the rules for cold email where you and your leads are.
  • Once the workflow is published, anyone with the form's address can start a search on your Apify account.
  • The Apify token sits in a header, so take it out before you share the workflow.
Files
README.md  7 KB
workflow.json  29 KB

2 files, 36 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Marketing & SEO

See all in Marketing & SEO

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

Licon MSR for LTX-2.5

LiconStudio · Kit

Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…

New