The standard earning flows cover the most common ways customers earn points: purchases, follows, profile completion, store check-ins. Custom earning flows give you 5 free slots to reward anything else, like watching a product video, completing a survey, attending an in-person event, or any action your team can think of.

Each custom flow is a clean slate. You decide what the customer sees, what they earn, and how the points get credited.

Go to LoyaltyEarning Flows and look for the dashed Add custom earning flow card under the standard flows.

Earning Flows list with the Add custom earning flow placeholder
The Earning Flows list page shows the placeholder card as long as at least one of the 5 slots is empty

How Many Custom Flows You Can Create

You get 5 slots per program, labeled CUSTOM_1 through CUSTOM_5. The placeholder card disappears once all 5 are in use. Deleting a custom flow frees its slot so a new one can take its place.

The CUSTOM_N identifier is the technical handle you use when triggering a flow from outside JeriCommerce, like from Shopify Flow or the API. The customer never sees it.


Set Up a Custom Flow

1

Open a new slot

Click Add custom earning flow. JeriCommerce picks the next available slot for you.

2

Set the reward rule

In the Reward rule section, choose three things:

  • Points: how many points the customer earns each time the flow runs.
  • Recurrence: how often the cap resets. Options are Lifetime, Daily, Weekly, Monthly, Quarterly, Every 6 months, and Yearly.
  • Max executions per customer: how many times the customer can complete the flow inside that window.

For a one-time reward (like completing a profile survey), pick Lifetime with 1 execution. For a repeatable action (like a weekly check-in), pick Weekly with 1 execution.

Custom earning flow editor showing the Reward rule section
Reward rule fields: points, recurrence, and max executions per customer
3

Write the customer-facing copy

In the Display section, fill in the per-language fields the customer sees on their loyalty webapp:

  • Subtitle: the short description on the action card.
  • Button text: the label of the button the customer taps.
  • URL: where the button sends the customer.

If you run a multi-language program, fill in each locale. JeriCommerce can auto-translate the copy on first save when other locales are turned on.

Custom earning flow editor showing the Display section
Display fields: subtitle, button text, and URL, with one tab per language
4

Choose how the points get credited

Pick one of the three action modes (covered in the next section) based on whether the customer taps a button, an external system triggers the points, or both.

The three action mode toggles
The Action toggle has three modes: Tap to earn, Tap + external trigger, and External trigger only
5

Save and activate

Click Save and activate. The flow shows up in the customer webapp the next time they open it.


Action Modes

The action mode tells JeriCommerce how the points are credited. Pick the one that matches your use case.

Tap to earn

The customer sees a button on the action card. Tapping the button credits the points and opens the URL you set, both in the same action.

Use this mode when the action is self-contained, like:

  • Visit a landing page about a new collection
  • Read a blog post or guide
  • Open a hidden gift in the loyalty webapp

The customer earns the points the moment they tap, up to the recurrence limit you set. JeriCommerce enforces the limit server-side, so a customer cannot earn more than their cap even if they tap repeatedly.

Tap and external trigger

The customer sees a button that opens the URL you set, but tapping it does not credit the points. The points still come from an external trigger.

Use this mode when the button leads the customer to where the action happens, but the action itself has to be verified somewhere else. For example:

  • Button label: Leave a review. URL: link to your review form. Trigger: a Shopify Flow that fires when the review is published.
  • Button label: Watch the launch event. URL: link to the live stream. Trigger: an API call from your video platform when watch time crosses a threshold.

This avoids the trap of crediting points for a click that did not lead to the action actually being completed.

External trigger only

No button is shown on the card. The points get credited from outside JeriCommerce, either from a Shopify Flow workflow, a Klaviyo webhook, or your own backend through the API.

Use this mode when the proof of action lives in another system, like:

  • Reward a customer after they leave a product review (triggered by a review app webhook in Shopify Flow)
  • Reward a customer after they attend an in-store event (triggered manually from your CRM)
  • Reward a customer after they complete a post-purchase survey (triggered when the survey tool calls your endpoint)

The card still shows in the customer webapp with the subtitle and points value, so customers know the action exists. They just do not see a button.

This is also the right pick when you want the loyalty action to happen automatically, without the customer doing anything inside the webapp.

When you select this mode, the editor reveals the flow's identifier (CUSTOM_1, CUSTOM_2, and so on). You will need it to wire up the trigger. See the Shopify Flow Execute earning flow action or the API reference for executing a custom flow.


Trigger a Custom Flow from Outside JeriCommerce

If you picked Tap and external trigger or External trigger only, you have three ways to credit the points.

All three paths respect the recurrence and max-executions rules you set in the editor, so you cannot accidentally over-credit a customer by triggering twice.


What the Customer Sees

Custom earning flows are pinned to the top of the customer's "ways to earn" list, above the standard flows.

Custom earning flow card on the customer webapp
Custom flows show at the top of the Actions section, above standard actions like Follow us and Loyalty card installation

Each card shows:

  • The flow title and subtitle in the customer's language
  • The points the customer can earn
  • The button you defined, if you picked Tap to earn or Tap and external trigger
  • A "You already earned this" tag once the customer hits the max execution for the current window

Edit, Deactivate, or Delete

From any saved custom flow, you can:

  • Save: keep the flow in its current state.
  • Save and activate or Deactivate: show or hide the flow on the customer webapp.
  • Delete: remove the flow entirely and free up its slot.

Deactivating a flow stops new executions but keeps the configuration. Deleting a flow removes it for good. Customers who already earned points through that flow keep the points; only the flow itself disappears.

Standard earning flows (purchases, social follows, profile completion, etc.) cannot be deleted. Only custom flows can.


Example: Reward a Product Review

You want to give customers 100 points the first time they leave a review on your product pages.

1

Create the custom flow

Open a new slot. Set Points to 100, Recurrence to Lifetime, Max executions to 1.

2

Write the copy

Subtitle: "Tell us what you think and earn 100 points." Button text: "Leave a review". URL: link to your reviews page.

3

Pick Tap and external trigger

The button sends the customer to your reviews page, but only a published review should credit the points. Note the slot identifier (e.g. CUSTOM_2).

4

Wire up the trigger in Shopify Flow

Build a Shopify Flow that listens for your review app's "Review published" trigger. Add the Execute earning flow action from JeriCommerce. Set Earning flow name to CUSTOM_2 and Customer email to the email from the trigger.

5

Activate and test

Save and activate the flow. Submit a test review with your own account. JeriCommerce credits the 100 points the moment the review is published.

You are all set. The flow now runs end-to-end: the customer sees the action card, taps through to the review page, and earns the points once the review is verified by your review app.