Copper duplicate cleanup proof.
A redacted or synthetic Zapier-to-Make Copper migration slice. Trigger payloads are matched against existing Copper records before any create or update decision: clean rows become a dry-run upsert ledger, ambiguous rows become a conflict queue, and unsafe payloads become an error log. No client data, credentials, or live Copper writes are used.
Upsert Ledger CSV
Conflict Queue CSV
Error Log CSV
Match Policy CSV
Existing Records CSV
Trigger Events CSV
Runbook
Source Script
Input
Four mock Copper records, seven mock trigger payloads, and a match policy for opportunity and person rows.
Accepted
Two rows become dry-run create/update candidates with owner fields blocked from overwrite.
Held
Four conflicts and one hard error stay visible before any Copper write happens.
| First slice | Source | Decision | Boundary |
|---|---|---|---|
| Copper duplicate guard | One Zapier or Make trigger payload from a Copper workflow. | Match by external key, then natural key, then choose create, update, hold, or error. | No all-workflow rebuild and no live Copper write before dry-run approval. |
| Owner-safe upsert | Existing Copper opportunity or person plus incoming migration payload. | Stage and allowed fields can write; owner and lifecycle-sensitive fields require review. | No silent owner overwrite. |
| Replay and duplicate checks | Repeated event ids or multiple Copper matches for the same natural key. | Hold the row, show evidence, and require reviewer choice. | No duplicate Opportunities created blindly. |
| Event | Status | Decision | Evidence | Reviewer Action |
|---|---|---|---|---|
| EVT-9001 | ready for review | update existing OPP-102 | External key CUST-BENJIS-44 already maps to the Spring plant maintenance renewal opportunity. | Approve dry-run update after checking allowed fields. |
| EVT-9002 | ready for review | create new opportunity | No matching external key, email, or opportunity natural key exists. | Approve create only after confirming this is not an existing account alias. |
| EVT-9003 | held | multiple candidate records | Wholesale orchid reorder matches OPP-118 and OPP-119. | Merge or select the canonical Copper record before migration. |
| EVT-9005 | held | sensitive status change or duplicate replay | The row would mark a person inactive, and the event id appears twice. | Approve lifecycle change and replay behavior explicitly. |
| EVT-9006 | error | unapproved live payload | The payload is not approved for dry-run processing. | Reject until the buyer sends a sanitized sample or approves this exact payload. |