Sift Data cleaning for CRM imports

Salesforce import errors

Fix "INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST" (bad value for a restricted picklist)

This error means Salesforce rejected the row because a restricted picklist field got a value that is not in its allowed set, or got nothing when a value was required. Picklist matching is case-sensitive and exact, so "active" is not "Active", and "USA" is not the "United States" the State and Country picklist wants. The fix is to check every value against the allowed set and standardize it, before you import, not one error file at a time after.

Check your file against the allowed values, free →

What the error looks like

ErrorMeaning
INVALID_OR_NULL_FOR_RESTRICTED_PICKLISTA value is not in the field's allowed set, or is blank when required
bad value for restricted picklist fieldThe same rejection, worded as you see it in the error CSV
FIELD_INTEGRITY_EXCEPTION: problem with this stateThe State/Country picklist wants "United States", not "USA" or a code
value "active" or "0000627"A case mismatch, or a leading-zero ID a spreadsheet read as a number

Salesforce documents the restricted picklist rejection in help article id=000384095. You will see it from both the Data Import Wizard and Data Loader; Data Loader writes the failing rows to its error CSV with the message in the error column.

Why it happens

The manual fix

  1. In Setup, open the picklist field and note the exact list of allowed values, character for character.
  2. Map each value in your source column to an allowed value: decide what "Prospect", "prospecting", and "PROSPECT" all become.
  3. Watch case and whitespace as you go. A value that looks right but has different case or a trailing space still fails, and a blank filter will not catch a space-only cell.
  4. For State and Country columns, replace codes and short forms ("USA", "US") with the standard label ("United States").
  5. Re-check leading-zero IDs the spreadsheet may have mangled, and restore them to the allowed form before you import.

The Sift fix

  1. Drop your CSV or Excel file into Sift. It runs in your browser; the file is never uploaded.
  2. Map your columns to a template that carries the allowed values for each picklist (a Salesforce template, or your own field list with the values).
  3. Run the readiness / allowed-values check. Sift flags every value outside the allowed set, per row, before Salesforce ever sees the file.
  4. Standardize countries (USA, US, America become United States) and let Sift trim whitespace and fix case, so near-matches stop failing.
  5. Fix inline, or split the rows with genuinely unknown values into a separate "needs your eyes" list and import the clean rows now.
Everything runs on your device. Your file is never uploaded, the checks work offline once the page has loaded, and you can verify that by disconnecting from the internet before you drop your file in.

What Sift can't fix

Honesty matters here: Sift only knows the allowed values you give it in the template. It has no live connection to your Salesforce org, so a restricted picklist that lives only inside your org and is not in the template you map against is invisible to Sift, add those values to the template to catch them. And it cannot invent a correct category for a genuinely unknown value: if a row says "Platinum" and your picklist has no such tier, a human still has to decide what it should be.

Related guides