Quick TipsHow To Merge Contacts in Workflows

How To Merge Contacts in Workflows

Use the Merge Contact workflow action to automatically deduplicate contacts, preserve history, and keep follow-up actions on the correct surviving contact.

Merge contacts automatically inside workflows

Use the Merge Contact action to deduplicate contacts as they move through a workflow so contact history stays intact and follow-up actions continue on the correct surviving contact.

The Merge Contact action finds duplicate contacts based on your matching rules and merges the newer contact into the older one. The older record always survives as the primary contact, so you keep a single, consistent history going forward.

Where the Merge Contact action fits in your workflow

Add Merge Contact anywhere you might pull contacts together from multiple sources or lists, so you can remove duplicates before sending follow-ups, applying tags, or updating records.

After Merge Contact runs, the workflow automatically branches into two paths:

  • Duplicate contact found — the system found an older contact that matches your criteria and merged the newer contact into it.
  • Duplicate contact not found — no matching older contact exists, so the contact continues as-is.

Use these branches to decide which actions to run next for each case.

Add the Merge Contact action

Open the workflow builder

  • In the left navigation, go to Automation.
  • At the top, select Workflows.
  • Create a new workflow or open an existing one where you want to deduplicate contacts.

Insert a new action in the workflow

  • In the workflow canvas, click the plus icon where you want Merge Contact to run.
  • In the action search, type merge.
  • Under Contacts, select Merge Contact.

Choose your matching criteria

  • In the Merge Contact configuration, pick how to match duplicates:
    • By email
    • By phone number
    • By both email and phone number (both values must be identical for the contacts to be treated as duplicates)
  • Save the action to add it to your workflow.

When you save, the workflow shows two branches from the Merge Contact step: Duplicate contact found and Duplicate contact not found.

Build actions on each branch

  • Under Duplicate contact not found, add actions you want to run for contacts with no matching record, such as sending a first-time message or tagging as a new lead.
  • Under Duplicate contact found, add actions specific to merged contacts, such as notifying your team or updating internal fields.

If you want both paths to rejoin the main flow after running different actions, add a Go To action at the end of each branch so contacts funnel back into the next step of your primary workflow.

How the surviving contact works

When Merge Contact finds duplicates that match your criteria, the system:

  • Identifies which contact record is older and which is newer.
  • Merges the newer contact into the older one.
  • Keeps the older contact as the surviving primary record going forward.

This behavior protects your existing contact history and keeps ongoing workflow actions focused on a single, consistent contact record.

Limitations and behavior to watch for

Merge Contact affects how certain workflow steps behave, especially when they rely on the original contact ID or messages that were already sent. Review these limitations carefully and always test your workflow before setting it live.

  • Goals tied to the old contact ID
    Goals may not work as expected if they depend on the old contact ID that was merged into the surviving contact.

  • Wait for reply after a message was sent
    If a Wait for reply step depends on an email or SMS that went out before the merge, the wait condition can behave unexpectedly because the original message is associated with the old contact.

  • Wait for email events
    A Wait for email events step may not resume as expected if the event you are waiting for is still tied to the old contact record.

  • Trigger links linked to the old contact
    Trigger links can fail if they are associated with the old contact ID before the message was sent, because that ID is no longer the active record after the merge.

  • Surviving contact was already in the workflow
    If the surviving (older) contact previously entered the workflow and allow re-entry is turned off, the execution of the newer contact being merged ends when the merge happens.

Test your Merge Contact setup with a small set of known duplicate contacts first so you can confirm that branches, waits, and goals behave the way you expect before running the workflow on your full audience.