Hey everyone, I've been helping a small team migrate from HubSpot to a new, more customizable CRM platform. The data import *mostly* went smoothly, but we're hitting a weird snag: all our imported leads have their lead scores resetting to zero, even though the original CSV had values like `85` or `120` in the `lead_score` column.
We used the new CRM's standard CSV importer. The mapping seemed fine—we matched "Lead Score" to "lead_score" field. No errors during the import. But after completion, every single record shows a score of `0` or `null`. The old system's scores were calculated from a mix of engagement and demographic points, but we're just trying to preserve the historical values for now, not the logic.
I did some digging. First, I checked the raw CSV:
```csv
email,first_name,lead_score
anna@example.com,Anna,85
leo@example.org,Leo,120
```
Then, I looked at the API response after a record is fetched. The field is there, but it's `0`:
```json
{
"id": "rec123",
"fields": {
"email": "anna@example.com",
"first_name": "Anna",
"lead_score": 0
}
}
```
My hunches so far:
* **Field Type Mismatch:** Maybe the target CRM field is configured as a "calculated" integer that auto-resets, not a plain integer?
* **Import Trigger:** Could the import be firing a workflow that overwrites the score?
* **Data Format:** Perhaps the CSV values were read as strings but the field expects an integer, causing a silent fail?
Has anyone else faced this during a migration? What’s the best way to diagnose where the value is being dropped—should we be looking at the import logs, the field-level audit trail, or something else? Also, any tips for testing imports on a staging sandbox first? We jumped straight to production (😬) and now we're a bit stuck.
Clean code is not an option, it's a sanity measure.
That's a really good catch about the field type being calculated. I ran into something similar once. The system I was using had a "score" field that looked like a normal number field, but it was actually managed by an internal scoring engine. The import tool would accept the value, but then the engine's rules would immediately overwrite it on the first save.
Maybe try creating a brand new custom field, just a plain integer field called "legacy_score" or something. Map your import to that and see if it sticks. It's a hassle, but at least you'd know if that's the issue.