Use these practices to keep migrations predictable and easy to review.
Run a small sample before importing a full file. A good sample includes:
Once the sample looks right, use the same mapping template for the full import.
Do not remove IDs from the old system. Source IDs help CoolFocus connect related imports when that record type supports source identity matching.
For a donor migration, keep the donor or account ID. For a contribution migration, keep both the donor reference and the donation or transaction ID. For recurring contribution imports, keep the recurring donation or schedule ID. Use the same Source System name for files from the same source.
Import parent records before child records. For example:
This makes matching clearer and reduces failed rows.
Save a mapping template after you review a good mapping. Templates are helpful when:
Still review the mapping each time. A source system export can change columns without warning.
Lookups are easier to map when values are consistent.
Before uploading, standardize values such as:
General Fund vs. GeneralVolunteer vs. VolunteersFood Pantry vs. PantryActive vs. CurrentIf CoolFocus shows unmatched lookup values, map them intentionally. Do not create new values unless your team wants those values available going forward. Creating new lookup values may require admin access.
Update imports change existing records. Use them only when you are confident the file identifies the correct records.
Before running an update import:
Id or DistinctImportId.After each import:
| Do | Avoid |
|---|---|
| Use clear column headers | Using vague headers like Field1 |
| Keep source IDs | Deleting legacy IDs after the first import |
| Use one record per row | Merged rows, subtotal rows, or notes inside the table |
| Standardize lookup values | Creating many nearly duplicate lookup values |
| Run a sample import first | Uploading a full migration file as the first test |
| Save mapping templates | Rebuilding the same mapping by hand every time |