Decisioner
Documentation

Decisioner guide

How to set up Decisioner, approve recovery messages, set your limits and read the results. Screenshots show example data.

Getting started

Decisioner is an app inside your Shopify admin. After you install it from the Shopify App Store, it opens on Home and a setup guide takes you through nine short steps.

Before you start

  • A Klaviyo account, or Shopify Flow on your Shopify plan.
  • For Klaviyo: a private API key with these scopes: Events (write), Profiles (read), Subscriptions (read), Templates (read).
  • Customers who are subscribed to email marketing. Decisioner never messages anyone else.

Install

  1. Open Decisioner in the Shopify App Store and select Install.
  2. Review the permissions and select Install again.
  3. Decisioner opens on Home. Select Continue setup.
A new store sees that Decisioner is not set up yet, with a Continue setup button and the Emergency stop control.
Home: setup needed. A new store sees that Decisioner is not set up yet, with a Continue setup button and the Emergency stop control.

Setup guide

The setup guide lists every step on the left and marks each one when it is done. You can leave and come back; your progress is saved.

1. Learning from your store

Choose whether Decisioner may learn from the results in your store. With learning on, it improves its timing, message and discount choices from your own orders. With learning off, it uses general rules. You can change this later in Settings.

The setup guide starts by asking whether Decisioner may learn from the store's results, with Agree and Skip options.
Setup: learning consent. The setup guide starts by asking whether Decisioner may learn from the store's results, with Agree and Skip options.

2. How emails are sent

Choose Klaviyo if you send email with Klaviyo, or Shopify Flow if you want a Flow workflow to send the email.

The merchant chooses whether recovery emails are sent through Klaviyo or through a Shopify Flow workflow.
Setup: choose how emails are sent. The merchant chooses whether recovery emails are sent through Klaviyo or through a Shopify Flow workflow.

3. Connect Klaviyo

  1. In Klaviyo, create a private API key with the scopes listed above.
  2. Paste the key, tick the box that allows Decisioner to post events, and select Connect.

If Klaviyo refuses the key, the step lists the missing scopes.

The merchant pastes a private Klaviyo API key, allows Decisioner to post events and connects the account.
Setup: connect Klaviyo. The merchant pastes a private Klaviyo API key, allows Decisioner to post events and connects the account.
If Klaviyo refuses the key, the step lists the missing scopes and asks for a key that has them.
Setup: Klaviyo key not accepted. If Klaviyo refuses the key, the step lists the missing scopes and asks for a key that has them.

4. Setup event and Klaviyo flow

Decisioner sends one setup event so the Decisioner Checkout Recovery metric appears in Klaviyo. Then build a Klaviyo flow triggered by that metric, using the snippet shown, and confirm the four checks: the flow is live, Smart Sending is off, and other abandoned-checkout flows and Shopify's own abandonment emails are turned off.

Decisioner sends one setup event so the Decisioner Checkout Recovery metric appears in Klaviyo, and the merchant confirms they see it.
Setup: send the setup event. Decisioner sends one setup event so the Decisioner Checkout Recovery metric appears in Klaviyo, and the merchant confirms they see it.
Step-by-step instructions and a template snippet help the merchant build the Klaviyo flow, then four checkboxes confirm the flow is set up correctly.
Setup: build the Klaviyo flow and confirm. Step-by-step instructions and a template snippet help the merchant build the Klaviyo flow, then four checkboxes confirm the flow is set up correctly.

5. Send a test email

Send a test to your own subscribed Klaviyo profile and confirm that it arrived. Sending stays blocked until you confirm. If it did not arrive, the step tells you what to check.

The merchant sends a test email to their own subscribed Klaviyo profile and confirms whether it arrived; sending stays blocked until then.
Setup: send a test email. The merchant sends a test email to their own subscribed Klaviyo profile and confirms whether it arrived; sending stays blocked until then.
When the test email did not arrive, the step explains what to check in Klaviyo and lets the merchant send a new test.
Setup: test email not received. When the test email did not arrive, the step explains what to check in Klaviyo and lets the merchant send a new test.
A confirmed test email unlocks sending and shows how long the confirmation stays valid.
Setup: test email confirmed. A confirmed test email unlocks sending and shows how long the confirmation stays valid.

If you chose Shopify Flow

Build a workflow that starts with the Recovery message ready trigger and sends the email with a consent-respecting action. Do not add waits; Decisioner already picks the send time. Confirm the workflow rules, then turn the workflow on. The guide continues when Shopify reports that the workflow is on.

On the Shopify Flow path, the guide explains how to build a workflow that starts with the Recovery message ready trigger.
Setup: Shopify Flow path. On the Shopify Flow path, the guide explains how to build a workflow that starts with the Recovery message ready trigger.
The merchant confirms that their Flow workflow only uses consent-respecting actions and adds no waits.
Setup: Flow workflow confirmation. The merchant confirms that their Flow workflow only uses consent-respecting actions and adds no waits.
The guide waits until the merchant turns on the Flow workflow, and the merchant can check again at any time.
Setup: waiting for the workflow. The guide waits until the merchant turns on the Flow workflow, and the merchant can check again at any time.

6. Discount budget

Set the monthly discount budget and the largest discount Decisioner may offer, or choose No discount.

The merchant sets a monthly discount budget and the largest discount Decisioner may offer, or chooses No discount.
Setup: discount budget. The merchant sets a monthly discount budget and the largest discount Decisioner may offer, or chooses No discount.

7. Recovery messages

Approve at least two recovery messages. See Recovery messages for how to draft them.

The guide asks the merchant to approve at least two recovery messages and links to the message editor.
Setup: recovery messages. The guide asks the merchant to approve at least two recovery messages and links to the message editor.

8. Terms and plan

Accept the Terms of Service and choose a plan. The Free plan starts at once; a paid plan opens Shopify's approval page.

In the last step the merchant accepts the terms before choosing a plan; a paid plan opens Shopify's approval page.
Setup: terms and plan. In the last step the merchant accepts the terms before choosing a plan; a paid plan opens Shopify's approval page.
If the merchant declines the charge on Shopify's approval page, the plan step shows that the approval was declined, keeps the store on the Free plan and offers the plans again to retry.
Setup: plan approval declined. If the merchant declines the charge on Shopify's approval page, the plan step shows that the approval was declined, keeps the store on the Free plan and offers the plans again to retry.
When setup is complete, all nine steps are marked done and the merchant can go to Home or open Approvals.
Setup: complete. When setup is complete, all nine steps are marked done and the merchant can go to Home or open Approvals.

Home

Home shows whether Decisioner is sending, what waits for you, and the numbers for the last 30 days.

The active Home shows the status, a warning that most of the Free plan limit is used with an Upgrade link, a warning that two held messages need a decision, the 30-day numbers and the Emergency stop.
Home: active, with plan-limit warning. The active Home shows the status, a warning that most of the Free plan limit is used with an Upgrade link, a warning that two held messages need a decision, the 30-day numbers and the Emergency stop.
In auto mode, Home says that Decisioner sends recovery messages without approval and shows pending approvals, messages handed off and the effect on orders.
Home: auto mode on. In auto mode, Home says that Decisioner sends recovery messages without approval and shows pending approvals, messages handed off and the effect on orders.

Measured effect

Home compares orders from customers who could get a message with orders from a small random holdout group that never gets one. Until there is enough data, Home says so instead of showing a number.

Other states

Home shows that the model is on a waitlist for the store, so setup can continue but no messages are sent until the store is cleared.
Home: waiting for model clearance. Home shows that the model is on a waitlist for the store, so setup can continue but no messages are sent until the store is cleared.
When learning is off, Home explains that decisions use general rules instead of the store's own results.
Home: learning off. When learning is off, Home explains that decisions use general rules instead of the store's own results.

Approvals

Every recovery message waits in Approvals until its send time, unless auto mode is on. Each row shows the cart, the send time, the discount, the message and the approval deadline.

  1. Select Approve to send the message at its send time.
  2. Select Review to see the details, change the message or reject it.
The approvals queue lists each waiting recovery message with its cart, send time, discount, message and deadline, plus Approve and Review buttons.
Approvals: messages waiting. The approvals queue lists each waiting recovery message with its cart, send time, discount, message and deadline, plus Approve and Review buttons.

Review a message

The detail page shows the chance of an order for each discount level. Change message lets you pick another message, discount or send time; your change counts as approval. Reject asks for a reason, and each reason changes future decisions: a tone reason pauses that message, a discount reason lowers the largest discount, a timing reason shifts send times, and a wrong-customer reason excludes the customer.

The detail page shows the pseudonymous cart, the message, discount and send time, the chance of order for each discount level and the Approve, Reject and Swap buttons.
Approval detail. The detail page shows the pseudonymous cart, the message, discount and send time, the chance of order for each discount level and the Approve, Reject and Swap buttons.
The Change message dialog lets the merchant pick another message, discount or send time; the change counts as their approval.
Approval detail: change message. The Change message dialog lets the merchant pick another message, discount or send time; the change counts as their approval.
The Reject dialog asks why the message is rejected and explains what each reason changes.
Approval detail: reject. The Reject dialog asks why the message is rejected and explains what each reason changes.

Late and held messages

If the deadline passes, the message is not sent. You can still record your approval so Decisioner learns from it.

When the approval deadline has passed, the message was not sent and the merchant can only record their approval.
Approval detail: deadline passed. When the approval deadline has passed, the message was not sent and the merchant can only record their approval.
A held message shows a warning that nothing is sent until the merchant chooses Send or Cancel.
Approval detail: held message. A held message shows a warning that nothing is sent until the merchant chooses Send or Cancel.
After sending resumes, held messages appear at the top so the merchant can send or cancel each one before its recovery window ends.
Approvals: held messages after resume. After sending resumes, held messages appear at the top so the merchant can send or cancel each one before its recovery window ends.
When nothing waits for approval, the page says so and explains that new messages appear here.
Approvals: nothing waiting. When nothing waits for approval, the page says so and explains that new messages appear here.

Checkout recovery settings and auto mode

The checkout recovery page holds the settings for this use case: auto mode, how emails are sent, the holdout size and the discount budget.

The checkout recovery page holds the auto mode switch, delivery target, holdout size, discount budget and links to messages and guardrails.
Checkout recovery settings. The checkout recovery page holds the auto mode switch, delivery target, holdout size, discount budget and links to messages and guardrails.

Turn on auto mode to let Decisioner send without your approval. Your discount limits, quiet hours and caps still apply, and the Emergency stop still works.

Turning on auto mode asks for confirmation and explains that guardrails, quiet hours and caps still apply.
Checkout recovery: turn on auto mode. Turning on auto mode asks for confirmation and explains that guardrails, quiet hours and caps still apply.
With auto mode on, the switch shows that recovery messages are sent without the merchant's approval.
Checkout recovery: auto mode on. With auto mode on, the switch shows that recovery messages are sent without the merchant's approval.

Recovery messages

Decisioner only sends messages you approved. You need at least two, and you can have up to eight.

  1. Pick a Klaviyo template and describe your brand voice.
  2. Select Draft with AI. Drafts appear as editable cards.
  3. Edit a draft if you want, then select Approve. Or write your own message.

The AI receives your template and brand voice only, never customer data.

With no messages yet, the merchant can draft messages with AI from a Klaviyo template and brand voice, or write their own.
Recovery messages: none yet. With no messages yet, the merchant can draft messages with AI from a Klaviyo template and brand voice, or write their own.
While AI drafting runs, a progress indicator shows and draft cards appear for review.
Recovery messages: drafting with AI. While AI drafting runs, a progress indicator shows and draft cards appear for review.
AI drafts appear as editable cards that the merchant can approve, save or discard.
Recovery messages: drafts to review. AI drafts appear as editable cards that the merchant can approve, save or discard.
A draft that breaks a rule shows an inline error that tells the merchant what to fix before approving it.
Recovery messages: draft needs a fix. A draft that breaks a rule shows an inline error that tells the merchant what to fix before approving it.
Approved messages are marked Approved and count toward the two messages that sending needs.
Recovery messages: approved. Approved messages are marked Approved and count toward the two messages that sending needs.
A rejected message is quarantined and not used until the merchant restores it.
Recovery messages: quarantined message. A rejected message is quarantined and not used until the merchant restores it.

Decision log

The decision log lists every abandoned checkout with its status. Open one to see the eligibility checks, what was chosen and why, the approval, the delivery and the outcome.

The decision log lists every abandoned checkout with its status, time and cart value and can be searched and filtered.
Decision log. The decision log lists every abandoned checkout with its status, time and cart value and can be searched and filtered.
A decision's detail shows the eligibility checks, the chosen message and discount, the chance of order, how it was chosen, approval, delivery and outcome.
Decision detail: message sent. A decision's detail shows the eligibility checks, the chosen message and discount, the chance of order, how it was chosen, approval, delivery and outcome.
A holdout decision explains that a small random group gets no message so the real effect can be measured.
Decision detail: holdout group. A holdout decision explains that a small random group gets no message so the real effect can be measured.
A skipped decision shows the reason it was skipped, here because fewer than two messages are approved.
Decision detail: skipped. A skipped decision shows the reason it was skipped, here because fewer than two messages are approved.

Email deliveries

The Email page lists each message handed to Klaviyo or Flow and its delivery status.

The email page lists each message handed off, its delivery status, where it was handed off and when.
Email deliveries. The email page lists each message handed off, its delivery status, where it was handed off and when.
Before any email is handed off, the page explains when emails will appear.
Email: no sends yet. Before any email is handed off, the page explains when emails will appear.

Plans and limits

Every plan includes all features. Plans differ by how many customer events Decisioner decides on in a 30-day period, across every event kind. When you reach the limit, new customer events are skipped until the count resets; there are no extra charges.

  1. Open Plans in the app menu.
  2. Select Choose, Upgrade or Downgrade on a plan.
  3. For a paid plan, approve the charge on Shopify's page. You return to Decisioner.
The plan picker shows the four plans with their limits of customer events decided per 30 days, the trials, the current plan and this period's usage.
Plans: picker on the Free plan. The plan picker shows the four plans with their limits of customer events decided per 30 days, the trials, the current plan and this period's usage.
Near the plan limit, a warning shows how many customer events were decided and that new ones are skipped at the limit.
Plans: close to the limit. Near the plan limit, a warning shows how many customer events were decided and that new ones are skipped at the limit.
At the plan limit, a critical banner says new customer events are skipped until the count resets, and the merchant can upgrade.
Plans: limit reached. At the plan limit, a critical banner says new customer events are skipped until the count resets, and the merchant can upgrade.
On a paid plan, the picker marks the current plan, shows its usage and offers upgrade or downgrade buttons.
Plans: on a paid plan. On a paid plan, the picker marks the current plan, shows its usage and offers upgrade or downgrade buttons.
When the plan limit is reached, the checkout recovery page shows a banner with an Upgrade link.
Checkout recovery: plan limit reached. When the plan limit is reached, the checkout recovery page shows a banner with an Upgrade link.

Settings

Settings groups the controls that apply to the whole store: emergency stop, quiet hours, frequency and volume caps, excluded product categories, learning, the Klaviyo key, the test email, your plan and customer data requests. Save the form with the save bar at the top.

Settings group the emergency stop, quiet hours, frequency and volume caps, category exclusions, learning consent, Klaviyo key, test send, plan and customer data requests.
Settings. Settings group the emergency stop, quiet hours, frequency and volume caps, category exclusions, learning consent, Klaviyo key, test send, plan and customer data requests.
On a paid plan, the Plan section in Settings shows the plan name, its price and usage, and a Change plan button.
Settings: paid plan. On a paid plan, the Plan section in Settings shows the plan name, its price and usage, and a Change plan button.
Settings warns that Klaviyo sending is blocked until a new test email is confirmed.
Settings: test email required. Settings warns that Klaviyo sending is blocked until a new test email is confirmed.

Customer data requests

When a customer asks for their data through Shopify, Decisioner prepares an export. Settings shows a download link and lets you create a new one before the deadline.

When a customer data request is ready, Settings offers a download and a way to create a new link before the deadline.
Settings: customer data request ready. When a customer data request is ready, Settings offers a download and a way to create a new link before the deadline.

Emergency stop

The Emergency stop holds every queued message at once. Nothing is sent while sending is stopped.

  1. Select Emergency stop on Home or in Settings, then confirm.
  2. To restart, select Resume sending.
  3. Held messages appear at the top of Approvals. Send or cancel each one before its recovery window ends.
Clicking Emergency stop opens a confirmation that explains waiting messages are held, not sent, until the merchant resumes and decides on each one.
Emergency stop confirmation. Clicking Emergency stop opens a confirmation that explains waiting messages are held, not sent, until the merchant resumes and decides on each one.
While sending is stopped, Home shows a Sending stopped badge, the number of held messages and a Resume sending button.
Home: sending stopped. While sending is stopped, Home shows a Sending stopped badge, the number of held messages and a Resume sending button.
While sending is stopped, the queue explains that Approve and Send are disabled, still allows cancelling and offers a Resume button.
Approvals: sending stopped. While sending is stopped, the queue explains that Approve and Send are disabled, still allows cancelling and offers a Resume button.
While sending is stopped, Settings shows the held message count, a link to review them and a Resume sending button.
Settings: sending stopped. While sending is stopped, Settings shows the held message count, a link to review them and a Resume sending button.

On your phone

Decisioner works in the Shopify mobile app. Screens stack into one column.

On a phone, Home stacks the status, the plan and held-messages warnings and the 30-day numbers in one column.
Home on mobile. On a phone, Home stacks the status, the plan and held-messages warnings and the 30-day numbers in one column.
On a phone, the setup guide shows the step list and the delivery target choice in one column.
Setup on mobile. On a phone, the setup guide shows the step list and the delivery target choice in one column.
On a phone, each waiting message becomes a card with its cart, send time, discount, message, deadline and the Approve and Review buttons.
Approvals on mobile. On a phone, each waiting message becomes a card with its cart, send time, discount, message, deadline and the Approve and Review buttons.
On a phone, the approval detail shows the cart, message and decision buttons in one column.
Approval detail on mobile. On a phone, the approval detail shows the cart, message and decision buttons in one column.

Privacy and data

  • Decisioner reads customer email consent and order history from your store. It does not read names, phone numbers or addresses.
  • The decision model receives anonymous numbers about the cart and order history. It never receives names, email addresses, customer IDs or your store name.
  • Messages go only to customers subscribed to email marketing in Shopify and, with Klaviyo, in Klaviyo too.
  • Your Klaviyo key is stored encrypted. When you uninstall, the key is deleted at once and all other data within 30 days.
  • Customer data requests and deletion requests from Shopify are handled automatically.

The full details are in the Privacy Policy, the Data Processing Addendum and the subprocessor list.

Troubleshooting

Home says the model is on a waitlist.
Your store is waiting for model clearance. Setup can continue; messages start when the store is cleared.
Nothing is being sent.
Check Home for warnings: sending stopped, test email required, fewer than two approved messages, or plan limit reached.
Klaviyo refused my key.
Create a new private key with Events (write), Profiles (read), Subscriptions (read) and Templates (read), then paste it again.
A customer should never get messages.
Open the decision and select Exclude customer. Decisioner stops profiling them and removes their profile.