Signal
A referral share and a five-star review
Omar shares his referral link on WhatsApp and leaves a five-star review with a photo. Two signals, from Referrals and from Reviews.
The engine
One profile. One decision at a time.
Every module writes to the same customer record, and the retention engine decides what happens next.
Recover
Turn saved items and sold-out stock into orders.
Retain
Keep customers with subscriptions, flows, segments and proof.
Built on Shopify's native primitives. No theme hacks, no ScriptTags.
By outcome
Same engine, same price. Each solution shows the loop pointed at one outcome.
Loyalty & referrals
Subscriptions & pre-order
Dated, sourced comparisons. Free migration from any of these during private beta.
The engine Step 01 of the loop
Ayra Customer Signals is the event layer of the Shopify retention engine. Every module and Shopify itself emits typed signals, an order placed or delivered, an item wishlisted, a restock, a review, a referral, a subscription skip, a support ticket, and each is resolved to one customer profile. Signals are facts; the engine turns them into opportunities and decisions.
Every event from Shopify and every module, typed, on one profile.
Signal stream
| Time | Signal | Resolved to | Feeds |
|---|---|---|---|
| 09:12 | restock.available | Linen Overshirt · M | VIP_RESTOCK × 14 |
| 09:10 | wishlist.added | Hira | Intent ↑ high |
| 08:57 | subscription.skipped | Daniel · ×2 | CHURN_RISK |
| 08:41 | review.submitted | Omar · 5★ | REFERRAL_PUSH |
| 08:30 | ticket.opened | Jon | Hold outbound |
| 08:12 | order.delivered | Mei · #5102 | SECOND_ORDER |
Facts in. Decisions happen one step later.
01 The merchant problem
A wishlist is a signal. So is a skipped delivery, a two-star review, a late order and a referral share. Each is logged somewhere. None of them are read together.
The review app never learns about the delivery complaint. The loyalty app never sees the wishlist. The subscription app never hears about the low rating.
A restock triggers an alert to everyone on the list, instead of raising intent on each profile and letting the engine decide who hears first.
'Engaged' and 'at risk' are scores with no events behind them, so nobody can check why a customer was labelled.
Browsing and wishlisting before login never reach the profile, which is where most intent shows up first.
02 How Ayra solves it
Commerce, intent, loyalty, advocacy, subscription and trust signals, each with a type, a source and a payload the engine and your automations can read.
Email, phone, customer ID and device resolve each signal to a profile, so a guest wishlist and a logged-in order are the same person.
Wishlists, repeat views, restock interest and price-drop interest raise an intent score the engine reads for priority.
Skips, failed payments, low ratings, open tickets and refunds lower priority and can hold outbound actions through Trust Recovery.
Every signal is a Shopify Flow trigger and a webhook event, so your own automations can read what Ayra reads.
03 Inside
Signal families, examples of the events in each, and what they feed.
| Family | Examples | Feeds |
|---|---|---|
| Commerce | order.placed, order.delivered, order.refunded | Lifetime value, lifecycle stage, lapse detection |
| Intent | wishlist.added, product.viewed_again, restock.requested, price_drop.watched | Intent Engine score, restock priority |
| Loyalty | points.earned, credit.granted, tier.changed, points.expiring | Smart Wallet, tier perks, expiry reminders |
| Advocacy | review.submitted, referral.shared, referral.converted | Trust Recovery, Reward Shield, referral push |
| Subscription | subscription.started, subscription.skipped, payment.failed, cancel.attempted | Save Engine, dunning, churn risk |
| Trust | ticket.opened, ticket.resolved, delivery.late | Holds on outbound actions, review timing |
| Account | account.activated, channel.preferred, wishlist.merged | Identity resolution, channel choice |
In the loop Every module and Shopify itself emits events: order placed, delivered, item wishlisted, back in stock, review left, referral sent, subscription skipped, support ticket opened. Signals are facts, not decisions. How it works
04 The workflow
Omar, 3 orders · advocate. Five stages, one decision, every reason recorded.
Omar
3 orders · advocate
Signal
Omar shares his referral link on WhatsApp and leaves a five-star review with a photo. Two signals, from Referrals and from Reviews.
Customer
The share came from his account, the review from the order email. Both resolve to one profile: 3 orders, 5 stars, no tickets, WhatsApp preferred.
Opportunity
Evidence: a fresh positive review and an active share. Priority is low because nothing about it expires soon.
Action
A points reminder is already due this week. The referral nudge waits for next week's window and goes by WhatsApp, with his own review quoted back to him.
Outcome
His friend orders through the link. Reward Shield waits out the return window, then credits both sides. The order is attributed to Referrals.
05 Use cases
Ayra decides
The restock signal raises priority for high-intent and VIP customers. Alerts go out in that order, not in the order people signed up.
Ayra decides
The refund signal reverses the referral reward and lowers the review request's priority. The timeline shows both.
Ayra decides
Use the subscription skip signal as the Flow trigger. No polling, no export.
Fed by these modules
Wishlist
Emits wishlist, repeat-view, price-drop and restock-interest signals. The Intent Engine reads them.
Subscriptions
Emits skips, pauses, failed payments and cancel attempts. Save Engine and dunning read them.
Reviews
Emits reviews and ratings. Trust Recovery reads them next to support signals.
Referrals
Emits shares and conversions. Reward Shield reads refunds against them.
For developers
Every signal is a typed event with a schema. Subscribe to them over webhooks, use them as Shopify Flow triggers, or read a customer's recent signals through the REST API.
Solutions built on Signals
Read churn as signals and answer with a save, not a discount.
Detect lapsed customers from their own rhythm and bring them back once.
One loop that decides per customer instead of a stack of triggers.
06 FAQ
A typed event about one customer from Shopify or an Ayra module: an order, a delivery, a wishlist, a restock, a review, a referral, a skip, a failed payment, a ticket. Signals are facts, not decisions.
It records the intent signals its own storefront blocks see, such as wishlists, repeat product views and restock requests. It does not inject tracking scripts into your theme.
They are held against the email, phone or device they arrived with and merged into the profile when it resolves, for example at login or at checkout.
Yes. Every signal is exposed as a Shopify Flow trigger and as a webhook event, so Flow and your own services can react to what Ayra sees.
Yes. Skips, low ratings, tickets and refunds lower priority and can hold actions entirely. Ignoring them is how a review request lands on an open complaint.
07 The rest of the engine
One profile per customer, written by every module and by Shopify.
Every retention chance, typed and prioritised, with evidence and an expiry.
Save-for-later that turns into a retention signal.
Private beta
Private beta merchants get the signal layer from the first module they enable, with every event visible on the customer timeline.