Best answer

Dealing with Salesforce Campaign Member Duplicate Rule

  • 30 January 2020
  • 4 replies

Userlevel 1

My Zap adds new Eventbrite Registrants to Campaign Members. The Campaign Member Object has a duplicate check on Contact ID, so if a person registers them self and then tries again with their name to register someone else or if they are buy multiple tickets and use there name with the other tickets, Campaign Member will flag a duplicate error (can consequently the Zap stops.  The client does not want another object to track Campaign Members, so I'm forced to deal with duplicate issues. Eventbrite also allows a registrant to buy multiple tickets with the same name, which also causes a duplicate error.

I want to "catch" this condition i.e. see if the campaign member record exists, before Adding the Campaign Member record. I tried Find a Record, Object - Campaign Member, field - ContactID and search for the Contact ID from a previous Zap. This seems to look up the contact record, its not Campaign Member because that record does not exist (see attached screenshot). So, I switched to Find Record by Query, however I get malformed query errors, pretty much no matter what kind SOQL I enter.  It's clear I don't understand their requirement and their help just points me to the Salesforce Developer knowledge base.  

My question is has anyone else dealt with this? Can I find a Campaign Member record using Find a Record so it returns Zap True or False?  If I can, then I can use logic to add a record or decide what to do about the duplicate. 

Zapier2 Find a Record.jpg


Best answer by Liz_Roberts 8 April 2020, 16:34

View original

This post has been closed for comments. Please create a new post if you need help or have a question about this topic.

4 replies

Userlevel 7
Badge +10

Hi @Beth

I'm so Salesforce expert, and maybe someone else here is, and will jump in. But, I'm also going to flag this up to Zapier support as they have access to better logs and might be able to find some clues as to what's wrong with your SOQL.

Someone from the team should contact you soon.

Userlevel 7
Badge +12

Hi @Beth! Before I send this on to the Support Team, could I check something about your screenshot?

The link in the screenshot looks like it's going to a Campaign member:

image.pngI can see that they type is 'CampaignMember' and the link looks like it's going to a CampaignMember. But in your post you said that there isn't a Campaign member, could I double check what that link goes to in Salesforce, or have I misunderstood the trouble here?

Could you try using the Find a Record search but using a different field to search by (email address is usually a good bet)? Let me know what you think!

Userlevel 7
Badge +12

Hi @Beth - were you able to try the Find a Record action? Did it help with this? If you’re still having some trouble, please let us know! 

Userlevel 7
Badge +8

Hi @Beth ,

Circling back on this post as I see you worked with Patrick in Support on this issue! I’m posting their response below to help future users in case they encounter a similar issue or are seeking a similar workflow. 

Please let us know if you have any further questions!


Thanks for reaching out! I'll be happy to help.

We're not currently able to support writing or debugging queries for use with apps such as Salesforce, and Salesforce support would be the best avenue for advanced utilizations of their querying tools. That said, we should be able to make a Zap using our Salesforce integration without needing to use queries and I'll be happy to lend a hand with this!

Because the ID does not exist to search by, I recommend using a unique identifier that would exist both with the Eventbrite registrant and in Salesforce prior to member ID creation. My best suggestion is to set up a Find Record step for Salesforce, but rather than searching by Campaign Member - Contact ID, search by Campaign Member - Email - Profile Email. This will compare the email address from Eventbrite to existing email addresses in Salesforce.

Then, a Filter step can be used to selectively run the Zap if the ID exists (set the Filter step to only continue if the ID field Exists). For a little more context to our Filter by Zapier tool, we have a demonstration guide here: