How to Get Started with Filters on 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.

How 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.

Field conditions Field conditions 2

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.

Filter Tips and Tricks#

Check out some of the neat things you can do with filters, here.

↑ Was this documentation useful? Yes No (Suggest Edits)

Use Filters so your Zap only triggers on certain days/times#

Filters can be used to narrow the time that your Zap sends data to the action. There are two important factors to consider first:

  • How the Trigger app provides date/time info. Depending on the format, we may not be able to filter by day and/or time.
  • If you set up a Zap to do this, any tasks that come through outside the time set by your filters will never be sent to the action.

Filtering for Days#

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:

Gmail timestamp

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:

Friday filter

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:

Weekend filters

"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.

Filtering for Times#

Filtering for times can be tricky, because times can come in some different formats. If the service uses a 24 hour time, your filter will look something like this:

24 hour filter

This will only Trigger your Zap when the Trigger comes in during the 5:00 PM hour. The important parts of this filter are 1) A space before the "17", which keeps things at the 17-minute mark from Triggering the Zap, and 2) A colon at the end, which prevents items at the 17-second mark from Triggering the Zap.

If the app uses 12 hour time, it also needs to include AM/PM for the filter to work. If it does, then your filter will look something like this:

12 hour filter

This will also Trigger your Zap during the 5:00 PM hour. We use AND logic between the filter because it needs to be both 5:00 and PM for the Zap to get the logic we want.

Filtering Between Certain Dates and Times#

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.

date and time range in a filter

Comparing to Today's Date#

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:

time_stamp

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:

if-then

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:

true

↑ Was this documentation useful? Yes No (Suggest Edits)

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.

As of the moment, this is not possible using 1 Zap. But 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".

Apple

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

Alpha-Apple

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

Banana

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

Beta-Banana

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.

↑ Was this documentation useful? Yes No (Suggest Edits)

Using Filters to fix Empty field values#

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.

Zap 1 Zap 1

  • 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.

Zap 2 Zap 2

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.

↑ Was this documentation useful? Yes No (Suggest Edits)

Common Problems with Filters on Zapier#

Common Problems with Filters#

  • 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.

I want to do an If-Else/Branching/Multiple Outcome Zap#

Multiple Zaps with filters are needed to create this workflow. More info can be found here: https://zapier.com/help/using-filters-and-multiple-zaps-get-multiple-outcomes-trigger/

↑ Was this documentation useful? Yes No (Suggest Edits)

Filters Types#

Working with filters can be confusing. Here's a guide explaining more about the different conditions you can use.

Below would be a list of the filter conditions. To demonstrate how the condition works, a value will be specified. Different fields would then be supplied to be tested against the value.

Contains#

value: brown fox

If your field is "The quick brown fox," the Zap will go through because the field contains the value.

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

Does not contain#

value: brown fox

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"

Exactly matches#

value: The quick brown fox

If your field is "The quick brown fox", the Zap will continue to the next step because the field in this instance, exactly matches the value

If your field is "The quick lazy dog," the Zap will not continue to the next step because the field does not exactly match the value

Does not exactly match#

value: The quick brown fox

If your field is "The quick brown fox jumps over the lazy dog," the Zap will not continue to the next step because the field exactly matches the value

If your field is "The quick lazy dog", the Zap will not continue to the next step because the field in this instance, does not exactly match the value

Exists#

The “exist” condition does not have a value. Its purpose is to let the Zap proceed if there is a field and filter out data if there's none

If your field has any data for the value, the Zap will continue to the next step because the field exists.

If your field does not contain data the Zap will not continue to the next step because the field does not exist.

Does not exist#

The “does not exist” condition does not have a value. Its purpose is to filter out the field if it exists or let the Zap continue to the next step if there's none.

If your field contains data, the Zap will not continue to the next step because data for the field exists.

If your field does not contain data the Zap will go through because data for the field does not exist.

Starts with#

value: The quick

If your field is "The quick brown fox," the Zap will continue to the next step because the field starts with the value

If your field is "The lazy dogs jumps" the Zap will not continue to the next step because the field does not start with the value

Does not start with#

value: The quick

If your field is "The quick brown fox," the Zap will not continue to the next step because the field starts with the value

If your field is "The lazy dogs jumps," the Zap will continue to the next step because the field does not start with the value

Ends with#

value: brown fox

If your field is "The quick brown fox," the Zap will continue to the next step because the field ends with the value

If your field is "The lazy dogs jumps" the Zap will not continue to the next step because the field does not end with the value

Does not end with#

value: brown fox

If your field is "The quick brown fox," the Zap will not continue to the next step because the field ends with the value

If your field is "The lazy dogs jumps" the Zap will continue to the next step because the field does not end with the value

Is in#

"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.

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#

"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.

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)

Greater than Number#

value: 100

If your field is "101" the Zap will continue to the next step because the field is greater than the value

If your field is "99" the Zap will not continue to the next step because the field is not greater than the value

Less than Number#

value: 100

If your field is "101" the Zap will not continue to the next step because the field is not less than the value

If your field is "99" the Zap will continue to the next step because the field is less than the value

After date/time#

value: 12-25-2020 00:30 (MM-DD-YYYY)

shows a filter with the setting "Only continue if field after 12-25-2020 00:30"

If your field is "12-25-2020 00:31" the Zap will continue to the next step because the field is after the value

Shows a green validation message "12-25-200 00:31(Date/Time) After 12-25-2020 00:30"

If your field is "12-25-2020 00:29" the Zap will not continue to the next step because the field is not after the value

Shows a yellow validation message "12-25-200 00:31(Date/Time) After 12-25-2020 00:30"

Before date/time#

value: 12-25-2020 00:30 (MM-DD-YYYY)

Shows a filter with the configuration "Only continue if field before 12-25-2020 00:30"

If your field is "12-25-2020 00:31" the Zap will not continue ot the next step because the field is not before the value

If your field is "12-25-2020 00:29" the Zap will continue to the next step because the field is before the value

↑ Was this documentation useful? Yes No (Suggest Edits)
Get Help