Managing Duplicates with Zapier?

  • 18 January 2022
  • 9 replies

  • Inspirational User
  • 6 replies



We just stared using Zapier to help with importing leads that we manage in Mailchimp into copper, and updating the leads/person records without creating duplicates or overwriting data…


I think it should be possible to also manage duplicates somehow, but the question is how?


I am new to Zapier, so I am not sure what the best way to do that is, any thoughts?


UPDATE May 2022: We now have a native two-way Mailchimp integration that syncs contacts between the two systems! Read about it here.


Best answer by CDub 18 January 2022, 19:05

View original

This topic has been closed for comments

9 replies

Userlevel 2

Hi @CDub 

Yes, you can do this with Zapier. Before you upload any new Leads you can use the 'Find People/Leads' action to check if the person already exists in Copper.  If found you can decide what needs to done.


If you need support with advanced workflows to get more out of Copper, you should have a look at

Thanks, Jaco

Userlevel 6
Badge +5

Hi @CDub, great question! There are several ways to manage duplicates in Zapier. Based on what you’ve described, it sounds like the easiest way for you is to use the action for “Create/Update Person in Copper” (or the equivalent action for Leads). That action is really two in one - it checks if someone already exists in Copper and if they don’t, it will add them for you.


The setup is pretty straightforward but I’m going to point out two areas that are especially relevant for you. I’m going to use Create/Update Person in Copper in the example below, but you can also set it up for Leads or another record type.


When you add the action, it will ask you for a Match by Type (see below). This is how you want Zapier to identify who already exists in Copper. So if you use Match by Type: Email - which is what I recommend - then every time it works with a contact, it checks if that email address already exists in Copper.

Then there’s Match by Value. This is where you indicate which email address it’s going to look for in Copper.


You’ll also find a place for If Person Already Exists. This is where you tell Zapier what to do if it finds someone who already exists in Copper. Should Zapier skip it (i.e. leave it as it was), or should it take the data it collected from Mailchimp and use it to overwrite (i.e. update) that contact?




@Jaco Koppelaar suggested using “Search for a Person/Lead” - this is also a great option, especially if you want finer control or want to use branching logic (called Paths in Zapier). But it requires more setup and and also uses more tasks against your monthly allowance. If you’re new to Zapier, I recommend trying to method above first. 



Let me know if you have any questions!

Userlevel 2

Hi @CDub  

I totally agree with @Michelle from Copper for the simple structure for uploading People records whereof the uploaded info may overwrite some of the values of the existing content. 

A case that many people try to avoid is uploading (unqualified) leads when there is already a person created. In that case you might just want to add a tag to the existing person. These are the cases where Zapier can do great things for you. 



Hey @Jaco Koppelaar and @Michelle from Copper,


Unfortunately, both solutions don’t work for me here are some considerations to the problem:

  • We use client interactions linked to tags that determine how we respond, interact, and how qualified they are.
  • We must Append tags, not overwrite
  • We use mass imports into Mailchimp several times a month to append tags
    • The Zapier function above does not apply to CSV file upload
    • We have to use the Zapier Transfers function
  • We have several clients that are existing people who are in the list of interactions with updated tags and want to avoid duplicates 
  • We are a small team and anything that requires tedious manual work is often not possible


Fortunately, I was up late playing with Zapier and Copper and I may have a solution using several automations! I haven’t been able to test these out yet, but if you have any feedback or can spot anything I have missed please let me know!


Zap 1: Data Transfer from GSheet to Copper 

Unfortunately, there is a hiccup with Zapier I am trying to work out where it doesn’t load all of my tags, this caused me to run an export of a segment in Mailchimp, organize the CSV in Google Sheets and use the transfer function.


Going forward we have detailed Google Sheets with the information we need for the various interactions, and since we only need to import on select events (usually once a month) we can follow these steps:

  1. format the template Google Sheet document
  2. copy over the transfer protocol in Zapier
  3. Run Transfer

Estimated Cost 1 Task per contact


Zap 2: Check for Duplicate Leads/Persons, Update Persons, Tag Duplicate Leads


As mentioned the default duplicate functions of Copper are probably one of my biggest frustrations with the platform. We just can’t have bad data, and when we use tags in the way we do it creates hours of manual work for our team this process runs whenever a new lead is added to Copper.

Here are the steps:

  1. Trigger: New lead into Copper
  2. Action: Search for Person in Copper
  3. Filter: If New lead Email exactly matches a person in copper, Conitnue
  4. Update Person with Key data points (Phone number, survey question custom fields, tags, etc..)
  5. Tag Duplicate lead: “ZAP - Duplicate/Delete”
  6. Task Key Team Member (Tomorrow at Noon) Delete Duplicate leads


The team member can then run a filtered lead list with that tag and delete any old tags with just a few clicks of a button.


Estimated Task per Lead: 3

Estimated task per Duplicated Lead: 6

Some problems with this are that I haven’t figured out how to tie the Tasks to particular records, it seems that you can assign them to a particular object but not as a function like “Lead Primary Email”


Additionally, we have more data we need synced so the Zaps I am considering building are below as well to add to the comprehensive nature and help our sales team work better.


Zap 3: Further Lead info

Summary: When a google form is completed/google sheet updated search for lead or a person and updated with an “form” activity with the fields from the form updated to the record. This may tag the prospect as well!


What do you think?

Userlevel 1


Very thought out flow.  Let me see if I understand at a high level.

Step 1 - Export out a Segment from MailChimp to a Google Sheet.

Step 2 - Run Zap 1 - Transfer Zap that will load all data as Leads in Copper.  The Lead will have Copper Fields filled out and possibly Tags.  (I would recommend putting the relevant information from MailChimp into the Details Field in the Lead or another Text Area fields on the Lead, so you have a concise place where all the data resides.  I might also recommend a field on the Lead that indicates it came from the MailChimp Data Transfer.)

Step 3 - Zap 2 - When a New Lead is Created, fire.  (I might include a filter where it only continues if the source was the MailChimp Data Transfer, vs running for each lead added).  This Zap would do the search and if a match was found, Continue. 

  • If it continued, it would update the Person with Key information brought from the Transfer Zap.  (This would overwrite the data in these Person Fields.  For Tags, you could set the update to pull all the tags from the person record you just created and then add the New Tag you want from the MailChimp Data, you would need to put a comma after the existing values.  Here is a Link to a quick video on this)
  • it would add a tag to the Lead that initiated the Zap (ZAP - Duplicate/Delete) this would overwrite any tag that came in via the Transfer Zap
  • Task - Not really sure if this is needed, there are a few Options
    • if you create a list view on Leads where Tag = ZAP - Duplicate/Delete, the team could easily find them
    • You could manually assign 1 person to to each task, but they might get a bunch of tasks.
    • You could assign the task to the Owner of the Person Record and then they could go to the leads and delete.

*Note, if you are overwriting field data anyway and you can append the tag by pulling the existing tags and adding them before the new Tag from Mailchimp, could you just to the Person lookup straight away and only insert a lead if you don’t find a match?

Zap 3 - I am not sure if Zap 3 is a separate process or not, but you can certainly create an Activity and put all of the information from a google form response into the Activity Text.  Here is an example from one of our Zapier playbooks, where we are writing data from DocuSign to Activities in Copper. 


Hope this helps


@Scott from Copper 

Everything from a high-level is spot on. 

We likely won’t be exporting lists from Mailchimp since the list is actually a zoom list that we upload to Mailchimp. So we would likely take the Master GSheet, add a tag column and use that for the first zap.


The second zap is necessary for all leads because we also have the marketing integration that adds website visitors and form submissions as leads automatically. This presents the same issue, and the zap would be able to resolve it.


A few questions for you:


  1.  I tested the “Overwrite or Append Tags” box below the “Tags” box and that box if selected did add tags, without overwriting the previous list of tags in the system. That being said, is there a reason that you did not use the “Overwrite of Append Tags” field? (Does it not work sometimes, or isn’t the best choice and why?)
  2. For Zap 3 is there a way to have a single form filter search for leads and person records and updated them with the response, and if no record was found then to create the lead? I imagine the flow is Search Person > Update Person > if no person then > Search Lead > Update/Create Lead with Activity…

I haven’t been able to work on this today so just asking.

Our process is a bit unique, but the marketing pathway is proven, we just need to make sure that the Sales team gets all the info they need without killing the marketing team. 



Userlevel 1


Thanks for the quick response.  You learn something new everyday..  I am not sure if the Replace or Append Tags is new or if I always glossed over it.. but you can use that feature (and I will be too going forward)


you do need to break the search into Search for Person, doesn’t exist, Search Lead - Update/Create



Small update: 


By structuring the Zap to update a tag for any duplicate lead I can then build a workflow automation in Copper that triggers whenever a Lead is tagged with a specific tag to task one of the Marketing team to run the lead filter tag and clean out the duplicates.


Additionally, by tagging the task, whenever they complete the task they can filter their tasks by a Task Tag “Task - Lead Update” and delete or mark complete any tasks that may be duplicate from any large import day.


2 Simple steps that reduce the cost of time and Zap tasks.

Userlevel 2

Hi @CDub, If it is really about mailchimp, I suggest to contact The product three60 Connect for Mailchimp supports a bi-directional sync between Copper and Mailchimp. The product is developed as result of Zapier limitations. Our ZAP integrators ran into too much complexity for some of our clients needs. Three60 Connect for Mailchimp takes care of a bi-directional sync and you can extend this with Three60 workflow where we add custom functionality on top. 

I know that this community is not for advertisement but it sound like you are overasking the options from Zapier and likely also spend a lot of ZAP steps. Three60 Connect is paid per Copper account (not per seat) and not for the number of sync actions. Feel free to book a free discovery session with one of my colleagues directly from the website.