Skip to main content

I have a Typeform with 6 multiple choice checkboxes corresponding to 6 different MailChimp groups. The user can select any number of boxes in the form. 

Obviously, I can send those choices into Zapier, but I want to only update the MailChimp contact with the selected groups a single time. 

If I use “Paths”, I need 6 paths: one per choice. And each path requires two tasks. And each path, individually, tries to update the record. I don’t know for sure, but it feels like this could cause race conditions and some of the updates could be missed. But as a principle, I also just feel there should be a better way than needing to use 14 tasks to update a single record for a single form submission.

Here’s a better explanation:

Zapier Community - Update record single time w/multiple choices - Watch Video

d3e3df9a32ed47938edcb43e98f1d442-with-play.gif

 

Anyone else have any better ideas? Thank you!

Hi @DavidLGS 

Good question.

A Code step can be used to consolidate and evaluate the options: https://zapier.com/apps/code/help


Thanks, @Troy Tessalone. I thought of that before, but was hoping for a simpler answer. :-p

I’ll spend some time working on the code and hope for a miracle that someone else has another idea.


Hey @DavidLGS. Wildly thinking out loud here as a Mailchimp user in a prior life far too long ago, so it’s possible this isn’t a solution at all. 😬

I know Mailchimp has lists, but it also has tags (or groups/interests; seems to be the same thing). And supposedly you can target different tags from the same list for different campaigns. If you were to have the Typeform results correlate as tags that were added to a subscriber (that’s key - can’t add tags to someone who doesn’t exist yet in Mailchimp), that might help you get away from the Paths you’re worried about and simplify the number of tasks that need to be run.

Let us know what you think and find out. It’s a great question!


Hi, @Jillian. All good things to think about. However, this is just one Typeform of 14(!!) and we already have an incredibly complex logic system based on tags and groups firing multiple and/or specific automations inside of MailChimp.

So unfortunately in this use case, it has to be groups because 4 out of these 6 groups need to all trigger the same automation.  It’s a mess, and I was brought in to automate the existing system...in which automation was an afterthought when they originally created it. 🥴


@DavidLGS 

Can you provide more details about the data inputs you are trying to use and the desired data outputs?

I may be able to come up with some JavaScript Code for you.


@Troy Tessalone

Can you elaborate more? It’s a standard Typeform with a multiple selection option (6 different choices), and each choice corresponds to a different MailChimp group.

Any visitor to the TF can choose any combination of the 6 choices. And whatever they select, that’s what I want to send to MailChimp. It’s in the Loom video above, but if I need to make another for more clarification, just let me know!

I can hack my way through Java, but I’m willing to help anyone that’s willing to help point me in the right direction. :-)


@DavidLGS 

Would need to see the exact values being returned from the Typefrom Zap trigger step for all the possible options.

Can you share a screenshot of that?


 

This is also shown within the first 3 seconds of the Loom video in the first post.


@DavidLGS

I need to see the data as it’s returned from the Zap trigger step for the multi-choice field:

 


@DavidLGS 

 Here’s what I recommend instead, use MC Tags.

Then configure MC Custom Journey Automations to add Subscribers to Groups based on the Tags.

That would simplify it down to simply 1 Zap action: MC - Add/Update Subscriber

 

###

MISC

 

Otherwise, you’d need a Lookup Table step or to do the translation in the Code step since Mailchimp expects Group values to be in a certain format.

 

EXAMPLE

 

 

The Looping app can be used instead of Paths to handle a variable number of line items: https://zapier.com/apps/looping/integrations

 

However, if you’re trying to do this in the least amount of Zap steps, then you’d likely need to use the Mailchimp API, which is an advanced approach and probably not a path you want/need to go down.


 


Thanks, @Troy Tessalone. As I told Jillian, this is just one form in a massive 14-form system, all of which are automated and interconnected so using tags will not fit with the rest of the logic/architecture that I’ve set up. Aside from that, using tags would still run into the same problem as groups -- there still needs to be a “check” of which boxes were selected in order to apply the correct tags.

I actually prefer using the API and completely missed that Typeform has webhook capabilities. Thanks for pointing that out!


@DavidLGS 

I think you may want to give the MC Tags option serious consideration as it will be the easiest to implement.

Use the Zap Action: MC - Add/Update Subscriber

You can simply map the Typeform multichoice selections to this 1 MC field:

 

New Tags will automatically be created if those do not exist yet.

Then some simple MC Customer Journeys automations can be configured to trigger by Tag applied and add to Group.


Again, this will not work for this use case. You’re going to have to trust when I say it’s an incredibly complex, interconnected system of forms and multiple CJs triggered by multiple events in which I can’t do what you say. 
 

I'm a certified mailchimp expert, and I know that platform inside and out and what it can and cannot do. I’m at this point now because I’ve already tried what you’re suggesting 6 different ways. 


@DavidLGS 

Ok, I must be missing something from your pov, I’ll take your word for it.

Seems like these type of 2 step MC Customer Journey automation would achieve what I believe you are looking to implement once MC tags are applied to a MC Member via the Zap MC action step (Add/Update Subscriber).

Trigger: Contact tagged with Tag

Action: Add to Group

Note: Configure 1 per Tag involved.

 


In a simpler implementation, yes. I use them all the time. 


Hey @DavidLGS ! I just wanted to check in and see if you were able to workout a solution using the Zapier app Looping or the Mailchimp API ? After reading through this thread it seemed like those were the best possible options to cut down on tasks. 🙂


Hi, @TamRazzleDazzle. Still working on it.

Ultimately, I guess I’m not too worried about how many tasks it actually takes as long as the last step is the one and only time that MailChimp gets updated with the correct group choices.


@DavidLGS 

Mailchimp API via a Webhook action step in the Zap will be the way to go if there are 1+ Groups (aka Interests) to adjust.
https://mailchimp.com/developer/marketing/api/list-members/add-or-update-list-member/

 


Ah I see, that makes sense. Can I ask what you are using to try to work out a solution, the api route or looping? I would think that by using looping you could set it to update mailchimp as the final action after all the sorting? I am curious to see what you come up with! 🙂


Hi friends! I wanted to pop in and summarize some of the tips in this thread!
Ultimately it looks like given the complexity of the setup - Webhooks was the route that would have worked the best! 

Hi @DavidLGS 

Good question.

... if you’re trying to do this in the least amount of Zap steps, then you’d likely need to use the Mailchimp API, which is an advanced approach and probably not a path you want/need to go down.

 

Mailchimp API via a Webhook action step in the Zap will be the way to go if there are 1+ Groups (aka Interests) to adjust.
https://mailchimp.com/developer/marketing/api/list-members/add-or-update-list-member/

 

In case it’s helpful here’s the docs for Typeform’s API as well!