How to Build a B2B Lead List in Excel or CSV (Step by Step)

A good lead list is the foundation of every outreach campaign. Send great emails to the wrong people and nothing happens. Send average emails to the right people and you will still get replies. If you are wondering how to build a B2B lead list in Excel or CSV that you can actually use, this guide covers the columns to include, where to source companies, how to enrich and clean the data, how to segment it, and how to keep it fresh and ready for your outreach tools.
Before you build a B2B lead list, define your target
Before opening a spreadsheet, write down a short description of your ideal customer. Keep it practical:
- Industry or niche: dentists, accountants, roofers, e-commerce shops.
- Location: country, region or specific cities.
- Size: sole trader, small team, multi-location.
- Signals that they need you: an old website, a WordPress site that looks neglected, no mobile layout, no contact form, weak search visibility.
This description decides which columns matter and which rows you keep. A web designer targeting local trades needs different data from an agency selling to software firms.
How to build a B2B lead list: the columns to include
Keep one row per company and one column per data point. Avoid stuffing several emails into one cell, because most outreach tools expect one value per column. Here is a solid starting layout:
| Column | Example | Why it matters |
|---|---|---|
| Company name | Example Dental Care | Personalisation and dedupe |
| Website / domain | exampledental.co.uk | Unique ID for each row |
| Niche | Dentist | Segmenting and templates |
| City / country | Leeds, UK | Local angles and time zones |
| Contact name | Sarah Khan | Addressing a real person |
| info@exampledental.co.uk | Main outreach channel | |
| Phone / WhatsApp | +441132345678 | Follow-up channel |
| Social links | facebook.com/exampledental | Qualifying and warm-up |
| Platform / CMS | WordPress | Fit for WordPress services |
| Observation | No mobile menu, slow homepage | Your personalised opener |
| Source | Search “dentist leeds” | Tracking what works |
| Status | Emailed / Replied / Not interested | Pipeline and opt-outs |
| Date added / last contacted | 2026-10-01 | Keeping it current |
The website column is your best unique key. Company names vary (“Example Dental” vs “Example Dental Care Ltd”), but a domain stays the same.
Sourcing companies to build your B2B lead list
There are several honest ways to fill the company and website columns:
- Keyword plus location searches. Search “plumber manchester” or “accountant bristol” and collect the sites that rank. See how to find local business leads for a step-by-step method.
- Search operators. Combine operators such as
intitle:andinurl:to find specific site types. Our guide to Google search operators for lead generation has examples. - Maps and directories. Local maps listings, trade associations and industry directories list businesses by category and town.
- Your own data. Past enquiries, event attendee lists you are allowed to use, or domain lists you have already gathered.
Collect domains first, then enrich. It is quicker to gather 500 websites and fill in details afterwards than to research each company fully before moving to the next.
Enriching each row
Enrichment means filling in the contact and qualification columns. For each website:
- Find public emails on the homepage, contact page and about page. Our guide to extracting emails from websites explains the details, including obfuscated addresses.
- Find phone and WhatsApp numbers from tel: and wa.me links. See how to find business phone and WhatsApp numbers.
- Collect social links from the footer or schema.
- Check the platform. If you sell WordPress services, knowing whether a site runs WordPress is essential. See how to check if a website is WordPress.
- Write one observation per row. This is the most valuable column because it turns a generic email into a relevant one.
Cleaning and deduplicating
Messy data causes embarrassing mistakes, such as emailing the same owner twice or writing “Hi info”. Clean the list before every campaign.
- Normalise domains. Strip
https://,www.and trailing slashes so that duplicates match. - Remove duplicates. In Excel, use Data > Remove Duplicates on the domain column. In Google Sheets, use Data > Data cleanup > Remove duplicates.
- Check email formats. Remove anything without an @ or with obvious junk such as image file names that look like emails.
- Standardise phone numbers into international format.
- Trim spaces with the
TRIM()function, and fix capitalisation in names withPROPER(). - Remove opt-outs. Check every new list against your do-not-contact list before you send anything.
Segmenting your list
One big list sent the same email performs worse than several small lists with tailored messages. Useful segments include:
- By niche, so your examples and wording fit the industry.
- By location, for local angles and sensible send times.
- By platform, for example WordPress sites versus others.
- By problem spotted, such as “no SSL”, “outdated design” or “no contact email”.
- By contact quality: named person email, generic inbox, or phone only.
Add a “Segment” column, or use filters and separate tabs. Each segment then maps to one email template.
Keeping the list updated
Business data goes stale. People change jobs, sites get rebuilt and domains expire. A few habits help:
- Record a date added and last contacted for every row.
- Re-check older rows before a new campaign rather than reusing them blindly.
- Update the status column after every reply, bounce or opt-out.
- Remove rows that bounce, and never re-add someone who asked to be removed.
- Keep only the data you need. Under GDPR and similar laws, holding less personal data for less time is safer.
Exporting to outreach tools
Most email and CRM tools import CSV files. To make imports painless:
- Use a simple header row with clear names such as
email,first_name,company,website. - Save as CSV UTF-8 so that accented names import correctly.
- Keep one email per row. If a company has two emails, decide which to use or make two rows deliberately.
- Map your custom columns (like “Observation”) to merge fields so you can drop them into templates.
Before sending, set up proper authentication on your sending domain (see SPF, DKIM and DMARC for cold email), include a clear way to opt out, and honour every unsubscribe. Laws such as GDPR, PECR and CAN-SPAM set rules for B2B outreach that vary by country, so check what applies to you. This is not legal advice.
Build a B2B lead list faster with WP Finder
If your customers are website owners, WP Finder covers much of the sourcing and enrichment work. Search by keyword and country, or load your own .txt or .csv domain list (duplicates are skipped), and it checks up to 40 sites at once. For each site it finds public emails, phone and WhatsApp numbers, social links, and whether the site runs WordPress. You can export to Excel or CSV with one column per contact type, then send from your own mailbox with its built-in sender, which supports follow-ups, unsubscribe links and a do-not-email list. The first 150 sites are free to try.
Conclusion
Knowing how to build a B2B lead list comes down to a clear target, a sensible set of columns, honest sources, careful enrichment and regular cleaning. Use the domain as your unique key, add one real observation per row, segment before you send, and keep the status column up to date. A smaller, cleaner list will nearly always beat a huge messy one.
FAQ
What columns should a B2B lead list have?
At minimum: company name, website, niche, location, contact name, email, phone, source and status. Adding social links, platform (such as WordPress), a personal observation and dates added and contacted makes the list much more useful.
Should I build my lead list in Excel or Google Sheets?
Either works. Excel is handy for large offline files, while Google Sheets is easier to share with a team. Both export to CSV, which almost every outreach tool can import.
How do I remove duplicate leads?
Normalise the website column first by removing https://, www. and trailing slashes, then use the Remove Duplicates feature on that column. Domains are more reliable than company names for spotting duplicates.
How many leads should be on my list?
There is no magic number. Start with a list you can personalise properly, such as a few hundred in one niche, measure replies, then grow the segments that respond best.