---
title: "How to build a sustainable loyalty program that spends points"
slug: "sustainable-loyalty-program"
url: "https://joy.so/updates/sustainable-loyalty-program/"
kind: "update"
author: "Thomas Nguyen"
author_url: "https://joy.so/author/thomas/"
published_at: "2026-07-30T07:51:31.000+00:00"
updated_at: "2026-10-08T08:57:58.000+00:00"
description: "A discount-only reward menu leaves points sitting. Here's how an environmental reward spends that balance without cutting into your margin again."
category: "Product Updates"
tags: ["Product Updates"]
reading_time: 2
feature_image: "https://cdn-web.joy.so/cdn/image/2026/09/How-to-build-a-sustainable-loyalty-program-that-spends-points-f4571d.png"
---

# How to build a sustainable loyalty program that spends points

## Why this matters

Give idle points somewhere to go besides another discount. Joy's [GoodAPI integration](https://help.joy.so/integrations/goodapi/) adds an environmental impact reward, so customers spend points to plant trees or remove plastic bottles.

### Spend points without cutting your margin

An impact reward costs a set amount per unit, paid to GoodAPI, and nothing comes off an order. The points leave your books without touching your pricing.

### Let customers redeem in one tap

Customers redeem in the widget next to your discount rewards, and their points come off immediately. No discount code is generated and no order is created, so your reports stay clean.

### Give customers a total that keeps growing

Each customer builds a running record of trees planted or bottles removed, shown on the widget Profile card, the Joy Loyalty Hub page and their Shopify customer account. The total only goes up when they redeem again.

> **Try this**
> Start in test mode and walk the whole flow before real money moves. Then set your monthly budget cap in GoodAPI and launch one impact type at one point price.

---

## How to access and use

### Step 1: Copy your Sprout API key

Install GoodAPI from the Shopify App Store, then copy your Sprout API key from its API section.

### Step 2: Connect GoodAPI in Joy

Go to **Integrations → GoodAPI**, paste the key and click **Connect**.

### Step 3: Add the program

Go to **Reward programs → Redeeming programs**, click **Add program** and pick the **Environmental impact** event.

### Step 4: Set the reward

Choose **Plant trees** or **Remove plastic bottles**, then enter the quantity and the points cost.

### Step 5: Save and activate

The program then goes live in your widget.

## Setup guides

[Joy and GoodAPI](https://help.joy.so/integrations/goodapi/)

## Good to know

The impact type locks after the first redemption, so choose trees or bottles before launch. GoodAPI bills your GoodAPI account per tree or bottle, separately from Joy.

## Frequently asked questions

### What happens to points if a redemption fails?

The points refund automatically when GoodAPI rejects the request. If the impact is funded but the confirmation never comes back, the activity stays pending without a refund, because the impact was already paid for.

### Can I offer both trees and plastic bottle removal?

Yes. Create two environmental impact programs, one per impact type, because a single program cannot switch types once it has a redemption.

### What happens if I disconnect GoodAPI?

Every active environmental impact program turns off, and the stored credentials are cleared. Treat disconnecting as a program-level action rather than a quick toggle.
