· 16 min read

Excel Salesforce Integration: 6 Ways to Connect, Refresh and Update Data (2026)

Most Salesforce teams still live in Excel for forecasts, commission sheets, cleanups and board packs. The question is how data moves: a one-off export, a workbook that refreshes, or changes that go back into Salesforce. Here are the six routes, what each can and can’t do, step-by-step setup for the two most common ones, and the traps that corrupt data.
A CRM cloud, a CSV file and a desktop spreadsheet with a chart connected by arrows, illustrating an Excel Salesforce integration
Outgrowing Excel exports?Tell us which reports, files and updates move between Excel and Salesforce today. We’ll map the data flow, pick the right route and build and support the integration if a spreadsheet isn’t enough.
Map my Excel and Salesforce flow

What an Excel Salesforce integration should do

People search for “Excel Salesforce integration” with three different jobs in mind. Mixing them up is how teams end up with ten versions of the same pipeline file.

  • Get data out once. A list for a mailing, a snapshot for a meeting, a backup before a cleanup.
  • Keep a workbook fresh. A forecast model, a commission sheet or a board report that should show today’s Salesforce numbers when someone clicks Refresh.
  • Push changes back. Mass-update territories, fix phone formats, import a trade-show list, close out stale opportunities.

The first two are reads. The third is a write, and writes are where the damage happens. Decide which job you have before you pick a tool.

Six ways to connect Excel and Salesforce

The options come from three places: Salesforce itself (report export, Data Import Wizard, Data Loader), Microsoft (Power Query, Power Automate) and third parties (Excel add-ins). Custom code on the Salesforce APIs covers the rest.

RouteDirectionRefreshVolumeCost levelBest for
Report exportSalesforce → ExcelNone; a new file each timeReport export caps apply; Details Only CSV handles the mostIncludedOne-off lists and snapshots
Power Query (Objects or Reports)Salesforce → ExcelOn demand in ExcelObjects: whole tables; Reports: 2,000 rowsIncluded in supported Excel editionsRefreshable models and reports
Data Import WizardExcel (CSV) → SalesforceManualUnder 50,000 recordsIncludedSimple imports with duplicate matching
Data LoaderBoth, via CSVManual or scheduled (command line, Windows)Up to 150 million records with Bulk API 2.0Included in Enterprise and aboveMass updates, deletes, backups
Excel add-inBoth, inside ExcelOn demand; some tools scheduleDepends on the toolPer-user subscription, often with a free tier or trialAdmins and analysts who edit records in Excel
Power Automate or custom APIBoth, automatedEvent-driven or scheduledAPI limits applyPremium license or build costRepeatable flows with rules and no manual steps

If your team works in Google Sheets rather than Excel, the Salesforce Google Sheets integration guide covers that side.

1. Export a report to Excel

The fastest route. Run a report, open the menu next to Edit, choose Export, and pick a view:

  • Formatted Report keeps the report header, groupings and layout in an .xlsx file. Good for sharing a report as it looks.
  • Details Only exports plain rows as .xlsx or .csv. According to Salesforce’s Trailhead, it drops formatting, groupings and subtotals, which is exactly what you want for pivot tables and lookups.

Formatted exports have row and column caps that are tightest for matrix reports, so use Details Only for anything large. Exporting is a user permission your admin can grant or withhold, and it should be withheld from most users (see security below). The file is dead the moment it lands: nothing refreshes.

2. Power Query: Get Data from Salesforce Objects or Reports

Excel’s Power Query has two Salesforce connectors, both generally available according to Microsoft Learn as of October 2026:

  • Salesforce Objects loads whole objects (Account, Opportunity, custom objects) as tables, with an option to include relationship columns.
  • Salesforce Reports loads the output of saved reports. Microsoft notes that Salesforce limits it to 2,000 rows, so for anything bigger, use Objects and rebuild the report in Power Query.

Availability is narrower than most people assume. Microsoft’s support table lists both connectors for Excel for the web and for Excel for Windows in two editions: Microsoft 365 Apps for enterprise and the Professional Plus editions of Office 2016 and 2019. They are not listed for Microsoft 365 Business, Home or Personal plans on Windows, or for Excel for Mac. Check your edition before you plan a rollout.

Power Query reads only. It is the right tool for a workbook that refreshes, not for updating Salesforce.

3. Data Import Wizard and Data Loader (CSV)

Both are Salesforce tools that load CSV files, so the Excel step is “Save As CSV.” According to Salesforce’s Data Loader Guide (Winter ’27):

  • Data Import Wizard runs in Setup in the browser. Use it for fewer than 50,000 records, objects it supports, targets with fewer than 50 fields and simple mappings. It can prevent duplicates by matching account name and site, contact email or lead email.
  • Data Loader is a desktop app for macOS and Windows (it needs Java 17 or later). It inserts, updates, upserts, deletes and exports any object, and handles up to 150 million records with Bulk API 2.0. It writes success and error files, and on Windows can run from the command line on a schedule. It is available in Enterprise, Performance, Unlimited and Developer editions, and the user needs the API Enabled permission.

4. Excel add-ins

Third-party add-ins put a Salesforce panel inside Excel: log in, pull records or reports with filters, edit cells, push changes back. XL-Connector from Xappex is a long-standing example, with a Windows desktop edition and an XL-Connector 365 edition for Mac, Windows and the web. Devart, CData and others sell similar tools.

Compare them on what you need: writeback and mass delete, scheduled refresh, Mac support, report and SOQL support, how they handle API limits, and the per-user price. Many are listed on AppExchange (now AgentExchange) or Microsoft Marketplace (formerly AppSource), so your security team can review the listing before anyone installs one.

5. Power Automate

Microsoft’s Salesforce connector for Power Automate can trigger a flow when a record is created or modified. It can also get, create, update and upsert records, run SOQL and run bulk jobs.

Pair it with the Excel Online (Business) connector, which works with files on OneDrive for Business and SharePoint, to keep a table in a shared workbook in step with Salesforce.

As of October 2026, Microsoft lists the Salesforce connector as Premium in Power Automate, so flows that use it need a premium Power Automate license. The Excel side has its own limits:

  • files up to 25 MB;
  • 256 rows per “List rows” call unless pagination is on;
  • a file can stay locked for up to six minutes after the connector last used it.

That is fine for hundreds of rows a day, not for big syncs.

6. Custom integration on the Salesforce APIs

When the spreadsheet is really an input to a process (pricing files from finance, partner lead lists, inventory from a warehouse), code does it better. A small service picks up the file from SharePoint, OneDrive or an SFTP folder, validates it, and writes to Salesforce through the REST API, or Bulk API 2.0 for big loads. Salesforce’s Bulk API documentation suggests Bulk API 2.0 for operations with more than 2,000 records.

The Salesforce API integration guide covers the APIs in more depth, and the Salesforce data integration guide covers warehouses and ETL if Excel is really a stand-in for one.

Which option fits you?

Which Excel your users run matters as much as the job itself, because Power Query isn’t in every edition. Five questions cover both and suggest a route.

Which Excel Salesforce route fits?

How the data flows

Treat Salesforce as the system of record and every workbook as a read-only copy that refreshes. Changes go back only through a controlled load, keyed on record IDs, never by pasting edited cells into a form.

Read copies out, controlled loads back Salesforce (system of record) Objects Accounts, contacts, opportunities, custom Reports Saved report output Record IDs 18-character, the key Excel (working copy) Refreshable tables Power Query, add-in Models and pivots Built on those tables Change sheet ID + changed fields only, saved as CSV Report export (once) Power Query or add-in (refresh) Data Loader, Import Wizard, add-in Power Automate or custom API Reads (Salesforce → Excel) select only needed fields and filters; refresh instead of re-exporting Reports connector stops at 2,000 rows Writes (Excel → Salesforce) keyed on record ID or external ID; sandbox test, backup export first keep success and error files
Excel holds copies that refresh from Salesforce. The only way back is a deliberate load keyed on IDs, with a backup and an error log.

Set up a refreshable workbook with Power Query

Most reporting workbooks are built this way. The steps below cover the decisions; Microsoft Learn shows the connector screens, which move between Excel builds.

  1. Check your Excel editionExcel for Windows from Microsoft 365 Apps for enterprise or Office Professional Plus 2016 or 2019, or Excel for the web. If you don’t see Salesforce under Get Data, your edition probably doesn’t include it.
  2. Check the Salesforce sideYour user needs the API Enabled permission (trial orgs have no API access). Microsoft also notes that the session setting “Lock sessions to the IP address from which they originated” blocks the connector.
  3. ConnectOn the Data tab, open Get Data and choose Salesforce Objects. Pick Production, or Custom with your My Domain URL on salesforce.com; Microsoft notes Lightning URLs aren’t supported. Then sign in and allow access.
  4. Pick objects and fieldsSelect the objects in the Navigator and choose Transform Data, not Load. Remove every column you don’t need. Wide queries can fail with “too many fields,” and narrow ones refresh faster.
  5. Filter earlyFilter in Power Query (for example, open opportunities, this fiscal year) so only the rows you need come down. Merge Account into Opportunity on AccountId instead of pulling report output.
  6. Keep the ID columnKeep the 18-character record ID on every table. It is your join key and the key for any later update.
  7. Load and buildLoad to a table or the Data Model, then build PivotTables and formulas on top. Never type into the query table; edits disappear on refresh.
  8. Refresh and share safelyRefresh on demand, and decide where the file lives. Anyone who opens a saved workbook sees the data in it, whatever their Salesforce access.

Update Salesforce from Excel with Data Loader

For mass updates, the safe pattern is the same whatever the tool:

  1. Export with IDsExport the records you plan to change, including the Id column. This is also your backup.
  2. Build a change sheetKeep only Id and the fields you are changing. Every extra column is a field you might overwrite by accident.
  3. Fix Excel’s damageFormat ID, zip code and phone columns as text so Excel doesn’t strip leading zeros or turn values into dates or scientific notation. Use real picklist values and Salesforce date formats.
  4. Save as CSV, UTF-8Save as CSV UTF-8 and turn on Data Loader’s UTF-8 setting so accented names survive.
  5. Test in a sandboxRun the same file against a sandbox, and check what triggers, flows and validation rules did.
  6. Run in production and keep the logsRun the update, then read the error file, fix those rows and rerun only them. Store the success and error files with the backup.

Column mapping: Excel to Salesforce

Most failed loads come from a handful of column types. Map these deliberately.

Excel columnSalesforce fieldDirectionSystem of record and notes
Record ID (text)IdSalesforce → Excel; used as the key backSalesforce. Use the 18-character ID: Salesforce documents the 15-character form as case-sensitive, and Excel lookups ignore case.
External ID (text)Custom field marked External IDBothThe source system. Lets you upsert without knowing Salesforce IDs.
Account nameAccount lookup (AccountId)Excel → Salesforce needs the IDSalesforce. Names are not unique; look up the ID first or use an external ID.
Owner name or emailOwnerIdExcel → Salesforce needs the user IDSalesforce. Inactive users fail; map to an active owner.
Stage, status, typePicklistBothSalesforce. Values must match exactly, including spaces and case.
Close date, created dateDate or Date/TimeBothSalesforce. Excel stores dates as numbers and shows them in local format; date/times are stored in UTC.
Amount, revenueCurrency or NumberBothSalesforce. No currency symbols or thousands separators in the CSV.
CheckboxBooleanBothSalesforce. Use TRUE and FALSE.
Formulas, pivots, notesNoneStay in ExcelExcel. Calculated values belong in Salesforce formula or roll-up fields, not in loads.

Built by Gilzor

Results we’ve shipped

70+products launched
98%delivered on time
85%clients come back
Art Scherbakov, Co-FounderAndrew Laminsky, CTOYuri Rudenya, Head of Mobile Development at GilzorAlena Timofeeva, Product Marketing Lead

Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.

See how we’d approach yours

Refresh vs writeback

A refresh replaces what Excel shows with what Salesforce holds. It is safe because Salesforce stays the truth. Writeback is the opposite: Excel becomes, for a moment, the source of truth for whatever columns you load. Treat it as a change to production.

  • Refresh suits reporting, models and reconciliation. Problems are mild: a stale number, a slow query.
  • Writeback suits planned changes: territory moves, cleanups, imports. Problems are serious: overwritten fields, triggered automations, emails sent to customers, records you can’t easily restore.

Keep the two apart. A workbook that refreshes from Salesforce should not also be the file you load back. Build a separate change sheet with only IDs and changed fields.

Security and data volumes

Every Excel copy of Salesforce data sits outside Salesforce sharing rules, field-level security and audit trail. A pipeline file emailed to a partner is a data leak with good intentions.

  • Limit export. Grant report export only to roles that need it, and review who has API Enabled, because API access is what Power Query, add-ins and Data Loader use.
  • Store files in governed places such as SharePoint or OneDrive with access controls, not desktops and inboxes. The Salesforce SharePoint integration guide covers linking documents to records.
  • Use a dedicated user for automation. Scheduled Data Loader jobs, flows and custom services should run as an integration user with only the permissions they need, not as an admin’s login. A limited number of Salesforce Integration user licenses come free with supported editions; the Salesforce integration user guide explains the setup.
  • Leave sensitive fields out of queries and exports: personal data, health or financial fields, internal notes.

On volume, three limits matter:

  • An Excel worksheet holds 1,048,576 rows, according to Microsoft.
  • The Power Query Reports connector stops at 2,000 rows.
  • Every API-based route (Power Query, add-ins, Data Loader, flows) draws on your org’s shared daily API allocation.

Salesforce’s limits reference gives the example of an Enterprise Edition org with 15 Salesforce licenses getting 115,000 requests per 24 hours, shared by every integration. A dozen analysts refreshing wide workbooks every few minutes can eat into it.

Pitfalls and how to fix them

ProblemWhat happensFix
Wrong record updatedA lookup on 15-character IDs matches the wrong row, because Excel ignores caseAlways use 18-character IDs; join in Power Query or Data Loader, not with case-blind lookups
Leading zeros and long numbers lostZip codes, phone numbers and account numbers turn into numbers, dates or scientific notationFormat those columns as text before pasting; check the CSV in a text editor before loading
Duplicates on importInserting a list creates second copies of existing contacts and accountsMatch first: Import Wizard duplicate matching, upsert on an external ID, or duplicate rules in Salesforce
Blank cells wipe dataA load with empty cells clears fields, depending on the tool’s null settingsLoad only changed columns; check the tool’s setting for blank values before running
Automations fireA mass update triggers flows, assignment rules or customer emailsTest in a sandbox; coordinate with the admin to pause or bypass automations for the load
Report connector truncatesA refreshed report shows exactly 2,000 rows and looks completeUse the Salesforce Objects connector and rebuild the logic in Power Query
Stale copies everywhereTen exported versions of the pipeline with different numbersOne refreshable workbook in a shared location; ban emailed exports for recurring reports
Connection runs as a personA scheduled job or flow stops when an admin leaves or changes passwordRun automation as a dedicated integration user and document it

When custom integration makes sense

Excel is a great working tool and a poor integration layer. Move to Power Automate or a custom build when:

  • The same file is loaded every day or week, by hand, with the same mapping.
  • The data comes from another system (ERP, billing, a partner portal) and Excel is just the carrier. Connect the systems directly; the Salesforce integration guide covers the patterns.
  • Loads need validation, approvals or an audit trail that a person with a CSV can’t provide.
  • Volumes or frequency start to strain API limits or add-in licensing.

A typical build is small. Files arrive in a watched folder or through an upload page, and a service validates and maps the rows. It writes with Bulk API 2.0 or the REST API, sends an error report back to the sender and alerts on failures.

$2–10kSimple one-way custom integration
$10–40kTypical custom two-way sync with a CRM
15–25%Of the build cost per year to keep it running

The figures are taken from our API integration cost guide. Use it to judge where a file-based build with validation and error reports would land.

Go-live checklist

Before a workbook or a recurring load goes to the whole team, check off what is in place. Unchecked items are where Excel files usually leak data or overwrite records.

Excel Salesforce go-live

FAQ

Can I connect Excel directly to Salesforce?
Yes. In Excel for Windows and Excel for the web, Power Query has two Salesforce connectors, Salesforce Objects and Salesforce Reports, which load data into a sheet you can refresh. According to Microsoft’s support table, as of October 2026 on Windows they are included in Microsoft 365 Apps for enterprise and the Professional Plus editions of Office 2016 and 2019; they are also listed for Excel for the web, and not listed for Excel for Mac. Your Salesforce user also needs the API Enabled permission, and trial orgs have no API access.
How do I export a Salesforce report to Excel?
Run the report, open the menu next to Edit and choose Export. Formatted Report keeps the report’s header, groupings and layout in an .xlsx file. Details Only exports plain rows as .xlsx or .csv without groupings or subtotals, which is better for pivot tables and further calculations. Your admin controls who can export reports.
Why does my Salesforce report stop at 2,000 rows in Excel?
The Power Query Salesforce Reports connector is limited by Salesforce to 2,000 rows, according to Microsoft’s connector documentation. Use the Salesforce Objects connector instead, which has no such limit, and rebuild the report logic in Power Query or a PivotTable. For a one-off file, a Details Only export from the report avoids the problem.
Can I update Salesforce records from Excel?
Not with Power Query, which only reads. Save the sheet as CSV and load it with the Data Import Wizard or Data Loader, use an Excel add-in that supports updates, or build a Power Automate flow or custom integration. In every case, include the 18-character Salesforce record ID or an external ID so updates hit the right records.
Data Loader or Data Import Wizard: which one should I use?
Salesforce recommends the Data Import Wizard for fewer than 50,000 records, supported objects, simple mappings and duplicate matching on account name and site or on contact and lead email. Use Data Loader for larger files (up to 150 million records with Bulk API 2.0), any object, repeatable mappings, deletes and exports. Data Loader is a desktop app for macOS and Windows and is available in Enterprise, Performance, Unlimited and Developer editions.
Does Power Query work with Salesforce in Excel for Mac?
As of October 2026, Microsoft’s list of Power Query sources for Excel for Microsoft 365 for Mac does not include the Salesforce connectors. Mac users can use Excel for the web, where Microsoft does list both connectors, export reports, use Data Loader (it runs on macOS) or use a third-party add-in that supports Mac, such as XL-Connector 365.

Where Gilzor fits

If your team trades Excel files with Salesforce every week, the first step is an honest look at which of those exchanges should stay manual. Building and maintaining Salesforce integrations is part of what Gilzor does as a software development company; our engineers work from Poland and Cyprus. We can review how the two exchange data today and set up refreshable workbooks or safe load processes.

Where a spreadsheet load keeps coming back, we replace it with a Power Automate flow or a custom integration on the Salesforce APIs, and support it after launch. The Salesforce integration services page covers how we scope it.

No sales pitch

Get a straight answer for your project

Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

Next, a few optional questions so the first call is useful. We use your details only to reply to your request. Privacy Policy

Andrew Laminsky
Written byAndrew Laminsky

CTO of Gilzor. Responsible for architecture and the engineering standards our teams work by.

LinkedIn →

Gilzor · Web Development partner

Need a team for your web product?

95%referred by business partners
70+successful launches
85%repeat business
98%delivered on time

The team behind them

Art Scherbakov
Art ScherbakovCo-Founder
Andrew Laminsky
Andrew LaminskyCTOLinkedIn
Yuri Rudenya
Yuri RudenyaHead of Mobile Development at GilzorLinkedIn
Alena Timofeeva
Alena TimofeevaProduct Marketing LeadLinkedIn
Tell us what you’re buildingOptions, a rough cost and timeline for your project. No commitment.

More insights