Skip to content

Build loyalty your way

Your frontend. Your workflows. Joy’s loyalty engine. Build the experience your brand deserves, with developer tools that put you in control.

Member
Alex
Points balance
2,400points
Tier
Gold
member-balance.js
window.addEventListener('joy:ready', async () => {
  const member = await joyInstance.customer()

  document.querySelector('[data-points]')
    .textContent = member.point.toLocaleString()
})

Requires the Joy script and customer authentication. Preview data is simulated.

A toolkit that goes
where you build

Design a custom member experience, connect the rest of your stack, or automate the moments in between. Choose the right tools for your next idea.

  • MCP & AI connections

    Connect Claude or ChatGPT to live loyalty data. Grant read access or approved actions, with connections you can revoke.

    Scoped access · OAuth

  • JavaScript SDK

    Bring points, rewards and loyalty actions into your own storefront UI. You own the layout and interactions.

    Your storefront, your components

  • REST API v2

    Read and update customers, points, rewards, tiers and referrals from your backend or custom application.

    Server-side · Ultimate plan

  • Webhooks

    Connect loyalty events to your CRM, messaging platform or internal tools. Respond when points and tiers change.

    Event-driven · Ultimate plan

  • Shopify metafields

    Sync point balances and VIP tier names to Shopify customer metafields. Put loyalty data to work across your Shopify stack.

    Native customer data · Essential+

  • Shopify Flow

    Turn loyalty events into workflows. Connect points, rewards and customer activities with the apps your team already uses.

    Low-code workflows · Essential+

Bring your loyalty tools into Claude & ChatGPT

Connect through MCP to explore live loyalty data and preview program changes in your assistant. OAuth keeps access scoped and revocable.

  1. Generate the matching key in Joy’s developer settings.
  2. Copy your MCP server URL and add it to your assistant.
  3. Choose read-only or full access, then approve the connection.
Connect Claude or ChatGPT
Claude showing a Joy Loyalty program-performance table, with the MCP access-approval dialog open beside it

Build a reward browser with the SDK

Read Joy’s redeeming programs and render them with your own storefront components. The SDK supplies the loyalty data; your code controls the interface.

  1. Wait for joy:ready before calling the SDK.
  2. Read the available programs with redeemPrograms().
  3. Inspect the returned programs and map them into your own reward UI.
Read the SDK methods
rewards.js
window.addEventListener('joy:ready', async () => {
  const rewards = await joyInstance.redeemPrograms()

  // Render the programs with your own components.
  console.log(rewards)
})

Requires the Joy script and customer authentication. This example reads programs; redemption needs its own documented action and error handling.

Read customers
from your backend

Connect a mobile experience. Build an internal tool. Sync your CRM. Use the REST API for loyalty operations and webhooks to keep your systems in step.

Your first request · server-side
curl 'https://api.joy.so/rest_api/v2/customers?limit=20' \
  -H "X-Joy-Loyalty-App-Key: $JOY_APP_KEY" \
  -H "X-Joy-Loyalty-Secret-Key: $JOY_SECRET_KEY"

Ultimate plan required. Keep API secrets on your server.

  1. Your backend
  2. Joy loyalty engine
  3. Your customer experience

Loyalty in motion. At scale

Millions of storefront requests flow through Joy’s widget backend. Here’s a measured snapshot of that traffic in production.

Storefront requests in 7 days
32.2M
Handled by Joy’s widget popup backend.
Requests per day
~4.6M
Daily average across the measured week.
HTTP 200 responses
99.2%
Share of requests returning HTTP 200.

Source: Cloud Monitoring · 3–10 August 2026 · Widget popup backend traffic, not total developer REST API usage.

View live API status (opens in a new tab)

Compose loyalty events in Shopify Flow

An earned point. A redeemed reward. Build the workflow that follows, with Joy triggers and actions inside Shopify Flow.

  • Manage VIP tier on subscription membership status changes

    Automatically removes or reassigns customers from VIP tiers when subscription memberships are cancelled.

    LoyaltyWorks with Shopify, Shopify Flow and Joy
  • Assign VIP tier when subscription membership is purchased

    Automatically assigns customers to VIP tiers when they purchase subscription membership packages.

    LoyaltyWorks with Shopify, Shopify Flow and Joy
  • Reward weekend signup with bonus

    Automatically reward customers who sign up during the weekend with a bonus along with their basic signup reward.

    LoyaltyWorks with Shopify, Shopify Flow and Joy
  • Reply and reward points when customer comments on Instagram post

    Automatically reply to Instagram comments and send a DM when a customer comments on your post.

    LoyaltyWorks with Shopify, Shopify Flow and Joy
  • Send DM and reward points when customer mentions your brand on Instagram story

    Automatically send a thank-you DM and award loyalty points when a customer mentions your brand in their Instagram story.

    LoyaltyWorks with Shopify, Shopify Flow and Joy
  • Send DM and reward points when customer replies to your Instagram story

    Automatically send a thank-you DM and award loyalty points when a customer replies to your Instagram story.

    LoyaltyWorks with Shopify, Shopify Flow and Joy

Essential+. Available actions depend on your plan and connected apps.

Explore triggers and actions (opens in a new tab)

Distinct brands. Loyalty built around them

From member migrations to tailored reward experiences, see what established brands build with Joy.

  • Allbirds
  • Paula’s Choice
  • Songmont
  • SwitchBot
  • Florasis
  • The Tinsel Rack
  • Singularu
  • Korean Skincare
  • Tiny Land
  • Cool-Vita
  • B/Skin
  • Candier

Before you build

Yes. The JavaScript SDK exposes customer information, earning and redeeming programs, tiers and widget actions so you can build a storefront interface around Joy’s loyalty logic.

Unlimited REST API and webhooks are on the Ultimate plan. Shopify Flow and Shopify metafield sync are available from Essential upwards.

Yes. The JavaScript SDK is framework-agnostic, so you can build custom loyalty UIs on a headless storefront in React, Vue or Hydrogen.

No. An AI connection is scoped when you approve it — you choose read-only or full access, and you can revoke the connection at any time from your developer settings.

Open the reference. Start building

Open developer docs