Skip to main content

TL;DW: Today we’re beta / soft launching a new “Sub-Zap” capability in Zapier. This makes it easy to build much more manageable Zaps whenever you find yourself reusing or recreating the same actions across many Zaps. You can define inputs and outputs, then use the same functionality across as many Zaps as you like. Try it in your Zaps today! https://zapier.com/apps/sub-zap-by-zapier/integrations

 

TL;DR: Watch the video demo showcasing 2 Zaps reusing a Sub-Zap that looks up a customer: https://www.youtube.com/watch?v=QsunZFwGIQM.

 

Hi folks! Over the years we’ve watched customers just like you build incredibly powerful and deeply interconnected systems of Zaps. In some cases, folks spent a lot of time updating the actions they share across those Zaps. For example, if a spreadsheet was used in a couple dozen Zaps, updating a single column might entail updating a couple dozen Zaps to match. That was incredibly tedious and totally counter to our mission to democratize automation.

So today we’re introducing a new primitive we hope will make it easier to share those actions and employ an “update once, use everywhere” sort of workflow. We call it “Sub-Zap by Zapier”. You can start using it today! Here’s how it works:

 

First, you’ll create a Sub-Zap using the “Start a Sub-Zap” trigger and the “Return from a Sub-Zap action.

In the Sub-Zap’s “Start a Sub-Zap” trigger, you’ll define the input fields like this:

In the Sub-Zap’s “Return from a Sub-Zap action, you’ll define the output fields like this:

 

Second, you’ll go to a different Zap and use the “Call a Sub-Zap” action.

You’ll be prompted for the input fields like this:

And you’ll receive the output fields like this:

 

Finally, you’ll enable both Zaps and let them run like normal!

 

If you’d like to see a live demo, check out our 10 minute example where I showcase a 3 Zap system where 2 Zaps reuse the functionality present in a single Sub-Zap: 

 

If you’d like to give it a try, we’ve opened it up to the public here: https://zapier.com/apps/sub-zap-by-zapier/integrations

 

If you have any feedback, feel free to respond here or email us at contact@zapier.com!

@bryanhelmig This is great! Going to be super useful!


This is awesome!


I just pushed a couple improvements wherein the setup flow is a little less cranky (we had a bit of a chicken and the egg problem during testing steps which is less cranky now), a squashed bug around listing and selected Sub-Zaps when setting up the Call a Sub-ZAP action, and a few other quality of life improvements around error and help messages.


This is so awesome, but it does not seem to work yet or atleast not for me when i also have a loop in the sub zap.


This is so awesome, but it does not seem to work yet or atleast not for me when i also have a loop in the sub zap.

Multiple returns will not work properly @Jeff Thorns, I believe only the first Return From a Sub-Zap is expected to fire correctly. If folks think looping or multiple returns are really important, please let us know and we’ll see what we can do! Beyond that, if you have specifics of a Zap system you’re trying to get working, please email us contact@zapier.com and we’ll see what we can get going!


This is so awesome, but it does not seem to work yet or atleast not for me when i also have a loop in the sub zap.

@Jeff Thorns what you can do is fire the return only on the last iteration of the loop like I build in this Zap:

You would want to include a queue delay to avoid throttling plus a filter just before the return to make sure the return only fires on the last iteration of your loop

 


@Jeff Thorns 

To elaborate on what @MarijnVerdult mentioned, make sure to check this help article: https://zapier.com/help/doc/loop-your-zap-actions

 

How do I stop a loop from running in subsequent action steps?

All actions after the looping step will run for each iteration of the loop. If you don’t want an action step to loop:

  • After the last step you want to loop, add a filter step.
  • Set the filter to only continue if the value loop_iteration_is_last matches the (Boolean) Is True condition.

The filter will run in every loop but will only pass in the last loop. Any actions step after the filter will run once in the last loop and use only 1 task.


@bryanhelmig 

Perhaps a better UI solution to the required VS optional inputs/arguments list in the Sub-Zap Start trigger would be to have 2 separate sections (required and optional) for the Inputs/Arguments Lists.

 

Add the word "required" to the label if you would like it to be required in the calling Zap.

 

Thoughts?

 

 

Set up Action

 


@bryanhelmig

Perhaps a better UI solution to the required VS optional inputs/arguments list in the Sub-Zap Start trigger would be to have 2 separate sections (required and optional) for the Inputs/Arguments Lists.

@Troy Tessalone good suggestion! To clarify -- you can name it less awkwardly: “First Name (required)” is sufficient to trigger the required flag. You can use spaces and other characters. I’ll wait for more signal from other user before adding this though.


@bryanhelmig Thanks for considering. I think it’s valid to avoid typos/confusion and allow for cleaner naming conventions. Regardless, happy to have this capability in a Zap app.


@bryanhelmig 

When testing, if a Sub-Zap returns an output parameter with an empty value it comes thru with “missing sample data”, but should show as empty.

See example screenshot.

Q: Is this a bug?

 

 


@Troy Tessalone done! Thanks for the suggestion! 🙌


Loving this, thank you! Quick question - do sub-zaps count as zaps in the price plan?


Hi @baldarab 

A Sub-Zap is a Zap in and of itself, so yes it would count as a Zap.


Thanks @Troy Tessalone . So just need to factor in simplicity -v- plan boundaries, and intelligently plan where subzaps may be worth grouping into one. As I say, loving the tool, but just wanted to be clear on the parameters - thank you!


That’s great, I waited for this since day 1 on Zapier 🙂 Well done!

So I started using it and I love it! Just a couple of notes.

Having a sub zap doesn’t necessarily mean having data back to the main zap that triggers it. Also, sub zaps with paths require a return action for each path for them to work.

Here’s my scenario.

I have created a calendar reminder system that triggers on multiple calendars (multiple zaps), get the data from the calendar, and sends them via email and SMS (multiple paths).

So now, in order to achieve this, I have multiple zaps triggered by multiple calendars. What I’m trying to do is to have multiple zaps with the same calendar trigger, that simply send that info to a single sub zap that sends SMS and emails. Easier to maintain! Unfortunately, I had to create a return action for each path even if I don’t return any data to the original zap. 

It would be great to have the ability not to have the return action if there’re no data to return.

I hope it makes sense at all.


Hi @neko 

Perhaps using Webhooks to trigger other Zaps would be a better implementation solution for your described use case, since there is no expectation to return data back to the originating Zap as is the purpose of Sub-Zaps.

Webhooks: https://zapier.com/apps/webhook/integrations#triggers-and-actions


I have the same scenario as @neko. Unfortunately Webhooks are not as easy to setup as a Sub-Zap, so hopefully this scenario (Just return) will be taken into consideration 🙏


Hi @neko and @jphorn!

I don’t see that as an existing feature request for Sub-Zap by Zapier. I’d suggest that one (or both of you, even) contact our Support team to request that :)

Here’s a shortcut that will get you to the screen of our contact for where you select the app, then you could even link to this Community thread to explain your use case and give some context.


@nicksimard Thanks, submitted.


Hi @neko and @jphorn!

I don’t see that as an existing feature request for Sub-Zap by Zapier. I’d suggest that one (or both of you, even) contact our Support team to request that :)

Here’s a shortcut that will get you to the screen of our contact for where you select the app, then you could even link to this Community thread to explain your use case and give some context.

Thaks @nicksimard , when I did they sent me here actually 🙂 I’ll submit another one


Is it possible to trigger zaps across user accounts?


Hey @XRay Tech!

If you mean sending from a Zap in Account A to a Sub-Zap in Account B, that’s only possible if you’re a member of different Teams on Zapier. You’d then have access to your personal account and any team accounts you’ve got access to:

 


When I call a sub-zap from multiple other zaps will this sub-zap complete the calls made to it in sequential order or will it execute them in parallel?


Hi @tpretori!

If it’s super important to have things happen in a specific order, I don’t know that you could rely on this being 100% consistent when calling a Sub-Zap from multiple other Zaps. If you can expand on what your use case is, we could see whether there’s anything you can do to make sure your Zaps trigger in the order that you need them to :)