Skip to main content

How to Use Shopify Flow With Zest Orders in Storefronts

Updated yesterday

Shopify Flow is a powerful built-in automation tool that works seamlessly with Zest orders. Every time a Zest gift order is created in your Shopify store, Zest automatically adds identifying tags and order attributes.

From there, you can build Flows that auto-tag orders, route them to teams, hold them for review, send internal alerts, and more. You're in full control, and everything runs automatically in the background.

Before you start, make sure you have:

  • Shopify Flow installed (free in the Shopify App Store).

  • At least one active Zest Storefront or Concierge project pushing orders to Shopify.

  • Familiarity with the Shopify admin.

Overview: Why Use Shopify Flow With Zest Orders

When a recipient accepts a Zest gift, Zest pushes a Shopify order instantly. That order carries Zest-specific tags and attributes that tell you exactly where it came from: which storefront, which campaign, and when it needs to ship. Shopify Flow lets you act on that data automatically.

Common use cases include:

  • Auto-applying your own internal tags (e.g., "gift," "B2B," "corporate") so your team can filter and route orders at a glance.

  • Placing a fulfillment hold on orders with future ship dates until you're ready to process them.

  • Sending internal email alerts when specific products or storefronts require special handling.

  • Routing orders from different storefronts to different fulfillment teams without any manual sorting.

Everything described in this article is self-serve. You set it up once, and it runs on its own.

Zest Tags and Data Available for Flows

Zest automatically applies the following tags to every Shopify order it creates:

Tag

When it appears

What it means

zest-gift

All Zest orders

Identifies any order created through Zest.

zest-order-[order number]

All Zest orders

Links the Shopify order back to its Zest order number.

zest-storefront-[storefront name]

Storefront orders

Identifies which Zest storefront the order came from.

zest-concierge-[project number]

Concierge orders

Links the order to a specific Concierge project.

[MM-DD-YYYY] (scheduled date)

Orders with a future ship date

The scheduled ship date as a date tag, making it easy to build date-based holds and filters.

Note: For Concierge orders, the storefront tag is not applied — Concierge orders carry the Concierge project number tag instead.

Order attributes

In addition to tags, Zest writes the following order attributes (visible in the Shopify order detail under "Additional details"):

  • Scheduled Date — the scheduled ship date in MM-DD-YYYY format.

  • Gift From — the name of the person who sent the gift.

Metafields

Zest supports configurable metafields on orders. By default, no metafields are set — but your Zest account team can configure custom metafields (e.g., scheduled date as a date-type metafield, custom notes) if your workflow requires them. Once configured, these metafields are available in Shopify Flow just like any other order metafield.

A note on Concierge vs. Storefront orders: Storefront orders are automatically tagged with the storefront name, making per-storefront Flows straightforward to build. For Concierge orders, manual tags can be added directly in the Concierge dashboard during order creation — this is often a simpler alternative to building a Flow, especially if your team is just getting started.

Setting Up Your First Flow: Auto-Tagging Zest Orders

This Flow automatically adds your own internal tag to any Zest order, so your fulfillment team doesn't need to identify Zest orders manually.

  1. In your Shopify admin, go to Apps > Flow.

  2. Click Create workflow.

  3. Under Trigger, select Order created.

  4. Click Add condition and choose Order tag > contains > zest-gift.

  5. Click Add action and choose Add tags to order.

  6. Enter your internal tag (e.g., gift, B2B, corporate).

  7. Click Save and turn the workflow On.

From this point on, every Zest order will automatically receive your tag without anyone on your team lifting a finger.

Tip: Replace zest-gift with your storefront-specific tag (e.g., zest-storefront-holiday-shop) to build per-storefront automations. Each storefront gets its own tag automatically.

Adding Delays to Ensure Tag Availability

This step is important. If your Flow checks for a Zest tag immediately after an order is created, there may be a brief window where the tags haven't fully populated yet. Adding a short wait step prevents your Flow from running before the tags are in place.

To add a delay:

  1. After the Order created trigger (and before any condition that checks for a Zest tag), click Add action.

  2. Select Wait.

  3. Set the wait duration to 15–30 seconds.

  4. Click Save.

Your Flow should follow this sequence:

  1. Trigger: Order created

  2. Wait 15–30 seconds

  3. Condition: Check for Zest tag

  4. Action: Apply tag, send email, add hold, etc.

Some warehouse or fulfillment systems (such as ShipHero) capture order data only at the moment of initial creation. If your system works this way, tags applied by Flows may not be captured even with a short delay, because the system has already ingested the order.

In this case, test carefully on a staging storefront before going live, and reach out to your Zest account team to explore whether specific data can be pushed directly at order creation time.

Common Flow Sequences

Automatically tag all Zest orders

Use case: Apply a simple "gift" or "zest" label so your fulfillment team can filter orders.

  1. Trigger: Order created

  2. Wait: 15–30 seconds

  3. Condition: Order tag contains zest-gift

  4. Action: Add tag gift (or whatever label your team uses)

Hold orders with future shipping dates

Use case: Prevent orders with a scheduled ship date from being picked and packed too early.

  1. Trigger: Order created

  2. Wait: 15–30 seconds

  3. Condition: Order tag contains zest-gift AND Order attribute "Scheduled Date" is present

  4. Action: Add a fulfillment hold

You can build a second Flow to release the hold when the scheduled date arrives, or release it manually from the Shopify admin.

Note: Zest doesn't currently have a built-in order hold feature for self-service storefront orders, but this Flow is a reliable way to achieve the same result. An order hold feature within Zest is being considered for future development. For Concierge, orders function as requests you confirm before invoicing — which naturally serves as a hold without needing a Flow.

Internal notification for orders requiring special handling

Use case: Alert your team when an order contains a product that needs special prep (custom card, branded packaging, etc.).

  1. Trigger: Order created

  2. Wait: 15–30 seconds

  3. Condition: Order line item SKU equals [your-sku] (e.g., a custom logo card SKU)

  4. Action: Send internal email to your fulfillment team

Auto-tag orders by storefront

Use case: Route orders from different gifting portals to the right team.

  1. Trigger: Order created

  2. Wait: 15–30 seconds

  3. Condition: Order tag contains zest-storefront-[your-storefront-name]

  4. Action: Add tag [team-name] or send email to [[email protected]]

Replace [your-storefront-name] with the exact slug of your storefront (visible in your Zest admin).

Payment capture for multi-recipient orders

Zest orders are created in Shopify with payment already marked as paid — Zest handles the charge on its end before pushing the order. You generally do not need a separate Flow to capture payment.

If your store uses Shopify's manual payment capture setting: Create a Flow that triggers on order creation, checks for zest-gift, and captures payment. Add the 15–30 second wait step before the condition to ensure tags are available.

Prevent Parent Orders from being fulfilled

In multiship gifting, or gift orders going to multiple addresses, Zest creates one Shopify order per recipient. The original gift order in Zest is the "Parent" — each recipient's Shopify order is a "Child." Your fulfillment team should only process the individual recipient orders, not the parent.

To learn more about Parent and Child Orders, check out this article.

Routing Orders to Teams and Departments

Because every storefront gets its own automatic tag (zest-storefront-[name]), you can build separate Flows for each storefront to route orders to the right people.

Example: If you run three storefronts — one for corporate gifting, one for employee recognition, and one for customer loyalty — each will carry a unique storefront tag. Set up one Flow per storefront that sends an email or applies a department tag when an order arrives.

Routing by product SKU: If certain products always require special handling (custom ribbon, branded packaging, in-house design), build a Flow that checks for those SKUs and routes accordingly. This works regardless of which storefront the order came from.

Routing by Concierge project: Concierge orders carry a zest-concierge-[project number] tag. If your team uses project numbers to track campaigns, you can use this tag in a Flow to label or route Concierge orders automatically.

Troubleshooting and Timing Considerations

My Flow isn't detecting Zest tags.

The most common cause is a missing delay step. Make sure your Flow includes a 15–30 second wait between the "Order created" trigger and the condition that checks for a Zest tag. Without the wait, the Flow may evaluate the order before Zest has finished writing the tags.

Tags aren't matching my condition.

Double-check the exact tag name. Storefront tags follow the format zest-storefront-[storefront-slug], where the slug is the URL-friendly version of your storefront name. Log into your Zest admin and confirm the exact slug. A common mistake is checking for a tag with a space (e.g., zest gift) instead of a hyphen.

My warehouse system isn't seeing the tags.

Some systems (like ShipHero) capture order data only at the moment of initial creation. If your system works this way, even a 30-second delay won't help — the system has already pulled the order. In this case, contact your Zest account team to discuss options for applying critical data at creation time rather than via a subsequent Flow.

Flow is triggering on orders I don't want it to.

Use more specific conditions. Combine the zest-gift tag check with a storefront-specific tag or a product SKU to narrow down which orders the Flow applies to.

Gift note SKU present but no message on the order.

It's technically possible for a customer to add a gift note product to their cart without filling in a message through the Zest interface. Build a safeguard Flow:

  1. Trigger: Order created

  2. Condition: Order line item SKU equals [gift-note-sku] AND Order attribute "Message" does not exist

  3. Action: Send internal alert email so your team can follow up before fulfillment

Shopify Flow accessing Zest app-specific data.

Shopify Flow can access data that Zest writes to Shopify orders — tags, order attributes, and metafields. However, Flow cannot directly query Zest's internal data (for example, a list of all child order numbers associated with a parent Zest order). Work with the tags and attributes Zest pushes to orders; don't rely on Shopify Flow to look up data from inside the Zest platform itself.

Best Practices and Tips

  • Start simple. Begin with a single auto-tagging Flow on zest-gift before building complex routing logic. Confirm it's working reliably, then layer on additional Flows.

  • Always add a wait step. Put a 15–30 second wait between the "Order created" trigger and any Zest tag condition. This one step prevents the majority of Flow misfires.

  • Use exact tag names. Copy tag values directly from your Shopify order detail page (or your Zest admin) rather than typing them from memory. A single typo will cause the Flow to never trigger.

  • Test on a staging storefront. Before enabling a Flow on your live store, run a test order through a staging or test storefront to confirm the Flow behaves as expected.

  • Keep tags removing line breaks from gift messages. Gift messages written by customers may contain line breaks that cause formatting issues downstream. A Flow can strip line breaks from the message order attribute on orders tagged zest-gift. Test on a staging storefront before enabling on live orders.

  • Build incrementally with Concierge first. If your fulfillment team is new to Zest, start with Concierge-only orders and use manual tags in the Concierge dashboard. Once the team is comfortable, expand to self-service storefronts and build Flows for automation.

  • Document your Flows. Give each Flow a clear name (e.g., "Zest — Holiday Shop Routing" or "Zest — Gift Note Safeguard") and add a description. This saves time when troubleshooting later.

  • Review active Flows periodically. If you rename a storefront or change a SKU, remember to update any Flows that reference those values. Stale conditions silently stop working.

Did this answer your question?