WorkflowPatch Start async fit check

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.

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.