Skip to main content

Hello,

I recently completed a Mailchimp integration from Salesforce where we set up a complex set of processes within SalesSalesforce-generated Mailchimp tags and then mirrored those tags to Mailchimp.

Now, the company wishes to take it further and begin bringing Mailchimp activity data into Salesforce. Specifically, they want to track MC subscriber’s ratings and open rate, click rate. 

 

Currently, subscriber records get created in MC as well as in SF, then sent to MC. Newsletters are only mailed out from Mailchimp and MC tracks the click rate, open rate etc. Zapier does provide triggers to track both, and rating can be obtained during this time. HOWEVER, one zap can only track one campaign at a time, therefore for every campaign a new zap must be used. This is making the zapier-provided trigger unusable. 

The client’s preference is to bulk-fetch this information nightly or weekly, since this is used primarily for decision making on whom to pursue etc. 

Is this something feasible via zapier (and I mean without using Webhooks, though even using Webhooks there may be a limitation on # of records at one fetch.)? Has anyone done anything of this kind? (Is Transfer meant for this purpose?)

Hi @ClayPotter 

Good question.

Try using a Mailchimp Webhook that can be configured here:

Mailchimp > Audience > Settings > Webhooks

Help: https://mailchimp.com/developer/marketing/guides/sync-audience-data-webhooks/

 

The Zap trigger would be Webhook Catch Hook, which will generate the unique webhook URL to place in Mailchimp.

 

NOTE: If you have lots of contacts, then this may not be the most efficient way to go about getting the desired data.

 

Mailchimp Webhook options

 


Hi @Troy Tessalone :

Thank you. I appreciate your response, and I agree that this seems to be the way to go.

However, even this way is a tad bit clunky for my client’s needs. The reason is that in this situation, Zapier is going to be busy with a few thousand active subscribers and growing. Essentially, we are listening to every event in Zapier and bringing that data into Salesforce, and then redoing a lot of work of determining who is a meaningful member.

In the meantime I tried Transfer. It seemed promising at first, but then I hit a wall soon after: there, too, I am supposed to filter on the basis of a tag, apparently. This may be worked around by assingning a default tag to all contacts in Mailchimp, however, in general, not a desirable solution.

Frankly, this is not a super difficult solution via API. The only hitch is that it’s hard to sell custom API to organizations when they have Zapier in-house. Really the best course would be to define a filter in Transfer, whereby one can fetch the most engaged subscribers (e.g. 3-star rated and up).

 

Zapier support: is there any way to get around the tag/campaign filter during Transfer set up?


@ClayPotter 

Agreed Transfer with the ability to Filter data would be ideal.

Feedback and feature requests can be submitted via a ticket to Zapier Support to be logged: https://zapier.com/app/get-help


Hey there @ClayPotter, In the future we may be able to add Filtering directly to the Transfer interface.  We are exploring new ways and functions to add to it but currently do not have a way to help with that using the Transfer tool directly.

That said, if your client wants to do bulk actions daily or weekly or what have you, you could replicate the Transfer app using a Google Sheets trigger in Zapier.  Doing that would also give you the ability to add a Filter step after that to add the functionality you need with this bulk import of data.  You could import CSV data from these tools manually into the sheet to trigger the “Transfer” and have a filter step blocking a lot of the task usage.

The main caveat would be the manual nature of this interaction.   I presume the reason why our stock triggers require a specific Campaign for the LInk Clicked/Email Opened is actually a requirement set via the MailChimp API via the endpoints we fetch this information from.

Finally, if you can have MailChimp push Zapier Webhooks and the customer isn’t too picky on it happening once a day or at a specific time, you could set up a Zap like so to catch them and do what you wish with them while filtering the specific entries you care about:

Webhook by Zapier trigger => Filter by Zapier => Salesforce Create/Update Custom Record action => ...

Hopefully this helps, let us know how it goes!


@RALaBarge : Thank you for your comment. 

What the client desires is a fully automated solution. 

I looked through the MC API too and found out that their API works on a list of lists to “selectively” read data on each list. Therefore, I agree that there seems to be no way to get a “full dump” of all subscribers. If I do go down the API path, then I will need to develop a logic with 1. Fetching all lists, 2. Iterating over each list to get the subscribers therein and store in their respective hashmap or whatever.

May be internally you could provide this logic? 

While I am on this topic, I have one more question: What do we mean by “list”? Is it a campaign or is it a list built based off tags? If so, is there a default list that contains all the active subscribers in MC? This might be an answer to my question! 

 

 


Hey @ClayPotter!

Based on what I see in the Mailchimp API docs, it appears that a list is akin to an audience:

 

As far as I know, there isn’t a list that contain all subscribers.

Can I ask: how frequently would your client want to update this information about subscribers? 

I’m not 100% sure if this type of workflow is feasible, but here’s an idea I had to use 3 Zaps.

Zap 1 
Trigger: Schedule by Zapier — Whatever frequency makes sense
Action: Webhooks by Zapier — Get MailChimp Lists
Looping by Zapier
 — Webhooks by Zapier → Loop through lists to get members
 — Airtable → Create record for each list, in ‘Lists’ table

Zap 2
Trigger: Airtable — New Record in ‘Lists’ Table
Action: Webhooks by Zapier — Get Mailchimp Members per List
Looping by Zapier
 — Webhooks by Zapier → Loop through members to get stats
 — Airtable → Create/update record for each member, in ‘Members’ table

Zap 3
Trigger: Airtable — New/Updated Record in ‘Members’ table
Action: Salesforce — Find Contact
Action: Salesforce — Update Contact

It’s entirely possible I’ve missed something but I feel like a combo of Zapier, Airtable, Looping and Webhooks could get you what you need. Might take some experimenting, assuming you want to involve another tool, like Airtable, in the mix.