I INQUA
Sign in Create account
Salesforce import error

REQUIRED_FIELD_MISSING: Required fields are missing: [Field]

Salesforce refused a row because a field it requires arrived with no value. The hard part is not fixing the row — it is understanding which of the four different kinds of required you just hit.

REQUIRED_FIELD_MISSING: Required fields are missing: [Fieldname__c]:FieldName__c --

The short answer: the field named in the brackets received no value on that row. Four things cause it — the column is not mapped at all, the column is mapped but the cell is empty, the cell holds nothing but whitespace, or a required relationship field (a master-detail) came through blank. Open the error, take the API name inside the brackets, and check that column in your file. Every row must carry a value; Salesforce will not invent one for you.

Read the error literally

The bracketed name is the field's API name, not its label. FieldName__c is not necessarily the column called "Field Name" in your spreadsheet. Salesforce documents the status code plainly: REQUIRED_FIELD_MISSING means "a call requires a field that wasn't specified." No hidden condition, no partial credit — required field, null value, rejected row.

The four layers of "required" — and why this error surprises people

"Required" means four different things in Salesforce, and only some of them apply to an import.

1. Fields the schema requires

Some standard fields simply cannot be null. These are enforced by the platform itself and no admin can turn them off. They are the same for every org.

Object Required on insert by the schema Worth knowing
Account Name On a Person Account, Name is assembled from the name parts instead.
Contact LastName FirstName is nillable. A one-word name goes in LastName.
Lead LastName, Company Both are documented as required. If person account record types are enabled and Company is null, the lead converts to a person account.
Opportunity Name, StageName, CloseDate AccountId is not schema-required — an orphan opportunity will insert.
Case None Status is defaulted on create — omit it and Salesforce writes the default rather than rejecting the row. Origin and Subject are nillable. Anything Salesforce demands here comes from a layout, a rule, or a custom field.
Any child of a master-detail The master-detail field Always required on the child. Every row needs the parent's 15- or 18-character Id.

2. Universally required custom fields

A custom field with the Required checkbox ticked in Setup is universally required. Salesforce's own wording: it must have a value whenever a record is saved within Salesforce, the Lightning Platform API, or automated processes such as Web-to-Lead and Web-to-Case. Your import is the API, so it is enforced — on every record type, with no exceptions.

This is a property of custom fields only — you cannot tick "Required" on a standard field. Find it at Setup → Object Manager → your object → Fields & Relationships.

3. Page-layout required — which the API ignores

This is the one that catches everyone, and it catches them in both directions. A field marked Required on a page layout is required in the user interface. The API does not read page layouts. Data Loader, the Bulk API, and any integration will happily insert a record with that field empty.

So if the field is red with an asterisk when your users create the record by hand, that alone does not cause REQUIRED_FIELD_MISSING. Something else does. Conversely, an import can quietly create thousands of records no human could have saved through the UI. If a load "worked" but the data is hollow, this is usually why.

One layout-related trap does exist, but only in the Data Import Wizard: it offers you the fields your page layout and field-level security expose. A field that is not on your layout can be impossible to map there — while Data Loader, which ignores layouts, would have accepted it.

4. Validation rules — a different error entirely

A validation rule such as ISBLANK(Industry) && Type = "Customer" makes a field conditionally required. It does not produce this error. A validation rule failure comes back as FIELD_CUSTOM_VALIDATION_EXCEPTION, carrying whatever error message the admin wrote.

When triaging a failed job, sort by error code first. If you are looking at REQUIRED_FIELD_MISSING, stop hunting for the validation rule — the requirement is in the schema or on the field.

Why the cell is empty — four causes, in order

  1. The column is not mapped. The header in your file does not match the field's API name, so nothing is sent. Bulk API loads match on the API name — StageName, not "Stage" or "Sales Stage".
  2. The column is mapped but the cell is blank. On an insert, a blank cell is indistinguishable from not supplying the field. Three empty cells out of forty thousand will fail three rows, and you will not see them by scrolling.
  3. A required relationship did not resolve. You filled the parent Id column with a VLOOKUP against a second file. Where the match failed, the formula returned blank, and a master-detail field — always required on the child — arrives null. The cause is the failed join; the symptom is this error.
  4. The value is whitespace. A cell holding a single space is not empty in Excel, but it is empty by the time it reaches Salesforce.

A note on RecordTypeId

RecordTypeId is not a required field. Omit it and Salesforce applies the default record type for the profile of the user running the load. That default is frequently not the one you wanted — so an import can pass this error and still be wrong. If your org uses record types, map RecordTypeId explicitly with the 18-character Id, and remember that record type also governs which picklist values are accepted.

Fix it

  1. Get the real list. Do not fix only the fields in today's error log. In Setup, list every field the schema or the Required checkbox demands, and confirm each has a column in your file.
  2. Find the blanks. For each required column, filter for empty cells across the entire file. =COUNTBLANK(D2:D40000) takes ten seconds and tells you whether you have a problem worth solving.
  3. Decide what a blank means. Blank is rarely nothing. It is usually "unknown", and it usually has a correct default:
Contact.LastName    → "Unknown"        (never leave blank; the row will not insert)
Lead.Company        → "Individual"     (common convention for consumer leads)
Opportunity.StageName → "Prospecting"  (an early stage, not a closed one)
Opportunity.CloseDate → end of quarter (a real date; the field will not take a blank)

Fill the blanks with the default rather than deleting the rows — deleting is how you silently lose 400 records and discover it a month later. Then re-run and compare the success count against your row count.

If the requirement turns out to be a validation rule, this stops being a spreadsheet task: ask the admin whether the rule should exempt the integration user, or whether your file has to carry the value.

Catch the blanks before Salesforce does

Every step above is doable with Excel and Setup. What hurts is the loop: load, wait, download the error file, fix, re-load. A file-side check collapses that to one pass.

This is what INQUA's import tool does before anything is written. It previews every mapped column as typed data with per-cell errors, and a review scan covers every selected row — not just the rows in the preview — so an empty cell in row 38,412 surfaces now rather than in a failure log later. A default if empty transformation fills the blanks with a constant in one step, and because it joins up to five source files on key columns, a lookup that fails to resolve shows up as a match rate — with a sample of the keys that found nothing — rather than as a silently blank parent Id.

The limits matter here more than on any other import error. A tool reading your file cannot know your org's validation rules, triggers, Flows, duplicate rules, or page layouts, and INQUA does not pretend to simulate them. It validates what is knowable from the file and the field's own definition: types, dates, and restricted picklist values. A field that a validation rule makes conditionally required will still be caught by Salesforce, not by you. An empty cell in a column you mapped does not have to be.

It reads .xlsx, .xlsm, .csv and .txt directly, with no converting to CSV first, and the typed workbook it exports needs no Salesforce connection at all. When you do connect, the load is an insert or an upsert matched on an External ID — it never updates by record Id, and it never deletes.

After the fix

Re-run and check the failures are gone rather than replaced. Filling a required field often exposes the next problem underneath it: a value the picklist will not take, or a date the parser refuses. On Opportunities, StageName and CloseDate bite first — the Opportunity import guide covers both.

Every error in this family, in one place: Salesforce import errors.

Frequently asked

What does REQUIRED_FIELD_MISSING mean?

Salesforce documents the status code as 'a call requires a field that wasn't specified'. A field the platform or your admin requires arrived with no value on that row, so the record was rejected. The API name of the field appears in brackets in the error message — that is the column to look at in your file.

Why does the API let me insert a record that the UI would not save?

Because fields marked Required on a page layout are enforced only in the user interface. The API does not read page layouts, so Data Loader, the Bulk API, and any integration will insert the record with that field empty. Only schema-required fields, universally required custom fields, and master-detail fields are enforced on an API insert.

Which fields are always required on the standard objects?

Account needs Name. Contact needs LastName. Lead needs LastName and Company. Opportunity needs Name, StageName and CloseDate. Case has no schema-required fields at all — anything it demands comes from a page layout, a validation rule, or a universally required custom field. Any child of a master-detail relationship always needs its parent Id.

Is a validation rule the same as a required field?

No, and they return different errors. A validation rule that makes a field conditionally required fails with FIELD_CUSTOM_VALIDATION_EXCEPTION and the admin's own error message. If you are looking at REQUIRED_FIELD_MISSING, the requirement is in the schema or on the field definition, not in a rule.

Do I have to map RecordTypeId?

It is not required. If you omit it, Salesforce applies the default record type for the profile of the user running the load, which is often not the one you intended. If your org uses record types, map RecordTypeId explicitly — it also determines which picklist values each field will accept.

A required column exists in my file, so why is the row still failing?

Almost always an empty cell rather than a missing column. On an insert, a blank cell is the same as not supplying the field. Filter each required column for blanks across the whole file, not just the visible rows. A cell holding only a space counts as empty by the time it reaches Salesforce.

Can a tool catch this before I run the import?

It can catch the file-side half. Empty cells in mapped required columns, unresolved lookups, and bad types are all visible from the file and the field's definition, so a preview can flag them before any record is written. It cannot catch requirements that live in your org's validation rules, triggers, Flows, or page layouts — those are only knowable to Salesforce.