App features
[Free plan]
Show images, text, custom HTML, recommended products, and coupons on the thank-you page
Adding just a LINE QR code is free!
* Up to 2 blocks for free
[Pro plan]
Place a coupon on the thank-you page and grow your subscribers by getting newsletter consent in exchange for issuing a coupon (delivered by email)
Note
For stores that have moved to the new thank-you page
This article is a reference of specifications, not a setup guide. If you just want to use coupons, you don't need to read it. For setup steps, see "Grow your email list from the Thank you page".
It summarizes what is created and saved in your Shopify store when a coupon is issued on the Thank you page. It also lists the fields of the Shopify Flow trigger. For setup steps, see Grow your email list from the Thank you page.
In this article
- What is written to orders (nothing)
- The discount code, the fields saved on the customer, and the email subscription status
- The Shopify Flow trigger and its retry rules
- What the bundled workflow does
- Where to check things
- The permissions the app asks for and the automatic notifications (webhooks) it receives
Where to go: Shopify admin → "Discounts" and "Customers" / Apps → Flow
Nothing is written to orders
The app never writes order tags, metafields, notes, attributes or anything else to orders. It only reads orders to decide whether a coupon can be issued. Coupon information doesn't appear on the order details page in the Shopify admin either.
Discount codes created in Shopify
You can see them under "Discounts" in the Shopify admin.
| Item | Details |
|---|---|
| Code format | "THANKS-" followed by 6 characters (letters and digits; the easily confused I, O, 0 and 1 are not used). If a code already exists, it is regenerated up to 3 times. |
| Title | "Block name (last 6 characters of the block ID)" |
| Start and end | Starts when issued; ends on the issue date plus the number of valid days |
| Eligibility | Only the customer it was issued to (specific customer) |
| Single use | On: usage limit of 1, once per customer. Off: no limit |
| Minimum purchase amount | Set only when you configure it (applies to the next order) |
| Applies to | Percentage off: all products. Fixed amount off: a fixed amount off the whole order. Free shipping: all shipping destinations |
| Combining with other discounts | Not set by the app (Shopify's default behavior) |
Fields saved on the customer
When a coupon is issued, the following four app-specific fields (metafields) are saved on the buyer's customer record, so that the coupon can be inserted into emails. No customer tags are added.
| Field (key) | Content |
|---|---|
| coupon_code | The issued code |
| coupon_expires_at | Expiry date (ISO 8601 format) |
| coupon_reward | How the discount is displayed, such as "10% OFF" (in the buyer's language) |
| coupon_single_use | Whether it's single use (true or false) |
Only this app can write to these four fields. Other apps, storefront forms and staff can't change them (they can only view them in the Shopify admin). You can see the field definitions under "Settings" → "Metafields and metaobjects" → "Customers", among the read-only definitions. The next time a coupon is issued, the fields are overwritten with the new values. They are saved when a coupon is issued even if you haven't set up Shopify Flow.
Email subscription status
Buyers who tick the newsletter checkbox and get the coupon have their "Email marketing" status set to "Subscribed" (in the email marketing section of the customer page; the consent time is the time of signup). Customers who are already subscribed are not changed. Leaving the checkbox unticked does not unsubscribe anyone.
Shopify Flow trigger
The trigger is called "Thank you page coupon issued". It is sent once per customer per order. All of the following fields are filled in.
| Field | Content |
|---|---|
| Order (order_reference) | The order |
| Customer (customer_reference) | The customer |
| Discount code | The issued code |
| Discount expires at | Expiry date (ISO 8601 format) |
| Discount reward | How the discount is displayed (e.g. 10% OFF, in the buyer's language) |
| Discount conditions | Text for the minimum purchase amount and the expiry. Empty if none |
| Discount single use | "true" or "false" |
If sending fails, the app retries automatically: up to 3 times within one run, and up to 5 times in total. If the subscription is confirmed later, the trigger is sent again. Errors that retrying won't fix, such as a rejected permission (FLOW_TRIGGER_REJECTED), are not retried. You can check the results in the Shopify Flow run history.
What the bundled workflow does
The workflow "SAKUサンクスカスタム:メールでクーポン送付" ("SAKU Thanks Custom: send the coupon by email"; file name: saku-thanks-coupon-email.flow) runs in this order. You can download the file from the app's "Help" page.
The Shopify Flow template list may also show "Email the thank you page coupon to new subscribers" (only on stores that have installed this app). It's the same workflow. Either way, you still need to write the email itself and paste the custom Liquid separately.
- Trigger: "Thank you page coupon issued"
- Condition: the email marketing state is "SUBSCRIBED"
- "Send marketing email" (the email body is empty; create it yourself after importing)
What is saved in the app's database
Block settings; the coupon issue history (order ID, customer ID, code, expiry, a copy of the discount details, and the Flow delivery status); newsletter signup records (order ID, customer ID and date; email addresses are not saved); the store's plan information and setup guide status; and a log of block changes (the ID of the staff member, the date and time, and the type of action; the block content itself is not saved). The token used to connect to Shopify is stored encrypted. The issue history is deleted 30 days after the expiry date, and the block change log after 180 days.
When you uninstall the app, the session and store data are deleted. The app also handles requests to view or delete customer data.
The app's admin pages include usage analytics (Google Analytics) to understand how the app is used. If you'd like details about what is measured, contact us from "Contact support" on the app's "Help" page.
Where to check things
| What you want to check | Where to look |
|---|---|
| Number of newsletter signups | The app's Home page |
| Discount codes and their usage | "Discounts" in the Shopify admin |
| Customer fields and email subscription status | "Customers" in the Shopify admin |
| Flow runs | Shopify Flow run history |
| Emails sent | Shopify Messaging |
| The code the buyer sees | The buyer's order status page |
Permissions the app asks for (access scopes) and the automatic notifications it receives
The consent screen shown when you install the app lists the following permissions.
| Permission | Main use |
|---|---|
| read_customers / write_customers | Checking the buyer's email subscription status and updating newsletter consent, checking customer tag rules for blocks, and saving coupon information (the app-specific customer fields, using write_customers) |
| read_discounts / write_discounts | Creating and managing coupons (discount codes) |
| read_orders | Reading orders to decide whether a coupon can be issued (nothing is written to orders) |
| read_files | Choosing images from the store's "Files" for image blocks |
| read_products | Choosing and showing products in recommended products blocks |
| read_checkout_and_accounts_configurations | Looking up the published checkout configuration to build the links for the setup guide buttons |
- app/uninstalled: deletes the session and store data when the app is uninstalled.
- app/scopes_update: notifies the app when permissions change.
- app_subscriptions/update: applies plan changes right away.
- shop/update: detects when a development store moves to a paid Shopify plan.
- The app supports the three mandatory privacy webhooks (customer data requests, deletion and so on).
Troubleshooting
-
Nothing appears in the Flow run history
Check that the workflow is turned on and that a coupon was actually issued (what to check). -
I can't find the discount code in the admin
Under "Discounts", search for codes starting with "THANKS-". A code is only created when the buyer presses the button.