Resolve identity conflicts

POST https://app.speybooks.com/api/v1/contact-imports/{id}/resolve

Submit user decisions for identity merge conflicts. Each resolution specifies whether to link (merge), split (keep separate), or skip a node for a given conflict group.

Resolutions re-run the DSU with user decisions injected as synthetic hard keys. If conflicts remain after resolution, the import stays in processing status. Once all conflicts are resolved, status transitions to pending (ready for confirm).

Path parameters

id string required
Data import ID (e.g. dimp_1). Must be in processing status.

Body parameters

resolutions array<object> required
One or more resolution actions. link merges two node IDs, split keeps them separate, skip excludes a node.
Show child parameters
link array<string> optional
Two node IDs to force-merge (e.g. ["row_0", "ledger_5"]).
min items: 2 · max items: 2
skip string optional
Node ID to exclude from import (e.g. "row_3").
split array<string> optional
Two node IDs to keep separate.
min items: 2 · max items: 2

Response

200 Resolutions applied, DSU re-run. Returns updated stats and whether conflicts remain. If hasConflicts is false, status advances to pending (ready for confirm).
Show response fields
hasConflicts boolean
importId string
skipped integer
stats object
Show child attributes
conflicts integer
creates integer
merges integer
skips integer

Error codes

400 Empty or missing resolutions array.
404 Import not found or not a contacts import.
409 Import is not in processing status (conflicts not awaiting resolution).