1. Introduction#

Welcome, friend! This reference tells you all you need to know about building Zap templates. Please reach out if you have questions.

Notes: Zap templates used to be called Shared Zaps, in case you're confused. Templates can only be published for Public or beta apps.

A Zap template is a pre-defined and curated example of an automated workflow. It allows you to propose recommended use-cases, and provides users with a guided setup experience including pre-filled options and fields so they don't have to create them from scratch in the Zap Editor.

One of the best parts about Zap templates is that they can be embedded in your app, keeping users on your site as the sign-up and setup experience happens in a pop-up.

The 3 goals of Zap templates are:

  • Provide a compelling use-case with a helpful description
  • Save users time by pre-mapping fields
  • Ensure that users don't run into errors by hiding unnecessary fields and required field mappings.

There are two main parts to a Zap Template:

  • The written title and description, where the use-case is explained, describing how it solves a particular problem, the way it works, and the change it produces in your workflow.
  • The configured Trigger and Action steps, where you'll pre-select specific options, map the appropriate fields, and offer specific help text if needed. Like user-created Zaps, the most basic Zap templates have only a Trigger and Action step, but they can have as many steps as you like.

These are some examples of popular Zap templates:

You can navigate to the Zap Template landing page from anywhere in the Developer pages via the navbar:

Know how this works? Open the Zap template creator.

↑ Was this documentation useful? Yes No

2. How To Create Zap Templates - Description#

A Zap template's description is the free-form text you can write for its title, value statement, and functionality details.


The title is extremely important because it's one of only two elements shown (the app logos are also shown) when a Zap template is embedded in an app (such as Eventbrite.com), on a site, or on a Zapier Zapbook landing page.

A title states the utility of the Zap in as few words as possible. It's clear and concise, names the apps involved, the functions of the Trigger and Steps, conditionals applied and nothing more.

Follow these guidelines when writing Zap template titles:

Use sentence case:

  • Right:Create Trello cards for new Wufoo form entries
  • Wrong: Create Trello Cards For New Wufoo Form Entry

Use present tense:

  • Right: Get Slack notifications for new Google Drive files in a folder
  • Wrong: Slack will notify you when a new Google Drive file is added to your folder

Use the word "new" for Trigger items: We want to make it clear that Zapier only catches new items that Trigger after the Zap is set up, like this: Add new Unbounce leads to a GetResponse list

Make titles plural: Zaps trigger on all future events, so be sure to pluralize the title, i.e. Add Google Sheets spreadsheet rows for new or updated Spotio pins

Respect app name styles: We all know SaaS apps can have a variety of spelling/styles. Make sure you check how to spell an app's name by referring to this handy list

Use interesting/appropriate verbs: Avoid the temptation to always say "Add" or "Create". If you're adding contacts to a mailing list, try "Subscribe new X contacts to a list on Y", or use something like "Log new completed X tasks on Y" when you're capturing items for a spreadsheet or database

Be Careful Using These Words in Titles#

Send - Use for emails and text messages but not data

  • Right: Subscribe new Gumroad customers to a MailChimp list
  • Wrong: Send new Gumroad customers to MailChimp

Get - Use when the creator of the Zap will be involved in the outcome, such as receiving an email or message

Save, Log or Archive - Use in conjunction with sheets or databases, or note-taking apps

Post or Share - Use when text or image is posted somewhere, such as a team chat app or social network

You - Use when a Trigger or Action is dependent or exclusively involves the creator of the Zap (e.g. Post your Tweets to LinkedIn as updates). If other people can trigger the Zap, don't use this.

I - Use when a Trigger contains "I" (e.g. Save new SoundCloud tracks I like to Google Drive)

Automatically - Since Zapier is an automation tool, avoid re-stating that fact in the title as it should be understood (or else every title could have it). OK to use "automatically" in the description though.

Sync - Zapier only works with new data and each Zap sends data one way, so "sync" isn't accurate—please don't use this, ever.

Value Statement#

You've set the user's expectations with the title of the Zap template, now it's time to spell out the problems it solves, how they should expect it to work after it's enabled, and how this automation ends up improving their workflow.

Don't just ask users if they want to accomplish what the Zap does, i.e. "Want to copy contacts from X to Y? Now you can." Instead, focus on the problem that led them to consider automation. Was it too much manual effort to perform by hand? Did it take too much time? Do they have to jump between multiple apps to find information?

Following this format makes it easier to write value statements:

  • Start by describing a problem, or empathizing with a need the user has.
  • Explain what happens when this integration runs.
  • Wrap up by concluding with how the user's new process will be improved.

Every single value statement for each Zap must be unique—it's not enough to replace app names and keep the same copy. We'll ask you for a revision with unique descriptions if so.

Some tips to help you:

  • 2-4 sentences
  • 1 paragraph
  • Present tense
  • Don't use the terms "Zap" or "Zap template" since they'll likely be unfamiliar to users, instead use "Zapier integration" or "Zapier automation"
  • Use the same app terms a user will encounter when setting up the Zap template (e.g. Don't interchange form "entry" with form "submission"—use the same term as used by the app)
  • OK to use "automatically" here, but don't use "sync"

Examples of good value statements:

Workflow: Trigger: Eventbrite "New Attendee" | Action: Zoho CRM "Create Contact"

  • Value Statement: Find yourself spending too much time adding event attendees to your CRM by hand? Now with the help of Zapier, the tedious work is done for you. This integration will add every new Eventbrite attendee to Zoho CRM as a new contact, saving you time for more important work.

Workflow: Trigger: Typeform "New Entry" | Action: Gmail "Send Email"

  • Value Statement: After someone fills out a form on your site, you'll want to hear about it or send them a follow-up email. This Zapier automation handles both gracefully, sending an email via Gmail to you or the form respondent whenever you get a new Typeform entry. You'll never have to send the same message over and over again.

Workflow: Trigger: Shopify "New Paid Order" | Action: Onfleet "Create Task"

  • Value Statement: Expedient order processing makes for happy customers. Make sure you act on every new delivery with this Zapier automation. It will capture every new order placed on your Shopify store after being set up, creating a delivery task for it on Onfleet so your team can fulfill it without delay.

If there's a potentially confusing characteristic about this Zap template, this is your chance to provide notice to the user with a one-line italicized "Note" (which can include markdown links), like this:

*Note: This automation doesn't log all-day Google Calendar events*

*Note: If you'd like to only capture contacts with a specific tag, try adding a [Filter step](https://zapier.com/learn/getting-started-guide/filters/) to this integration.*

Functionality details#

Note: Zap templates use markdown for title, link, and special note formatting. Refer to this guide if you're not familiar with markdown syntax.

How This App-App Integration Works#

This section spells out the future sequence of events involved in this Zap template, replacing the instances of "App" with the apps in question. Laid out as an ordered list of often 2 steps, "How this App-App integration works" is written in the present tense.

An easy pattern to follow is:

  1. This event happens in one app
  2. Zapier does this event in another app

Example: Trigger: Typeform "New Entry" | Action: Gmail "Send Email"

How this Typeform-Gmail integration works:

  1. A new entry is submitted to Typeform
  2. Zapier sends an email via Gmail

Example: Trigger: Trello "New Card" | Action: Slack "Channel Message"

How this Trello-Slack integration works:

  1. A new card is created on Trello
  2. Zapier posts the details to one of your Slack channels

Apps involved#

Titled "Apps involved," this section lists the apps (often two) that will need to be authenticated when setting up this Zap template. If it involves one of Zapier's native apps, such as email or RSS, you won't need to list it.

Example: Trigger: Trello "New Card" | Action: Slack "Channel Message"

Apps involved:

  • Trello
  • Slack
↑ Was this documentation useful? Yes No

3. How To Create Zap Templates - Trigger and Action Steps#

The most basic Zaps of all have a single Trigger followed by an Action. It is essential that you set these up correctly, and pre-fill all the choices you can so your users have a streamlined experience.

For any step, you'll want to select your chosen app from the "Selected API" list, and the Trigger/Action event. Doing so opens up the parameters you can configure for your users.

Example of a Trigger step with selected event:

Example of an Action step with selected event:

These options are available for most steps:

Pre-mapping Default Values#

This and the value statement are the most important parts of your Zap template configuration. Here you'll want to pre-fill the fields for an Action step using any fields you can from previous steps.

Incomplete descriptions and un-mapped fields are the most common causes for a Zap submission rejection, so please make sure to follow these instructions.

To get started, make sure you have a live Zap with the same Trigger and a working account connected.

Then, click the "Insert" link and find the fields you want to pass in, like this:

This dropdown offers sample data from a matching Trigger of a live Zap in your account. You will only see real fields if you set up a live Zap with the same Trigger and working account.

If your output is something more freeform, like a notification or message, you'll want to use a mix of static text and fields from your Trigger, like this:

You should always pre-map fields if:

  • There is a 1:1 relationship between the fields from a Trigger, and the Action fields, like when you're passing a contact from one CRM to another. You should always try to match up every field, like names and addresses, when possible in cases like that.
  • When you're creating a notification, logging a note, or sending a message, and you can predict the information a user would like to receive.

You should not pre-map fields if:

  • The fields are on the Trigger step, since you don't know the choices a user will make (like which board they want to check for new cards on in Trello).
  • You can't predict what the user needs. Example: A Slack channel message posted daily at the same time using Schedule. In these instances, you'll want to use the Help text override (read on).
  • You don't see any returned fields, because the Trigger app is completely custom, like Google Sheets. In these situations, Zapier can only see the contents of the Trigger step's returns when an account is authed, and so users must map fields themselves.


Allows you to override the default value for a field's label. You can leave this blank most of the time, but it's useful to change the label when you're relying a filtered result from the Trigger—see Filters below.

Help Text#

Allows you to override the default help text. Use this to include instructions or suggestions (including links to other help docs) for the user, especially when you don't see a field to insert from the Trigger, or can't know. Example:


Visibility controls whether the field is visible to the user by default, or hidden under the "Show advanced options" menu shown here, or not visible at all:

Always Whitelist important fields you pre-map so the user can see what you did. You should also consider whitelisting specific fields on the Trigger step when your use case calls for it. Trello, for example, will trigger on every New Card across any board/list by default, so making sure users see the option to select a specific list can make your Zap more helpful.

Graylist helpful but not very important fields, especially when your Action app has many of them (like extensive Shipping and Billing related sections with multiple fields for addresses). This is the default setting for non-required fields.

Blacklist fields if and only if changing anything about the field will break the Zap, cause errors, or there is no possible alternative field. When in doubt, leave this graylisted.


Leave this blank.

Multi-Step Zap templates#

Zap templates can have any number of steps, just like user-created Zaps. Only Zapier staff can add these steps due to their advanced nature, so if want to set up a Multi-Step Zap template, please reach out to partners@zapier.com with your request, and we'll be happy to set it up for you.

Here are some examples of Multi-Step Zap templates:

↑ Was this documentation useful? Yes No

4. Submit your Zap Templates#

All Zap templates must be reviewed by Zapier staff before they show up on the site. Set the visibility to "For Review" when you're ready. We will contact you once the review is done (usually takes 1-2 weeks).

↑ Was this documentation useful? Yes No

5. How To Use Zap Templates#

Zapbook Pages#

The Zapbook is Zapier's directory of apps. Every app has a landing page on it, and users can find all of your published Zap templates there, as well as see a list of your available Triggers and Actions. The Zap templates shown at the top of the list are a function of popularity and usage, helping people find the most useful examples first.

Your Zapbook page URL is in this format: https://zapier.com/apps/todoist/integrations

Every pair of apps also has a Zapbook page automatically. Just follow up your Zapbook link with another app's slug, like this: https://zapier.com/apps/trello/integrations/google-sheets. You're guaranteed a landing page no matter what app, with these, and any Zap templates you have will show up appropriately. Another advantage is that if you don't have a Zap template for that specific app pair, we'll try to show the most similar Zaps you do have.

Embedding Your Zaps#

NEW: Check out our slide deck on leveraging Zapier's embedding tech and its benefits to your app, or get started with our Embedding Generator

There are several advantages to embedding your Zaps on your site/app:

  • Completely customizable presentation of the Zapier experience to fit your app
  • Users can see examples of the most popular use-cases, or the ones you want to recommend, easily
  • People are less likely to give up looking for solutions when these are presented as examples
  • Dynamic Zap lists will keep updating themselves as new Zaps are introduced or fixed
  • You'll start receiving statistics on Zap usage from embedded Zaps - impressions you gain because your Zaps are viewed in other apps

"Since my first day at Unbounce, I’ve heard our customers ask for integrations that would simplify their workflows and automate campaigns across different tools — preferably with no coding! When Zapier launched their Partner API it allowed us to do just that. With one singular experience within the Unbounce builder, our customers can now publish campaigns faster than ever before. We’ve seen the embedded Zapier experience reduce time-to-value for new customers and help realize the ROI with Unbounce much more quickly." - Meagan Sobol, Unbounce

You can embed Zap templates in two ways:

  • Using our Partner API which gives you total control over the look and feel of the Zapier experience inside your app. Read more about the API here.
  • With our Embed widget which allows you to display your Zap templates anywhere with just a small snippet of Javascript. Generate your own Embed Widget snippet with the instructions below or by using our Embed Widget Generator.

Embed Widget FAQ:#

Generate Dynamic Lists of Zaps - Recommended

<script src="https://zapier.com/apps/embed/widget.js?services=APP&container=true&limit=10"></script>

  • APP is the name of your service
  • limit=N is the max zaps to show when using the dynamic widget

Generate Static Lists of Zaps:

<script src="https://zapier.com/apps/embed/widget.js?guided_zaps=XXX,XXX"></script>

  • XXX is a Zap ID

Additional options for both the dynamic and static versions of the widget:

  • you can use theme=dark if your website has a dark background

Problems with document.write on load?

Add this parameter with any ID you want: html_id= . Then you'll want to have the embeds inside a div with the same id—this will cause the embeds to load with the div, and not with document.write as they do otherwise. Example:

<div id=foo>
<script src="https://zapier.com/apps/embed/widget.js?services=mailchimp&html_id=foo"></script>

Need to load templates asynchronously / non-blocking?

You can load templates asynchronously (without blocking the rest of your page's content) by adding the async attribute and html_id parameter to the script tag.

Note: in order for this to work you must also use the html_id= parameter to tell the widget loader where in the DOM you wish the templates to appear.

<div id="foo"></div>
<script async src="https://zapier.com/apps/embed/widget.js?services=mailchimp&html_id=foo"></script>
<!-- ...other html that will be loaded before the templates... -->

Support for React The widget can be used within React by using a class component that dynamically creates a script tag onComponentDidMount and sets the script src to the widget.js URL containing the necessary params. In addition, the URL should contain a html_id param set to the id of an empty child element (div) rendered by the component. The script tag should then be inserted into the DOM by either:

  • Getting the container element by id and appending the script
  • Using a ref={} in the component for a parent element that will contain the script
  • Or, appending the script to the document body.

Embedded Experience Showcase#

  • Unbounce provides a native-feeling integration experience by letting users set up Zaps, view their active Zaps, and even edit Zaps right from within Unbounce.
  • Facebook lets you search for and configure a Zap from within the Lead Ad Campaign Manager.
  • MeisterTask provides an intuitive, styled interface to search for any MeisterTask Zap template.
  • Trello leverages the Partner API to let the user manage their Zapier experience from their dashboard within Trello.
  • Zoho Connect lets users set up Zaps from within the Zoho Connect app.
  • Eventbrite shows their users their most popular Zap templates to make it easy to export attendees.
  • Typeform presents popular Zap templates to their users when they are setting up their forms and has found it to reduce churn.
  • Help Scout uses Zapier to automatically extend their integrations directory, as well as offering Zapier as a fallback if no direct matches are found.
  • Trainerize offers the best Zap templates for their users by use case.
↑ Was this documentation useful? Yes No

6. FAQ/Advanced Tips#

  • If your Trigger app has a field that needs to be converted, split, or modified in any way, like splitting a full name, asking us to add a Formatter step before the Action is best.
  • If you want to create a Zap template that only triggers for some events, a Filter step may be the solution.
  • Zapier has a universal syntax for modifying dates and times. This means that even if your Trigger app only returns one time field, you could add +1d to have the Action use the day after.
  • Zaps are usually reviewed and either published or rejected back to you with feedback within two weeks after submission. Please reach out to partners@zapier.com if they take longer than that.

Still have questions?#

Reach out to us at partners@zapier.com with any questions or comments, including suggestions for how we can improve this documentation!

↑ Was this documentation useful? Yes No
Get Help