Best way to import, tag, merge and delete non-duplicates?

I occasionally need to import a list of email addresses solely for the purpose of tagging existing contact records. I need to guarantee that email addresses in the import list but not already in my InfusionSoft contacts will not end up in the system and also guarantee that I have not modified the email status on any of the contacts that are merged.

What I’ve been doing works, but it is very time consuming when the number of contacts to be merged is large, as it often is.

What I do now is

  1. Find and merge current duplicates so that I start with a clean slate.
  2. Import and tag
  3. Check for and merge duplicates choosing “only adding new data not overwriting old”.
  4. Then delete any imported contacts with creation date set to the day of the import—that will be the list of addresses not previously in our system.

Do you ever need to do something like this? Have you come up with a better way?


This is really the only way to do it, unless you’re up for exporting your entire database & doing a vlookup to find contacts on both lists by email address (useful in some situations, but can be time consuming in itself to export a large list & work with it).

The method you’re currently using is what I’d recommend unless you have access to someone who can write an API script for you (I am not that person, BTW).

1 Like

Thanks. I was afraid that was the answer. But… the API idea is interesting. A simple script that read in the import file and then made an api call to add a tag based on email match would do the trick. That might actually be worth it, mostly because of how long InfusionSoft takes to merge the duplicates. Thanks for the idea! (Is there a way to share things like that if I do create one? Or convince someone else on my team to create one?)

Yeah, agreed, api would be the most useful. Then it could be auto run on a schedule as well.

It may be overkill for you Julia, but here’s a resource for anyone who may want to import a list of contacts without creating duplicates.

1 Like

Thanks Greg! I went down this mental path. (I use vlookup all the time and know about the modify option in InfusionSoft.)

The issue for me is that I have over 600,000 contacts. I’d have to export them all and that is just too large a list to manage in Excel or Google Sheets.

There is no way to narrow that list down without importing the list I want to match it to. So, I’m just back to the import / duplicate check / duplicate merge option. But, for anyone with a manageable list size, what you suggest would be a good option.

…unless I find a spreadsheet that can handle that many rows that won’t take a super long time to load and process. And now you have me wondering if the limit has been increased. I might try it out and see. I just assumed that 600,000 was over limit.

Thanks again!

1 Like

You’re right, the size of your list would absolutely complicate that. If you have Zapier, it may benefit you to create a google sheet with contactEmail and contactId, and anytime a new contact is added Zapier would automatically add a row with their details.

The benefit to that would be that you have a running active doc with all contacts IDs, so you could use that for matching up any imports without having to do the export step - but the same problem might exist with page load time due to the number of contacts.

Anyway, good luck!

Greg! My assumption that my list is too big for excel limits was WRONG. I CAN use the vlookup strategy. That’s going to save a ton of time. Thank you for jogging me loose from my assumptions.

1 Like

Glad to hear it! Thanks for following up. Cheers.

Hi, what about some importing services? You may take a look at Data2CRM, it performs data import using API requests. Also, free demo is available. So, fell free to try it out. Thanks…

Hi Julia - Did you ever end up creating a script for for your import to avoid duplicate creation?

Hi Ben,

I’ve been happy using vlookup to add the contact ID to the list and then using the Modify Data function under Data Cleanup to add the tags. So, no, no script. (But I’d share it if I had one.)


There is more lightweight and, at the same time, less time-consuming way to migrate the CRM data.
To that point, you may take advantage of automated migration service Data2CRM.
The service enables you to import the following fields automatically:

  • accounts
  • attachments
  • contacts
  • meetings
  • notes
  • opportunities
  • products
  • tags
  • tasks
    As for other modules, there is a possibility of Custom migration that allows you to transfer the data according to the specific requirements.

Notice that both migration modes can guarantee you the save of relations between transferred records.

You can try Data2CRM service in action for free. To do that, switch a part or your real data to InfusionSoft and see how it looks like by running Demo Migration.
Or get in touch with Data2CRM experts for more useful insights.

Hope it will help,
Best Regards.

I’m sure you’ve solved this problem by now but, considering you have 600,000 records, it might be time to bump up from spreadsheets to SQL.

Microsoft offers FREE SQl Server in the cloud that would more than handle 600k+ records.

Best of all, there’s an API through Zapier!