HomeResources › B2B Lead List Template

The 12-Column B2B Lead List Template

The exact spreadsheet structure that survives real outreach: 12 columns, a copyable CSV header, and a status taxonomy that tells you what to do next with every lead. No email gate — everything is on this page.

Most B2B lead lists die the same way. Someone starts a spreadsheet, adds columns as questions come up — "Seniority?", "Score?", "Last touched??" — and three weeks later nobody trusts a single cell. The columns were improvised, so the data is improvised.

The fix is boring on purpose: a fixed 12-column structure, agreed once, never edited mid-campaign. The template below behaves identically in Google Sheets and Excel, imports cleanly into any CRM that maps fields by header name, and lines up with what LinkedIn outreach tools export. Copy the CSV header into row 1 and start filling rows.

The canonical 12-column lead list

Each column has one job. If you can't say what a cell will be used for — a filter or a message — it doesn't belong in the sheet.

ColumnWhat goes in itExample
FirstNameGiven name only, spelled exactly as on the profile. This feeds {FirstName} personalization — a typo here lands in every message you send.Anna
LastNameFamily name. Keep "PhD", "MBA", and emoji out — park credentials in Notes if they matter.Keller
JobTitleThe title as written on their profile, not your normalization ("Head of Sales", not "sales lead"). You filter on it later, and {JobTitle} may appear in messages.Head of Sales
CompanyCurrent employer as shown on the profile. One company per row — if someone changes jobs, add a new row.Acme GmbH
CompanySizeA bracket like 11-50 or 51-200, never an exact headcount. Brackets stay true for a year; exact numbers are wrong by Friday.51-200
IndustryOne label from a short list you actually filter by (5–10 values max). "SaaS" beats "Computer Software / Internet / Technology".SaaS
LocationCity plus country code. Enough to route timezones and segment by region — you don't need the street.Berlin DE
LinkedInURLThe canonical /in/ URL only. Strip tracking params and anything after a "?" — duplicates hide behind messy URLs.linkedin.com/in/annakeller
EmailBusiness email only, no personal Gmail. Mark unverified addresses "(unverified)" or leave the cell blank — a blank is honest, a guess bounces.[email protected]
PhoneDirect line in international format if you have one. Blank beats a switchboard number nobody will dial.+49 30 000 0000
StatusExactly one value from the taxonomy below. Never freetext — "waiting on reply??" can't be filtered.Invited
NotesOne line per touch, newest first, each line dated. Use semicolons, not commas, so the CSV stays intact.Sent invite 2026-07-14
One row = one person. Don't merge two contacts at the same company into one row "to save space" — every filter, export, and mail-merge assumes one human per line.

Copy the CSV header (plus example rows)

Paste the first line into row 1 of a blank sheet, or save the whole block as a .csv file (UTF-8). The example rows are generic personas — replace them with real leads.

FirstName,LastName,JobTitle,Company,CompanySize,Industry,Location,LinkedInURL,Email,Phone,Status,Notes
Anna,Keller,Head of Sales,Acme GmbH,51-200,SaaS,Berlin DE,https://linkedin.com/in/annakeller,[email protected],,Invited,Sent invite 2026-07-14
Marcus,Boyd,VP Marketing,Northwind Ltd,201-500,Logistics,Manchester UK,https://linkedin.com/in/marcusboyd,[email protected],+44 161 000 0000,Replied,Asked about pricing 2026-07-16; follow up 2026-07-20
Priya,Nair,Founder,Brightpath Labs,11-50,EdTech,Austin TX,https://linkedin.com/in/priyanair,,,New,Found via Sales Navigator search 2026-07-17

Two formatting rules keep this file portable: no commas inside any cell (semicolons in Notes), and dates as YYYY-MM-DD so they sort correctly as plain text.

The status taxonomy: seven stages, no freetext

Status is the column that turns a contact list into a pipeline. Use these values and nothing else — the whole point is that you can filter Status = Replied on Monday morning and know exactly who needs you.

StatusMeansWhen it changes
NewSaved to the list, untouched.Flip to Invited the moment the connection request goes out.
InvitedConnection request sent, pending.Flip to Accepted the day they accept. Pending more than 3 weeks: withdraw the invite and mark Lost.
AcceptedConnected, but no real message sent yet.Flip to Messaged when your first proper message goes out — ideally within 48 hours of accepting.
MessagedFirst message sent, waiting.Flip to Replied on any response. After two follow-ups and silence, mark Lost — don't send a third.
RepliedThey answered anything, even "not now".Flip to Qualified when they fit your ICP and show intent (a question, an agreed call). "Not now" goes back in Notes with a re-check date.
QualifiedReal opportunity — this row now drives your sales process.Flip to Won when the deal closes, Lost when it dies.
Won / LostTerminal. The row is done.Never delete Lost rows — they're your do-not-contact-again memory for the next campaign.
The 3-week withdraw rule matters more than it looks: LinkedIn counts pending invites against you, and a pile of ignored requests is the classic signal of spray-and-pray outreach. Withdraw, mark Lost, move on.

Why 12 columns and not 30

Every extra column is a field nobody fills. Add "LeadScore", "Persona", "Tech stack", "Last funding round" and week one looks impressive — by week three those cells are empty, and empty columns train everyone to stop trusting the sheet.

The rule: add a column only when a filter or a message will actually use it. If your outreach copy references the prospect's tech stack, a TechStack column earns its place. If nothing computes a score, LeadScore is decoration. Twelve columns cover identity (name, title, company), firmographics you filter by (size, industry, location), contact data (profile URL, email, phone), and workflow (status, notes). Everything else is optional until proven useful.

Linkydy fills this exact structure automatically

You can maintain this template by hand — plenty of teams do. The tedious parts are the ones a browser extension does better:

  • Collecting rows. Linkydy saves prospects straight from LinkedIn people search and Sales Navigator results — name, title, company, and the clean profile URL captured in one click. The full walkthrough is in the guide to exporting LinkedIn search results to CSV.
  • Contact data. One-click Find Email and Find Phone on any profile, with results landing on the lead card — see how the email finder works.
  • Status tracking. Statuses update as you send invites and messages, so the pipeline column maintains itself instead of relying on your memory.

Honest scope note: Linkydy's CSV export gives you name, title, company, profile URL, email, phone, and status — the core columns of this template. CompanySize, Industry, Location, and Notes are yours to maintain, either in the sheet after export or on the lead card inside Linkydy. It also imports lists of profile URLs from a CSV, so an existing sheet becomes a working pipeline in minutes.

Once the list is filled, the next problem is what to send — the LinkedIn outreach checklist covers sequencing, and pacing limits live in the connection request limits guide.

FAQ

B2B lead list template questions

What columns should a B2B lead list template have?

Twelve: FirstName, LastName, JobTitle, Company, CompanySize, Industry, Location, LinkedInURL, Email, Phone, Status, Notes. That covers identity, firmographics for filtering, contact data for outreach, and workflow state — without any column that goes stale because nobody fills it.

How do I import this template into a CRM or outreach tool?

Save the sheet as CSV (UTF-8) with the header row exactly as shown on this page. Almost every CRM and outreach tool maps columns by header name on import, so FirstName lands in the first-name field automatically. Keep commas out of cell values — use semicolons inside Notes — and the file imports cleanly everywhere.

How many leads should be on one list?

Keep one working list to 200–500 rows per campaign. LinkedIn caps connection requests at roughly 100–200 per week, so 500 rows is about a month of outreach — anything bigger goes stale before you reach the bottom. Start a fresh list per segment instead of growing one giant sheet.

Stop typing rows by hand

Install Linkydy free and it fills this template for you — leads from LinkedIn search, verified emails and phones, statuses that update themselves, clean CSV out.

Free credits included · No credit card required