Summary:
We need a built-in “Merge Contacts” feature in Gigbuilder CRM to allow users to combine duplicate contact records into a single authoritative contact without losing linked data. This is a common need caused by web imports, defaulting blank fields to account info, and manual entries creating duplicates.
Desired behavior / user flow:
- User selects two or more contact records (from search results or from within a contact record) and chooses “Merge.”
- A preview modal displays side-by-side fields for the selected records, highlighting conflicts and blank fields. The user can pick which value to keep for each field (first name, last name, email, phone, address, custom fields, notes).
- The user designates one contact as the primary record (or lets the system pick the most-complete record). The primary record retains its contact ID and main audit history.
- All linked objects (events, clients, leads, email logs, tasks, signatures, attachments) are reassigned to the primary contact. Any references to the secondary records are replaced with the primary.
- The system preserves both records’ historical logs (date-stamped) and appends a merge note to the primary contact including the IDs/names of merged records and the user who performed the merge.
- The secondary records are soft-deleted or renamed with a clear marker (“DUPLICATE - merged on MM/DD/YYYY by USER”) and moved to a recoverable area for at least 30 days to allow rollback.
- Provide an “Undo Merge” option within an audit timeframe (e.g., 7 days) that restores the secondary records and reassigns links back, with full logging of the action.
Additional requirements / edge cases:
- Handle custom fields gracefully: allow mapping and conflict resolution for custom fields and repeatable fields.
- Include a bulk-merge workflow for fuzzy-match duplicates found by a duplicate-sweep tool.
- Ensure that the merge respects user permissions and logs which user performed the merge.
- Provide API endpoints for merging contacts for automation or for use by integrations.
- Include server-side validation to avoid accidental data loss, and an activity log entry visible in Admin logs.
Sample use case:
We frequently get duplicate contacts because web-request imports leave blanks that default to company contact info (e.g., scott@wedj.com). Example: two “John Anderson” contact records were created by web imports; one had the company phone, the other did not. We want to merge them without losing the birthday party web requests linked to either record, and keep an audit trail showing which records were merged.
UI suggestions:
- Add a “Merge” button to contact record view and a bulk action in contact search results.
- Provide a clear preview and per-field chooser in the confirmation modal.
- Offer an option to mark secondary records as “Merged - keep for X days” with easy restore.
Priority: Medium/High (useful for customer data hygiene and reduces support overhead)
Requester:
Gigbuilder Entertainment Company
Contact: Scott
Email: scott@wedj.com
Phone: 828-557-3543
Please advise an estimated timeline and whether we should provide additional details or test cases. Thanks!