Skip to main content
A Conditional Split step checks a condition and sends each contact down the Yes path or the No path. In Automations, open an automation, add Conditional Split from the Control group, and click it. The Presets tab has ready-made conditions in six groups: Orders, This checkout, Products, Conversation, Tags and Contact. The Custom tab lets you build your own rules. The presets that you see depend on the trigger of the automation and on your store. Each section below covers one group of presets.

Conditions on the order history of the customer

These presets of a Conditional Split check all past orders of the contact, with any trigger. Orders placed checks how many orders the contact placed: is at least, is exactly, is at most, or is zero times. Number of orders and Total spent compare the number of orders or the money spent with a value. Has used discount code checks one exact code. Has used discount code starting with checks codes that start with your text. Has used a code from TextYess discount checks codes of one TextYess discount. Each of these presets has a Time period, for example In the last… 30 days or Since this flow started. On a Shopify store, the group also has Orders fulfilled and Orders cancelled. Orders fulfilled counts the orders that became fully fulfilled in the time period. A partly fulfilled order does not count. Orders cancelled counts the orders that the store cancelled in the time period. Both compare the count like Orders placed: is at least, is exactly, is at most, or is zero times.

Filter past orders by product or collection

Orders placed, Number of orders, Total spent, Orders fulfilled and Orders cancelled can count only some of the contact’s orders. Open the condition and add a product filter, a collection filter, or both. Each filter is optional.
  • Product: orders with a line of a product that you pick from your Shopify catalog. Shopify stores only.
  • Typed title: orders with a line whose title is exactly this text. Upper and lower case do not matter, so “serum” matches “Serum”. “Serum” does not match “Vitamin C Serum”.
  • Collection: orders with a product that is in the collection today. Shopify stores only.
Several values in one filter mean “any of them”. If you set a product filter and a collection filter, an order must match both, on the same line or on two lines. An order counts once, even when it has two lines of the product. Total spent adds the full total of each matching order, not only the price of the products. A line that you removed with a Shopify order edit does not count. A refunded line still counts. You can add a maximum of 50 products, 50 typed titles and 20 collections. Each preset counts by one date. Orders placed, Number of orders and Total spent use the order date, and a cancelled order still counts as placed. Orders fulfilled uses the date when the order became fully fulfilled. Orders cancelled uses the date of the cancellation. If you delete a product in Shopify, its past orders match only by title. The editor then shows the product as Not in store. To keep these orders in the condition, select Use title instead. If you delete a collection in Shopify, the collection matches no order.
On a store that is not on Shopify, you can add typed titles only. The editor does not offer Orders fulfilled, Orders cancelled or collections. If a flow uses them there, publish stops with an error.
On a Shopify store, filtered conditions, Orders fulfilled and Orders cancelled read the order history from Shopify each time a contact reaches the step. If Shopify does not answer, the step fails. It never guesses a count, because a wrong zero sends the message to the wrong people.Shopify shows an app only the last 60 days of orders, unless the app has permission to read all orders. Without this permission, Orders fulfilled and Orders cancelled fail. The other filtered conditions fail when their time period is Any time or starts more than 60 days ago. To give the permission, reconnect Shopify from TextYess.

Conditions on the order that started the automation

With the triggers Order Created and Order Fulfilled, a Conditional Split can check the order itself. Order payment status checks if the order is paid, pending or refunded. Order fulfillment status checks if it is fulfilled. Order shipping country compares the country. Order has discount code checks a code. Order has line item checks a product title, SKU, variant or vendor. Order payment method checks the payment method, for example “COD”. Order total compares the total with a value. Order has tag checks a tag of the order. These presets do not show with other triggers.

Conditions on the abandoned checkout

With the trigger Abandoned Checkout, the This checkout group of a Conditional Split checks the cart. Cart value and Checkout total compare the total. Checkout item count compares the number of items. Checkout has product checks a product title, SKU, variant or vendor. Checkout has product in collection checks a Shopify collection. Checkout has discount and Checkout discount amount check the discount. Checkout country compares the country. Has abandoned checkout answers yes or no. With Product Viewed, Product Added to Cart and Product Back in Stock on Shopify stores, Started checkout and Added product to cart count the checkouts and carts of the contact.

Conditions on the product

With the triggers Product Viewed, Product Added to Cart, Product Back in Stock and Purchase Intent, the Products group of a Conditional Split checks the product. Product price compares the price with a value. Product title checks if the title contains, does not contain or equals your text. Product in collection checks if the product is in a Shopify collection. It works only on Shopify stores, and not with Purchase Intent.

Conditions on a message or email you sent

The Conversation group of a Conditional Split checks a message that the automation sent before. Previous message status checks the last WhatsApp message of a Send Message or AI Message step before it: was sent, was delivered, was read, failed, or did not fail. Previous email status checks the last email of a Send Email step before it: was opened, was clicked, was delivered, bounced, or did not bounce. Add a Time Delay before the split, so the contact has time to read or open. The automation cannot be published if the send step is missing.

Conditions on tags, phone number and email engagement

In a Conditional Split, Contact has tag checks a tag of the contact. It is available for Shopify stores. It reads the tags of the customer in Shopify. When Shopify does not find the customer, it reads the tags of the contact in TextYess. Order has tag checks a tag of the order, with order triggers. Phone number checks the start, the end or the full number, for example “starts with +39” to find Italian numbers. It shows with triggers that start from a contact, not with order, checkout or webhook triggers. Email engagement checks if the contact opened or clicked any email from you in the last 1 to 3,650 days. Email engagement and Previous email status show when email is on for your store.

Time periods in conditions

Presets that count orders, codes, checkouts or carts in a Conditional Split have a Time period. Any time counts everything. Since this flow started counts only what happened after the contact started the automation. In the last… counts the last minutes, hours, days or months. After a specific date and Before a specific date use a calendar date. Between (relative)… uses a range like “7 to 14 days ago”. Between dates… uses two calendar dates.

Check if the customer already bought before you send a message

To skip a message for customers who already bought, add a Conditional Split before the message. In Automations, open the automation and add the step. On the Presets tab, pick Orders placed, choose is zero, and set the Time period to Since this flow started. Connect the message to the path for no orders. Leave the other path empty: the automation ends there. The ready-made template Abandoned checkout recovery works this way. TextYess finds orders by the phone number and the email of the contact.

Combine several conditions in one Conditional Split

On the Presets tab of a Conditional Split, you can add more than one preset. All presets must match for the Yes path. On the Custom tab, you build rules in groups. Click Add condition to add a rule and Add group to add a group. Inside a group, next to Match, choose all or any: all rules must match, or one is enough. Between groups, choose and or or. If the condition was made in advanced mode, the editor shows “This condition was created in advanced mode”.

Write true or false in a Conditional Split custom rule

On the Custom tab of a Conditional Split, type true or false in the value box. Use lowercase and no quotes. The rule compares text exactly, so True, "true", yes and 1 do not match. This works only on a field that stores text. For example, a Short text attribute stores true. Pick the attribute. Choose is equal to. Type true. Contacts with true take the Yes path. All other contacts take the No path, also contacts with no value. To find false, use is equal to false. With is not equal to true, contacts with no value take the Yes path.
A custom rule cannot read the value of a boolean field, for example a Yes / no attribute. is equal to always takes the No path. is not equal to always takes the Yes path. No error shows. is not empty shows only that the field has a value.To branch on true or false, use a separate Short text attribute. You cannot copy a Yes / no value into it. Write the text value with the Update contact attribute step.

Yes and No paths of a Conditional Split

A Conditional Split has two paths. The Yes path runs when the condition matches, and the No path runs when it does not. The canvas can show clearer names, for example “No orders” and “1+ orders”, or “€100+” and “Under €100”. A path with no steps ends the automation for those contacts. To exchange the steps of the two paths, click Swap branches in the panel of the step.