Shopify Flow
Plan: Starter and up. Below Starter the triggers don’t fire.
Cove adds four triggers to Shopify Flow. Your workflow decides what happens next: send a Shopify Email, pass an event to Klaviyo, tag the customer, post to Slack. Cove doesn’t send anything through Flow itself and never sees what your workflow does.
The triggers appear in Flow as soon as Cove Wishlist is installed; there is nothing to set up in Cove. The thresholds they use are the same as for Cove’s alert emails, set on Settings › Alerts & emails.
The rules
Section titled “The rules”- Signed-in customers only. A guest has no customer record for a workflow to use. Notify me requests are answered by Cove’s alert emails, not by Flow.
- Once a week at most: each trigger fires at most once per customer and variant every 7 days (per product, for a product saved without a variant).
- Only when a workflow listens. Flow tells Cove which triggers are used by an active workflow; a trigger nobody uses is never sent.
- No consent check. Cove doesn’t check email marketing consent before a Flow trigger: your workflow must (see the templates below).
- Separate from Cove’s emails. Flow and Cove’s alert emails each keep their own 7-day record and don’t dedupe each other. If you use both for the same alert, switch that email off on the Alert emails tab, or a customer can hear twice.
- Triggers don’t count toward your monthly email limit.
The four triggers
Section titled “The four triggers”| Trigger (as named in Flow) | Fires when | Data |
|---|---|---|
| Wishlisted item back in stock | A saved variant that was really unavailable comes back in stock. For a product saved without a variant: when the whole product had sold out and a variant comes back. | Customer, Product, Variant ID, List name |
| Wishlisted item price dropped | A saved variant’s price falls by at least your price-drop threshold (default 5%). Customers who saved the whole product hear once, about the biggest drop. | Customer, Product, Variant ID, List name, Old price, New price |
| Wishlisted item running low | A saved variant’s stock falls from above your low-stock level (default 3) to that level or below, still above zero. Customers who saved the whole product hear only when it has a single variant. | Customer, Product, Variant ID, List name, Inventory quantity |
| Item added to wishlist | A signed-in customer saves an item, not a repeat save of the same item within 7 days. Items brought in by an import don’t fire it, nor does an item brought back with Undo. | Customer, Product, Variant ID, List name |
What each field holds:
| Field | In Flow’s variables | Holds |
|---|---|---|
| Customer | customer |
The Shopify customer, with every customer field Flow offers (email, first name, marketing consent, tags…). |
| Product | product |
The Shopify product, with every product field Flow offers (title, online store URL, images…). |
| Variant ID | variantId |
The variant’s numeric ID. Empty when the customer saved the product without choosing a variant. |
| List name | listName |
The name of the wishlist the item is on. |
| Old price | oldPrice |
The variant’s price before the drop, in your store’s currency. |
| New price | newPrice |
The variant’s price after the drop. |
| Inventory quantity | inventoryQuantity |
Units left across all locations. |
Use Add a variable in the Flow editor to insert them rather than typing the names.
Template 1: Shopify Email
Section titled “Template 1: Shopify Email”Use this for any of the four triggers.
- In Shopify Flow, click Create workflow and choose the trigger, for example Wishlisted item back in stock.
- Add a condition:
customer.emailMarketingConsent.marketingStateis equal toSUBSCRIBED. Don’t skip this step. Without it, customers who never agreed to marketing emails would be emailed. - Under Then, add the Shopify Email action that sends a marketing email, and build the message:
- Back in stock: a subject such as
{{ product.title }} is back in stockand a button to{{ product.onlineStoreUrl }}. - Price dropped: show the old and new price,
{{ oldPrice }}→{{ newPrice }}. - Running low: “Only
{{ inventoryQuantity }}left”. - Item added to wishlist: for example a “Saved for you” email with the product and a link back to it.
- Back in stock: a subject such as
- Turn the workflow on.
Template 2: Klaviyo
Section titled “Template 2: Klaviyo”Use this when Klaviyo sends your emails or texts. Klaviyo connects to Flow through its own Flow connector; Cove never holds a Klaviyo key.
- In Shopify Flow, create a workflow with one of the four triggers.
- Add a condition:
customer.emailMarketingConsent.marketingStateis equal toSUBSCRIBED. For SMS flows, checkcustomer.smsMarketingConsentinstead. - Under Then, add Klaviyo’s action that sends an event to Klaviyo, named for the trigger (for example “Wishlist back in stock”). Include the customer’s email, the product’s title, URL and image, and the trigger’s own fields (
oldPrice,newPrice,inventoryQuantity,listName) as event properties. - In Klaviyo, build a flow triggered by that event (metric) and design the message there.
- Turn the workflow on.
Checking it works
Section titled “Checking it works”Flow’s Recent runs for the workflow lists each time a trigger fired. A workflow that never runs usually means one of these:
- The store is on Free.
- The shopper wasn’t signed in when they saved the item.
- The customer already got the same trigger for that item in the last 7 days.
- The change didn’t meet the rule: a back-in-stock variant that never sold out, a price drop smaller than your threshold, stock that was already low.
- The workflow isn’t turned on.
- Run Cove’s alert emails for Notify me requests and guests, and a Flow workflow for signed-in customers, with Email signed-in customers about items on their wishlist switched off so nobody hears twice.
- Use Item added to wishlist to tag customers who save often, or to send the event to Klaviyo for segmentation.