---
title: "Trigger a Shopify Flow when a discount expires"
description: "Set up the Discount Expiry Trigger to remove expired promo banners and run Shopify Flow automatically when a discount expires."
canonical: "https://docs.workflow-trigger-extensions.app/discount-expired-alerts"
---

# Trigger a Shopify Flow when a discount expires

## Why use the discount expiry trigger?

If a promotion ends at midnight but your homepage banner still shows the next morning, shoppers may try a code that no longer works. That usually leads to failed checkouts and avoidable support tickets.

The **Discount Expired** trigger helps prevent that. When a discount expires, the app can start a Shopify Flow workflow automatically. In one common setup, the workflow removes the expired discount code from a Shop metafield, which also removes the promotional banner from the storefront.

> [!NOTE]
> The **Discount Expiry Trigger** is detected through polling, because Shopify does not provide a native webhook for discount expiration.

## Video Guide

You can see the whole process in video.

[Video](https://youtu.be/58EStQx67gs)

## What this setup does
- Watches for discounts that move from **active** to **expired**
- Starts a Shopify Flow workflow using the **Discount Expired** trigger
- Lets you remove or update storefront content that depends on the expired discount
- Helps keep homepage banners, announcement bars, and metafield-driven promotions in sync

## Before you begin

You need to enable discount access in the app before you can turn on expiry detection.

> [!WARNING]
> If you skip the permission step, the **Enable Expiry Polling** option and the **Discount Expiry Trigger** will not work.

## Set up the trigger

In the app home screen, open the **Setup Guide**. Find **Grant Discount Access** and click it to give the app permission to work with discount events.

![Setup Guide showing the Grant Discount Access option](https://cdn-dev.eu.codecreationlabs.cloud/crm-tool/uploads/SjJ78gKLnLlocopCui3Cs62dJbGZ7F1n/b7729cdf5989ccd3.png)
*Setup Guide showing the Grant Discount Access option*

After discount access is granted, return to the same **Setup Guide** section and click **Enable Expiry Polling**.

This opens the app's settings area, where polling-based triggers can be enabled.

![Setup Guide showing the Enable Expiry Polling button under Grant Discount Access](https://cdn-dev.eu.codecreationlabs.cloud/crm-tool/uploads/SjJ78gKLnLlocopCui3Cs62dJbGZ7F1n/d1d773bde5277cc2.png)
*Setup Guide showing the Enable Expiry Polling button under Grant Discount Access*

In the app, go to **Settings**, then open **Polling Triggers**. Find **Discount Expiry Trigger** and switch it on.

This enables monitoring for expired discounts so the app can start your Shopify Flow workflow when a discount expires.

![Settings page with Polling Triggers open and Discount Expiry Trigger enabled](https://cdn-dev.eu.codecreationlabs.cloud/crm-tool/uploads/SjJ78gKLnLlocopCui3Cs62dJbGZ7F1n/0e8b80e39c2c028d.png)
*Settings page with Polling Triggers open and Discount Expiry Trigger enabled*

Open **Shopify Flow** and create a new workflow. In the trigger picker, choose **Workflow Trigger Extensions**, then select **Discount Expired**.

This trigger appears as **Discount Expired** with the description *This workflow starts when a discount has expired*.

![Shopify Flow trigger list showing the Discount Expired trigger](https://cdn-dev.eu.codecreationlabs.cloud/crm-tool/uploads/SjJ78gKLnLlocopCui3Cs62dJbGZ7F1n/4fb72e8c557beba9.png)
*Shopify Flow trigger list showing the Discount Expired trigger*

In the workflow editor, use **Select test event** and then click **Record events**. This captures a real event so you can test the workflow with actual discount expiry data. You can explicitly create a test discount and then select the end data and end time from past, this will expire the disocunt and you will be able to see the event.

![Shopify Flow test panel showing Select test event and Record events](https://cdn-dev.eu.codecreationlabs.cloud/crm-tool/uploads/SjJ78gKLnLlocopCui3Cs62dJbGZ7F1n/cd431d21734ed683.png)
*Shopify Flow test panel showing Select test event and Record events*

Then in slack, create a workflow that starts with webhook and you can configure the variables here, then send message to specific slack channel when this webhhok is fired. We will make request to this webhook with discount data from the Shopify flow when discount is triggered.

Then in the shopify flow, you can make request to slack webhook with discount data. If you are using the basic shopify plan then HTTP request option is not available in Shopify flow. You can use [flow action extension to send HTTP request.](https://docs.flow-action-extensions.app/make-an-http-request)
I have used same flow action extension in the flow to send http post request to the slack webhook with deiscount data.

Now you can turn on the shopify flow and test the flow by explictly expiring a discount in Shopify. In the slack, you will be able to see the message like this:

In the events history, you can see the discount expired event and payload like this:

## Example: remove an expired homepage banner

A common use case is removing a storefront banner that is powered by a Shop metafield.
1. You store the active promotion code in a Shop metafield.
2. Your theme reads that metafield and shows the banner on the homepage.
3. When the discount expires, the **Discount Expired** trigger starts your Shopify Flow workflow.
4. The workflow removes the expired discount code from the Shop metafield.
5. Because the metafield is now empty or updated, the banner no longer appears on the storefront.

> [!TIP]
> If your banner, announcement bar, or promotional block is driven by metafields, this is a reliable way to keep storefront messaging aligned with active discounts.

## Expected result

After setup is complete:
- The app detects when a discount expires
- Shopify Flow starts your **Discount Expired** workflow automatically
- Your follow-up actions can remove outdated promotional content, update metafields, or clean up expired campaign data

## Troubleshooting

Check the app home screen and expand the **Setup Guide**. The permission appears there as **Grant Discount Access**.

This button only appears after **Grant Discount Access** has been completed.

When creating the workflow, choose **Workflow Trigger Extensions** as the app source, then search for **Discount Expired**.

In Shopify Flow, open the trigger step, click **Select test event**, and use **Record events** so the workflow can capture a real example event.
