Create or update discount offers with Shopify Flow
Use the Pareto: Create or Update Discount Offer action to automatically create and update discount offers from Shopify Flow, no manual setup in the Pareto app needed.
How it works
Pareto registers a custom action inside Shopify Flow. Any trigger that Shopify Flow supports — a webhook from your PIM, a product tag change, an inventory update, a scheduled run — can fire the action and create or update a Pareto discount offer. Each offer is keyed by an External ID you provide, so the same trigger can create the offer the first time and update it on every run after.
Before you begin
- Install the Shopify Flow app from the Shopify App Store.
- Have Pareto installed on your store.
- Decide what External ID you'll use for each offer (a PIM record ID, SKU group, or any unique string from your source system).
Add the action to a Flow
- Open the Shopify Flow app.
- Click Create workflow.
- Choose a trigger, for example, Webhook Trigger if you're sending data from a PIM.
- Click the + below the trigger and choose Action.
- Search for Pareto and select Create or Update Discount Offer.
- Fill in the action fields (see Field reference below).
- Click Turn on workflow.
Configure the action
The action upserts a Pareto discount offer. If the External ID is new, a new offer is created. If it already exists, the offer is updated in place.
Field reference
Field | Required | Description |
|---|---|---|
External ID | Yes | Unique identifier from your system (e.g. PIM record ID). Used as the upsert key. Send the same value to update the offer later. |
Campaign name | No | Display name shown to merchants and inside the Pareto app. |
Campaign type | No | One of: |
Status | No | |
Discount rule | No | JSON array of tier objects. See discount rule format below. |
Product list | No | JSON array of Shopify product IDs as strings. Example: |
Campaign types
Type | Behavior | Example |
|---|---|---|
| Buy a quantity, get a discount | Buy 10, get |
| Spend an amount, get a discount | Spend |
| Different discount per tier on the same purchase | First 5 units |
| Same as |
Discount rule format
The Discount rule field accepts a JSON array of tier objects. Each tier supports four keys:
Key | Description |
|---|---|
| Minimum quantity or value to trigger this tier |
| |
| |
| The discount amount, e.g. |
Example:
[{"buy_from":3,"discount_type":"per_item","discount_unit":"percent","discount_value":30}]
This creates a tier where buying 3 or more units gets 30% off each item.
Update an existing offer
To update an offer, send the action again with the same External ID. Any fields you include will overwrite the existing values. Fields you leave empty stay unchanged.
Limitations
- Only the four keys listed above (
buy_from,discount_type,discount_unit,discount_value) are supported in the Discount rule field. Advanced rule keys likebuy_to,multiples, andmax_discountare not yet available via Flow. - Plan limits apply to active offers created via Flow:
- Free plan: up to
1active offer - Basic plan: up to
5active offers - Pro and Advanced plans: unlimited
- If an action would push you over your plan limit, the offer is created as a Draft instead of failing.
- The action only creates or updates discount offers. Other Pareto features (bundles, checkout upsell, banner widgets) are not configurable through Flow.
Related articles
- Set up your first quantity break campaign
- Manage offers across multiple stores
- Pareto plan comparison
Updated on: 04/05/2026
Thank you!