A Salesforce contact report shows up to 2,000 rows on screen, per Salesforce's Export Contacts and their Details through Report article, but a Details Only export of that same report can hold 100,000 rows as .xlsx, and a .csv export has no row cap at all, according to Salesforce's Export a Report documentation. That gap trips up almost everyone pulling a contact list out of Salesforce for the first time. They build a list view, look for an export button that doesn't exist, and end up copy-pasting 50 records at a time.
This guide fixes that. You'll learn how to create a contact list in Salesforce Lightning, how to export contact list from Salesforce to Excel using five methods, which one fits your situation, and where the row, field, and email limits sit. We work inside Salesforce orgs for Cirrus Insight customers every week, so the steps reflect the current Lightning interface rather than the Classic screenshots still circulating.
|
Quick Reference: Getting a Salesforce Contact List Into Excel
|
In Salesforce, a contact is a person record, usually tied to an account (the business they work for). A lead is different: an unqualified individual who hasn't been converted yet. Converting the lead is what produces the contact, the account, and often an opportunity in one step.
A Salesforce contact list is any saved, filtered set of those records. In practice that means one of three things, and the export method depends on which one you have:
People also say "contact list" for a subscriber list in Marketing Cloud Engagement, or a List<Contact> collection in Apex code. We cover both below, because search results for this topic mix all of these meanings together and the Salesforce Help pages don't tell you which one you've landed on.
Start with a list view. Even if your end goal is an Excel file, a list view is where you test the filters and confirm the record count before building a report. The steps match Salesforce's Work with Contact List Views Trailhead unit, the cleanest first-party walkthrough we've found.
Open List View Controls and click Select Fields to Display. Move fields between Available and Visible, and order them the way you want the spreadsheet columns to appear. We usually put Name, Account Name, Title, Email, Phone, and Contact Owner first. Do this here rather than in Excel, because you'll mirror the same column set in the report a minute from now.
A naming convention saves real time once an org passes 20 or 30 views. We use "Region - Segment - Purpose" (for example, "EMEA - Enterprise - Q4 Renewal Calls") so the view's job is obvious from the picker.
There is no Export button on a Lightning list view, and there won't be one in the next release either. Every working method routes through one of the tools below. Pick based on how many records you have and how often you need the file.
|
Method |
Best for |
Output |
Limits to know |
|
Report export |
Most one-off pulls, any user with report permissions |
.xlsx or .csv |
100,000 rows and 100 columns for Formatted or Details Only .xlsx, with long text cut at 255 characters in those formats; Details Only .csv has no row cap |
|
Printable View |
Tiny lists, under one screen |
Copy-paste |
Only exports what is visible; no file is generated |
|
Data Loader |
Large or repeatable extracts, admins |
.csv |
Needs API permissions and a SOQL query; Bulk API for millions of rows |
|
Data Export Service |
Full-org backup |
Zip of .csv files |
Weekly (Enterprise, Performance, Unlimited) or monthly; files kept 48 hours |
|
Marketing Cloud Email Studio |
Subscriber lists, not CRM contacts |
.csv via download or FTP |
FTP recommended above 850 subscribers; roughly 150 fields per export |
Salesforce says there isn't a standard report type for Contacts alone, and its Export Contacts and their Details through Report article (updated August 18, 2026) walks you through creating a custom report type with Contacts as the primary object. In most orgs you can skip that: the standard Contacts & Accounts type is available and exposes the same fields. Set up the custom type only if an admin has hidden the standard one or you need a contacts-only scope.
Formatted Report vs. Details Only is the choice that matters. Formatted keeps groupings, subtotals, and headers, which suits a file a manager reads as-is. Details Only gives you one flat row per contact with no formatting, which suits pivot tables, mail merges, or loading into another system. When in doubt, choose Details Only. Adding formatting to raw rows in Excel is easy; stripping subtotals out of a formatted export is not.
Two permissions come into play. You need Export Reports to see the Export option at all, and you need View All Data (or equivalent sharing access) if the report should include contacts you don't own. If a colleague's export has more rows than yours from the same report, sharing rules are the reason, not the report.
On any list view, open the List View Controls gear and choose Printable View. Salesforce opens a plain table in a new tab that you can copy into Excel. It works, but it only renders the records loaded on screen, so anything past the first scroll of results is missing and dates often paste as text. We reserve it for lists under 50 records when someone needs a quick paste into an email.
Data Loader is Salesforce's free desktop client for moving data in and out through the API. Log in, click Export (or Export All to include soft-deleted records), pick the Contact object, then tick the fields you want or paste a SOQL query such as `SELECT Id, FirstName, LastName, Email, Account.Name, Title FROM Contact WHERE MailingCountry = 'Germany'`. Save the result as .csv and open it in Excel.
Data Loader is the right tool once you pass the 100,000 row ceiling, need related fields a report type doesn't expose, or want to script the same extract on a schedule from the command line. The trade-off is setup: it needs API permissions on your profile, and non-technical users find the SOQL step intimidating. Excel itself caps a worksheet at 1,048,576 rows, so past that point you're splitting files regardless of the tool.
In Setup, search for Data Export. Enterprise, Performance, and Unlimited editions can run an export every 7 days; other editions get one every 29 days, per the Salesforce Data Export FAQ. You receive a zip of .csv files, one per object, including Contact. Files stay available for 48 hours and are deleted as soon as a new export is queued. This is a backup mechanism, not a segmentation tool, so use it when you need every record in the org rather than a filtered slice.
If your "contact list" lives in Marketing Cloud Engagement, the process differs because subscribers are not CRM contacts. In Email Studio, click Subscribers, tick the checkbox next to the list, click Export, and complete the File and Delivery dialog. Salesforce's Export a List page recommends FTP delivery above 850 subscribers and notes that Add Method, Added By, Bounce Count, and Modified Date can't be exported.
Knowing the standard field names removes guesswork when you build the report or write the SOQL. These ship on the Contact object in every org; anything ending in `__c` is a custom field your admin added.
|
Field label |
API name |
Notes |
|
Name (Salutation, First, Last) |
Salutation, FirstName, LastName |
Last Name is the only required standard field |
|
Account Name |
AccountId |
Lookup to the parent account; export Account.Name for the readable value |
|
Title |
Title |
Free text, so "VP Sales" and "Vice President, Sales" are different values |
|
Department |
Department |
Free text |
|
|
|
Salesforce validates format, not deliverability |
|
Phone, Mobile, Home, Other, Fax |
Phone, MobilePhone, HomePhone, OtherPhone, Fax |
No standard formatting enforced |
|
Mailing Address |
MailingStreet, MailingCity, MailingState, MailingPostalCode, MailingCountry |
Exports as five separate columns |
|
Other Address |
OtherStreet, OtherCity, OtherState, OtherPostalCode, OtherCountry |
Rarely populated |
|
Reports To |
ReportsToId |
Lookup to another contact; the basis for contact hierarchy |
|
Lead Source |
LeadSource |
Picklist, carried over on lead conversion |
|
Birthdate |
Birthdate |
Date |
|
Contact Owner |
OwnerId |
The user who owns the record; drives sharing |
|
Email Opt Out, Do Not Call |
HasOptedOutOfEmail, DoNotCall |
Checkboxes; exclude these before any outreach export |
|
Assistant, Asst. Phone |
AssistantName, AssistantPhone |
Free text |
|
Description |
Description |
Long text; cut at 255 characters in Formatted and .xlsx report exports |
|
Created Date, Last Modified Date, Last Activity |
CreatedDate, LastModifiedDate, LastActivityDate |
System fields; useful for "stale contact" filters |
Sometimes the export is a workaround for something Salesforce does natively. If the reason you want the list in Excel is to email everyone on it, Send List Email skips the spreadsheet entirely.
The limits are where teams get caught. Per Salesforce's List Email Limitations, you can manually select up to 200 contacts or leads from a list view, add up to 10 list views in the Recipients field, and every list email counts against the org's daily allowance, typically 5,000 recipients. Developer and trial orgs are capped at 10 external recipients per day.
Salesforce also excludes anyone with Email Opt Out checked, which is correct behavior but surprises people who see a smaller recipient count than their list view total.
Two related searches deserve a direct answer. A Salesforce call list is not a separate feature; it's a contact or lead list view built for dialing. Exclude Do Not Call, show the Phone and Mobile columns, sort by Last Activity Date ascending so the coldest records surface first, and reps can log calls from the row-level dropdown without opening each record.
In Apex, a contact list is a collection variable, written as `List<Contact>`. A developer fills it with a SOQL query, for example `List<Contact> stale = [SELECT Id, Email FROM Contact WHERE LastActivityDate < LAST_N_DAYS:180];`, then loops through it to update records or push data to another system. If a developer on your side asks about "contact list Apex," they mean code, not a report.
An export is a snapshot of whatever data quality you have, and duplicates are the most common problem we find in exported files. Salesforce contact management starts with duplicate rules and matching rules under Setup, Duplicate Management. Turn them on for Contact before the import that creates the mess, not after.
To merge existing duplicates, open a contact, find the duplicate alert or the View Duplicates action, pick up to three records, and choose which values survive. Merging keeps the activity history from all of them; deleting loses it. If you must delete a contact, remember that deletion also removes its links to activities, cases, and opportunities, so export or reassign anything important first. For additional support on record actions, Salesforce's Manage Contacts help page covers the full set.
A lot of contact exports exist because reps want the data where they actually work: their inbox. Salesforce's native answer is Einstein Activity Capture (EAC) plus the Outlook or Gmail integration, and the timeline matters. Microsoft retires Exchange Web Services in October 2026, which breaks Lightning Sync, and Salesforce for Outlook has a December 2027 retirement date. If your org still relies on either, the migration is due now.
EAC captures emails and events well but stores them outside standard activity objects by default, so reporting needs extra setup. We've written a detailed Cirrus Insight vs. Einstein Activity Capture comparison and a current Salesforce Outlook integration guide if you're weighing options.
To be upfront: if all you need is a one-time Excel file, the report export above does the job and costs nothing extra. Cirrus Insight, the AI-powered Revenue Workspace built for Salesforce, earns its place when the export is really a workaround for something reps want to do from their inbox.
For a wider look at how sales teams use the platform, our Salesforce statistics roundup collects the numbers on Salesforce's revenue, market share, and customer base. The Salesforce for Gmail page covers the Google Workspace side of the setup.
Build a report on the Contacts & Accounts report type, apply your filters, run it, and choose Export, then Details Only and .xlsx. The file includes every matching row up to 100,000, even though the on-screen report only displays 2,000.
No. Lightning list views have no export option. Printable View lets you copy what's visible, and AppExchange packages add an export button, but the supported route is to recreate the list view filters as a report and export that.
Contacts are records for individuals, usually associated with an account. They hold name, title, email, phone, and address fields, and connect to opportunities, cases, campaigns, and activities so the whole relationship history sits in one place.
On the Contacts tab, click the Filter icon and add your criteria, then open List View Controls, choose New, name the view, set who can see it, and save. Use Select Fields to Display to pick the columns.
You can manually select up to 200 records per list email and include up to 10 list views as recipients. All list emails share the org's daily limit, typically 5,000 external recipients per day.
Filter the contact report by Account Type contains "Customer" (the default values are Customer - Direct and Customer - Channel), add Email Opt Out equals False, include the Email column, and export Details Only. If customers are tracked by closed-won opportunities instead, build the report from the Opportunities with Contact Roles type and filter on Stage equals Closed Won.