Level up with Zapier!

Filters are a way to ensure actions get performed only on the items you want. With filters, you set a specific condition (e.g., when an "email address" field contains "zapier.com") to get to the granularity you need. When the data from your Zap meets the conditions of a filter, it proceeds to the next action(s) in your Zap. If a filter stops an item, then no further actions are performed.

Filters are an optional part of setting up a Zap, but they're a great way to make sure Zaps only continue for certain items. For instance, you can set up a filter to only capture emails that contain a specific subject line, or only customers who purchase a specific product.

To get started adding a filter, click the + icon between the steps you wish to add the filter between and choose to add a Filter.

When creating a filter, there are 3 pieces that need to be filled out.

The Field, which you choose from the leftmost dropdown. This tells your Zap what specific spot from the app in your previous step(s) to check for data to filter against.

The Condition, which you choose from the center dropdown. This is the logic applied by your filter.

The Value, which you input in the right-most field. This is the value your filter checks against the logic.

If you want to create an additional filter, use the "+ AND" button to create an AND filter, which means the data must pass all filters in order for the Zap to continue.

Use the "+ OR " button to create an OR filter, which means only one filter condition needs to be met for the Zap to continue.

If your Trigger data includes the day of the week in any of the fields, you can have your Zap only Trigger on certain days. For example, here is how Gmail passes along the date and time:

Since days of the week are present, they can be used in the filter. If a Zap were being set up to only Trigger on Fridays, the filter would look like this:

The "contains" condition is used because there will be other date/timestamp information coming from the field, The "exactly matches" condition would prevent the data from passing the filter conditions in this scenario.

To have your Zap only trigger on weekdays, the filters would look like this:

"AND" are used because both filters need to be true in order for the Zap to not Trigger on weekends. Using an "OR" filter would trigger the Zap all 7 days of the week because one filter condition would always be true, and therefore allow the Zap to continue to the next step.

If your Trigger sends along a date and time field, you can use the "After Date/Time" and "Before Date/Time" filters to specify a date and time range. The tricky part to remember is that the Date/Time filter is going to look for a full date and time - you can't specify one or the other.

In this example, the Zap will only continue to the next step if the Trigger was updated between 2015-08-15 3:00 AM and 2015-08-25 7:00 AM.

If you wanted to check out a "Due Date' that is being passed from a trigger, and only wanted a Zap to fire when that date matches today's date, you can use the Filter action to accomplish this.

First, you will want to generate a timestamp for today to be used in comparison in the following steps. Using our Dynamic Time Modification options, generating this timestamp is simple:

This would take in the long form time and date from our Zap Meta Human Now modification and output a simple MM/DD/YY set to today's date. We'll then combine this with another Formatter step to compare the input date from the trigger (our task's due date in this example) to this new, standardized date.

Using the Spreadsheet-like Formula formatter step, we can do a simple IF/THEN-like comparison of the date that we generated above, relative to the due date of the trigger we want to match:

Finally, we add a filter step that checks the output of that formula for it's true or false value. If the output is true that means that the input date matches today's date and we do want the Zap to continue running:

Using Filters and Multiple Zaps to Get Multiple Outcomes/Take Multiple Actions from a Trigger#

One question we usually get in Zapier support asks if Zaps are capable of doing IF-THEN/Branching logic.

For Professional, Professional Plus, and Teams plan accounts, this type of conditional logic is possible with Paths.

Please note: Paths are currently in beta and may not yet be available for all eligible accounts. If you don't see it available on your account at this time, subscribe to our Updates blog to know when it may be available for you.

We can produce this workflow using multiple Zaps.

If you've ever wanted a Zap to take different actions based on the data coming over from the trigger app, here is a guide showing you how to set that up using multiple Zaps.

For example, let's say you have a Shopify store that sells 2 items:

Apple

Banana

You want to add the email of a buyer to a specific MailChimp list depending on the item they buy. What you'll want to do here is create 2 Zaps.

For illustration purposes, we're going to call the first Zap A and the 2nd Zap B:

So for Zap A, we'll set up a filter for when the Shopify order details contain "Apple".

And in setting up the MailChimp action, we'll choose the "Alpha-Apple" list from the drop-down.

For Zap B, we'll set up a filter for when the Shopify order details contains "Banana"

And in setting up the 2nd MailChimp action, we'll choose the "Beta-Banana" list from the drop-down.

To summarize. If someone purchases an Apple from your Shopify store, this would successfully pass the filter conditions set up in Zap A and get added to the MailChimp list Alpha-Apple. If someone purchases a Banana, this would successfully pass the filter conditions set up in Zap B and then be added to the list Beta-Banana.

If there were additional lists you wanted to potentially add to, we'd then add another Zap per list and adjust the filters for the new criteria. You can find more specific instructions for setting up Custom Filters here.

Here's an example of when you may want to use multiple zaps and filters to get around a Required field. Let's say I have a zap that sends new Google Contacts to Salesforce as Leads. Salesforce requires a Company name, but sometimes my Google Contacts won't have a company name, and I'm okay with that. To help get around that, I'll set up two zaps:

In my first zap, I set up a filter so that the zap only continues to the next step when there is a company in Google Contacts. Because of that, I map the Company field across when setting up the action.

In my second zap, I just copy my first zap and make two changes: I change the filter condition to "Does not Exist", and manually enter in a default company name since there won't be one in Google Contacts.

The end result is that when I have a company name from Google Contacts to send to Salesforce, it gets sent across. When I don't, a generic dummy name is used instead to avoid errors.

If you have multiple filters and want them all to apply to each task, make sure to force them to use AND logic. You can create AND filters using the "Add AND Filter" button under each custom filter.

If you use the "Exactly matches" condition, sometimes that will filter more than you expect. Unless there are multiple values coming through for the field your filter is monitoring, you should use "Contains" instead to avoid that problem.

If you use AND filters and they are both looking at the same field, it's more likely that your Zap will be filtering every triggered task. Unless you are absolutely sure there is more than one value you need to filter for that field, multiple AND filters for the same field should be avoided.

The value field of a filter has a 255 character limit.

"Contains"/Does Not Contain" and "Is in list"/"Is not in list" filters are not case sensitive. "Exactly Matches" filters are case sensitive.

If your field is "The quick brown fox," the Zap will not continue to the next step because the field in this instance, contains a value you've asked your Zap to watch for and not continue if it is found.

If your field is "jumps over the lazy dog," the Zap will continue to the next step because the field does not contain the value "brown fox"

"Is in" filters are used if you want to see if the incoming data matches a value in a list. For example, if you had 3 values "Value 1, Value 2, Value 3", it will match the filter if the value from the trigger was one of those options. This filter is not case sensitive.

value: apple, banana, carrot

If your field is "banana," the Zap will continue to the next step because the field is in the list (value)

If your field is "durian" the Zap will not continue to the next step because the field is not in the list (value)

"Is not in" filters are used if you want to see if the incoming data does not match a value in a list. For example, if you had 3 values "Value 1, Value 2, Value 3", it will match the filter if the value from the trigger was not among the options. This filter is not case sensitive.

value: apple, banana, carrot

If your field is "banana" the Zap will not continue to the next step because the field is in the list (value)

If your field is "durian" the Zap will continue to the next step because the field is not in the list (value)