Data Loader is what you use when Salesforce's web importer shits the bed for the third time this week. Version 64.1.0 is the current release (Summer '25) and actually works, which is more than I can say for the previous versions.
Salesforce's built-in Data Import Wizard craps out at 50,000 records. That's cute. Data Loader handles up to 150 million records through Bulk API 2.0. I've personally pushed 2 million contact records through this thing in one go, and it didn't break a sweat - which honestly surprised the hell out of me.
How This Thing Actually Works
You get two ways to use Data Loader: a GUI for clicking around when you're doing one-off imports, and a CLI for automation. Here's the kick in the teeth - CLI only works on Windows. If you're on Mac and want automation, you're screwed harder than a one-legged cat in a sandbox. It's 2025 and they still haven't figured out cross-platform scripting.
The thing talks to Salesforce through their Bulk API, which is actually decent when it's not having one of its famous afternoon naps. You can tweak batch sizes, but the default 200 records per batch works fine unless you're dealing with some weird edge case that makes you question your career choices. You need Java 17+ installed, and it works on Windows 10/11 and macOS 13-15. ARM Macs finally work, thank fuck.
The data processing is actually pretty straightforward for once - your CSV gets chunked into batches, each batch gets processed asynchronously, and you get detailed success and error logs for when shit inevitably goes sideways. Unlike most Salesforce tools, the error messages actually make sense instead of just saying "ERROR: Something bad happened."
What You Can Actually Do With It
Data Loader does five basic operations:
- Insert: Dump new records from CSV
- Update: Fix existing records (you need the Salesforce ID)
- Upsert: Insert or update based on external ID - this one's actually useful
- Delete: Nuke records (careful with this)
- Export: Pull data out with SOQL queries
Works with all Salesforce objects - standard stuff like Accounts and Contacts, plus whatever custom objects your admin dreamed up. Field mapping is drag-and-drop, which is nice. When things break (and they will), you get detailed CSV error logs that actually tell you what went wrong. Pro tip: 100K records takes about 20-30 minutes if everything goes right, 2 hours if it doesn't.
Security Stuff You Need to Know
Version 64.1.0 finally ditched security tokens for OAuth 2.0 with PKCE, which means no more copy-pasting that stupid token from your email every time you reset your password. Thank god.
Data transfer is encrypted over HTTPS, and CLI credentials get encrypted locally. But here's the gotcha that'll bite you in the ass - your exported CSV files just sit there unencrypted on your hard drive like a security team's worst nightmare. If you're dealing with sensitive data, encrypt that shit yourself or store it somewhere secure. I learned this the hard way when our compliance team had a complete meltdown over exported customer data sitting in plain text in my Downloads folder for three weeks.
Set up a dedicated 'data exports' folder with encryption enabled, or your security team will make your life miserable during the next audit - and trust me, they remember everything.
The tool also supports IP restrictions and respects your org's login hours, which is actually useful for limiting when automated jobs can run.