Help · Analytics
Connect Redeemly
Store credit is money your shoppers already have with you, and an email that says so is one of the easiest reasons for somebody to come back. If you give store credit with Redeemly, this page shows how each credit reaches the right profile here, so you can count it, build segments on it and email people about it.
Redeemly tells Shopify Flow every time something happens to somebody's store credit. Carpe Messaging adds its own actions to Shopify Flow, and each one records what Redeemly reported against the person's profile. You never type a key, a web address or any code.
Before you start
You need Carpe Messaging installed from the Shopify App Store, Shopify Flow, and Redeemly giving store credit. It works on every paid Shopify plan.
- Carpe Messaging, installed from the Shopify App Store. Our actions appear in Shopify Flow only for a store that installed Carpe Messaging from the App Store. It works on every paid Shopify plan — Shopify Plus is not required.
- Shopify Flow, Shopify's own automation app. It is free.
- Redeemly, set up and giving store credit.
What Redeemly reports, and what each one becomes
Redeemly reports six things to Shopify Flow. Each is recorded here as an event on the person's profile:
| When Redeemly reports | Our action | The event it records |
|---|---|---|
| Store Credit Rewarded | Record store credit given | Store Credit Rewarded |
| Segment Campaign Credit Rewarded | Record store credit given | Store Credit Rewarded |
| Abandoned Checkout Credit Rewarded | Record checkout credit given | Abandoned Checkout Credit Rewarded |
| Store Credit Balance Updated | Record a store credit balance | Store Credit Balance Updated |
| Store Credit Expiration Threshold | Record store credit about to expire | Store Credit Expiring |
| Store Credit Scheduled | Record store credit scheduled | Store Credit Scheduled |
Campaign credit is recorded as Store Credit Rewarded, because it is the same thing with a campaign attached. It carries the campaign's name, so an automation or a segment that wants to tell the two apart can use campaign_name.
Scheduled credit is its own event, because it is credit that has been promised and not yet given. None of the starting points below uses it, but you can build on it yourself.
Setting it up in Shopify Flow
Each thing Redeemly reports needs one Shopify Flow workflow that ends in the matching Carpe Messaging action. Until our ready-made templates are in the Shopify Flow library, build each workflow by hand; it takes a few minutes for each one.
With the ready-made templates
Carpe Messaging offers one Shopify Flow template for each of the six things above. The templates are not in Shopify Flow's library yet. They become available after Carpe Messaging is listed in the Shopify App Store and Shopify has reviewed them. When they are there:
- In your Shopify admin, open Shopify Flow and browse its templates.
- Search for Carpe Messaging.
- Open each template you want and press Install. Every box is already filled from what Redeemly reports, including the person's email address.
- Press Turn on workflow.
Install one template for each thing you want recorded. Even the ones no email starts from build a history you can use in a segment.
Building it yourself
Until the templates are in the library, you can build the same thing by hand. It takes a few minutes for each one.
- In your Shopify admin, open Shopify Flow and choose Create workflow.
- For the trigger, choose one of Redeemly's — for example Store Credit Rewarded.
- Add an action, search for Carpe Messaging, and choose the matching action from the table above.
- Fill each box with Add variable, choosing the value of the same name from Redeemly's trigger. The customer box fills itself. The number boxes — Amount, Balance, Days left — take a variable too: choose Redeemly's plain figure there, such as Balance, and its formatted one, such as Formatted balance, in the box that says as shown.
- In the Email address box, add the variable Customer → defaultEmailAddress → emailAddress. It is not strictly needed, but it means the event is recorded even when the customer box alone is not enough.
- Press Turn on workflow, and repeat for each of the other things you want recorded.
Leave a box empty when Redeemly's trigger has nothing for it. An empty box records nothing — it never blanks a value you already have.
Emailing people about their credit
Three starting points in Automations → Create automation are built for this: Store credit earned, Store credit expiring soon and Credit for an unfinished checkout. Each one opens with a draft email you can change, and nothing sends until you apply your changes and enable the automation. The Starting points help page describes all three, under The three store credit starting points.
Taking credit away is recorded, never mailed as earned. When your team adjusts credit down, put the negative figure in Amount, such as -5.00. The event is recorded, but Store credit earned and Credit for an unfinished checkout start only for an Amount of at least 0.01, and the figure your emails print as the last credit given stays the last real one.
Counting credit given? Add the same condition. A segment or an automation you build yourself on credit given — "gave credit 3 times", say — counts an adjustment too, unless you add Amount is at least 0.01 to it.
A card waits until its event has arrived. Until your store has recorded the event it starts from at least once, the card cannot be opened and says what to do:
Waiting for its first event. In Shopify Flow, add the “Record store credit given” action.
Store credit expiring soon starts when Redeemly reports three days left. Redeemly decides how many days ahead it reports. If yours reports at a different number, change the 3 under Only when the event… on the automation's Start card, and in the email's subject and text, which say 3 days.
All three go only to people whose email consent is subscribed. Nothing Redeemly reports gives or takes away permission to email anybody.
If Redeemly already emails your shoppers
You can keep Redeemly's own emails. Every event is recorded here whether or not you email about it, so your segments and reports are complete either way.
Enable one of our automations only for an event where you want our email to be the one that goes. Two emails about the same credit is the kind of thing that makes people stop reading both, so keep one sender for each event — which one is your choice.
Credit for an unfinished checkout, and Abandoned checkout
Your Abandoned checkout automation follows the same checkout, so a shopper could hear from both. Many stores that give checkout credit use the credit email in place of Abandoned checkout's second email: the first email reminds them, and the credit email follows with a reason to come back. Whether you run one or both is up to you.
Its Return to checkout button takes each person back to the checkout they left, with the same items in it and any discount already applied. If the link Redeemly sent points anywhere other than your own store's checkout, the button opens your store's home page instead.
What arrives, and where
Each event appears on the profile's activity and on the Metrics page, and its name is offered in the segment builder and as the start of an automation. The event names are offered even before the first one arrives.
The boxes you filled become the event's properties, under these names:
| Event | Properties |
|---|---|
| Store Credit Rewarded | amount, formatted_amount, currency, expires_at, campaign_id, campaign_name, reason |
| Abandoned Checkout Credit Rewarded | amount, formatted_amount, currency, expires_at, checkout_url, checkout_total, formatted_checkout_total, item_count, campaign_id, campaign_name |
| Store Credit Balance Updated | balance, formatted_balance, currency |
| Store Credit Expiring | amount, formatted_amount, currency, expires_at, days_remaining |
| Store Credit Scheduled | amount, formatted_amount, currency, expires_at, scheduled_at |
Dates are kept as Redeemly writes them. Shopify Flow has no date box, so expires_at and scheduled_at hold the date exactly as Redeemly prints it.
The store credit kept on each profile
An email can print a profile's properties, so the latest figures are also kept on the profile itself, under these names:
store_credit_balance— the balance, as a numberstore_credit_balance_formatted— the balance as your store shows it, such as $24.50store_credit_currency— the balance's currency codestore_credit_balance_updated_at— when the balance last changedstore_credit_last_reward_formatted— the most recent credit given, as your store shows itstore_credit_last_reward_expires_at— when that credit runs out, as Redeemly prints itstore_credit_last_reward_updated_at— when a credit was last givenstore_credit_expiring_formatted— the credit about to expire, as your store shows itstore_credit_expiring_expires_at— when that credit runs out, as Redeemly prints itstore_credit_expiring_updated_at— when the last expiry notice arrived
Each event replaces its own figures in full. When an event does not carry a figure — a credit given with no expiry date, say — that figure is cleared rather than kept from the credit before, so an email prints its fallback words instead of an older date or amount.
So a campaign heading can say "You have $24.50 in store credit", and a segment can find everyone with a balance of at least $10. These figures are only as current as the last event, and the events themselves are the full history. An event sent through your own events API setup with its occurred_at time never replaces a newer figure, however late it arrives. Shopify Flow sends no such time, so a figure is ordered by when it reached us: in the rare case Shopify has to retry a step after a fault on our side, the retried figure can stand until the next event of the same kind arrives.
When a step fails
The reason appears in Shopify Flow's own run history, on the step that failed. These are the messages you may see, word for word:
Finish connecting this store in Carpe Messaging, then run this workflow again.
Carpe Messaging is not connected to this store, or was uninstalled. Open it from your Shopify admin to finish connecting, then run it again.
This customer has no email address we can use. Add the Email box to this step and put their address in it.
Every event needs an email address. A shopper Shopify knows only by a phone number cannot be recorded here, because there is no address to record it against. Filling the Email address box from the customer's email, as in step 5 above, fixes it whenever the address exists.
This step did not hand us a customer. Put the email address in the Email box instead.
The customer box holds something that is not a customer. Open the step and choose the customer again with Add variable.
Check the boxes on this step: one of them is empty or holds the wrong kind of value.
A box that must be filled was empty, or a box received something it cannot hold. Open the step and check each box against the trigger's variables.
Balance needs a plain number of zero or more, such as 12.50, with no currency sign and no commas.
The box named at the start — Balance, or Amount on an expiring or scheduled credit — received something that is not a plain figure of zero or more. The usual cause is the formatted variable, such as $12.00, chosen where the plain one belongs. Choose the plain one; the formatted one goes in the box that says as shown.
Amount needs a plain number, such as 12.50 or -12.50, with no currency sign and no commas.
The same for Amount on credit given and on checkout credit, the two boxes that may be negative — a negative figure there is your team taking credit away, as described under Emailing people about their credit above.
Days left needs a whole number of zero or more, such as 3, with no currency sign and no commas.
The same for a box that counts — Days left takes a whole number, never a fraction.
Carpe Messaging does not have this action any more. Open the step in Shopify Flow and pick one of its actions again.
Choose the action again from Carpe Messaging's list.
What to expect
Each event lands on the profile you already have, or creates an unconfirmed one for an address you have never seen. Nothing here changes consent, and a step Shopify runs twice is recorded once.
The event lands on the profile you already have. A Redeemly shopper is a Shopify customer, so the event normally attaches to their existing profile and nothing about that profile changes except its activity and store credit.
An address you have never seen creates a new, unconfirmed profile. It is kept out of your counts and your sends until something confirms it, such as an order. The Verified identity page explains why.
Nothing here changes consent. An event says something happened. Whether you may email someone is a separate record, and nothing recorded here touches it.
Shopify sometimes runs a step twice. The second one is recognized and nothing is recorded twice.