Rivo Debug / Kitchen Sink

Not logged in — RivoAPI methods will fail  · RivoAPI status: waiting for RivoAPI…

Liquid — server-side customer data

Liquid

Everything available at render time from the customer object — no JS required. This is what can be used for server-side conditionals like loyalty status gating.

Property Value
customer.id
customer.email
customer.first_name
customer.last_name
customer.orders_count
customer.total_spent
customer.accepts_marketing
customer.tags no tags
loyalty-opt-in tag? NO

shop.metafields.rivo — rewards metafield

Liquid

Rivo populates shop.metafields.rivo.loy.points_program.points_rewards with the active rewards. If populated, rewards can be rendered server-side with zero JS — the most robust approach.

⚠️ shop.metafields.rivo.loy.points_program.points_rewards is empty or not accessible. The metafield namespace may need to be exposed in Settings → Custom data → Storefront access, or the metafield key may differ. Fall back to RivoAPI.rewards() below.

RivoAPI.identify_customer()

Widget SDK

Points balance, loyalty status, lifetime earnings. The primary source of truth for what to show on the account page header.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.customer_tier()

Widget SDK

Current VIP tier and progress toward the next tier. Can power a progress bar showing how far the customer is from their next reward level.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.rewards()

Widget SDK

All available rewards. Compare this to the Liquid metafield above — if they match, the metafield approach works and you don't need JS for the list. Each reward also has a live Redeem button that calls RivoAPI.redeem(id).

Raw response
— not yet fetched —
Component scaffold + live redemption
Run the method to see the component

window.Rivo — global config object

JS global

Rivo injects a global window.Rivo object when its embed script loads. It exposes the app proxy base URL (proxy_paths.loy) and the current customer ID — both are needed for triggering custom actions client-side without a server-side API key.

Full window.Rivo dump
— not yet inspected —

RivoAPI.update_dob()

Widget SDK — write

Writes the customer's date of birth to Rivo. Rivo uses it to automatically award birthday points. The value is then readable back in Liquid as customer.metafields.custom.rivo.value.dob (if the metafield namespace is exposed). Format: MM-DD (e.g. 06-24 for June 24th — no year).

Liquid sourceValue
customer.metafields.custom.rivo.value.dob
What this enables on the account page
A birthday field on the account page lets customers enter their DOB once. Rivo will send them a birthday reward automatically (if a birthday action is configured in the Rivo dashboard). Combine with a custom action (see below) to also reward the act of filling it in.

Custom action — proxy trigger

JS → app proxy

Custom actions award points for things you define in the Rivo dashboard (e.g. "Completed profile", "Added birthday"). They're triggered by POSTing to the Shopify app proxy — no server-side API key needed, authentication goes through the proxy. The proxy URL comes from window.Rivo.global_config.proxy_paths.loy.

⚠️ The custom action name must already exist in your Rivo dashboard under Ways to Earn → Custom Action — otherwise the request will return an error.

Request that will be sent
— inspect window.Rivo first to see the resolved URL —
Ideas for custom actions on the account page
Action name (you define)When to trigger
profile_birthday_addedAfter successful updateCustomerDob()
account_page_visitOn rivo-js-loaded while on /account
referral_link_copiedAfter customer copies their referral URL
newsletter_subscribedAfter loyalty opt-in form submission

RivoAPI.referral_stats()

Widget SDK

The customer's referral URL, code, and summary stats. Useful for a "share with a friend" section on the account page.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.points_logs() — Activity Feed

Widget SDK

Timeline of points earned and spent. Powers an activity feed on the account page — shows recent transactions like "Earned 50 points for order #1234" or "Redeemed 200 points for 10% off".

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.cart_earnings_estimation() — Cart Points Preview

Widget SDK

Estimates how many points the customer will earn from their current cart. Powers a "You'll earn X points with this order!" motivator on the cart page or mini-cart.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.best_reward_to_show() — Next Reward Nudge

Widget SDK

The single most relevant reward for this customer right now. Powers a motivational "You're X points away from a free treat!" nudge bar on the account page, cart, or site-wide banner.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.membership() + membership_details()

Widget SDK

Membership program status and details. Powers a digital membership card showing program enrollment, benefits, and renewal info. Fetches both endpoints to give the complete picture.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.loyalty_gifts() — Claimable Gifts

Widget SDK

Available loyalty gifts (different from points-based rewards). These are free gifts the customer can claim — powers a "Gifts waiting for you" section on the account page.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.profile_pos_qr() — In-Store QR

Widget SDK

QR code for in-store POS point collection. The customer shows this at checkout to earn points on physical purchases. Powers an "Earn points in store" card on the account page or a mobile-first loyalty wallet view.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.vip_tier() — VIP Tier Roadmap

Widget SDK

All available VIP tiers with thresholds and perks — the full program roadmap. Different from customer_tier() which only returns the customer's current tier. Powers a tier comparison table or visual progress roadmap.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.orders() — Order Points History

Widget SDK

Recent orders with points earned per order. Powers a "Points earned per purchase" history view on the account page — lets the customer see exactly which orders earned them points.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.shopify_customer() — Shopify Customer Data

Widget SDK

The full Shopify customer object as Rivo sees it. Useful for spotting data mismatches between Shopify and Rivo, verifying tags, and debugging customer identity issues.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component

RivoAPI.referrals() — Full Referrals List

Widget SDK

Detailed list of all referred people (vs referral_stats() which is just the summary). Powers a referral dashboard showing each person referred, their status, and points earned.

Raw response
— not yet fetched —
Component scaffold
Run the method to see the component