I INQUA
Sign in Create account
Free tool

Free Salesforce import templates (CSV and Excel)

One template per standard object: field API names in the header row, an example row to copy, and — in the Excel version — the field type and a REQUIRED flag under every header. Download, fill, load.

The short answer: download the template for your object below, keep the header row exactly as it is — those headers are field API names, which is what every Salesforce loader matches on — and put one record per row. Fill the required columns, delete the columns you do not need, delete the sample row (and, in the Excel file, the type row under the headers), and load it with the Data Import Wizard or Data Loader. Nothing here needs an account, a signup, or our tool.

Download

ObjectCSVExcelLoaders that accept this object
Account account.csv account.xlsx Data Import Wizard, Data Loader, Bulk API
Contact contact.csv contact.xlsx Data Import Wizard, Data Loader, Bulk API
Lead lead.csv lead.xlsx Data Import Wizard, Data Loader, Bulk API
Opportunity opportunity.csv opportunity.xlsx Data Loader, Bulk API only
Case case.csv case.xlsx Data Loader, Bulk API only
Campaign Member campaign-member.csv campaign-member.xlsx Data Import Wizard, Data Loader, Bulk API
Task task.csv task.xlsx Data Loader, Bulk API only

The Data Import Wizard imports accounts, contacts, leads, solutions, campaign members, person accounts and custom objects, takes CSV only, and stops at 50,000 records per import. Opportunities, cases and tasks are not on that list — hence Data Loader or the Bulk API for those three. See the limits guide and the Opportunity guide.

What is inside the files

  • The CSV is a header row of field API names plus one example row, saved as UTF-8. Overwrite or delete the example row before you load it — otherwise you will create an account called Acme Corp.
  • The Excel file adds a second row with the field type and a REQUIRED flag, and a third row with the example. Delete both before loading. Id and postal-code columns are preformatted as Text so Excel cannot turn an 18-character Id into scientific notation or eat a leading zero.
  • Columns are a starting set, not a limit. Any standard or custom field you need can be added: put its API name in the header row. Loaders map on the header, not on our file.

The columns in each template

Account

Field API nameTypeRequiredNotes
NamestringYesUp to 255 characters. On a person account it is built from the first and last name and cannot be set directly.
Type, IndustrypicklistMust match an active value in your org's value set, not a free-text label.
Phone, Websitephone, urlWebsite is capped at 255 characters.
BillingStreet, BillingCity, BillingPostalCodetextarea, stringKeep the postal code as text so leading zeros survive.
BillingStateCode, BillingCountryCodepicklistThese two exist only when State and Country/Territory picklists are enabled, and take the ISO code — US, not USA. If those picklists are off, rename the columns to BillingState and BillingCountry and use the names.
DescriptiontextareaFree text.

Fields worth adding by hand: AnnualRevenue and NumberOfEmployees (bare numbers, no symbols or separators), ParentId (the parent account must already exist), and OwnerId — leave that one out and the account is owned by the user running the load.

Contact

Field API nameTypeRequiredNotes
LastNamestringYesUp to 80 characters. The only field Salesforce insists on.
FirstNamestringUp to 40 characters.
AccountIdreferenceOptional to Salesforce, rarely optional to you: without it the contact is private.
EmailemailAn idLookup field, so some loaders can match on it.
Phone, Titlephone, stringKeep phone as text so leading zeros and plus signs survive.
MailingStreet, MailingCity, MailingPostalCodetextarea, stringPostal code as text.
MailingCountryCodepicklistSame State/Country picklist caveat as Account.

Lead

Field API nameTypeRequiredNotes
LastNamestringYesUp to 80 characters.
CompanystringYesThe classic reason a lead file is rejected. If person account record types are enabled, a lead whose Company is null converts to a person account.
StatuspicklistDefaultedDefaulted on create: leave it blank and Salesforce applies the org's default Lead Status. Fill it and the value must be one of the Lead Status values defined in your org.
FirstName, TitlestringFirst name is capped at 40 characters.
Email, Phoneemail, phoneEmail is an idLookup field.
LeadSource, IndustrypicklistOrg value sets.
CountryCodepicklistWith State and Country/Territory picklists on, the address code fields take the ISO code — US, not USA. Add StateCode, Street, City and PostalCode if you have them.

Opportunity

Field API nameTypeRequiredNotes
NamestringYesUp to 120 characters.
StageNamepicklistYesMust be a stage that exists in your org. The stage also drives Probability, Forecast Category, IsClosed and IsWon.
CloseDatedateYesyyyy-MM-dd. This is where off-by-one dates usually show up.
AccountIdreferenceOptional to the API, but an opportunity with no account is orphaned.
AmountcurrencyDigits only. If the opportunity has products, the value you send is ignored — the amount is the sum of its line items.
ProbabilitypercentDigits only. Salesforce derives it from the stage, so you can usually leave the column empty.
Type, LeadSourcepicklistOrg value sets.
DescriptiontextareaFree text. Add OwnerId or CampaignId columns if you need them.

Case

The Data Import Wizard does not support Case — this template is for Data Loader or the Bulk API. Counter-intuitively, Case has no field the API forces you to supply: Status and Priority are defaulted on create, and Subject and Origin are nillable. Your org's page layout and validation rules almost certainly disagree, so check them.

Field API nameTypeRequiredNotes
SubjectstringUp to 255 characters. Optional in the API, expected by everyone reading the case.
StatuspicklistDefaultedBlank takes the org default. Directly controls the read-only IsClosed flag.
OriginpicklistOptional in the API, required on most page layouts.
PrioritypicklistDefaultedBlank takes the org default.
AccountId, ContactIdreferenceExisting record Ids.
DescriptiontextareaLimit 32 KB.

Campaign Member

Field API nameTypeRequiredNotes
CampaignIdreferenceYesCreate-only: the field cannot be updated after the member exists.
ContactIdreferenceOne of the twoThe contact joining the campaign.
LeadIdreferenceOne of the twoThe lead joining the campaign. Supply this or ContactId, not both.
StatuspicklistMust be a member status defined on that campaign. A value that is not valid is not an error: the API assigns the campaign's default status instead. Check your counts afterwards.

Task

Field API nameTypeRequiredNotes
SubjectcomboboxUp to 255 characters. Free text with UI suggestions.
StatuspicklistDefaultedDefaults to Not Started if blank.
PrioritypicklistDefaultedDefaults to Normal if blank.
ActivityDatedateThe due date. Its timestamp is always set to midnight UTC — send yyyy-MM-dd and nothing else.
WhoIdreferenceA Contact or Lead Id.
WhatIdreferenceA non-human record: Account, Opportunity, Case, Campaign, custom object.
DescriptiontextareaShown as Comments on the record. Add an OwnerId column ("Assigned To") if the tasks are not for you — it defaults to the user running the load.

Rules that apply to every template

  • Keep the header row. Do not rename the columns — the headers are field API names, and that is what the loader matches. Column order does not matter; you can delete any column you are not populating.
  • Delete the sample rows. They are there to show the shape of a value, not to be loaded.
  • One object per file. Every row in a file has to be for the same object.
  • Dates: yyyy-MM-dd. Date/time fields: yyyy-MM-ddTHH:mm:ss.SSSZ, or with an offset such as 2026-07-14T09:00:00.000+02:00. A date field takes no time and no offset — Salesforce documents that an offset on a date is not supported. The Data Import Wizard will also read dates in the locale format of the user running the import, which is exactly how the same file lands differently for two admins.
  • Numbers: digits and a decimal point only. No $, no %, no thousands separators, no parentheses for negatives. Those are the fastest route to a type-conversion error.
  • Ids: the API accepts the 15-character (case-sensitive) or the 18-character Id. Format the column as Text before you paste so nothing gets re-cased or truncated.
  • Blanks: leave the cell empty. Do not type NULL, N/A or - — they are text, and Salesforce will try to store them.
  • Encoding: save the CSV as UTF-8 — Bulk API files must be UTF-8. The wrong encoding is what mangles accented names and non-Latin characters on the way in.

These are starting points, not your org

The required column above means "required by the Salesforce platform". Your org almost certainly adds more: custom fields marked required, validation rules, restricted picklists, record types that only expose some picklist values, and duplicate rules. None of that is visible in a generic template.

Before you load, open Setup → Object Manager → your object → Fields & Relationships, sort by Required, and skim Validation Rules. Two minutes there beats the load-fail-fix-reload loop. When it does fail, the import error hub has the messages — required field missing and bad value for restricted picklist field first among them.

If your file does not look like the template

These templates assume you can retype your data into their shape. Usually the export from the other system has its own column names, its own date format and its own picklist vocabulary — and that mapping is the actual job.

That is the gap INQUA fills. It reads .csv, .txt, .xlsx and .xlsm natively — no CSV conversion step — and maps any source columns onto a target, with 13 chainable per-column transformations (trim, find and replace, parse a date with an exact format, map values, and so on). You can point it at one of the templates above, or upload your own load template and have it written back to you as a typed workbook with your header block intact — no Salesforce connection required for that path. If you do connect an org, it reads the accepted picklist values from the describe and flags violations in the preview, before anything is written.

It is honest about what it cannot see: it does not know your validation rules, your triggers, your Flows or your duplicate rules, so those still fail server-side like they would with any loader. It never deletes records, and it does not export records out of Salesforce. What it does remove is the mechanical half — the retyping, the format wrangling, and the Excel-to-CSV round trip that quietly strips leading zeros and rewrites your dates. Free during early access.

Frequently asked

What are the required fields to import a Lead into Salesforce?

LastName and Company. Status is defaulted on create, so a blank cell takes your org's default Lead Status, but any value you do supply has to be one of the Lead Status values defined in Setup. Everything else on the standard Lead object is optional as far as the platform is concerned — your org may have added required custom fields on top.

Does Salesforce provide official import templates?

Not as per-object starter files you can download. The Data Import Wizard and Data Loader map whatever headers your file already has, so there is nothing to download — Salesforce Help shows sample rows in the docs rather than shipping template files. The usual way to get an exact header row is to export a few records of that object with Data Loader and reuse its headers. These templates save you that step.

Why can't I import Cases or Tasks with the Data Import Wizard?

The wizard imports accounts, contacts, leads, solutions, campaign members, person accounts and custom objects — Case, Task and Opportunity are not on that list. Use Data Loader or the Bulk API for those three. The wizard also takes CSV only and caps out at 50,000 records per import.

What date format should I use in the template?

yyyy-MM-dd for date fields, for example 2026-07-14 — that is the format the Bulk API and Data Loader expect. Date/time fields take yyyy-MM-ddTHH:mm:ss.SSSZ, or the same thing with an offset such as +02:00; a date field accepts no offset at all. The Data Import Wizard additionally accepts dates written in the locale format of the user running the import, so format the column as Text in Excel and keep it consistent rather than letting your locale rewrite it.

Do I have to fill in every column in the template?

No. Fill the required columns, fill whatever else you want to land in the org, and delete the columns you are not using. What you must not do is rename a header — the loader matches on field API names, and a renamed column is simply an unmapped one. Adding a column is fine: any field's API name works as a header.

Can I load the Excel file directly, or do I have to convert it to CSV?

The Data Import Wizard supports CSV only, and Data Loader reads CSV, so the .xlsx has to be exported first — and that export is where leading zeros disappear and dates get rewritten. If you would rather skip the conversion entirely, INQUA reads .xlsx and .xlsm natively and writes a typed workbook back.

Are these templates specific to my org?

No, and that is their limit. They cover common standard fields and the platform-level required ones. Your org can add required custom fields, validation rules, restricted picklists and record types that none of this can know about. Confirm against Setup → Object Manager before a large load.