---
title: "Storefront behaviour triggers - Workflow Suite"
description: "Start workflows from what shoppers do: product views, searches, cart changes and checkout errors. Best effort, and only with the visitor's consent."
canonical: "https://docs.workflow-suite.app/storefront-behaviour-triggers"
---

# Storefront behaviour triggers

> [!WARNING]
> **Best effort, and only with consent**
> These triggers are reported by the shopper's browser through a web pixel. They only arrive when the visitor has given analytics consent, and an ad blocker, a closed tab or a lost connection drops an event without a trace. Use them for signals and counters, never for anything that must happen for every shopper. For that, use order and checkout events. See [Shopify events](https://docs.workflow-suite.app/shopify-events.md).

## The triggers

| Trigger | Starts when |
| --- | --- |
| Storefront product viewed | A shopper opened a product page |
| Out-of-stock variant viewed | A shopper opened a product page whose selected variant cannot be bought right now. Also needs access to products; availability is re-checked every 2 minutes |
| Storefront collection viewed | A shopper opened a collection page |
| Storefront cart viewed | A shopper opened the cart page. A cart drawer does not count: Shopify only reports the /cart page |
| Storefront product added to cart | A shopper added a product to the cart |
| Storefront product removed from cart | A shopper removed a product from the cart |
| Storefront checkout started | A shopper started the checkout. Carries totals only, no contact details |
| Storefront search | A shopper searched and got results (up to 10 are included) |
| Storefront search returned no results | A shopper searched and found nothing |
| Checkout error shown | The checkout showed an error or a warning. What the shopper typed is never included |
| Checkout discount code rejected | The checkout rejected a discount code. The code itself is not included: Shopify does not report it |
| Custom storefront event | Your theme published its own event with `Shopify.analytics.publish`. Filter on the name to pick one |
| B2B buyer visited | A signed-in B2B buyer visited the storefront. At most once per company in 24 hours |
| Signed-in customer visited | A signed-in customer visited. At most once per customer in 24 hours |
| Customer left online store without making a purchase | See [Abandoned checkout and left without purchase](https://docs.workflow-suite.app/abandoned-checkout-and-left-without-purchase.md) |

## Set it up

1. On the **Permissions** page, grant access to customer events and to pixels. The trigger panel tells you when one is missing.
2. Choose one of the triggers, build the workflow, save and turn it on.

When the first workflow with a storefront trigger is turned on, the app adds its web pixel to your store. The pixel only listens for the events your turned-on workflows use. When the last such workflow is turned off or deleted, the pixel is removed again.

## Privacy

- The pixel checks the visitor's consent before every event it sends. Without analytics consent nothing is sent. Depending on your store's privacy settings and the visitor's region, Shopify may not load the pixel at all until consent is given.
- The only shopper identifier an event carries is the customer id of a signed-in customer. No email address, no typed text.
- The app does not record the visitor's IP address or browser details with these events.

## These triggers are busy

A product view happens far more often than an order. Every event that starts a run counts against your plan.

- Use a trigger filter, so only the events you care about start a run. See [Trigger filters](https://docs.workflow-suite.app/trigger-filters.md).
- Count instead of announcing each event. The storefront templates use the **Key-value store** step to count up a number and only post to Slack when the count reaches a threshold.
- The app accepts up to 3,000 storefront events per minute per store. Beyond that, events are dropped.

## Templates to start from

- **Spot searches that find nothing**
- **Measure demand for sold-out variants**
- **Notice when discount codes keep failing**
- **Notice a wave of checkout errors**
- **Tell the team when a VIP customer visits**

See [Start from a template](https://docs.workflow-suite.app/start-from-a-template.md).
