# DOCUMENTATION

Welcome to the official Bloop documentation — your complete guide to running a Referral & Affiliate marketing program on Shopify.

## What is Bloop?

Bloop is a Shopify app that runs two word-of-mouth programs in one dashboard:

* **Referral Program** — rewards existing customers for inviting friends
* **Affiliate Program** — pays external partners a commission on the sales they drive

## Quick Links

* [How Bloop Works](/getting-started/how-bloop-works)
* [Getting Started with Referrals](/quick-start/getting-started)
* [Getting Started with Affiliates](/quick-start/getting-started-1)
* [FAQs](/help/faqs)


# Launch a Referral Program

A referral program turns your happiest customers into a sales channel: they recommend you to people who trust them, and you reward both sides for it. Bloop programs are **two-sided** — a referrer shares a link or code, a referee uses it to claim a discount, and once the referee completes a qualifying purchase, the referrer earns their reward. Nothing is paid out for a share alone; the program only rewards real revenue.

> **Best practice:** Launch with a generous, simple offer rather than a complex one. Launch with a simple flat reward first — a clear "give a discount, get a discount" message spreads fastest. Once your program has traffic, consider [tiered rewards](/referral-program/tier-rewards) to give your best referrers a reason to keep sharing. See [referral program best practices](https://bloop.plus/blog/referral-program-best-practices/) before you decide on numbers.

### 1. Enable the app embed

Bloop displays its referral widget through a Shopify theme app embed, so the program appears on your live storefront without editing theme code.

1. In your Shopify admin, open **Online Store → Themes** and click **Customize** on your live theme.
2. Open **App embeds** in the theme editor and toggle on **Bloop Referral**.
3. **Save**. The referral widget now renders on your storefront so customers can join and share.

### 2. Create a campaign

A campaign holds the rules that decide who can refer, what rewards are issued, and when. Think of it as the single contract behind your program.

1. In the Bloop dashboard, open the **Campaign** tab and create a new referral campaign.
2. Under **Target audience**, choose who can become a referrer — any customer, logged-in customers only, customers with specific tags, or customers with prior orders.
3. Give the campaign a clear name so you can find it later.

For the full reasoning behind each audience choice, see [Set your referral target audience](/referral-program/target-audience).

### 3. Set the referrer and referee rewards

Each side of the referral gets its own reward, and the balance between them is what makes a program convert.

* **Referee reward** — the incentive a new customer receives for using a referral link or code (typically a discount on their first order).
* **Referrer reward** — what the existing customer earns after their referee makes a qualifying purchase. Choose one of four types:

| Reward type   | How it works                                                                                                     |
| ------------- | ---------------------------------------------------------------------------------------------------------------- |
| Discount code | A Shopify discount code, fixed amount or percentage                                                              |
| Store credit  | Credit applied directly to the customer's Shopify account                                                        |
| Cash          | Tracked in Bloop; you process the payout manually                                                                |
| Custom        | A reward you describe yourself (a gift, swag, a service) — held as Pending for you to approve and fulfil by hand |

You can also require a minimum order value, a minimum number of items, or a referee threshold before a referrer reward is issued. For how each option behaves, see [Set up referrer and referee rewards](/referral-program/rewards).

### 4. Brand your program

Give the program a presence on your store before you launch. Two surfaces matter most:

* **Referral page** — a dedicated landing page you can link from your menu, footer, or newsletter. See [Set up and brand your referral landing page](/referral-program/branding/page).
* **Post-purchase popup** — the highest-converting moment, right after checkout. See [Customize the post-purchase referral popup](/referral-program/branding/post-purchase).

### 5. Choose your sharing channels

Decide which channels referrers can share through — WhatsApp, Native Share, email, X, Facebook — and in what order, separately for desktop and mobile. See [Configure referral social sharing channels](/referral-program/branding/social-sharing).

### 6. Launch

When your campaign, rewards, branding, and sharing channels are set:

1. Review the campaign settings one last time.
2. Set the campaign status to **active** to start tracking referrals.
3. Confirm the widget appears on your live storefront.

Your referral program is now live. New referrals, rewards, and activity will appear in the Bloop dashboard as customers start sharing — use that data to refine your offer over time.


# Launch an Affiliate Program

An affiliate program is a pay-for-performance sales channel: you recruit external partners — creators, bloggers, publishers — and pay them a commission only on the orders they actually drive. Cost scales with revenue, making it one of the lowest-risk ways to grow a Shopify store. Set a commission worth promoting, decide who gets in, and pay reliably; Bloop handles the tracking.

> **Best practice:** Treat your first campaign as a starting offer, not a final answer. Launch with the 15% default, recruit a handful of partners who already love your products, and watch which commission level actually motivates promotion before you scale up. A program with five engaged affiliates beats fifty inactive ones.

If you are deciding between this and a customer referral program, read [referral program vs affiliate program](https://bloop.plus/blog/referral-program-vs-affiliate-program/). The short version: referral programs reward your existing customers for inviting friends, while affiliate programs reward partners for driving sales at scale. You can run both with Bloop at the same time.

### How the affiliate flow works

1. You create a **campaign** that sets the commission structure and the attribution window (cookie).
2. You add **affiliates** manually, or let them self-register through your registration form.
3. Each approved affiliate receives a unique referral link (and optionally a discount coupon to share).
4. When a customer orders through that link within the cookie window, Bloop records a **sale** and calculates the commission.
5. You review sales, approve the valid ones, then **pay out** the approved commissions.

### What gets created on setup

The first time the affiliate module initializes for your store, Bloop creates a set of defaults so you can start immediately:

* A **Default Campaign** with a 15% percentage commission and a 30-day cookie window.
* The default affiliate **email notifications** (registration, sale approved/declined, new payout, and more).
* Default **portal settings** for the affiliate-facing portal.
* A default set of **payment methods** (Bank transfer, PayPal, Debit cash, Google pay) you can enable and configure later.

You do not have to keep these defaults. Every one of them is editable from the affiliate dashboard.

### 1. Review or create your campaign

Open the **Campaign** tab. You will see the Default Campaign already created.

1. Set the **commission structure** — a flat amount, a percentage, or tiered rates. See [affiliate campaigns and commissions](/affiliate-program/campaigns) for every option and which model fits your margins.
2. Set the **cookie** (attribution window) in days. This is how long after a click a purchase still counts for the affiliate. The default is 30 days.
3. Optionally turn on an **auto-apply discount** so customers who arrive through an affiliate link get a discount automatically.

You can run multiple campaigns at once and assign different affiliates to different campaigns.

### 2. Add your first affiliates

You can populate your program two ways:

* **Manually add** an affiliate from the **Affiliates** tab by entering their name and email and assigning a campaign.
* **Self-registration** — share your registration form link so affiliates apply themselves. New applicants land with a **pending** status until you approve them.

Full details, including approving applicants and the "login as" portal preview, are in [managing affiliates](/affiliate-program/affiliates).

### 3. Set up payment methods

Before you owe anyone money, decide how you will pay. Open **Branding → Payments** and enable the methods you support, then edit the fields each one collects from affiliates. See [affiliate settings](/affiliate-program/settings) for the configuration steps.

### 4. Go live

Once you have a campaign, at least one approved affiliate, and payment methods configured:

1. Confirm the campaign status is active.
2. Share referral links (and coupons) with your affiliates, or point them to the registration form.
3. Watch the **Sales** tab as orders start coming in.

Your affiliate program is now live. As affiliates drive orders, sales appear for review in the dashboard, and approved commissions become available to [pay out](/affiliate-program/payouts).


# Pre-Launch Checklist

A referral program rarely fails at launch because of one big mistake — it fails because a few small things were never finished. The short answer: settle the reward and offer first, brand every customer-facing surface, test the full flow as a real customer, then promote only once everything works. This article is the order to do those steps in, with a checklist and links to the Bloop docs for each.

Treat launch as a sequence, not a single switch. Each step depends on the one before it, and skipping the test step is the most common reason a live program quietly loses shares.

### The launch sequence

1. **Decide the reward and offer.** Choose the type, value, offer shape, minimums, and expiry. Start here because every other surface is built around it.
2. **Set who can refer.** Open the audience wide at launch so you gather data on who actually refers.
3. **Brand the customer-facing surfaces.** Style the widget, post-purchase prompt, and landing page so the program reads as part of your store.
4. **Switch on the emails.** Make sure reward, reminder, and invitation emails are enabled and worded in your voice.
5. **Test the full flow.** Run a real referral end to end before anyone sees it.
6. **Promote.** Only now point traffic at the program.

### Pre-launch checklist

| Area          | Confirm before launch                                            | Where                                                           |
| ------------- | ---------------------------------------------------------------- | --------------------------------------------------------------- |
| Reward        | Type and value chosen; combined value below your referral profit | [Rewards](/referral-program/rewards)                            |
| Offer         | Single vs double-sided, minimums, and expiry set deliberately    | [Rewards](/referral-program/rewards)                            |
| Audience      | Eligibility rule chosen — wide at launch                         | [Target audience](/referral-program/target-audience)            |
| Widget        | Launcher and panel branded to your store                         | [Widget branding](/referral-program/branding/popup)             |
| Post-purchase | Prompt enabled and worded around the friend's reward             | [Post-purchase popup](/referral-program/branding/post-purchase) |
| Landing page  | Created, given a clean handle, added to navigation               | [Referral page](/referral-program/branding/page)                |
| Emails        | Program emails enabled and on-brand                              | [Referral emails](/referral-program/emails)                     |
| Test          | A full referral completed in test mode                           | [Test your referral program](/best-practices/test-referral)     |

### Test as a real customer before you promote

The fastest way to catch a broken reward, a missing email, or an unbranded popup is to run the whole flow yourself: become a referrer, send a referral, complete a qualifying order as the referee, and confirm both rewards land. Bloop provides a test path so you can do this without affecting real data — see [test your referral program](/best-practices/test-referral). Do not skip this step; a program that looks fine in settings can still fail at checkout.

### Promote once, properly

With everything verified, point traffic at the program through the surfaces you branded plus off-store channels. Resist launching promotion before the test passes — a broken first impression is hard to win back.

### Set it up in Bloop

* Follow the full setup in [Getting started with referrals](/quick-start/getting-started).
* Verify the flow in [test your referral program](/best-practices/test-referral).
* For promotion ideas, see [how to promote your referral program](https://bloop.plus/blog/how-to-promote-referral-programs/).

### Related

* [Best practices: making your referral program visible](/best-practices/program-visibility)
* [Best practices: measuring and optimizing your program](/best-practices/measuring-and-optimizing)
* [Getting started with referrals](/quick-start/getting-started)


# How Bloop Works

Bloop is a Shopify app that grows your store through word-of-mouth — from loyal customers and the external partners you recruit. It runs two programs in one dashboard: a **referral program** that rewards existing customers for inviting friends, and an **affiliate program** that pays external partners a commission on the sales they drive. You set the rules and rewards; Bloop tracks every share, click, and order and calculates who earned what.

This page is the high-level map — what the two programs are, why they live together, and how growth happens through each one. When you're ready to build, [Getting started with referrals](/quick-start/getting-started) and [Getting started with affiliates](/quick-start/getting-started-1) walk through the setup.

### Two programs, one dashboard

Most stores need both kinds of word-of-mouth, and they pull on different relationships:

* A **referral program** turns happy customers into advocates. A customer shares a personal link or code with friends; when a friend buys, both sides earn a reward. Trust does the selling, because the recommendation comes from someone the new customer knows.
* An **affiliate program** turns external promoters into a pay-for-performance sales channel. Creators, bloggers, and publishers promote you with their own link and earn a commission on the orders they bring in.

Running them together means one place to manage rewards, track revenue, and see what is working. You can launch one first and add the other later, or run both from day one.

> **Best practice:** Think of referral as your *depth* channel and affiliate as your *reach* channel. Referral compounds loyalty among people who already buy from you; affiliate opens access to new audiences. The strongest programs use both. For the full comparison, see [referral program vs affiliate program](https://bloop.plus/blog/referral-program-vs-affiliate-program/).

### How referral growth happens

Referral growth is a loop. A customer shares, a friend redeems, that friend becomes a customer, and the cycle continues. Every Bloop referral is **two-sided** and reward-on-purchase: the referrer earns nothing for a share alone, only after their referee completes a qualifying order. This keeps the program tied to real revenue rather than empty clicks.

You control three levers that decide how fast the loop spins:

* **Who can refer** — any customer, logged-in customers, or a tagged segment. See [Set your referral target audience](/referral-program/target-audience).
* **What each side earns** — a referee discount to lower the barrier, plus a referrer reward (discount, store credit, or cash) to thank the advocate. See [Set up referrer and referee rewards](/referral-program/rewards).
* **How customers share** — a unique link, a short code, or both, surfaced on your storefront. See [Choose a referral sharing method](/referral-program/referral-methods).

For the customer-side experience of this loop, read [The referral journey](/getting-started/the-referral-journey).

### How affiliate growth happens

Affiliate growth is a recruitment-and-reward cycle. You enlist partners, give each a unique link (and optionally a discount coupon), and pay a commission only on the orders they drive. Because cost scales with revenue produced, it is one of the lowest-risk ways to expand reach.

The mechanics:

* A **campaign** sets the commission structure and the **cookie window** — how long after a click a purchase still counts for the affiliate. See [Affiliate campaigns and commissions](/affiliate-program/campaigns).
* **Affiliates** join by manual invite or self-registration, and you approve who gets in. See [Managing affiliates](/affiliate-program/affiliates).
* When a customer buys through an affiliate's link, Bloop records a **sale** and calculates the commission. You review and approve sales, then pay out. See [Affiliate sales tracking](/affiliate-program/sales) and [Affiliate payouts](/affiliate-program/payouts).

For the partner-side experience, read [The affiliate journey](/getting-started/the-affiliate-journey).

### What Bloop tracks for you

Across both programs, manual work is minimal because tracking is automatic. Bloop attributes each order to the right referrer or affiliate, calculates rewards and commissions from your rules, holds anything suspicious for review, and surfaces results as activity and analytics. Your focus stays on the decisions that matter — the offer, who is in, and paying reliably.

### Where to go next

* New to the customer side? Read [The referral journey](/getting-started/the-referral-journey).
* New to the partner side? Read [The affiliate journey](/getting-started/the-affiliate-journey).
* Unsure of a term? Check the [glossary](/getting-started/glossary).
* Want a tour of the dashboard? See [Platform navigation](/getting-started/platform-navigation).


# The Referral Journey

The referral journey is the path two people take through your program: an existing customer (the **referrer**) shares a personal link or code, and a friend (the **referee**) uses it to claim a discount, buys, and earns the referrer their reward. Understanding this journey from both sides helps you design an offer that people actually want to share — and helps you read your dashboard, because every metric you see maps to a step below.

This page describes the experience, not the configuration. It does not tell you which buttons to press; it shows what your customers see and feel at each stage, so the settings in the feature docs have a purpose behind them. For setup, see [Getting started with referrals](/quick-start/getting-started).

### The two people in every referral

* The **referrer** is a customer who already bought from you. They have a unique 8-character share code and want a reward worth the small social risk of recommending you.
* The **referee** is the friend they invite — someone who trusts the referrer and is deciding whether to try you for the first time.

A successful journey leaves both better off: the referee gets a discount on something they were already curious about, and the referrer is thanked for the introduction. That mutual win is the whole point of a two-sided reward.

### Step 1 — The referrer discovers they can share

After a purchase (and depending on the [target audience](/referral-program/target-audience) you allow), the customer sees an invitation to refer friends — on a post-purchase screen, in their account, in an email, or through your storefront widget. The message is simple: *give your friends a discount, get a reward when they buy.* This is where a clear, generous offer earns its keep; a confusing one is scrolled past.

### Step 2 — The referrer shares a link or code

The referrer passes along their personal **referral link** or **referral code**. Where they share depends on how they talk about you — a link works for email, chat, and social posts; a short code works for word-of-mouth and offline conversations. Whichever method they choose, the share carries their unique code so Bloop can credit the right person later. See [Choose a referral sharing method](/referral-program/referral-methods) for what each method suits.

### Step 3 — The referee arrives and claims a discount

The friend clicks the link (or enters the code) and lands on your store with a **referee reward** waiting — typically a discount on their first order. This incentive lowers the barrier to a first purchase: the referee has both a trusted recommendation and a reason to act now. The reward they receive is the one you defined as the referee side of your [rewards setup](/referral-program/rewards).

### Step 4 — The referee makes a qualifying purchase

When the referee completes an order that meets your conditions, the referral becomes successful. This is the moment that matters: **nothing is rewarded for a share alone** — only a real, qualifying purchase counts. If you set minimum requirements (a minimum order value, a number of items, or a number of referees), the order has to clear them. The new order is recorded so you can see it in [referral orders](/referral-program/management/orders).

### Step 5 — The referrer earns their reward

Once the referee's purchase qualifies, the **referrer reward** is issued — a discount code, store credit, or cash, depending on what you chose. If you set a review period, there is a short delay before approval; orders flagged as suspicious are held separately for a closer look. The referrer is notified, often by email, that their reward is ready.

> **Best practice:** The faster and clearer the thank-you, the more likely a referrer shares again. A reward that arrives promptly with a friendly note turns a one-time advocate into a repeat one. Tune the timing in the reward review period and the message in your [referral emails](/referral-program/emails).

### Step 6 — The referee becomes a referrer

The journey is a loop, not a line. The referee who just bought is now an existing customer — and can be invited to refer their own friends, starting the cycle again. A program that makes step 1 feel natural for every new customer is what turns a single referral into compounding word-of-mouth growth.

### How the journey shows up in your dashboard

Each step leaves a trace you can monitor: shares and clicks, referee orders, issued rewards, and the revenue behind them. Reading these together tells you where the journey stalls — lots of shares but few purchases points to a weak referee offer; few shares points to a weak referrer reward or poor placement. Follow the numbers in [referral analytics](/referral-program/analytics/analytics) and the chronological record in the [activity log](/referral-program/analytics/activity).

### Where to go next

* Set the rewards behind steps 3 and 5 in [Set up referrer and referee rewards](/referral-program/rewards).
* Decide how sharing happens in step 2 with [Choose a referral sharing method](/referral-program/referral-methods).
* See the partner equivalent in [The affiliate journey](/getting-started/the-affiliate-journey).


# The Affiliate Journey

The affiliate journey is the path a partner takes through your program: they sign up, get approved, receive a unique link and code, promote you to their audience, drive sales, and get paid a commission. Seeing the journey from the affiliate's side helps you build a program worth promoting — a confusing sign-up, a stingy commission, or a slow payout each lose you partners at a different step.

This page describes the experience, not the setup. It shows what an affiliate sees and does at each stage, so the configuration in the feature docs has a clear purpose. To build the program itself, see [Getting started with affiliates](/quick-start/getting-started-1).

### Who the affiliate is

An affiliate is an external partner — a creator, blogger, publisher, or any promoter with an audience. Unlike a referral, they need no prior order with you; they bring reach you could not get on your own. In return they expect a commission that makes promotion worth their effort and a payout they can rely on. The whole journey is **pay-for-performance**: they earn only on the orders they actually drive.

### Step 1 — The affiliate applies or is invited

A partner enters your program one of two ways. They either **self-register** through your registration form — landing in your dashboard with a **pending** status — or you **add them manually** with their name and email. Either way, this first impression matters: a clean registration form and a clear value proposition decide whether good partners bother to apply. See [Managing affiliates](/affiliate-program/affiliates) and the [registration form](/affiliate-program/branding/registration).

### Step 2 — You approve them

Before an affiliate can earn, you approve them and assign them to a **campaign**. The campaign sets their commission structure and the **cookie window** that governs attribution. Approving the right partners — and steering different partners into different campaigns — keeps your program aligned with your margins. Commission options live in [Affiliate campaigns and commissions](/affiliate-program/campaigns).

### Step 3 — The affiliate receives their link and code

Each approved affiliate gets a unique **referral link** and, optionally, a **discount coupon** to share. The link is how Bloop attributes orders to them; the coupon gives their audience a reason to buy now and gives the affiliate a clean asset to promote. From here the affiliate can log into their portal to grab their materials and watch their results.

### Step 4 — The affiliate promotes you

The affiliate puts their link and code in front of their audience — in posts, videos, newsletters, bios, or reviews. This is the work you are paying for, and it happens entirely on the affiliate's channels. A commission and offer worth talking about is what turns a signed-up affiliate into an active one.

> **Best practice:** Activation, not recruitment, is the real bottleneck. A handful of partners who genuinely promote you beat a long list who signed up and went quiet. Give affiliates ready-to-use assets and a commission they can feel, then double down on the ones who actually post. See [recruiting affiliates](/best-practices/recruiting-affiliates).

### Step 5 — A customer buys and a sale is recorded

When someone clicks the affiliate's link and completes a qualifying order within the cookie window, Bloop records a **sale** and calculates the commission from the affiliate's campaign. The sale appears in your dashboard for review, and the affiliate sees the pending earning in their portal. Tracking and statuses are covered in [Affiliate sales tracking](/affiliate-program/sales).

### Step 6 — You approve the commission

You review each sale and approve the valid ones; you can decline sales that were cancelled, refunded, or fraudulent. Approving a sale moves its commission into the affiliate's balance as money owed. This review step is what keeps payouts honest without holding up legitimate partners.

### Step 7 — The affiliate gets paid

Approved commissions become available to **pay out** through the payment method the affiliate selected. You record the payout, and it moves from the affiliate's outstanding balance into their payment history. A reliable, on-time payout is the single biggest reason an affiliate keeps promoting you — and the reason they recommend your program to other partners. See [Affiliate payouts](/affiliate-program/payouts).

### How the journey shows up in your dashboard

Each step leaves data you can read: applications and approvals, clicks and sales, approved versus paid commission. Together they show where partners drop off — sign-ups that never produce a sale point to weak activation; sales that never get approved point to a review backlog. Use [affiliate sales](/affiliate-program/sales) and [payouts](/affiliate-program/payouts) to keep the journey moving.

### Where to go next

* Set the commission behind steps 2 and 5 in [Affiliate campaigns and commissions](/affiliate-program/campaigns).
* Shape steps 1 and 7 with [managing affiliates](/affiliate-program/affiliates) and [affiliate payouts](/affiliate-program/payouts).
* See the customer equivalent in [The referral journey](/getting-started/the-referral-journey).


# Glossary

Terms used in Bloop's documentation — *attribution*, *cookie window*, and the rest — are defined here exactly as Bloop uses them. For a guided overview, start with [How Bloop works](/getting-started/how-bloop-works). For broader industry vocabulary, see the [referral program glossary](https://bloop.plus/blog/referral-program-glossary/) on the blog.

### A

**Affiliate** — An external partner (creator, blogger, publisher) who promotes your store with a unique link and earns a commission on the orders they drive. Affiliates need no prior purchase. See [Managing affiliates](/affiliate-program/affiliates).

**Affiliate portal** — The affiliate-facing area where a partner logs in to find their link and coupon, track sales, and request or view payouts. See [the portal guide](/affiliate-program/branding/portal-guide).

**Attribution** — Crediting an order to the right referrer or affiliate. Bloop attributes an order through the share code on a referral, or through the affiliate's link within the cookie window.

**Auto-apply discount** — A campaign option that automatically applies an affiliate's discount to customers who arrive through their link, with no code to enter. See [Affiliate campaigns and commissions](/affiliate-program/campaigns).

### C

**Campaign** — The set of rules behind a program. A referral campaign defines who can refer, the rewards, and the conditions; an affiliate campaign defines the commission structure and cookie window. See [referral campaigns](/referral-program/campaign) and [affiliate campaigns](/affiliate-program/campaigns).

**Cash reward** — A referrer reward or commission paid manually outside Shopify; Bloop tracks the amount owed. Requires a payment method on your account. See [referrer rewards](/referral-program/rewards).

**Commission** — The amount an affiliate earns on a qualifying order, calculated as a percentage, a flat amount per order, or a flat amount per item. See [Affiliate campaigns and commissions](/affiliate-program/campaigns).

**Cookie window (attribution window)** — How long after an affiliate click a purchase still counts for that affiliate. Bloop's default is 30 days, set per campaign. See [Affiliate campaigns and commissions](/affiliate-program/campaigns).

### D

**Discount coupon** — A Shopify discount code used as a reward or shared by an affiliate. As a referrer reward it can be a fixed amount or percentage; affiliates can share one alongside their link. See [referrer rewards](/referral-program/rewards).

### E

**EPC (earnings per click)** — Total commission divided by clicks — how much an affiliate earns per click on average. Useful for comparing affiliate performance across different traffic volumes.

**Expiry (valid period)** — An optional limit that makes a reward code unavailable a set number of days after it is created. Bloop sends a reminder before a code expires. See [referrer rewards](/referral-program/rewards).

### F

**Fraud center** — The Bloop area that flags suspicious referral activity — self-referrals, abuse patterns, and risky orders — and holds them for review. See [Detect referral fraud with the Fraud center](/referral-program/management/fraud-center).

### M

**Minimum requirements** — Conditions a referral must meet before a referrer reward is issued: a minimum purchase amount, a minimum number of items, or a minimum number of referees. See [referrer rewards](/referral-program/rewards).

**Minimum referees** — Issues the referrer reward only after a set number of successful referees, in cycles (for example at referee #5, #10, #15). See [referrer rewards](/referral-program/rewards).

### P

**Payment method** — How you pay affiliates or cash rewards (for example bank transfer, PayPal). You enable and configure methods, and they define the fields collected from affiliates. See [affiliate settings](/affiliate-program/settings).

**Payout** — A recorded payment of an affiliate's approved, unpaid commission. Recording a payout moves the amount from outstanding balance into payment history. See [Affiliate payouts](/affiliate-program/payouts).

**Pending (affiliate status)** — The status of an affiliate who has self-registered but not yet been approved. Pending affiliates cannot earn until approved. See [Managing affiliates](/affiliate-program/affiliates).

### R

**Referee** — The friend a referrer invites — a new customer who uses a referral link or code to claim a discount on their first order. See [Set up referrer and referee rewards](/referral-program/rewards).

**Referee reward** — The incentive a referee receives for using a referral, typically a discount on their first purchase. See [referrer and referee rewards](/referral-program/rewards).

**Referral link** — A unique URL containing a referrer's share code, best for email, chat, and social sharing. See [Choose a referral sharing method](/referral-program/referral-methods).

**Referral code** — A short code a referrer can type or say, useful for word-of-mouth and offline channels. See [Choose a referral sharing method](/referral-program/referral-methods).

**Referrer** — An existing customer who shares a referral link or code with friends and earns a reward once a referee makes a qualifying purchase. See [The referral journey](/getting-started/the-referral-journey).

**Referrer reward** — What a referrer earns after their referee's qualifying purchase: a discount coupon, store credit, or cash. See [referrer rewards](/referral-program/rewards).

**Review period** — A delay, in hours, before a referrer reward is approved. Set to 0 for instant approval; suspicious orders are held separately. See [referrer rewards](/referral-program/rewards).

### S

**Sale** — An order Bloop records and attributes to an affiliate, from which it calculates the commission. Sales are reviewed and approved before payout. See [Affiliate sales tracking](/affiliate-program/sales).

**Share code** — The unique 8-character code assigned to each referrer, carried inside their referral link and used to attribute referred orders. See [Choose a referral sharing method](/referral-program/referral-methods).

**Store credit** — A referrer reward applied directly to the customer's Shopify account, useful for pulling repeat buyers back for another order. See [referrer rewards](/referral-program/rewards).

### T

**Target audience** — The rule that decides who can become a referrer: any customer, logged-in customers, tagged segments, or customers with prior orders. See [Set your referral target audience](/referral-program/target-audience).

**Two-sided reward** — The structure of every Bloop referral: one reward for the referee and one for the referrer, with the referrer paid only after a qualifying purchase. See [How Bloop works](/getting-started/how-bloop-works).

### Where to go next

* New here? Start with [How Bloop works](/getting-started/how-bloop-works).
* Follow a term through the customer experience in [The referral journey](/getting-started/the-referral-journey) or [The affiliate journey](/getting-started/the-affiliate-journey).
* Find where each setting lives in [Platform navigation](/getting-started/platform-navigation).


# Platform Navigation

The Bloop dashboard is organized into three areas: a **Referral** area for your customer referral program, an **Affiliate** area for your partner program, and a **Settings** area for store-wide configuration. Each area is split into tabs, and most tabs map directly to a feature doc. This page is your map of where things live, so when a doc says "open the Campaign tab," you already know which part of the app it means.

Tab names and groupings stay stable even as the interface is refined, so this orientation describes the app by area and purpose rather than by where anything sits on screen. To understand the concepts behind these areas first, read [How Bloop works](/getting-started/how-bloop-works).

### The Referral area

This is where you build and monitor your customer referral program. The tabs cover setup, the offer, and the results:

* **Campaign** — Create and configure referral campaigns: the audience, rewards, and conditions that define your program. See [Create and configure a referral campaign](/referral-program/campaign) and [Set up referrer and referee rewards](/referral-program/rewards).
* **Target audience** — Decide who is allowed to become a referrer. See [Set your referral target audience](/referral-program/target-audience).
* **Sharing / referral methods** — Choose how referrers share — link, code, or both. See [Choose a referral sharing method](/referral-program/referral-methods).
* **Branding** — Style the storefront touchpoints: the popup, the standalone page, the post-purchase screen, the account extension, and social sharing. Start with [the referral popup](/referral-program/branding/popup) and [referral page](/referral-program/branding/page).
* **Customers** — View and manage the people in your referral program. See [Manage referral customers](/referral-program/management/customers).
* **Orders** — Review referred orders and the rewards tied to them. See [Review and manage referral orders](/referral-program/management/orders).
* **Fraud center** — Catch and review suspicious referral activity. See [Detect referral fraud with the Fraud center](/referral-program/management/fraud-center).
* **Activity** — A chronological log of program events. See [Read the referral activity log](/referral-program/analytics/activity).
* **Analytics** — The performance metrics behind your program. See [Read your referral analytics](/referral-program/analytics/analytics).
* **A/B testing** — Compare reward variants to see what converts. See [A/B test your referral rewards](/referral-program/ab-testing).
* **Emails** — The notifications sent to referrers and referees. See [Referral email notifications](/referral-program/emails).
* **Integrations** — Connect referral data to your email platform. See [Klaviyo](/referral-program/integrations/klaviyo) and [Mailchimp](/referral-program/integrations/mailchimp).

### The Affiliate area

This is where you run your partner program — recruiting affiliates, tracking the sales they drive, and paying commissions:

* **Campaign** — Set the commission structure and cookie window, and run multiple campaigns. See [Affiliate campaigns and commissions](/affiliate-program/campaigns).
* **Affiliates** — Add, approve, and manage your partners. See [Managing affiliates](/affiliate-program/affiliates).
* **Sales** — Review the orders affiliates drive and approve the valid commissions. See [Affiliate sales tracking](/affiliate-program/sales).
* **Payouts** — Record payments of approved commission and keep payment history. See [Affiliate payouts](/affiliate-program/payouts).
* **Branding** — Configure the affiliate-facing portal and registration: the registration form, portal style, translations, on-site content, and the overall portal. See [the registration form](/affiliate-program/branding/registration) and [the portal guide](/affiliate-program/branding/portal-guide).
* **Settings** — Payment methods and other affiliate-program configuration. See [Affiliate settings](/affiliate-program/settings).
* **Emails** — The notifications sent to affiliates. See [Affiliate email notifications](/affiliate-program/emails).

### The Settings area

Settings hold the store-wide configuration that both programs draw on:

* **General** — Store-level options and program-wide preferences. See [General settings overview](/account-and-settings/general).
* **Sharing link** — Customize the referral sharing link your customers pass around. See [Customize your referral sharing link](/account-and-settings/sharing-link).
* **Portal link** — Customize the affiliate portal link your partners log in through. See [Customize your affiliate portal link](/account-and-settings/portal-link).
* **Email sender** — Set the sender domain your program emails come from. See [Customize your email sender domain](/account-and-settings/email-sender).

### A note on finding things

If a doc references a tab you cannot see, check that the matching program is enabled — the Referral and Affiliate areas appear independently, so a store running only referrals will not show the Affiliate tabs until that program is set up. New to either program? The two getting-started guides walk the setup end to end: [Getting started with referrals](/quick-start/getting-started) and [Getting started with affiliates](/quick-start/getting-started-1).

### Where to go next

* Learn what each area does conceptually in [How Bloop works](/getting-started/how-bloop-works).
* Look up any unfamiliar tab or term in the [glossary](/getting-started/glossary).
* Follow the customer and partner experiences in [The referral journey](/getting-started/the-referral-journey) and [The affiliate journey](/getting-started/the-affiliate-journey).


# Campaign Setup

Your campaign is the strategy behind your referral program, written as rules — who can refer, what each side earns, how people share, and when a reward lands. One campaign record applies to every referral. Edit it from the **Campaign** tab.

> **Best practice:** Decide your reward economics *before* you open the campaign editor. Work out what a referred customer is worth to you, then set the combined referee + referrer reward below that number so every successful referral stays profitable.

### What a campaign controls

* **Who can refer** — see [Target audience](/referral-program/target-audience).
* **What both sides earn** — see [Referrer and referee rewards](/referral-program/rewards).
* **How referrers share** — see [Referral methods](/referral-program/referral-methods).
* **When rewards are issued** — minimum requirements, review period, and expiry, inside the rewards sections.

#### The four decisions, side by side

| Decision             | Wider / more generous     | Tighter / leaner                        |
| -------------------- | ------------------------- | --------------------------------------- |
| Who can refer        | More reach, more shares   | Higher-trust referrals, less fraud risk |
| What each side earns | More motivation to share  | Better margin per referral              |
| How they share       | Reaches more channels     | Simpler, but suppresses some shares     |
| When rewards land    | Fast, frictionless payout | More control, fewer bad payouts         |

At launch, lean toward the generous side of every lever to gather data; tighten selectively once you can see where the program leaks margin or trust.

### Set up your campaign

1. Open the **Campaign** tab.
2. Open **Target audience** and choose who can join as a referrer.
3. Open **Referrer reward** and **Referee reward** and set what each side earns.
4. Open **Referral method** and turn on a referral link, a referral code, or both.
5. Save.

### What triggers a reward

A referrer shares their link or code; a referee uses it and gets a discount. When the referee's order is marked paid in Shopify and passes your minimum requirements and fraud checks, the **referrer reward** is created. Sharing alone never issues a reward — only a real purchase does.

### When a reward is issued

Two settings control timing: the **review period** (a delay in hours before approval, `0` for instant) and any **minimum requirements** on the order. Suspicious orders go through a separate mandatory hold regardless of these settings.

### A worked example

*Illustrative, not measured Bloop results.* A subscription coffee store sets the audience to **customers with a completed order**, gives referees 25% off their first month (\~$10) and the referrer $10 store credit (against \~$20 profit per referred subscriber), turns on both link and code, and sets a 0-hour review period with no minimum and a 30-day code expiry. Then they track results in [analytics](/referral-program/analytics/analytics) and refine with an [A/B test](/referral-program/ab-testing).

### Common mistakes to avoid

* **Configuring rewards before knowing your numbers.** Work out the profit on a referred order first — that's the most expensive lever to guess at.
* **Starting narrow to "play it safe."** A tight audience or heavy minimums at launch starves the program of the data you need.
* **Turning off both sharing methods.** At least one of link or code must stay on, or the program stops entirely.

### Next steps

* Configure the two-sided rewards in [Referrer and referee rewards](/referral-program/rewards).
* Set who can refer in [Target audience](/referral-program/target-audience).
* Prove which setup wins with [A/B test your referral rewards](/referral-program/ab-testing).


# Rewards

Every Bloop referral has two rewards:

* **Referee reward** — what a new customer gets for using a referral link or code.
* **Referrer reward** — what an existing customer earns after their referee buys.

Configure both from the **Referrer reward** and **Referee reward** sections of the Campaign tab. Each has its own on/off toggle.

> **Best practice:** Match the reward type to how often people buy from you — store credit works well if customers return; cash or a discount works better for one-off purchases. Keep the combined reward value below your profit on a referred order. Always give the referee something too — two-sided rewards work better than referrer-only ones. See [designing your offer](/best-practices/designing-your-offer).

### Choose a referrer reward type

| Reward type     | How it works                                                                                                | Payout                          |
| --------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------- |
| Discount coupon | A Shopify discount code — fixed amount or percentage; can be restricted to specific products or collections | Automatic in Shopify            |
| Store credits   | Shopify Store Credit applied directly to the customer's account                                             | Automatic in Shopify            |
| Cash            | Tracked in Bloop; you process the payment yourself                                                          | Manual payout                   |
| Custom          | A reward you describe in your own words (a gift, swag, a service) and fulfil yourself                       | Manual — held for your approval |

> Cash rewards require a payment method on your account before they can be enabled.

A **custom reward** has no value, minimum, or expiry — just a short **description** (up to 500 characters) of what the referrer gets. It's never issued automatically: it stays **Pending** until you approve it in [Referral orders](/referral-program/management/orders), once you've arranged to fulfil it. Use it for rewards outside Shopify; otherwise a discount code, store credit, or cash is simpler since it issues on its own.

Pick a type based on how often customers buy from you: store credit if they're likely to order again, cash or a discount if not. See [best practices: choosing the right referral reward](/best-practices/choosing-rewards) for the full breakdown by industry.

### Set the discount value

Choose a **fixed amount** (best for a narrow price range) or a **percentage** (best for a wide price range, since it scales with order size). The referee reward uses the same options.

> **The margin rule.** Add the referrer and referee rewards together, and keep that combined cost below your profit on a referred order. That keeps every referral profitable. Refine the value with [A/B testing](/referral-program/ab-testing) once you have traffic.

### Minimum requirements

You can require a minimum before a referrer reward is issued: a minimum purchase amount, a minimum number of items, or a minimum number of referees (rewards in cycles, e.g. every 5th referral). Default is **None**. Most stores should leave this off at launch and only add one if margin becomes a problem.

### Tiered rewards

The settings above pay a flat reward. If you want to pay more as a referrer brings in more friends, use **FlexiTiers** — see [Set up tiered referral rewards](/referral-program/tier-rewards).

### Expiry

Reward codes can expire after a set number of days, or never expire. A short period (14–30 days) creates gentle urgency; use **None** for long, considered sales cycles. Bloop reminds referrers before a code expires.

### Review period

The review period delays reward approval by a number of hours. Set `0` for instant approval — best for most stores. A short delay is worth it for high-value cash rewards or if you've seen abuse. Suspicious orders are always held separately, regardless of this setting.

### When a reward counts as earned

Choose when a referral counts as successful: **Paid** (default, fastest thank-you — right for most stores), or **Fulfilled** (waits until you ship — useful for made-to-order goods or pre-orders). Set this in Referral → Settings.

### Revoking a reward

If an order is cancelled or refunded, Bloop can take back an already-issued reward. Set the **revoke trigger** to control when: on cancel, on refund, or both (default).

| Revoke trigger  | Reward is revoked when…                      |
| --------------- | -------------------------------------------- |
| Both (default)  | The order is cancelled **or** fully refunded |
| Order cancelled | Only when the order is cancelled             |
| Order refunded  | Only when the order is fully refunded        |

A partial refund never revokes a reward, and Bloop never takes back a reward the referrer has already used. Every revocation is logged in [referral activity](/referral-program/analytics/activity) and shown as **Revoked** on the [referral hub](/referral-program/referral-hub).

### Common mistakes to avoid

* **Rewarding only the referrer.** Always give the referee something too — it converts better.
* **Setting rewards without checking your margin.** Add both rewards together and compare to your profit per referral.
* **Never testing your reward.** Use [A/B testing](/referral-program/ab-testing) to check if a different value works better.

### Next steps

* Decide how referrers share their reward in [Referral methods](/referral-program/referral-methods).
* Prove which reward wins with [A/B test your referral rewards](/referral-program/ab-testing).
* Match the reward to your economics with [best practices: choosing the right referral reward](/best-practices/choosing-rewards).


# Target Audience

Not every customer makes an equally good advocate. Opening the program to everyone maximizes reach; restricting it to proven buyers or hand-picked fans raises trust per referral but reaches fewer people. Set this in the **Target audience** section of the Campaign tab, under "Who can refer" — Bloop checks every widget interaction against this rule automatically.

> **Best practice:** Open wide at launch (All customers or prior buyers) to gather data on who actually refers. Tighten only once quality or fraud becomes a real concern — starting narrow usually just starves the program of shares.

### The five audience options

| Option                                      | Who qualifies                         | Login required |
| ------------------------------------------- | ------------------------------------- | -------------- |
| All customers                               | Everyone, including guests            | No             |
| Members                                     | Logged-in customers only              | Yes            |
| Specific customers                          | Only the Shopify customers you select | Yes            |
| Customer tags                               | Customers carrying tags you choose    | No             |
| Customers with at least one completed order | Customers with prior purchase history | No             |

> Specific customers and Customer tags each require at least one entry before the rule can be saved.

#### Which to choose

| Choose                                          | When your goal is                       | Trade-off                                              |
| ----------------------------------------------- | --------------------------------------- | ------------------------------------------------------ |
| **All customers**                               | Maximum reach — launch, growth pushes   | Widest funnel, but includes people who've never bought |
| **Customers with at least one completed order** | Credible referrals at near-full reach   | The sweet spot for most stores                         |
| **Customer tags**                               | A known segment (VIPs, repeat buyers)   | High trust, but only as good as your tagging           |
| **Members**                                     | Only logged-in, identifiable accounts   | Cleaner data, but costs some guest shares              |
| **Specific customers**                          | A curated ambassador or wholesale group | Total control, minimum reach                           |

For most stores, **Customers with at least one completed order** is the strongest default — near-full reach, and every referrer has actually used the product.

### Why the referrer's trust is the whole point

The referrer's credibility *is* the value of the channel — a referral from someone who's actually used your product carries real trust; one from a stranger gaming a discount carries none, and may cost you a payout for nothing. Referred customers are also measurably better: they churn less and carry higher lifetime value than customers acquired any other way ([Schmitt, Skiera & Van den Bulte, *Journal of Marketing*, 2011](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2476354)). Your audience rule is the dial between reach and that trust.

### Recommended audiences by industry

| Industry                  | Recommended audience                        | Why                                                |
| ------------------------- | ------------------------------------------- | -------------------------------------------------- |
| Fashion & apparel         | All customers                               | Maximum reach for fast-moving, social products     |
| Subscription              | Customers with at least one completed order | Active subscribers make credible advocates         |
| Beauty & cosmetics        | Customer tags (VIP / repeat buyers)         | Loyal fans give recommendations real weight        |
| Electronics & high-ticket | Customers with at least one completed order | Buyers who own the product give informed referrals |
| Wholesale / B2B           | Specific customers or Customer tags         | A known, controlled set of accounts                |

### Set your audience

1. Open **Campaign → Target audience**.
2. Choose one of the five options under "Who can refer."
3. For Specific customers or Customer tags, add the customers or tags to match.
4. Save.

### When to tighten the gate

Tighten only when a signal appears — not pre-emptively:

* **Fraud or self-referral attempts** → restrict to prior buyers or a tag.
* **Referral quality is poor** → move to Customers with at least one completed order.
* **You want a controlled ambassador program** → switch to Customer tags or Specific customers.
* **Clean, account-level attribution matters more than reach** → use Members.

### A worked example

*Illustrative, not measured data.* A skincare brand launches with **Customers with at least one completed order**. A month later, [analytics](/referral-program/analytics/analytics) show a small group of repeat buyers driving most referrals, so they tag their best advocates `VIP` and add a **Customer tags (VIP)** ambassador tier on top, while keeping the broad program running.

### Who can be referred

The referee side is fixed: only **first-time customers** can be referred and receive the discount, so the incentive always targets new buyers. Bloop blocks self-referrals and other abuse automatically.

### Common mistakes to avoid

* **Starting narrow.** A tight audience on day one hides who your real advocates are. Open wide, then tighten with data.
* **Restricting to Members without a reason.** The login requirement quietly drops guest shares.
* **Tightening to fight fraud you don't have.** Bloop already blocks self-referrals — narrow the gate only when you see real abuse.

### Next steps

* Decide what referrers and referees earn in [Referrer and referee rewards](/referral-program/rewards).
* Choose how customers share in [Referral methods](/referral-program/referral-methods).


# Branding


# Popup & Widget

The referral widget is the most visible part of your program. When it matches your store's colors, fonts, and tone, it reads as part of your brand and gets used more. There are three surfaces: the **launcher** (the always-on button), the **panel** (the popup that opens after a click), and the **referee popup** (shown to a new visitor arriving via a referral link). All three live under **Branding → Widgets & Popup**.

> **Best practice:** Treat the launcher as advertising and the panel as the product. Keep the launcher quietly visible on high-intent pages (cart, product), and make the panel polished enough that sharing feels worthwhile.

### What to customize, and what tends to win

| Element              | What tends to win                                                         |
| -------------------- | ------------------------------------------------------------------------- |
| Panel background     | A clean, **light background**                                             |
| Imagery              | **Product-focused** creative over lifestyle photos                        |
| People in the design | **No-human design**                                                       |
| Reward framing       | Lead with the **referee's reward** first — reads as a favour, not a pitch |
| Trust cues           | **Social proof present** (share/join counts)                              |
| Launcher copy        | A **specific, value-led label** ("Give $10, get $10") over a generic one  |
| Launcher placement   | A **quiet presence on cart and product pages**, not sitewide              |

> These are broad A/B testing patterns, not measured Bloop numbers — confirm on your own traffic with an [A/B test](/referral-program/ab-testing). The underlying pattern: **simpler and product-led wins.**

### Style the widget panel theme

Open **Widget panel** — a **Design** tab (colors, typography, background, border) and a **Content** tab (wording per screen: Home, Reward, Send Email). Match the primary color and typography to your store, keep the background light, and preview each screen before saving.

### Configure the widget launcher

Open **Widget launcher** to set its **content** (title, icon), **placement** (position, desktop/mobile separately), **display** (icon/text per device), and **pages** (all, selected, or hidden). The two settings worth deliberating: a value-led **copy** earns more clicks than a generic one, and showing it only on **high-intent pages** (cart, product) nudges without nagging everyone.

### Customize the referee popup

Open **Referee popup** to edit the wording a new visitor sees after clicking a referral link — your first impression with them. Lead with the reward they've unlocked, name who sent it, and keep the call to action to one button. It's content-only; styling follows the widget panel theme above.

### A worked example

*Illustrative, not measured Bloop results.* Starting from defaults (colored background, stock lifestyle photo, a generic "Rewards" launcher everywhere), you apply the patterns above — clean background, hero product photo, launcher relabelled "Give 10% — get 10%," shown only on cart and product pages — then [A/B test](/referral-program/ab-testing) the new copy against the old before keeping it.

### Common mistakes to avoid

* **Over-branding the panel.** A crowded, heavily styled popup converts worse than a clean one.
* **Burying the reward.** Lead with the value in both the launcher label and the panel headline.
* **Changing everything at once, then guessing.** Change one thing, test it, then move to the next.

### Next steps

* Confirm a design or copy change with [A/B testing](/referral-program/ab-testing) before you keep it.
* Give customers a dedicated landing space with the [referral landing page](/referral-program/branding/page).
* Prompt buyers right after checkout with the [post-purchase popup](/referral-program/branding/post-purchase).


# Landing Page

A referral landing page gives your program a permanent URL you can put anywhere — a menu, newsletter, order email, or social bio. Unlike the on-site widget, it's always there, and Bloop builds it as a real Shopify page on your own domain so it inherits your theme. Manage it under **Branding → Referral page**.

> **Best practice:** Use a clean, memorable handle (the default `referral-program` works well) and add the page to your main menu or footer before launch.

### When to use a landing page

Reach for the page whenever the share has to start somewhere other than your storefront: linking from email or a newsletter, a "Refer a friend" menu item, a social bio, search traffic, or explaining a program with rules worth reading. If you only need to catch existing customers while they browse, the [widget](/referral-program/branding/popup) alone is enough.

### What makes a referral page convert

* **A headline that names the reward.** "Give a friend 15% off, get $10 when they buy" beats "Join our referral program."
* **One obvious action.** A single button — competing calls to action lower the share rate.
* **A short how-it-works** (the **Guide** section) — three steps at most.
* **The reward stated plainly** (the **Reward** section) — both sides, in money or percentage terms.

### Create the page

1. On the **Setup** tab, choose a page URL handle — Bloop defaults to `referral-program` and builds the URL as `/pages/<handle>`.
2. Confirm to create the page. Bloop adds it to your Shopify store and links it to your campaign.

If the handle is already taken, Bloop asks you to pick a unique one.

### Manage the URL

The Setup tab lets you edit the **page title** and **URL handle** — choose **Update page** to save, **View page** to preview live.

> Avoid renaming the handle after launch — a changed handle breaks every link you've already shared.

### Edit the content and design

* **Content** — the **Content** tab edits page wording per language, grouped into **Main**, **Guide**, and **Reward**.
* **Design** — **Edit in theme editor** to style the page with your theme's sections and branding.

### Make the page easy to find

Add it to your **main menu** or **footer**, embed it into an existing page with Bloop's app block, and share the URL in newsletters and order confirmations. See [making your referral program visible](/best-practices/program-visibility).

### A worked example

*Illustrative, not measured Bloop results.* Keep the default `referral-program` handle, write a value-first headline ("Give a friend 15% off — get $10 when they buy"), style it to match your theme, then add it to the footer and newsletter. Watch [analytics](/referral-program/analytics/analytics) — impressions and shares should rise together as the sign it's working.

### Common mistakes to avoid

* **Building the page and never linking to it.** A page with no entry points gets no traffic.
* **A vague headline.** Name the reward for both sides in the first line.
* **Renaming the handle after sharing it.** Choose it once and leave it.

### Next steps

* Style the on-site widget in [referral widget branding](/referral-program/branding/popup).
* Add more entry points with the [post-purchase popup](/referral-program/branding/post-purchase).


# Post-Purchase Popup

The moment right after checkout is the best time to ask for a referral — the customer is at peak enthusiasm, the thank-you page has nothing else to click, and you know exactly who they are. The popup appears on the Shopify order status page and fires instantly, so your only job is the words. Manage it under **Branding → Post-purchase popup**.

> **Best practice:** Lead with the referee's reward, not your ask. "Give friends $10 off — and earn $10 yourself" frames sharing as a favour. Keep it to one sentence.

### Copy that works

| Do                                     | Why it works                                      |
| -------------------------------------- | ------------------------------------------------- |
| Lead with the friend's reward          | Frames sharing as generosity, not self-interest   |
| State both rewards in one line         | Double-sided rewards outperform give-only offers  |
| Keep it to one sentence and one button | The thank-you page rewards a fast, obvious action |
| Make the share method one tap          | Fewer steps means more links sent                 |
| Match the tone of the page             | A celebratory voice beats a corporate pitch       |

### What to show

Two content blocks, editable per language: the **referral block** (the prompt on the thank-you page) and **email sending** (the copy sent when a customer invites a friend by email). Spend your effort on a one-line, value-led referral block; keep the email warm and personal — it arrives as if from a friend.

### A worked example

*Illustrative, not measured Bloop results.* The default "Refer a friend and earn rewards" is generic and leads with your benefit. Rewriting it to "Loved your order? Give a friend $10 off — and earn $10 yourself" puts the friend first. An [A/B test](/referral-program/ab-testing) against the default shows share rate rising from 3% to 5% — a real gap — so you keep it.

### Common mistakes to avoid

* **Leading with your ask, not their reward.** Put the friend's discount first.
* **Writing a paragraph.** One clear sentence — a pitch loses the moment.
* **Not localizing.** An English-only prompt fails customers most likely to refer in other languages.

### Notes on availability

The post-purchase popup is a paid feature. On plans without it, the editor shows an upgrade prompt and the content fields stay locked — your existing campaign and rewards keep working regardless.

### Next steps

* Brand the on-site widget in [referral widget branding](/referral-program/branding/popup).
* Add a permanent entry point with the [referral landing page](/referral-program/branding/page).


# Customer Account Extension

Your most likely referrers are repeat customers — and the customer account is where they spend their logged-in time. Unlike the post-purchase popup, which catches a buyer once at checkout, the account block is always there on the profile and order pages your loyal shoppers already visit. That makes it the best surface for steady, long-tail referrals.

The block renders through a Shopify UI extension inside the customer accounts area, so it looks native rather than bolted on. Customers see their referral link and a running view of what they have earned, right alongside their orders and details. Manage it under the **Branding** tab of your referral campaign, in the **Customer account extension** card.

> **Best practice:** Show progress, not just a link. Surfacing what a customer has already earned — or how close they are to the next reward — turns the account block from a static link into a reason to share again. Pair it with the [post-purchase popup](/referral-program/branding/post-purchase) to catch customers both at purchase and on every return visit.

### What you can edit

The extension is content-first: customize the wording shown in the account with a live preview beside the editor. Content is split into two blocks.

| Block           | What it covers                                                                              |
| --------------- | ------------------------------------------------------------------------------------------- |
| Referral link   | The block that shows the customer's referral link or code and the sharing options around it |
| Referral reward | The block that shows the customer what they have earned or can earn through referrals       |

Open either block to edit its text, switch the language with the language selector to localize it, and preview each version before you save.

The **Referral reward** block lists every reward type a referrer can earn — discount code, store credit, cash, and [custom rewards](/referral-program/rewards#choose-a-referrer-reward-type), the last shown by the description you gave them along with the date you fulfilled them.

### Notes on availability

The customer account extension is a paid feature. If it is not part of your current plan, the editor shows an upgrade prompt and the content fields stay locked until you upgrade.

### Next steps

* Start with [getting started with referrals](/quick-start/getting-started) to enable the program.
* Style the storefront widget in [referral widget branding](/referral-program/branding/popup).
* Capture more referrers with the [post-purchase popup](/referral-program/branding/post-purchase) and a [referral landing page](/referral-program/branding/page).
* Decide how customers pass along their link in [referral social sharing channels](/referral-program/branding/social-sharing).


# Social Sharing

A referral spreads through the channel your customers already use to talk to friends — most often a private message, not a public post. The share buttons you offer, and their order, steer which of those moments turns into a referral. Manage this in your campaign's **Share Methods** area: **Sharing Method** and **Social Message** tabs.

> **Best practice:** Lead with the channel your audience uses privately, then trim the rest. On mobile, put WhatsApp and Native Share at the top; on desktop, email and X tend to fit better. Fewer, well-chosen buttons convert more shares than a crowded row.

### Which channel for which customer

| Channel                                 | Best for                                | Notes                                               |
| --------------------------------------- | --------------------------------------- | --------------------------------------------------- |
| WhatsApp                                | One-to-one, mobile-first, international | Lead with it on mobile                              |
| Native Share                            | Whatever app the customer prefers       | Mobile only — hands off to the device's share sheet |
| Email (Gmail / Mail App / Custom Email) | Considered, personal recommendations    | Fits desktop, higher-value products                 |
| X (Twitter)                             | Public, fast, low-commitment            | Tech/media/creator audiences                        |
| Facebook                                | Broad public reach                      | Communities, older demographics                     |

**Private channels out-convert public ones** — a WhatsApp message to one friend carries more weight than a public post to strangers. Lead with private, offer public as a secondary option, and confirm the mix with an [A/B test](/referral-program/ab-testing).

### Choose the sharing methods

Drag channels from **Available channels** into your **Desktop** and **Mobile** lists separately — order matters, since the top channel gets the most clicks. Native Share is mobile-only, and each channel can appear once per device list.

### Write a message that gets shared

Each channel (X, Facebook, WhatsApp) has its own editable message, with an optional custom image for X and Facebook (1200×630px recommended). What matters:

* **Write in the customer's voice**, not an ad's — "I love these — here's 15% off" beats "Shop our referral program."
* **Name the reward** in the first few words.
* **Keep WhatsApp short** — one line plus the link.

### A worked example

*Illustrative, not measured Bloop results.* A mobile-first store puts WhatsApp first and drops Facebook/X from mobile entirely, since its audience doesn't share that way; on desktop it leads with email instead. An [A/B test](/referral-program/ab-testing) confirms the trimmed mobile list lifts shares per visitor, and [share-channel performance](/referral-program/analytics/analytics) shows which buttons customers actually use.

### Common mistakes to avoid

* **Offering every channel.** A crowded row turns an easy share into a decision — pick the few your audience actually uses.
* **The same row on desktop and mobile.** Set them separately; the channels people reach for differ by device.
* **Leading with public channels.** They add reach but convert worse per share than a private message.

### Next steps

* Decide between links and codes in [referral methods](/referral-program/referral-methods).
* Confirm your channel order with [A/B testing](/referral-program/ab-testing).


# Referral Methods

A referral program only spreads through the channels your sharing method fits — link or code is really a choice about *where* your customers talk about you: inboxes and group chats, or face to face. Bloop offers both, set from the **Referral method** section of your [campaign](/referral-program/campaign). At least one must stay on — turning off both disables the program.

> **Best practice:** Turn on both methods unless you have a specific reason not to. Forcing every customer through one channel loses the shares from people who'd only ever recommend you their own way.

### Referral link vs referral code

|                              | Referral link                                         | Referral code                      |
| ---------------------------- | ----------------------------------------------------- | ---------------------------------- |
| How it works                 | Friend visits the link, enters email, gets a discount | Friend enters the code at checkout |
| Friction                     | One extra step (email)                                | None                               |
| Captures the referee's email | **Yes** — enables follow-up emails                    | No                                 |
| Works offline / spoken aloud | Poorly — it's a long URL                              | **Yes** — short and memorable      |
| Best channels                | Email, DMs, social, chat                              | In-store, phone, podcasts          |

The email a link captures is valuable — it lets you convert a friend with a follow-up sequence even if they don't buy on the first visit. Lead with the link where follow-up matters (subscriptions, considered purchases); the code is what travels when the recommendation happens out loud.

### What tends to work

Adding social proof to the share prompt (what the friend gets, how many people have joined) can meaningfully lift results. And [word of mouth is the most trusted channel you have](/referral-program/target-audience#why-the-referrers-trust-is-the-whole-point) — the less friction in your sharing method, the more of that trust converts, which is the case for enabling both.

### Turn a method on or off

1. Open **Campaign → Referral method**.
2. Turn on **Referral link**, **Referral code**, or both.
3. Save.

> Turning off the referral code also deactivates its underlying Shopify discount. Turning off both stops the program entirely.

### Set a code prefix

Codes default to the `BLOOP` prefix (e.g. `BLOOP-A1B2C3-1042`) but you can set your own brand prefix — short, letters-only, and easy to say out loud (`LUNA-A1B2C3-1042` reads as "from Luna").

### How sharing is tracked

Every referrer gets a unique 8-character share code automatically, and Bloop tracks shares by both link and code so you can see which channel actually drives conversions in [Referral analytics](/referral-program/analytics/analytics) — a real signal for which one to push harder. This also captures word-of-mouth that would otherwise go untracked as "direct traffic": because the reward is only earned through the trackable option, customers have a reason to use it even for a spoken, in-person recommendation.

### A worked example

*Illustrative, not measured data.* A homeware brand sells online and through two physical stores. Online customers share in DMs, so the **link** fits (and captures an email for follow-up); in-store customers recommend at the counter, where the branded **code** works better. The brand turns on both — links drive most online conversions, codes punch above their weight from the physical stores. Turning either off would have cut a real source of referrals.

### Common mistakes to avoid

* **Picking one method to "keep it simple."** Enabling only one silently loses the shares that would only have happened the other way.
* **Leaving the generic prefix.** A branded prefix reinforces who the referral is from; the default tells the friend nothing.
* **Never reading the channel split.** Both methods are tracked — check which one converts before you turn anything off.

### Next steps

* Set what each side earns in [Referrer and referee rewards](/referral-program/rewards).
* Decide who can refer in [Target audience](/referral-program/target-audience).


# Tiered Rewards

A flat reward pays the same amount whether a referrer brings in one friend or twenty — which gives your best referrers no reason to keep sharing after their first success. Bloop's **FlexiTiers** let the reward grow as a referrer hits new milestones. Tiers only change the **referrer** reward; the referee's discount stays the same.

> **Best practice:** Keep the tier structure simple enough to explain in one sentence — "bring in two friends and earn $5, five and earn $15, ten and earn $30" is easy to share. Four or five tiers with overlapping rules is not.

### How tiers work

Each tier covers a range of successful referral counts. When a referrer hits their Nth referral, Bloop issues the reward for whichever tier N falls into — or nothing, if N lands in a gap. Every tier can have its own reward type, value, minimum, and expiry, and referrers work through tiers in order.

### Set up tiers

1. Open your referral campaign, go to **Referrer reward**, and click **Add tiers** — Bloop starts you with two tiers.
2. For each tier, set the **start/end** referral range and click **Edit reward settings** to choose its reward.
3. Use **Add new tier** to insert more, and check the **preview panel** for the full sequence, any gaps, and what happens beyond the last tier.
4. Set **Advanced tier settings** (below) and **Save**.

Delete tiers down to one to return to a flat reward — tiered mode needs at least two.

### After the final tier

| Setting                       | What it does                                                              | When to use it                                                   |
| ----------------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| Keep giving last tier reward  | Every referral beyond the last tier keeps earning the final tier's reward | Default — your best advocates keep earning your top rate forever |
| Stop rewards after final tier | Referrals beyond the last tier earn nothing                               | Milestone programs celebrating specific achievements             |
| Loop tiers                    | The sequence restarts at Tier 1                                           | Recurring promotions where the reward rhythm should repeat       |

### How past referrals count

* **Count all past rewards** (default) — a referrer's progress includes referrals from before you enabled tiers. Use this to honor existing referrers' history.
* **Start from a date** — only referrals after that date count. Use this for a fresh campaign period where everyone starts at zero.

### Gaps between tiers

You can leave referral-count ranges outside any tier — those referrals earn nothing. Useful for celebrating specific milestones (1st, 5th, 10th) without paying every referral in between.

### Show referrers their progress

The [referral hub](/referral-program/referral-hub) shows each referrer a tier timeline automatically, and the **Referral progress** email reminds them how close they are — nothing to build.

### Worked examples

* **Keep-last (progressive):** Tier 1 (referrals 1–2): $5 credit → Tier 2 (3–5): $10 credit → Tier 3 (6+): $20 credit, paid forever. A referrer at 12 referrals earns $20 each time.
* **Stop (milestones only):** Tier 1 (#1): $5 discount → gap → Tier 2 (#5): $15 credit → gap → Tier 3 (#10): $30 credit + gift. Referral #11 earns nothing.
* **Loop (cycling):** Tier 1 (1–2): $5 credit → Tier 2 (3–5): $12 credit, then repeats — referral #6 restarts at Tier 1.

### Things to know

* The first tier must start at referral #1, and tiers can't overlap.
* Gaps are allowed — those referrals still count toward the referrer's total, just earn nothing.
* Any reward type works per tier, including a [custom reward](/referral-program/rewards#choose-a-referrer-reward-type) held for your approval.
* Tiers and A/B testing are mutually exclusive — disable one to use the other.
* Editing tier ranges doesn't change rewards already issued; each order keeps the tier that applied when it was placed.

### Common mistakes to avoid

* **Making tiers too similar.** A $5-to-$7 jump isn't enough to change behavior — make the top tier feel substantially better.
* **Choosing Loop when you want Keep-last.** Loop sends your best referrers back to your *lowest* rate — use Keep-last to keep rewarding them at your top rate.
* **Building too many tiers.** Three well-spaced tiers a referrer can explain to a friend beat five granular ones that need a table to understand.

### Next steps

* Set the base rewards in [Set up referrer and referee rewards](/referral-program/rewards).
* Filter customers by tier in [Customers](/referral-program/management/customers).
* Track tier performance in [Analytics](/referral-program/analytics/analytics).


# A/B Testing

Guesswork is the most expensive way to set a reward — a discount too small never spreads, one too generous quietly eats margin, and from the outside the two look the same. A/B testing replaces the guess with evidence: run two reward setups side by side and let conversions decide.

Bloop splits new participants into two groups. **Variant A** is your current rewards, untouched. **Variant B** is a copy you edit to test one idea. When you end the test and declare a winner, B's settings (if it wins) are promoted to your live campaign automatically. Run tests from **A/B testing** on the **Campaign** tab — only one test can be active per campaign.

> **Best practice:** Test the reward value and reward type first — they move conversions more than wording or layout. Change one thing per test, run until both sides have real volume, and bank each winner before starting the next.

### What you can test

| What you can test             | Change on Variant B                                |
| ----------------------------- | -------------------------------------------------- |
| **Reward value**              | Raise or lower the discount/credit/cash amount     |
| **Reward type**               | Switch between a percentage, store credit, or cash |
| **Referee vs referrer split** | Move generosity to one side of the give-and-get    |
| **Minimum requirement**       | Add, remove, or change a minimum spend             |

Write your hypothesis as one sentence before you start, and change exactly one variable per test. Reward value and type are the heavy levers — test those first. A minimum requirement is more of a guardrail; it rarely lifts conversions.

### What tends to win

Useful as a starting hypothesis, not a result to skip testing — your own data is the tiebreaker:

* A two-sided **give-and-get** reward outperforms a referrer-only offer, and a lower incentive sometimes wins on total economics.
* On creative: a **white background**, **product-focused imagery**, **no human photos**, and **visible social proof** tend to win.

### How long to run a test

Run until both variants have **enough conversions to trust the gap** — that's about volume, not the calendar. A few rules of thumb:

* **Don't conclude from a handful of conversions**, and don't stop the moment one side pulls ahead — early leads bounce back and forth ("peeking" crowns false winners).
* **A stable gap after real volume is a real result** — even a "no difference" tells you to keep the cheaper option.
* **Watch cost, not just count.** A variant can win on raw referrals and still lose money if it gives away more per order.
* If your volume is too thin to reach a trustworthy read in a reasonable time, grow referral traffic first — A/B testing isn't the right tool yet.

### A worked example

*Illustrative, not measured Bloop results.* Your live offer gives referees 10% off; you hypothesize 15% would spread further. Bloop copies your rewards into Variant B, you change only the referee discount, and let it run untouched until both sides gather real volume. Say B converts at 12% versus A's 9% — a stable gap that covers the deeper discount on margin too — so you declare **B** the winner, and Bloop copies its setting onto your live campaign. Had B only marginally beaten A while costing far more, the right call would have been to keep **A**.

### How it works

* **Variant A** is your current rewards, untouched. **Variant B** starts as an exact copy, so the only difference is whatever you change on B.
* Participants are assigned **roughly 50/50** and keep their assignment for the life of the test — switching devices or logging in doesn't move them. Referrers active **before** the test started are excluded.

### Run a test

1. Open **Campaign → A/B testing** and create a new test.
2. Edit **Variant B** — change the reward value, type, or a minimum requirement. Variant A stays untouched.
3. Name the test and start it — it moves from **draft** to **active**.
4. Let it run until both variants have real volume, then review the enrolled counts and metrics.
5. Declare the winner — **A** or **B** — to end the test.

| Winner    | What happens                                                                |
| --------- | --------------------------------------------------------------------------- |
| Variant A | Your campaign keeps its current rewards; Variant B is discarded             |
| Variant B | Bloop copies B's settings onto your live campaign, becoming the new default |

Bloop stores a snapshot of both variants' results, so you can reopen a finished test to review it later.

### Common mistakes to avoid

* **Changing more than one thing at a time.** A win tells you nothing about which change caused it.
* **Stopping too early.** A few conversions on each side is noise — wait for real, comparable volume.
* **Ignoring margin.** A variant that wins on raw referrals can still lose money if it gives away more per order.

### Next steps

* Set up the rewards you'll test in [Referrer and referee rewards](/referral-program/rewards).
* Track the outcome of a winning test in [Referral analytics](/referral-program/analytics/analytics).


# Referral Hub

The referral hub is a personal dashboard where a referrer sees their rewards, tier progress, referral link/code, and recent activity. It renders straight from your campaign — there's nothing to build or turn on.

> **Best practice:** Link to the hub from your successful-referral and reminder emails. A referrer who just earned a reward is your best next referrer, and re-sharing from the hub is one click.

### What's on the hub

| Section     | What it shows                                                                                            |
| ----------- | -------------------------------------------------------------------------------------------------------- |
| Header      | Store logo, campaign switcher (if they're in more than one), language selector                           |
| Rewards     | Every reward earned, with status (Available, Used, Revoked) and a **Shop now** button for discount codes |
| Tiers       | A progress timeline — shown only for tiered campaigns                                                    |
| Share tools | Their referral link and code, plus the share channels you've enabled                                     |
| Activity    | Recent referral events and their status                                                                  |

A revoked reward shows a note explaining why — see [reward revocation](/referral-program/rewards#revoking-a-reward).

### How referrers get in

Emails carry a **magic link** — no login needed. It's valid for 2 hours from when the email was sent; after that, the referrer opens a newer email to get back in.

For Klaviyo or Mailchimp flows, which can send days later, use the **permanent** hub link instead: the `BLOOP Hub Portal` property in Klaviyo, or `BLOOPHUB` in Mailchimp. See [Klaviyo](/referral-program/integrations/klaviyo) and [Mailchimp](/referral-program/integrations/mailchimp).

### Languages

Referrers pick their own language from 20 options. Nothing to set up.

### Next steps

* Set what referrers earn in [Referrer and referee rewards](/referral-program/rewards).
* Give referrers more milestones with [tiered rewards](/referral-program/tier-rewards).


# Management


# Customers

Your referral program runs on two kinds of people: **referrers** who share, and **referees** they bring in. The Customers tab lists both, so you can see who your best advocates are, who joined but never shared, and invite loyal customers to refer in bulk instead of waiting for them to discover the program.

### Filter the customer list

The list groups customers into tabs so you can focus on one role at a time:

| Tab                | Who it shows                                      |
| ------------------ | ------------------------------------------------- |
| All customers      | Everyone, whether or not they joined the program  |
| Referrer           | Customers who joined and can share a link or code |
| Referee            | Customers who were referred by someone else       |
| Referral completed | Referees who completed a qualifying purchase      |
| Not joined         | Customers who have not joined the program yet     |

Each row shows the customer's program status (**Joined** or **Not joined**), their successful referrals, referral invites, and the revenue they have driven. You can search by name or email and sort the columns to find top referrers or inactive ones.

### Open a customer's detail

Click a customer to open their detail view, which shows their place in the referral chain:

* For a **referrer**, you see their referral link and code, the list of referees they brought in, and each referee's order, order value, and reward status (whether the referee's discount was used). Rewards the referrer has earned are listed by type — discount code, store credit, cash, or a custom reward shown by the description you gave it.
* For a **referee**, you see who referred them and the discount they claimed.
* Reward and order records link straight to the matching customer and order in your Shopify admin.

This is the fastest way to answer "where did this customer come from, and what have they earned?"

### Invite customers in bulk

1. In the **Customers** tab, choose the customers to invite.
2. Confirm. Bloop creates a referrer record — with a unique share code — for each, skipping anyone already a referrer.
3. Bloop sends each invited customer your referral invitation email.

### Payment methods for cash rewards

If your campaign uses **cash**, you process payouts yourself. Define one or more **payment methods** (PayPal, bank transfer) and their fields in settings — each referrer fills in their details, which Bloop stores for when you run a payout. Discount-code and store-credit rewards issue automatically and need no payment method.

### Next steps

* See what your customers are doing in real time in [Referral activity](/referral-program/analytics/activity).
* Review referred purchases in [Referral orders](/referral-program/management/orders).
* Choose what referrers earn in [Referrer and referee rewards](/referral-program/rewards).


# Orders

Most referral orders need nothing from you — Bloop records, checks, and rewards automatically. This view is for the few that need a decision: an order on hold, one flagged as suspicious, or a referral that happened off-platform.

> **Best practice:** Review held orders weekly, not as a fire drill. A flagged order sits on a 14-day hold and follows your normal rules if you do nothing — a quick weekly pass clears legitimate referrers before they wait too long and catches abuse before a reward is paid. Pair this view with the [Fraud center](/referral-program/management/fraud-center).

### Order status

| Status            | What it means                                  | Reward paid? |
| ----------------- | ---------------------------------------------- | ------------ |
| Unused (internal) | Referee claimed a discount, hasn't ordered yet | No           |
| Pending           | Order recorded, reward on hold                 | No           |
| Approved          | Passed all checks, reward issued               | Yes          |
| Rejected          | You declined it                                | No           |

An order moves Unused → Pending → Approved or Rejected. **Pending costs you nothing** — it's your only cheap window to catch a problem before the reward exists. Even after Approved, Bloop can **revoke** a reward if the order is later cancelled or fully refunded — see [reward revocation](/referral-program/rewards#revoking-a-reward).

### Why an order is held

* **Review period** — your campaign's configured delay (in hours) before a reward approves. `0` means instant.
* **14-day fraud hold** — Bloop flagged the order as suspicious. This overrides your review period.

A short review period (a day or two) suits most stores; go longer if your return rate is high or order values are large.

### Which orders need you

| What you see                                                  | What to do                                                                                                        |
| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Pending, no flag                                              | Nothing — it approves itself                                                                                      |
| Pending, fraud-flagged                                        | Check the [Fraud center](/referral-program/management/fraud-center); approve or reject before the 14 days run out |
| Referee cancelled or refunded during the hold                 | Reject — there's no sale to reward                                                                                |
| A referral that never appeared (phone order, uncaptured code) | Add it manually                                                                                                   |

When evidence is ambiguous, approving is usually the gentler default — a rejected genuine advocate often stops sharing. Reserve rejection for a clear, repeated abuse pattern.

### Approve or reject an order

1. Open **Referral orders** and find the order.
2. Review the referee, referrer, order value, and any fraud flags.
3. **Approve** to issue the reward, or **Reject** to decline it.

Approving a flagged order clears its fraud case; rejecting marks it disqualified and notifies the referrer.

### Manually add a referral order

1. In **Referral orders**, add an order.
2. Enter the Shopify order number, amount, and customer.
3. Choose the referrer to credit and the campaign (active campaigns only).
4. Optionally issue the reward immediately.

Bloop blocks duplicates — an order already linked to a referral, or a customer already tied to one, can't be added again. A manual order is recorded as **Approved**, except for a **custom reward**, which stays **Pending** for you to fulfil by hand.

### Common mistakes to avoid

* **Chasing unflagged pending orders.** They approve themselves — spend your attention on flagged ones instead.
* **Ignoring the held queue for weeks.** Past the 14-day window, a fraud flag's protection lapses.
* **Rejecting a genuine order to be safe.** A denied real advocate often stops sharing.

### Next steps

* Investigate flagged orders in the [Fraud center](/referral-program/management/fraud-center).
* Learn how rewards are calculated in [Referrer and referee rewards](/referral-program/rewards).


# Fraud Center

Every reward you pay is only worth it if a real new customer is on the other end. The most common abuse is self-referral — one person posing as both referrer and referee. The Fraud center watches for the patterns abuse leaves behind and surfaces only the orders worth a second look, instead of making you audit every referral.

When a referred purchase trips a signal, Bloop flags it, holds the reward for 14 days, and opens a case for your decision. Genuine referrals flow through untouched.

> **Best practice:** Leave detection on so abuse is caught before a reward leaves your account, but review each held case on its evidence rather than rejecting on sight — a power user on a shared office network can look a lot like collusion. **Trust** genuine referrers who keep tripping a signal, and **ban** only clear abusers. See [how to prevent referral fraud](https://bloop.plus/blog/referral-fraud/).

### How Bloop flags a suspicious referral

| Signal                | What it catches                                                                 | Default action                                |
| --------------------- | ------------------------------------------------------------------------------- | --------------------------------------------- |
| Self-referral email   | Referrer and referee emails look like the same person after normalizing aliases | Hold 14 days — lean toward reject             |
| Same IP, repeated     | Several referred purchases from one referrer share the same IP                  | Hold 14 days — review before deciding         |
| High volume in a week | One referrer drives an unusually high number of purchases in 7 days             | Hold 14 days — investigate, don't auto-reject |

The email signal most often means real fraud; IP and volume are more likely to catch an innocent customer (a shared household or office network, or a genuinely viral advocate).

#### Email heuristics

Bloop compares referrer and referee emails on the same domain, normalizing for `+tag` aliases and dot variations (`me+promo@gmail.com` = `me@gmail.com`), plus near-matches like trailing digits (`linh` vs `linh03`). An exact or near-match after normalizing flags as self-referral — this is the strongest signal, since these are deliberate disguises a normal referral wouldn't produce.

#### IP and volume signals

A shared IP across several of one referrer's purchases, or an unusual spike in volume within a week, both get flagged — but both are prone to false positives (a shared network, or a customer who genuinely went viral). Treat these as "look closer," not "guilty," especially alone.

### Reading a flag

| What you see                                  | What to do                                         |
| --------------------------------------------- | -------------------------------------------------- |
| Email match, same domain                      | Reject; consider a ban if repeated                 |
| Same IP only, real-looking emails             | Approve unless something else corroborates fraud   |
| Same IP **and** similar emails                | Reject — two weak signals reinforcing each other   |
| High volume, varied IPs/emails, real names    | Approve — likely a genuine advocate who went viral |
| High volume, repeated IPs or alias emails     | Reject the batch; ban the referrer                 |
| A known good customer tripping a signal again | Approve, then **Trust** them                       |

### What happens to a flagged referral

1. The reward goes on a **14-day hold** instead of issuing.
2. The order is tagged in Shopify (`BLOOP suspicious referral`).
3. A case opens with status **Pending review**.

If you do nothing, the hold expires and the reward follows your normal rules — review before the 14 days run out.

### Review suspicious cases

1. Open the **Fraud center** — cases are sorted by how soon their review window closes.
2. Open a referrer to see the flagged referrals and the evidence (colliding emails, shared IPs).
3. **Approve** if legitimate, or **Reject** if it's fraud. Approving or rejecting from [Referral orders](/referral-program/management/orders) closes the same case.

**Example:** Tom's case shows two referees sharing his IP, and one with an email alias (`tom.smith+ref@gmail.com` vs `tom.smith@gmail.com`) — two corroborating signals, so you reject and ban him. Priya's case shows only a shared IP across real, unrelated emails — likely a shared flat or office, so you approve and **Trust** her so it stops recurring.

### Ban or trust a referrer

**Ban** a referrer who is clearly abusing the program — they can no longer receive rewards. Reserve it for clear cases: an exact email match, or a confirmed repeated pattern.

**Trust** a referrer you know is genuine but who keeps tripping a signal (like a shared office network) — their future referrals skip the heuristics, sparing them repeat suspicion without weakening detection for anyone else.

### Action history

Every fraud decision is logged — the action, who took it (system or admin), and when — filterable by type or referrer email. Use it to check whether your team is rejecting too aggressively, or as a record if a customer disputes a decision.

### Common mistakes to avoid

* **Rejecting on a single weak signal.** A shared IP alone is usually a household or office, not collusion. Wait for a second corroborating signal.
* **Banning instead of trusting a good customer.** A genuine advocate who keeps tripping the IP signal should be Trusted, not banned.
* **Ignoring the 14-day window.** Let it lapse and the reward follows your normal rules — abuse included.

### Next steps

* Decide individual orders in [Referral orders](/referral-program/management/orders).
* See the broader stance in [preventing referral fraud without blocking real customers](/best-practices/preventing-fraud).


# Track Coupons

Track coupons is the ledger of every discount-code reward Bloop has created — from the moment it's issued to the order it's redeemed on. It answers two questions: did the reward reach the referrer, and are they redeeming it? A pile of unused codes is a quiet signal your reward isn't pulling its weight.

### Coupon statuses

Each code carries a status that reflects where it is in its life:

| Status    | What it means                                                                              |
| --------- | ------------------------------------------------------------------------------------------ |
| Available | The code has been issued but not yet redeemed, and it still exists in Shopify.             |
| Used      | A customer redeemed the code on an order.                                                  |
| Expired   | The code reached its expiry date without being redeemed.                                   |
| Deleted   | The code no longer exists in Shopify (for example, you removed it from the Shopify admin). |

Bloop derives the status from the code itself: redeemed codes show as **Used**, codes with a past expiry date show as **Expired**, codes missing from Shopify show as **Deleted**, and everything else is **Available**.

### What each row shows

For every code, the view lists:

* The **discount code** and its description.
* The **referrer** who owns it, by name and email.
* The **status** and expiry date.
* For redeemed codes, the **order** the code was used on, so you can confirm the redemption in Shopify.

### Filter and search

* **Filter by status** to focus on, say, only **Used** codes (to see real redemptions) or **Expired** codes (rewards that went unused).
* **Search by code** to find a specific coupon a referrer is asking about.
* **Sort by date** to see the newest or oldest codes first.

### How to use this view

* **Confirm a reward was delivered.** If a referrer says they never got their discount, find their code here and check its status.
* **Measure reward engagement.** A high share of **Available** or **Expired** codes means referrers are earning rewards but not redeeming them — a signal your reward may not be compelling enough.
* **Spot deleted codes.** A **Deleted** status means the code was removed in Shopify; reissue it if the removal was a mistake.

### Next steps

* See the wider stream of program events in [Referral activity](/referral-program/analytics/activity).
* Configure the discount-code reward in [Referrer and referee rewards](/referral-program/rewards).
* Review referred purchases in [Referral orders](/referral-program/management/orders).


# Analytics


# Analytics

Analytics is where you decide whether your referral program is earning its keep. The dashboard moves from outcomes (who joined, who converted, how much revenue) back through the funnel to behaviour (who saw the offer, who shared, on which channel). Find it in the **Analytics** tab; pick a date range (7, 30, 90 days, or custom).

> **Best practice:** Watch **successful referrals to shares** (do shares convert?) and **subsequent referral revenue** (do referred customers stick?) most closely. Revenue totals look good on a slide, but these two ratios are what you can act on.

### Metrics and what they mean

| Metric                                      | What it tells you                                                                    |
| ------------------------------------------- | ------------------------------------------------------------------------------------ |
| Total referrers                             | Whether the program is being discovered                                              |
| Successful referrals                        | The program's true output — the number to grow                                       |
| Shares / entry-point impressions            | Whether referrers act once they've joined, and whether the program is visible enough |
| Total / first / subsequent referral revenue | Top-line money, acquisition value, and whether referred customers stick and return   |
| Referee orders (total / subsequent)         | Volume of orders from referred customers, first and repeat                           |
| Welcome emails viewed                       | Whether invites land and get seen                                                    |
| Share-channel performance                   | Which share buttons to keep, promote, or drop                                        |
| New enrolled referrers                      | How many referrers join per day                                                      |

### Read the funnel

A referral program is a funnel — the value is in the drop-off between stages, not any single total:

1. **Entry-point impressions** — how many people saw the offer.
2. **Shares** — how many shared a link.
3. **Successful referrals** — how many of those shares became rewarded purchases.

Where the number falls off sharply is where your problem lives.

### Diagnose by symptom

| Symptom                                       | Likely cause                            | What to try                                                                                                                         |
| --------------------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| High impressions, few shares                  | The offer isn't compelling              | Strengthen the [reward](/referral-program/rewards), lead with the friend's reward in the [widget](/referral-program/branding/popup) |
| Few impressions overall                       | The program is hard to find             | Add entry points — [post-purchase popup](/referral-program/branding/post-purchase), [landing page](/referral-program/branding/page) |
| Plenty of shares, few referrals               | Friends click but don't buy             | Sweeten the referee reward, lower a minimum spend                                                                                   |
| Strong first revenue, weak subsequent revenue | A retention problem, not a referral one | Focus on post-purchase lifecycle, not the program                                                                                   |
| Few referrers joining                         | Audience too narrow or program hidden   | Widen the [target audience](/referral-program/target-audience)                                                                      |
| One channel gets all shares                   | Channel mix doesn't match your audience | Reorder [share channels](/referral-program/branding/social-sharing)                                                                 |

Confirm any fix that costs real money — like a bigger reward — with an [A/B test](/referral-program/ab-testing) rather than a hunch.

### What "good" looks like

Referral rates vary by industry — judge your dashboard against its own trend, not a borrowed number:

* **The trend beats the absolute.** Shares and referrals climbing month over month matters more than any external benchmark.
* **Conversion should hold or rise as you scale.** A falling share-to-referral rate means you're reaching less-engaged sharers.
* **Cost per referral should stay sane.** A reward that wins on raw count can still lose money — read revenue alongside what each reward costs.

### A worked example

*Illustrative, not measured Bloop results.* Over 30 days: 8,000 impressions, 400 shares (5% — low), 40 successful referrals (10% of shares — healthy). The cliff is at the *share* step, so the fix is the offer: strengthen the referee reward and lead the widget copy with it, then confirm with an [A/B test](/referral-program/ab-testing).

### Common mistakes to avoid

* **Reading totals, ignoring ratios.** Total revenue feels good but doesn't tell you what to fix — the drop-off rates do.
* **Peeking too early.** A few days of data is noise. Let a date range gather real volume first.
* **Acting on two changes at once.** Change the reward or the copy, not both — otherwise you won't know which moved the needle.

### Next steps

* Adjust incentives in [Referrer and referee rewards](/referral-program/rewards).
* Confirm a fix before rolling it out with [A/B testing](/referral-program/ab-testing).
* Make sure the program is seen in [making your referral program visible](/best-practices/program-visibility).


# Activity Log

The activity log is the raw, event-by-event pulse of your referral program — every join, share, claimed reward, purchase, or ban writes one line here, newest first. Where analytics gives totals, the activity log lets you watch it unfold in real time — useful for confirming momentum, following one customer's path, or grabbing a referrer's share link.

### Activity types

Each entry records one action against one customer:

| Activity  | What it means                                                                                                                           |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| Joined    | A customer joined the program as a referrer and received their share link and code.                                                     |
| Claimed   | A reward was claimed — a referee collected their referral discount, or a referrer received their earned reward.                         |
| Purchased | A referee completed a qualifying purchase, turning a referral into a successful one.                                                    |
| Revoked   | A referrer reward was clawed back because the order behind it was cancelled or refunded. The entry carries a short note explaining why. |
| Banned    | A referrer was banned in the Fraud center and can no longer receive rewards.                                                            |

### What each entry shows

The feed is enriched with details relevant to the action:

* **Joined** entries include the referrer's share link, and their referee discount code if one applies — handy for quickly grabbing a customer's sharing link.
* **Claimed** entries show what was claimed: the referee's discount code, or the referrer's reward (discount code, store credit, cash, or a custom reward's description) and the order it came from.
* **Purchased** entries connect the referee to the order that completed the referral.
* **Revoked** entries name the reward that was reversed and carry the reason (a cancelled or refunded order), linked to the order it came from. See [reward revocation](/referral-program/rewards#revoking-a-reward).
* **Banned** entries record that a referrer was blocked.

Every entry shows the customer's name and email and links back to their record, so you can move from a single event to the full customer history in one click.

### Read the feed

Open the **Activity** tab — entries are listed newest first by default, sortable either way. Click a customer in any entry to open their detail and see their full referral chain. A steady run of **Joined** and **Claimed** entries confirms the program is live; **Purchased** events show momentum.

For an aggregated view — conversion rates, revenue, top referrers — use [Referral analytics](/referral-program/analytics/analytics) instead; this log is for event-by-event detail.

### Next steps

* See the full picture for one person in [Manage referral customers](/referral-program/management/customers).
* Track the discount codes behind **Claimed** events in [Track referral discount codes](/referral-program/management/track-coupons).
* Review program results in [Referral analytics](/referral-program/analytics/analytics).


# Email Notifications

Bloop sends 16 referral emails automatically — the invite that asks a customer to share, the reward that thanks them, and reminders that bring a forgotten code back into use. Each is a template you can turn on/off, personalise with variables, and time with a trigger. Configure them under **Branding → Emails**.

> **Best practice:** The invite and successful-referral emails matter most — one drives sharing, the other reinforces it. Write them warm and personal, not transactional, and always send yourself a test before going live. For copy ideas, see [referral email templates](https://bloop.plus/blog/referral-email-template/).

### The referral emails Bloop can send

| Email                                                         | Goes to  | When it sends                                             |
| ------------------------------------------------------------- | -------- | --------------------------------------------------------- |
| Sharing                                                       | Referee  | A referrer shares by email through the widget             |
| Invite                                                        | Referrer | A customer joins the program                              |
| Gift                                                          | Referee  | A referee is sent a gift/discount code                    |
| Successful referral (discount / store credit / cash / custom) | Referrer | A referral converts — one template per reward type        |
| Pending referral                                              | Referrer | A referral is recorded but the reward is under review     |
| Denied referral                                               | Referrer | A referral didn't qualify                                 |
| Not enough referrals                                          | Referrer | Referral succeeds but a referee-count goal isn't met yet  |
| Referrer / Referee reward expiry                              | Both     | A reward is close to expiring (default: 3 days before)    |
| Remind referrer / referee                                     | Both     | Nudge to use an unredeemed reward (default: 7 days after) |
| Cash payout                                                   | Referrer | A cash reward has been paid out                           |
| Remind referrer to refer                                      | Referrer | Recurring nudge to keep sharing (default: every 2 weeks)  |

If you only ever polish two, polish the **invite** and the **successful-referral** email — the invite decides whether a customer ever shares, the successful-referral email decides whether they share *again*.

### What makes a referral email work

* **Name the benefit in the subject line.** "Your friend Maya sent you 20% off" beats "You have a new notification."
* **Personalise it.** Use the real reward (`{{ReferrerReward}}`), the coupon code, and — on the sharing email — the referrer's own note (`{{Message}}`).
* **One action per email.** Share, redeem, or come back — not two asks at once.
* **Timing matters.** A thank-you should land the moment a referral converts; reminders work because rewards are forgotten, not refused.

### How triggers work

| Trigger      | What it means                                                                       |
| ------------ | ----------------------------------------------------------------------------------- |
| Immediate    | Sends as soon as the event happens (default for most emails)                        |
| Delayed      | Sends a set number of days after the event                                          |
| Event after  | Sends days after a reference event — used for reminders                             |
| Event before | Sends days before a reference event — used for expiry warnings                      |
| Recurring    | Sends repeatedly until a stop condition (referral count, send count, or time limit) |

Defaults: reward-expiry warnings fire 3 days before, reminders fire 7 days after, and "remind referrer to refer" repeats every 2 weeks until 12 months.

### Enabling and disabling emails

Every email can be turned on or off independently. Turning one off doesn't delete your edits, and only affects events going forward.

### Editing an email template

Open any email under **Branding → Emails** to edit its **subject**, **body**, **button** (text, colour, link — leave text empty to hide it), and **image** (paid plans). Changes apply to every future send. The button links to your store by default; point it elsewhere, like your referral landing page, using the redirect option.

### Template variables

Variables are placeholders like `{{StoreName}}`. Bloop fills them in at send time; an unfilled variable is left as-is rather than shown blank.

| Variable                                                           | Fills in                                 |
| ------------------------------------------------------------------ | ---------------------------------------- |
| `{{StoreName}}`                                                    | Your store name                          |
| `{{ReferrerName}}`                                                 | The referrer's name                      |
| `{{ReferrerReward}}` / `{{RefereeReward}}`                         | Each side's reward                       |
| `{{ReferralLink}}` / `{{ReferralCode}}`                            | The referrer's link or code              |
| `{{CouponCode}}`                                                   | The recipient's discount code            |
| `{{ReferrerMinimumRequirement}}` / `{{RefereeMinimumRequirement}}` | The minimum each side must meet          |
| `{{ReferrerCodeExpired}}` / `{{RefereeCodeExpired}}`               | Time until each code expires             |
| `{{RemainQuantityOfReferees}}`                                     | How many more friends the referrer needs |
| `{{Message}}`                                                      | The referrer's personal note             |

### The referral hub button

Referrer-facing emails carry a button to their [referral hub](/referral-program/referral-hub), already signed in — nothing to configure. It's left off referee emails and the reward-earned success emails. If you send through Klaviyo or Mailchimp, use the permanent hub link instead (`BLOOP Hub Portal` / `BLOOPHUB`) — see [Klaviyo](/referral-program/integrations/klaviyo) and [Mailchimp](/referral-program/integrations/mailchimp).

### Languages

Each email has one template per store — no separate language versions. The on-site widget itself supports multiple languages; see [social sharing branding](/referral-program/branding/social-sharing).

### Test before you go live

Send yourself a test before relying on an email — it uses sample values so you can preview it exactly as a customer would, on both desktop and mobile.

### Common mistakes to avoid

* **Writing transactional, not personal.** Warm beats formal — this is a recommendation between friends, not a receipt.
* **Two asks in one email.** One email, one button, one action.
* **Going live without a test send.** A broken variable or cut-off subject is invisible until a customer sees it.

### Related

* [Referral rewards](/referral-program/rewards) — set the discount, store credit, or cash these emails announce.
* [Social sharing branding](/referral-program/branding/social-sharing) — the on-site widget and its languages.


# Integrations


# Klaviyo

Connecting Klaviyo lets your referral program feed into your broader email strategy. Bloop keeps Klaviyo in the loop automatically: **who your advocates are, which campaigns they belong to, and what their referral link and code are** — so you can segment customers, send broadcasts, and build automations without exporting a CSV.

Set it up under **Integrations → Klaviyo**.

### How it works

Everything that happens in your referral program is reflected in Klaviyo on three layers:

```mermaid
flowchart LR
  A["A customer joins your<br/>referral program"] --> B["Bloop updates their<br/>Klaviyo profile"]
  B --> C["They appear in each<br/>campaign's segment"]
  B --> D["Events are sent along the way<br/>(join, share, purchase...)"]
  C --> E["You: filter customers and send<br/>campaign-specific broadcasts"]
  D --> F["You: build Klaviyo flows<br/>(welcome, thank-you, win-back)"]
```

> **Best practice:** Build **segments** from profile properties and the ready-made campaign segments (standing facts: *who is a referrer, who's in which campaign*), and trigger **flows** from events (moments: *a referral just converted*). Mixing them up is the most common reason a Klaviyo setup feels unreliable.

### Connecting Klaviyo

1. In Klaviyo, create a private API key with permission to read and write profiles and events.
2. In Bloop, open **Integrations → Klaviyo**, paste the key, and enable the toggle.
3. Run the **Sync** once, right after connecting, so existing advocates carry their properties from day one — otherwise a segment like "all referrers" misses your existing base.

Turning the toggle off pauses the integration without removing the key. Live custom events require the Scale plan; lower plans can still connect and sync.

### What's on an advocate's profile

| Property                                                | What it holds                                                                                                                                                                                   |
| ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `BLOOP Campaigns`                                       | The campaigns they currently belong to (a list — one advocate can be in several)                                                                                                                |
| `BLOOP Campaign Links` / `BLOOP Campaign Codes`         | Their personal referral link and code, **per campaign** — insert them into your emails                                                                                                          |
| `BLOOP Hub Portal`                                      | A **permanent** link to their [referral hub](/referral-program/referral-hub) (unlike the 2-hour magic link in Bloop's own emails, so it's safe to drop into a flow email that sends days later) |
| `BLOOP Referral revenue` / `BLOOP Successful referrals` | Lifetime totals across all campaigns — never reduced when someone leaves a campaign                                                                                                             |
| `BLOOP Is referrer` / `BLOOP Is referee`                | Who's an advocate, who was referred (referee-only profiles get just the identity fields)                                                                                                        |
| `BLOOP Joining date` / `BLOOP Joining source`           | When and how they joined                                                                                                                                                                        |

To insert a campaign's link into an email template, use a two-step lookup — for a campaign named *Summer Sale*:

```
{{ person|lookup:'BLOOP Campaign Links'|lookup:'Summer Sale' }}
```

### A ready-made segment for every campaign

Create a campaign in Bloop, open Klaviyo, and the segment **`BLOOP - {campaign name}`** is already there:

* **Membership updates itself.** Someone joins → they enter. Someone leaves → they exit. Zero maintenance.
* **Broadcasts per campaign.** Pick the segment as the recipient list — only that campaign's advocates get the email.
* **Flow trigger.** Use Klaviyo's *Added to segment* trigger to welcome customers into a specific campaign.
* **Renames handled.** Rename the campaign and the segment follows; delete the segment by accident and Bloop recreates it.

> **Note:** Being in a segment doesn't guarantee delivery — Klaviyo only sends broadcasts to profiles that have consented to email marketing.

### Events Bloop sends

Each event appears in Klaviyo as a metric you can use as a flow trigger. Every event carries the campaign name, so a flow can target one specific campaign.

| Bloop metric                        | Fires when                                             | Flow ideas                                   |
| ----------------------------------- | ------------------------------------------------------ | -------------------------------------------- |
| `BLOOP - Join program`              | A customer joins your program                          | Welcome email with their referral link       |
| `BLOOP - Referral sharing`          | An advocate shares their link by email                 | Thank them, restate the reward               |
| `BLOOP - Referral purchase pending` | A friend purchased; the reward is under review         | "Your reward is on its way"                  |
| `BLOOP - Successful referral`       | A referral converts (carries the reward type and code) | Congratulations + the reward code            |
| `BLOOP - Referral made ineligible`  | A referral is rejected                                 | A tactful heads-up with the reason           |
| `BLOOP - Referee receives discount` | The referred friend gets their discount                | Remind them before the code expires          |
| `BLOOP - Left campaign`             | A customer leaves one campaign                         | Stop share reminders · send a win-back email |
| `BLOOP - Removed from program`      | A customer is removed from the program                 | Exclude them from all related automations    |

> **Avoid double-sending.** If you replace Bloop's built-in emails with Klaviyo flows, disable the matching emails in Bloop's **Email settings** so advocates don't receive both.

### When a customer leaves a campaign

Say your campaign targets VIP-tier customers only, and Anna drops out of that tier:

```mermaid
flowchart TD
  A["Anna no longer qualifies<br/>for the VIP Program campaign"] --> B["Her referral link and code<br/>for this campaign stop working"]
  B --> C["Her profile updates: VIP Program<br/>disappears from her campaign list"]
  C --> D["She automatically exits the<br/>'BLOOP - VIP Program' segment"]
  C --> E["The 'BLOOP - Left campaign'<br/>event fires"]
  E --> F["Your flows can react: stop share<br/>reminders · send a win-back email"]
  D -.-> G["Revenue and referrals she<br/>brought in are KEPT — forever"]
```

Three things to know:

* The *Left campaign* event carries **no link or code** — they were just deactivated, so your flows can never send a dead link by mistake.
* If she's still in another campaign, everything about that campaign stays untouched.
* When **you change a campaign's audience** (moving many customers at once): profiles and segments still update correctly, but **no events fire** — your flows never mass-email by accident.

### Upgrading from the legacy setup

> **The campaign-based format is live as of July 17, 2026.** Klaviyo connections made after this date use it automatically. If you connected earlier, you're on the legacy format — everything keeps working as-is, but **we recommend upgrading soon**: campaign segments, per-campaign links and codes, and the *Left campaign* event are only available after you upgrade, and multi-campaign features will require it.

Before multi-campaign support, a profile held a single referral link and code. Profiles now use a per-campaign format. Your current setup **won't change on its own** — you upgrade when you're ready.

```mermaid
flowchart LR
  V1["Legacy setup<br/>1 link + 1 code on the profile<br/>your current flows keep working"]
  V2["Campaign-based setup<br/>per-campaign links, codes, segments<br/>+ the Left campaign event"]
  V1 -->|"Press Sync and confirm"| V2
  V1 -->|"Create an additional campaign"| V2
```

**When you'll be asked:** when you press **Sync** on the Klaviyo page, or when you create an additional campaign. The upgrade only happens after you confirm; cancel and nothing changes. Upgrading is one-way — there's no self-service way back to the old format.

**What changes** — profile properties move to the per-campaign format:

| Old property          | Use instead                                                                               |
| --------------------- | ----------------------------------------------------------------------------------------- |
| `BLOOP Referral link` | `BLOOP Campaign Links` (per campaign) — the old property now points to the advocate's Hub |
| `BLOOP Referral code` | `BLOOP Campaign Codes` (per campaign)                                                     |
| *(new)*               | `BLOOP Campaigns` — the list your campaign segments are built on                          |

**After upgrading**, update any segments or email templates that used the old properties.

**What never changes:** the names of the 8 events (existing flows keep triggering) and all revenue / referral statistics.

### Three high-value plays

* **Top-referrer VIP segment.** Build on `BLOOP Successful referrals` ≥ your threshold — give richer rewards or early access.
* **Reward thank-you flow.** Trigger off the `BLOOP - Successful referral` *event* so gratitude lands the instant a referral converts.
* **Win-back leavers.** Trigger off `BLOOP - Left campaign` to invite the customer into another campaign — their lifetime stats travel with them.

### Common mistakes to avoid

* **Segmenting off an event instead of a property.** An event captures a moment, not a standing fact — use the `BLOOP Successful referrals` *property* (or the ready-made campaign segments) for durable segments.
* **Triggering a flow off a property.** Properties don't "happen" — use the *event* to start a flow.
* **Skipping the initial audience sync.** Without it, existing advocates carry no properties for weeks.
* **Keeping Bloop's built-in email on after building the equivalent flow.** Your advocates get two emails.

### Related

* [Mailchimp integration](/referral-program/integrations/mailchimp) — the equivalent integration for Mailchimp.
* [Referral analytics](/referral-program/analytics/analytics) — the in-app view of the same performance.


# Mailchimp

Connecting Mailchimp lets your referral program work with the audience you already have. Bloop labels each contact as a referrer or referee, fills in their link, code, revenue, and referral count, and marks each milestone as it happens. Set it up under **Integrations → Mailchimp**.

Mailchimp expresses this in three building blocks: **tags** for instant segmentation, **merge fields** for standing details, and **events** for point-in-time triggers.

> **Best practice:** Segment with the **BLOOP Referrer** / **BLOOP Referee** tags, and use **events** for automations that fire at a specific moment. Run the batch sync once after connecting so existing contacts carry tags and fields from day one.

### Connecting Mailchimp

1. In Mailchimp, create an API key.
2. In Bloop, open **Integrations → Mailchimp**, paste the key, choose the audience, and enable the toggle.

Bloop reads the Mailchimp data centre from your key automatically. Live events require the Scale plan; lower plans can still connect and batch-sync.

### Events Bloop sends

| Mailchimp event                  | Fires when                                                                         |
| -------------------------------- | ---------------------------------------------------------------------------------- |
| `BLOOP_Join_Program`             | A customer joins your referral program                                             |
| `BLOOP_Referral_Sharing`         | A referrer shares with a friend                                                    |
| `BLOOP_Successful_Referral`      | A referral converts (carries `BLOOP_Reward_Type`: `DISCOUNT`, `CREDIT`, or `CASH`) |
| `BLOOP_Referee_Receive_Discount` | A referee receives their discount                                                  |

### Tags and merge fields

Bloop tags each contact **BLOOP Referrer** and/or **BLOOP Referee**, and fills in merge fields for referrers: `JOINDATE`, `BLOOPCODE`, `BLOOPLINK`, `REVENUE`, `SUCCESSREF` (successful referral count), and `BLOOPHUB` — a **permanent** link to the [referral hub](/referral-program/referral-hub), safe to use in a journey email that sends long after a referral (unlike Bloop's own 2-hour magic link).

### Three high-value plays

* **A referrer-only campaign.** Segment on the **BLOOP Referrer** tag — never send a "join the program" invite to someone already in it.
* **A top-referrer VIP segment.** Segment on `SUCCESSREF` ≥ your threshold; it stays current as merge fields update.
* **An instant thank-you automation.** Start it from the `BLOOP_Successful_Referral` **event**, using `BLOOP_Reward_Type` to match the wording.

### A worked example

Sync first so tags and merge fields exist for everyone. Build a segment (**BLOOP Referrer** tag *and* `SUCCESSREF` ≥ 3) for a standing VIP campaign personalised with `BLOOPLINK`, paired with a *separate* automation off the `BLOOP_Successful_Referral` **event** for an instant thank-you on each new conversion. The segment handles "who is a VIP today"; the event handles "a referral just landed."

### Syncing your audience

Run the batch sync once, right after connecting — otherwise only customers who hit a milestone after connection get tagged, and a "BLOOP Referrer" segment misses your existing base. A referrer-and-referee contact is merged into one entry. Bloop reports batch progress (`pending` → `finished`, or `errored` if something failed — usually a merge-field type conflict in Mailchimp).

### Common mistakes to avoid

* **Triggering an automation off a tag instead of an event.** A tag is a standing state, not a moment — use the *event* to fire at the right instant.
* **Segmenting off an event instead of a tag or merge field.** Events only capture recent activity — build durable segments from tags and merge fields.
* **Skipping the initial batch sync.** Without it, existing referrers carry no tags for weeks.

### Related

* [Klaviyo integration](/referral-program/integrations/klaviyo) — the equivalent integration for Klaviyo.
* [Referral analytics](/referral-program/analytics/analytics) — the in-app view of the same performance.


# Campaigns & Commissions

Your commission structure is the single biggest decision in an affiliate program: it sets how hard partners work to promote you and how much margin you keep on every sale they drive. Set it too low and good affiliates ignore you; set it too high and you lose money on each order. The right structure pays enough to motivate promotion while staying inside your product margin — and the best model depends on what you sell.

In Bloop, every affiliate belongs to exactly one **campaign**, which holds that structure. When a customer buys through an affiliate's link, Bloop reads the campaign rules to calculate the commission.

> **Best practice:** Anchor your commission to margin, not a round number. Decide what share of the profit on an affiliate order you're willing to give away, then back into the rate from there. A 20% commission on a 60%-margin candle is healthy; the same 20% on a 12%-margin electronics order erases your profit. When unsure, start lower and raise it for proven performers rather than cutting it later. See [how to set affiliate commission rates](https://bloop.plus/blog/referral-commission/) and the [commission-structure best practices](/best-practices/commission-structure) for the full reasoning.

### Commission types

A campaign uses one commission type at its core. Bloop supports three:

| Commission type | Internal value | How it pays                                                     |
| --------------- | -------------- | --------------------------------------------------------------- |
| Percentage      | `percentage`   | A percent of the qualifying sale amount (e.g. 15% of the order) |
| Flat per order  | `amount_order` | A fixed amount for the whole order, regardless of size          |
| Flat per item   | `amount_item`  | A fixed amount multiplied by the number of qualifying items     |

The default campaign uses a 15% percentage commission. Change the type and value under the campaign's commission structure.

**Percentage** lets the payout scale with order size — a $200 basket pays twice what a $100 basket does — which is fair when your margin is roughly constant across order sizes. **Flat per order** decouples the payout from order size entirely, so a big order and a small order cost the same fixed bounty; that predictability makes it safe for thin or high-ticket margins. **Flat per item** tracks quantity rather than dollar value, which fits a product whose per-unit profit you know precisely and want to share unit-for-unit.

### Which commission model fits your store

The right model follows your margins, average order value, and product range — see [when and why to use each model](#when-and-why-to-use-each-model) below for the quick version, or [commission-structure best practices](/best-practices/commission-structure) for the full store-profile breakdown.

### How to set the rate from your margin

Once you've chosen a model, the rate should come from your numbers, not a round figure that "feels right." The default 15% is a sensible opening rate for most stores — treat it as a starting point to confirm against margin, not a default to ship blind.

A simple, repeatable rule:

1. **Find your gross margin on an average affiliate order.** If a product sells for $50 and costs $20 to make and fulfil, gross profit is $30 — a 60% margin.
2. **Decide what share of that profit you'll give away.** A common range is a quarter to a third of gross profit. On a $30 profit, giving away $7.50–$10 keeps you comfortably ahead.
3. **Convert that back into a rate.** $7.50 on a $50 order is 15% commission; $10 is 20%. Both leave profit on every order an affiliate drives — affiliate spend should always be a cut of new revenue, never a loss leader.

This also explains why a flat 20% can be healthy or fatal. On the 60%-margin $50 order, 20% costs $10 and leaves $20 profit. On a thin-margin $400 item at 12% margin ($48 profit), a 20% commission is $80 — far more than the order earned. That order needs a **flat per order** bounty or a much lower percentage.

**Start lower and raise it for proven performers.** It's far easier to reward a high-performing affiliate with a better rate than to cut a published one without souring the relationship.

### Basic vs tiered (advance) commission

The commission structure runs in one of two modes:

* **Basic** — a single rate applies to every qualifying order. This is the default.
* **Advance (tiered)** — the rate changes based on the order total. You define levels, each with an **order minimum** and its own rate. Bloop picks the highest level whose minimum the order total meets or exceeds.

For example, a tiered structure might pay 10% on orders, 15% once the order reaches $100, and 20% once it reaches $250. A $180 order earns the 15% rate, because $180 clears the $100 minimum but not the $250 one.

Tiered levels can each have their own commission type and value, giving you full control over how the curve rewards larger orders. Use it to nudge affiliates toward bundles or higher baskets. The key watch-out: the top tier must still respect your margin — a 20% rate on $250+ orders is only safe if a $250 order carries enough profit to cover $50 of commission.

### Product-specific commissions

You can override the campaign rate for individual products. When product-specific commissions are enabled, any product on the list earns its own rate; everything else falls back to the campaign rate. This is the cleanest way to run one program across a catalog with mixed margins — a modest base rate everywhere, plus richer rates on the lines that can afford them.

Product-specific rates support **percentage** or **flat per item** (`amount_item`) — not flat per order, because the override applies at the line-item level.

Note: product-specific commissions are a plan-gated feature. On lower plans the option is disabled even if values are saved, so the campaign rate applies to all products.

### What counts toward the sale

By default, commission is calculated on the order's product revenue. In the campaign's commission calculation settings you can exclude:

* **Specific products or collections** — listed items are skipped entirely.
* **Discounts** — exclude discounted amounts from the base.
* **Shipping** — exclude shipping charges.
* **Taxes** — exclude tax from the base.
* **Tips** — exclude tips.

Excluding shipping and tax is a common first move — you rarely want to pay commission on money that never lands as profit. The base you build here is what every rate above is applied to, so getting exclusions right matters as much as getting the rate right: a 15% rate on a base that wrongly includes $12 of shipping and $8 of tax quietly overpays $3 on every order.

### Commission caps (maximum)

Each campaign can enforce a **maximum** commission. When the cap is enabled, an affiliate's commission is limited to the cap value (default: 100). Use this to protect margin on unusually large orders or to keep payouts predictable — it pairs especially well with a percentage model, which would otherwise scale without limit.

A 15% rate is fine on a typical $80 basket, but the same rate on a $2,000 order would pay $300 — likely more than that order earns in profit. A cap of 100 means that order pays $100 instead, keeping you in the black regardless of basket size.

### Attribution window (cookie)

The **cookie** value is the number of days a click stays attributed to an affiliate. If a customer clicks an affiliate link and buys within the cookie window, the sale counts for that affiliate. The default is 30 days. Set it per campaign — a longer window suits considered, slower purchases (high-ticket or B2B), while a shorter one suits impulse buys.

A long window (60–90 days) credits the affiliate even for purchases weeks after the click, rewarding partners who plant the first seed. A short window (7–14 days) credits only quick conversions, keeping attribution close to the moment of influence. The 30-day default is a reasonable middle ground for most stores.

### Auto-apply discount

A campaign can carry an **auto-apply discount**: when enabled, customers who arrive through an affiliate link automatically get the configured discount code applied. This pairs a customer incentive with the affiliate's promotion, which often lifts conversion enough to justify the extra cost.

### A worked example: pricing one campaign

*Illustrative, not a measured Bloop result.* A $60 skincare set costs $24 to fulfil ($36 profit, 60% margin), so a **15% percentage** commission ($9) leaves $27 of profit — healthy. Shipping and tax are excluded from the base, and a **cap of 100** protects against the rare 5-set, $300 order. The **cookie** stays at the 30-day default since skincare is a considered purchase. Once an affiliate proves themselves, move them to a second campaign at 18–20% rather than starting everyone high.

### Running multiple campaigns

You can create as many campaigns as you need and assign affiliates to whichever fits. Common patterns:

* A higher-rate campaign for top-tier creators and a standard one for everyone else.
* A short-term campaign with a richer rate for a product launch.
* A campaign with a longer cookie window for partners who drive considered, slower purchases.

One campaign is always marked as the default. New self-registered affiliates are routed to it unless you assign them elsewhere.

### Common mistakes to avoid

* **Setting the rate to a round number instead of to margin.** "20% sounds standard" is how thin-margin stores lose money on every affiliate order. Work back from gross profit first.
* **Forgetting the cap.** Without a maximum, a single large order can pay more commission than it earned in profit. Enable a cap on any percentage campaign.
* **Commissioning shipping and tax.** This pays affiliates on money that was never yours to keep. Exclude them unless you have a specific reason not to.
* **Starting too high and cutting later.** Cutting a published rate sours affiliates fast. Open lower and raise it for proven performers.

### When and why to use each model

* **Use percentage** when your margin is healthy and roughly consistent across order sizes and you want the payout to track basket value. The right default for most fashion, beauty, and general-merchandise stores.
* **Use flat per order** when margins are thin or orders are high-ticket and you need a fixed, predictable cost per sale.
* **Use flat per item** when you sell a single product or a tight range with a known per-unit profit and want to share that profit unit-for-unit.
* **Use tiered (advance)** when you want to push affiliates toward larger baskets and your margin holds up at the higher tiers.
* **Use product-specific overrides** when your catalog spans very different margins and you want a safe base rate everywhere plus richer rates only on lines that can afford them.
* **Run multiple campaigns** when different partner segments deserve different economics — a standard rate for self-registered affiliates and a richer one for proven creators.

### Related

* [Getting started with affiliates](/quick-start/getting-started-1) — overview and onboarding.
* [Managing affiliates](/affiliate-program/affiliates) — assign affiliates to campaigns.
* [Affiliate sales tracking](/affiliate-program/sales) — see how each commission is recorded.
* [Commission-structure best practices](/best-practices/commission-structure) — the strategy behind these settings.
* [How to set affiliate commission rates](https://bloop.plus/blog/referral-commission/) — the full margin-based reasoning.
* [Referral program vs affiliate program](https://bloop.plus/blog/referral-program-vs-affiliate-program/) — choose the right channel for your goal.


# Managing Affiliates

Who you let in matters more than how many apply. A focused roster of partners whose audience overlaps your customers will out-earn a crowd of casual sign-ups — and it spares you the work of reviewing sales from people who were never going to convert. Managing affiliates in Bloop comes down to two repeating decisions: who to bring on, and whose link stays live.

This page covers affiliate statuses, how to recruit (manual add or self-registration), how to evaluate and approve or reject applicants, a worked example, exporting your list, common mistakes, and "login as" portal preview. Open the **Affiliates** tab to see your full roster, each affiliate's status, their assigned campaign, referral link code, and performance.

> **Best practice:** Approve for fit, not just volume. Check that an applicant's audience plausibly buys what you sell — a relevant partner with a small following usually drives cleaner sales than a large but mismatched one. Use the **pending** queue as a real gate, and keep strong performers on a higher-rate [campaign](/affiliate-program/campaigns) so they have a reason to keep promoting. The full playbook is in [recruiting and approving affiliates](/best-practices/recruiting-affiliates).

### Affiliate statuses

An affiliate is always in one of three statuses:

| Status   | Meaning                                                                   | What to do                                                                                                     |
| -------- | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| Pending  | Applied (or was created as pending) and awaiting review. Cannot earn yet. | Evaluate and approve or reject. Don't leave applicants waiting — a stale queue loses good partners.            |
| Approved | Active. Their referral link is live and orders generate commissions.      | Monitor performance; move your best to a higher-rate campaign. Reject only if they go inactive or break terms. |
| Rejected | Declined. Their link does not earn commissions.                           | Leave as-is, or set back to approved to reinstate a partner who has since become a good fit.                   |

There is no separate "paused" status. To stop an affiliate from earning, move them to **rejected**; to reinstate them, set them back to **approved**.

Each status change triggers an email to the affiliate (registration pending, approved, or denied), so they always know where they stand. Approving someone makes their link live immediately — treat the approval click as the real gate rather than clearing the queue on autopilot.

### How to recruit affiliates

Two paths into your program:

* **Manual add** — for partners you already know: creators you reached out to, existing customers with an audience, agencies you have a relationship with. Vetting happens before they enter Bloop.
* **Self-registration** — for scale. You publish a form, applicants come to you, and your approval step becomes the filter.

Most healthy programs use both: manual add to seed strong partners at launch, then self-registration to grow once you have proof the program converts.

### Adding affiliates manually

1. In the **Affiliates** tab, choose to add a new affiliate.
2. Enter their first name, last name, and email.
3. Assign them to a campaign.

The affiliate gets a unique referral link code and a notification email. Because you chose them, there is no pending review step.

### Self-registration

Share your registration form and let affiliates apply on their own. Applicants land in your dashboard with **pending** status, ready for review. Form fields are configured in [affiliate settings](/affiliate-program/settings). Self-registration scales recruitment, but makes your approval step the quality gate — keep it deliberate.

Asking for an audience link, audience size, and a promotion plan turns a blind approval into an informed one.

### How to evaluate an applicant

Judge pending applications on fit before reach:

1. **Audience overlap.** Does their audience plausibly buy what you sell? A skincare creator for a skincare store beats a generic deals account ten times the size.
2. **Promotion plan.** How do they intend to drive traffic — content, email, social, coupon sites? A clear, on-brand plan is worth more than a vague one with big numbers.
3. **Reach, in that order.** Audience size matters, but only after overlap and plan check out.
4. **Brand safety.** Spammy coupon farming, off-brand content, or undisclosed affiliate behaviour is a reason to reject regardless of reach.

### Approving and rejecting

* Open an affiliate and change their status to **approved** or **rejected**, or
* Select several affiliates and apply a **bulk status** change.

Approving activates the referral link immediately. Bulk actions send the matching status email to everyone selected — useful for clearing a backlog, but check the selection first so a borderline applicant doesn't slip through.

### A worked example: vetting one application

*Illustrative.* "Maya" applies with her Instagram link (\~8,000 coffee-enthusiast followers) and a note about weekly bean reviews — strong audience overlap, a credible on-brand plan, clean content. You **approve** and assign her to your standard campaign, using **login as** to confirm her portal before she starts sharing. Contrast an applicant with no audience link, a vague "I'll share with my network" plan, and a coupon-site URL: **reject**, since the likely result is low-intent traffic you'd have to scrutinise later.

### Exporting your affiliates

Export your roster to CSV from the **Affiliates** tab. The export includes first name, last name, email, status, assigned campaign, referral link code, discount coupon, join date, and any custom registration attributes. Export the full list or filter by status first.

There is no bulk CSV import — affiliates join by manual add or self-registration only.

### "Login as" — preview the affiliate portal

Use **login as** from an affiliate's record to open their portal session and see exactly what they see. Useful for verifying their dashboard, troubleshooting a reported issue, or confirming branding before going live. A demo portal is also available without selecting a specific affiliate.

### Referral links and coupons

Every approved affiliate has a unique referral link code, generated automatically. You can also assign a personal **discount coupon** so they can offer customers a deal. Bloop prevents assigning a coupon already used by another affiliate or tied to a campaign, and notifies the affiliate when a new coupon is set.

### Common mistakes to avoid

* **Approving on reach alone.** A big following with no audience overlap sends low-intent clicks. Approve for fit first.
* **Treating the pending queue as a rubber stamp.** If you approve everyone, the gate does nothing. Use it as a real filter.
* **Letting the queue go stale.** Good applicants lose interest. Review on a regular cadence.

### Related

* [Getting started with affiliates](/quick-start/getting-started-1) — program overview.
* [Affiliate campaigns and commissions](/affiliate-program/campaigns) — what each affiliate earns.
* [Affiliate sales tracking](/affiliate-program/sales) — the orders each affiliate drives.
* [Recruiting and approving affiliates](/best-practices/recruiting-affiliates) — the strategy behind the gate.


# Branding


# Registration Form

The registration form is the first impression your program makes on a potential affiliate. It has to convince good partners that joining is worth their time and collect the information you need to vet and pay them. Get the balance wrong and you feel it: a long, demanding form scares off the creators you most want, while a bare email-only form lets in low-quality applicants you'll spend hours screening.

Bloop gives you a drag-and-drop builder to decide which fields to collect, how they're labelled, which are required, and how the page looks. You'll find it under the affiliate **Branding** tab. Every store starts with a working default form, so you can launch right away and refine once applications start arriving.

> **Best practice:** Keep the form short and let the copy do the recruiting. Lead with the benefit — your commission rate and what affiliates can earn — using a dynamic variable like `{{campaign_amount}}`, then ask only for fields you'll use to approve and contact partners. If you need to filter (a niche, an audience size, a portfolio link), use a single-choice or file-upload field rather than free text so applications are easy to compare. See [Managing affiliates](/affiliate-program/affiliates) for how submissions flow into review, and [recruiting affiliates](/best-practices/recruiting-affiliates) for how the form fits your wider recruiting funnel.

### What makes a registration form convert

Every field you add is a small tax on the applicant — another thing to read, decide, and type before they can join. Some of that tax is worth paying because it earns information you'll genuinely use. **Every field has to justify its place by answering "what decision does this help me make?"**

Two failure modes to avoid:

* **Too long.** Asking for a phone number, mailing address, tax ID, and open-ended essays up front is almost all premature. You don't need a payout address before you've approved anyone, and free-text answers are slow to read and easy to fake. Long forms have lower completion rates, and the people who abandon are disproportionately the busy creators you most want.
* **Too thin.** An email-only form admits everyone — including bots and people with no relevant audience. You pay for that convenience later in screening time.

The form that works asks for the **few facts that change an approve-or-decline decision**, and nothing else. For most stores that's a name, an email, one screening question, and a terms agreement. Collect payout details *after* approval on the affiliate's profile — see [Affiliate settings](/affiliate-program/settings) for where those payment fields live.

### Default fields

A new form ships with three required fields:

| Field      | Type         | Required |
| ---------- | ------------ | -------- |
| First name | `first_name` | Yes      |
| Last name  | `last_name`  | Yes      |
| Email      | `email`      | Yes      |

These are the program's core identity fields. You can rename their label or change placeholder text, but you can't make them optional or delete them. Everything else is yours to add, reorder, or remove. For many programs these three fields plus a terms checkbox are the whole form.

### Adding and editing fields

Open the field editor to add a new field or change an existing one. Each field has a **field type**, a **label**, and a **required** toggle. The available field types are:

| Field type      | Internal value      | What it collects                                     |
| --------------- | ------------------- | ---------------------------------------------------- |
| Text            | `text`              | A single line of free text                           |
| Multiple choice | `multiple_checkbox` | A set of checkboxes the applicant can multi-select   |
| Single choice   | `radio`             | A set of radio options where the applicant picks one |
| File upload     | `file`              | A file the applicant attaches                        |
| Terms checkbox  | `checkbox`          | A single agreement checkbox linked to your terms     |

A few rules the builder enforces:

* **Labels must be unique.** Two fields can't share the same label (case-insensitive).
* **Required fields can't be left blank.** Labels and option values are validated before a field is saved.
* **Only one terms checkbox.** Once you add a terms checkbox, the option is disabled for additional fields.
* **Multiple-choice fields are always optional.** The required toggle is disabled for `multiple_checkbox`.

#### Choosing the right field type

The field type decides how comparable your applications are. Free text is flexible but slow to scan; closed answers (radio, checkbox) turn a judgment call into something you can sort in seconds.

| You want to...                                                                             | Use this type                         | Why                                                                             |
| ------------------------------------------------------------------------------------------ | ------------------------------------- | ------------------------------------------------------------------------------- |
| Capture a name, social handle, or website URL                                              | Text                                  | One open line is fine when the answer is short and you'll read every one anyway |
| Ask which single category an applicant fits (niche, platform, audience-size band)          | Single choice (`radio`)               | One answer, easy to compare and filter across applicants                        |
| Let an applicant pick several that apply (channels they post on, product lines they cover) | Multiple choice (`multiple_checkbox`) | Multi-select, always optional — good for "nice to know" without adding friction |
| Collect a media kit, portfolio, or proof of audience                                       | File upload (`file`)                  | One attachment beats a wall of pasted links and is quick to open during review  |
| Get explicit agreement to your program terms                                               | Terms checkbox (`checkbox`)           | A single, link-backed agreement you can point to later; only one per form       |

The pattern that scales: turn any screening question you'd otherwise ask in free text into a **single-choice** field. "What's your audience size?" as an open box gives you "a lot" and "10k ish"; the same question as radio bands (`Under 1k / 1k–10k / 10k–50k / 50k+`) gives you something you can actually sort on.

#### Field-specific settings

Different field types expose different settings:

* **Text fields** add a **placeholder** to hint at what to type.
* **Multiple choice** and **single choice** fields let you add, edit, and remove individual **options**.
* **File upload** fields take a placeholder such as "Choose a file".
* **Terms checkbox** fields take a **term name** and a **term link**, so the checkbox reads like "I agree to the Terms" with a clickable link to your policy.

### Reordering fields

Grab any field and drop it into a new position to set the order applicants see on the page. Lead with easy, low-commitment fields (name, email) and put screening questions after — once someone has typed their name, they're far more likely to finish.

### A worked example: a lean screening form

Say you run a skincare store and want creators with a real audience. You need three sortable facts, not essays. Here's a form that recruits and screens at the same time:

1. **First name** *(default, required)*
2. **Last name** *(default, required)*
3. **Email** *(default, required)*
4. **"Where do you post?"** — **multiple choice**, options `Instagram / TikTok / YouTube / Blog / Other`. Optional — tells you the channel mix without blocking signup.
5. **"Audience size"** — **single choice**, required, bands `Under 1k / 1k–10k / 10k–50k / 50k+`. One tap, fully comparable across every applicant.
6. **"Link to your media kit or profile"** — **file upload**, optional. Lets serious creators prove themselves without forcing casual joiners.
7. **Terms checkbox** — required, term name "Affiliate Program Terms" with a link to your policy page.

Seven fields, only four required, and every one earns its place. See [Managing affiliates](/affiliate-program/affiliates) for how these show up in review.

### Page content

Beyond the fields, you control the wording around the form:

* **Header** — a title and sub-title that introduce the program.
* **Form labels** — the submit button text, the "Already have an account?" line, and the sign-in link.
* **Benefits** and **How it works** — bulleted lists that sell the program to prospective affiliates.
* **Thank-you page** — the title, body, and button shown after a successful submission.

Drop dynamic variables into your copy so the page reflects each program's real numbers. Supported variables include `{{store_name}}`, `{{email}}`, `{{cookies}}`, and `{{campaign_amount}}` — for example, "Earn a {{campaign\_amount}} commission on every sale."

You can also toggle the **information section** (the benefits/how-it-works panel) on or off for a leaner page. Lead the header with the commission, use the benefits list to answer "what's in it for me?", and let `{{campaign_amount}}` quote the real number so the offer feels concrete.

### Styling the form

The form's appearance is controlled by four collapsible style groups:

* **General** — button color, font family, heading and content font sizes, which sections to display, and square or rounded borders.
* **Header style** — title and sub-title colors and font sizes.
* **Information style** — background and text colors for the benefits panel (shown only when the information section is on).
* **Form style** — background, text, and submit-button colors for the form itself.

Match these to your store theme so the application page feels like part of your brand. For the affiliate-facing portal that comes after signup, see [Portal style](/affiliate-program/branding/portal-style).

### Common mistakes to avoid

* **Making the form a job application.** Phone number, full address, tax details, and long-answer questions up front — none of it changes whether you approve someone. Collect payout details after approval, not on the public form.
* **Screening with free text.** Asking "tell us about your audience" in a text box gives you answers you can't compare or filter. Use a single-choice field with bands so you can sort applicants in seconds.
* **Selling nothing.** A bare form with no benefits copy and no commission number gives a prospect no reason to join. Lead with the offer — use `{{campaign_amount}}` to quote the real rate.

### When and why to revisit your form

* **Approval rate is very high and quality is mixed** → your screen is too loose. Tighten a single-choice screening question so weaker applicants self-identify.
* **Applications are trickling in** → the form may be too long or the benefits copy too thin. Cut a field or two and make the commission number prominent with `{{campaign_amount}}`.
* **You keep emailing applicants for the same missing detail** → that detail belongs on the form. Add it as the simplest field type that captures it.
* **You're scaling from a handful of partners to many** → free-text fields that were fine to read by hand now bottleneck review. Convert them to single- or multiple-choice so applications stay sortable at volume.

The goal: collect exactly the facts that drive an approve-or-decline call, sell the opportunity clearly, and keep everything else off the page. A short, sharp form recruits more good partners *and* makes them easier to vet — see [recruiting affiliates](/best-practices/recruiting-affiliates) for how to drive the right people to it.

### Related

* [Getting started with affiliates](/quick-start/getting-started-1) — overview and onboarding.
* [Managing affiliates](/affiliate-program/affiliates) — review and approve applications that come through this form.
* [Portal style](/affiliate-program/branding/portal-style) — brand the dashboard affiliates see after they join.
* [Affiliate settings](/affiliate-program/settings) — where post-approval payout details are collected.
* [Recruiting affiliates](/best-practices/recruiting-affiliates) — the playbook for driving the right partners to this form.


# Portal Style

The portal is where affiliates grab their link, watch sales come in, and request payouts. A portal carrying your logo and brand color reads as a real partnership; a generic, unbranded dashboard reads as a third-party tool that partners give less attention. Bloop gives you four settings to make the dashboard feel native — primary color, portal title, logo, and favicon — under the affiliate **Branding** tab. Use "Go to portal" to preview changes in a live tab.

> **Best practice:** Match the portal to assets affiliates already see elsewhere — the logo from your storefront, your real brand color, and a portal title that names your program. Consistency between your store, your [registration form](/affiliate-program/branding/registration), and the portal signals an established brand. Preview with "Go to portal" before saving to confirm the accent color leaves text readable.

### Why branding the portal builds trust

* **Legitimacy.** Your logo and color signal that your program is serious. A bare, default-skinned dashboard suggests it was switched on as an afterthought — and partners ration their effort accordingly.
* **Recognition.** Affiliates often work with several programs at once. When your portal looks like your store, partners know instantly which dashboard is yours.
* **Continuity.** A prospect moves from your storefront, through your branded [registration form](/affiliate-program/branding/registration), into the portal. If all three match, the journey feels seamless. A portal that suddenly looks like a different product introduces doubt at the moment a partner is committing.

### What you can customize

| Setting       | What it controls                                                           |
| ------------- | -------------------------------------------------------------------------- |
| Primary color | The portal's accent color, applied to buttons, links, and highlights       |
| Portal title  | The name shown for the portal (for example, in the browser tab and header) |
| Logo          | The brand logo displayed in the portal                                     |
| Favicon       | The small icon shown in the browser tab                                    |

#### What to match to your storefront

Pull each setting from assets you already use publicly — the goal is continuity, not a fresh design.

| Element       | What to set it to                                                                  | Recommendation                                                                                                              |
| ------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Primary color | Your store's main brand accent — the same hex you use for buttons and links        | Confirm in the preview that text on top of it still reads clearly; a too-light accent on white can make buttons hard to see |
| Portal title  | Your brand or program name (for example, "Acme Partner Program"), not the app name | Name the *program* so the browser tab says something a partner recognizes — never leave it as a generic default             |
| Logo          | The same logo file from your storefront header                                     | Upload a clean image with a transparent background; avoid a logo with a baked-in white box                                  |
| Favicon       | The same favicon your store uses                                                   | Upload a square image so the portal tab carries your mark even when a partner has many tabs open                            |

#### Primary color

Set a **primary color** and the portal applies it throughout — buttons, active states, and links. Use your brand's main color. Because the same color drives buttons and links, check contrast in the preview: an accent that looks great as a large block can leave small link text hard to read.

#### Portal title

The **portal title** is the label affiliates see for your program. Set it to your brand or program name. If left blank, the portal falls back to its default title — always name it.

#### Logo

Upload your brand **logo** to replace the default placeholder. It appears in the portal header. Use a transparent-background image. You can remove the logo at any time to revert to the default.

#### Favicon

The **favicon** is the small icon browsers show in the tab and bookmarks. Upload a square image so the portal tab carries your brand even when affiliates have several tabs open.

### A worked example: matching the portal to your store

A storefront using deep teal (`#0F766E`) buttons, a transparent-PNG wordmark, and a leaf favicon needs a five-minute pass: set the primary color to `#0F766E`, the portal title to "Acme Partner Program," upload the same logo and favicon, then click "Go to portal" to confirm white button text reads cleanly on teal before saving. Zero new design work — every asset came from the storefront.

### Saving and previewing

Changes are tracked as you edit and surfaced through the save bar at the top of the page. Save to publish, or discard to roll back to the last saved version. Use "Go to portal" to confirm colors, title, logo, and favicon look right before finishing.

### Common mistakes to avoid

* **Leaving the title blank.** The portal shows a generic default where a partner most expects to see your name. Always set it to your brand or program name.
* **Ignoring contrast.** A pale or very bright accent can make button and link text hard to read. Check the preview before saving.
* **Saving without previewing.** "Go to portal" shows the live result; relying on the editor alone is how a low-contrast color or misaligned logo slips through.

### When and why to revisit portal branding

* **You rebrand or refresh your store theme** → update the portal's primary color, logo, and favicon to match, or the portal will drift out of sync with your storefront.
* **You launch a named program** ("Acme Insiders," "Creator Club") → set the portal title to that program name so the dashboard reinforces the brand affiliates joined.
* **Partners aren't engaging with the portal** → a generic, unbranded dashboard is one quiet reason. Branding it is a low-cost first step before assuming the problem is your commission or content.
* **You're recruiting higher-profile partners** → a fully branded portal signals the professionalism those partners expect; see [recruiting affiliates](/best-practices/recruiting-affiliates) for the wider picture.

### Related

* [Build your affiliate registration form](/affiliate-program/branding/registration) — brand the signup page that comes before the portal.
* [Portal translations](/affiliate-program/branding/portal-translations) — translate the portal UI into your affiliates' languages.
* [Portal guide](/affiliate-program/branding/portal-guide) — write the help content affiliates read inside the portal.
* [Getting started with affiliates](/quick-start/getting-started-1) — overview and onboarding.
* [Recruiting affiliates](/best-practices/recruiting-affiliates) — why a professional portal helps you attract better partners.


# Portal Translations

If your program recruits partners across borders, language is friction. An affiliate navigating a dashboard in a language they don't read works it less, asks more support questions, and trusts the payout numbers less. Bloop lets you override only the strings you care about, so you can localize what matters without a full translation project.

You'll find this under the affiliate **Branding** tab, in the portal translations area.

### Supported languages

Bloop ships portal text in seven languages. Pick the language you want to edit from the language selector:

| Language   | Code |
| ---------- | ---- |
| English    | `en` |
| German     | `de` |
| Italian    | `it` |
| French     | `fr` |
| Arabic     | `ar` |
| Indonesian | `in` |
| Dutch      | `nl` |

Each language has a full set of default strings. You only need to edit the entries you want to change — anything you leave untouched falls back to Bloop's built-in translation for that language.

### How the editor is organized

Translations are grouped by area of the portal. Select a tab on the left (or the dropdown on smaller screens) to load the strings for that area:

* **Common** — shared labels used across the portal.
* **Login** — the sign-in and account screens.
* **Dashboard** — the affiliate's main overview.
* **Product** — product and link-related screens.
* **Commission** — commission and earnings text.
* **Guide** — the help/guide screen.
* **Payment** — payout and payment text.
* **Settings** — the affiliate's account settings.

### Overriding text

Within a tab, each string shows two fields side by side: the **default text** (read-only, for reference) on the left and your **new text** on the right. Type your replacement into the right-hand field, and that becomes the text affiliates see.

Each override is stored against the store, the language, and the specific string key, so:

* Edits apply only to the language you're editing — switching the language selector loads a separate set of overrides.
* A string you leave blank keeps Bloop's default translation for that language.

### Saving

Changes are tracked as you type and surfaced through the save bar at the top of the page. Save to apply your overrides, or discard to revert to the last saved state. Switching languages mid-edit prompts you to confirm before leaving unsaved changes.

### Related

* [Style your affiliate portal](/affiliate-program/branding/portal-style) — colors, logo, and title for the same portal.
* [Portal guide](/affiliate-program/branding/portal-guide) — write the help content shown on the portal's guide screen.
* [Getting started with affiliates](/quick-start/getting-started-1) — overview and onboarding.


# On-Site Content

When a shopper clicks an affiliate's link, nothing on the landing page reflects that recommendation unless you make it visible. The identifier bar is a small on-site message — shown only on affiliate-referred visits — that names the person who sent them: "You're shopping with Jane Doe." It reassures the visitor the link was legitimate, keeps the affiliate's endorsement live at the moment of decision, and signals to affiliates that their promotion is recognized on your store. This page covers turning the bar on, writing its content, styling it, and previewing it.

You'll find this under the affiliate **Branding** tab, in the on-site content area.

> **Best practice:** Write the bar as a warm continuation of the affiliate's pitch, not a system notice. Use `{{FirstName}}` so the message feels personal, and consider surfacing `{{CouponCode}}` so the visitor sees their discount waiting. Keep it to one short line, match the colors to your theme, and confirm it doesn't cover navigation on mobile using the storefront preview before you publish.

### How the bar turns an endorsement into a trust signal

A referral link does its persuading off-site — in a post, a video, a message to a friend. By the time the shopper lands on your store, that endorsement is in the past. The identifier bar closes that gap, carrying the recommendation onto your store at the exact moment the visitor is deciding whether to trust the page.

That's why a single line of text punches above its weight:

* **It confirms the link was real.** A visitor who clicked an unfamiliar link arrives slightly on guard. "You're shopping with Jane Doe" tells them they're in the right place and dissolves that hesitation.
* **It keeps the endorsement live.** Naming Jane on the page keeps her vouching for you while the shopper browses, instead of letting the recommendation fade the moment they left her content.
* **It rewards the affiliate.** When affiliates see their name acknowledged on your storefront, the partnership feels real — a quiet but genuine reason to keep promoting you.
* **It can carry the offer.** Surfacing `{{CouponCode}}` turns the bar from a nicety into a nudge — the visitor sees a discount already waiting, which is a concrete reason to keep shopping rather than bounce.

The bar only fires on affiliate-referred visits, so it never clutters the experience for organic shoppers.

### Turning the bar on

A status toggle controls whether the identifier bar shows on your store. Turn it on to display the bar to visitors who land via an affiliate link; turn it off to hide it.

### Writing the content

The **content** field holds the message shown in the bar. You can personalize it with dynamic variables that Bloop fills in from the referring affiliate and their coupon:

| Variable         | Resolves to                 |
| ---------------- | --------------------------- |
| `{{FirstName}}`  | The affiliate's first name  |
| `{{LastName}}`   | The affiliate's last name   |
| `{{Email}}`      | The affiliate's email       |
| `{{CouponCode}}` | The affiliate's coupon code |

The default content is `You're shopping with {{FirstName}} {{LastName}}`. A copy menu lets you insert each variable into the field. The content can't be saved blank — an empty message is rejected.

#### Which variable to use, and when

The bar is one short line, so pick the one or two variables that do the most work for your goal — don't crowd all four in.

| Variable         | Use it when you want to...                                  | Note                                                                                            |
| ---------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `{{FirstName}}`  | Make the message feel personal and human                    | The workhorse — a first name reads warm and is rarely too long                                  |
| `{{LastName}}`   | Identify the affiliate more formally (with `{{FirstName}}`) | Good for business or professional partners; can feel stiff on its own                           |
| `{{Email}}`      | Rarely — debugging or a very formal context                 | Exposing an affiliate's email to shoppers is usually a privacy misstep; avoid it in public copy |
| `{{CouponCode}}` | Show the visitor their discount is already waiting          | Turns the bar into a nudge; pair with `{{FirstName}}` so it stays warm, not transactional       |

What tends to read well:

* **Warm and personal:** `You're shopping with {{FirstName}} — welcome!`
* **Endorsement plus offer:** `{{FirstName}} sent you a treat — use code {{CouponCode}} at checkout.`
* **Formal partner:** `Recommended by {{FirstName}} {{LastName}}.`

What to avoid: a system-notice tone ("Affiliate referral detected"), exposing `{{Email}}` in public copy, or stuffing every variable into one cramped line.

### Styling the bar

Two colors control the bar's look:

| Color      | Default   | Applies to           |
| ---------- | --------- | -------------------- |
| Background | `#001584` | The bar's background |
| Text       | `#FFFFFF` | The message text     |

Pick colors that fit your store theme while keeping the message readable. The **tweaking style** field also accepts custom CSS for fine-tuning beyond the built-in color pickers.

### A worked example: a friendly, offer-carrying bar

For affiliate Jane Doe (coupon `JANE15`): turn the bar on, write `Welcome! You're shopping with {{FirstName}} — use code {{CouponCode}} for 15% off` (renders as *"...shopping with Jane — use code JANE15..."*), style the background to your brand accent, then preview at phone width to confirm it doesn't cover your menu or cart before saving. Every visitor through Jane's link gets a personal welcome and sees their discount waiting.

### Previewing

A live preview renders the bar over a sample of your storefront so you can see the message, colors, and any custom CSS before saving. There's also an online-store preview action that opens your real store with the affiliate test parameter applied, so you can confirm the bar appears as expected on a referred visit.

### Saving

Changes are tracked as you edit and surfaced through the save bar at the top of the page. Save to publish the bar, or discard to revert to the last saved version.

### Common mistakes to avoid

* **Writing it like a system alert.** "Affiliate referral detected" tells the visitor nothing useful and breaks the warmth of the recommendation. Lead with `{{FirstName}}`.
* **Exposing the affiliate's email.** Putting `{{Email}}` in public-facing copy leaks the partner's address to every shopper. Use the first name instead.
* **Skipping the mobile check.** A bar that looks fine on desktop can cover your menu or cart on a phone. Use the storefront preview at phone width before publishing.

### When and why to use the bar

* **You want referred visitors to convert better** → the bar reinforces the endorsement and can surface the coupon at the decision point. Turn it on with `{{CouponCode}}` in the copy.
* **Affiliates ask whether their traffic is "recognized"** → the bar is visible proof their links are working on your site, which keeps them motivated to keep sharing.
* **You run discount-driven affiliate offers** → leading the bar with the coupon turns a passive notice into an active nudge toward checkout.
* **You're recruiting and onboarding new partners** → mention the on-site bar as a perk; affiliates like seeing their name on a real storefront. See [recruiting affiliates](/best-practices/recruiting-affiliates) for the wider partner experience.

### Related

* [Build your affiliate registration form](/affiliate-program/branding/registration) — brand the signup page affiliates use to join.
* [Style your affiliate portal](/affiliate-program/branding/portal-style) — brand the dashboard affiliates log into.
* [Getting started with affiliates](/quick-start/getting-started-1) — overview and onboarding.
* [Recruiting affiliates](/best-practices/recruiting-affiliates) — making the whole partner experience feel professional.


# Portal Guide

The portal guide briefs every affiliate on how to get their link, what they earn, and how to promote — without you being in the room. A partner who has this information starts driving sales sooner and asks fewer support questions. Bloop ships a ready-made guide you can edit freely with a rich-text editor. This page covers what's in the default guide, how to edit it, and the dynamic value it supports.

You'll find this under the affiliate **Branding** tab, in the portal guide area. A "Go to portal" action opens the live guide screen so you can see your changes as affiliates will.

> **Best practice:** Treat the guide as activation, not legal fine print. Open with the fastest path to a first sale, state the commission clearly using `{{commission_value}}` so every affiliate sees their own rate, and give two or three concrete promotion ideas they can act on today. For ready-made angles you can adapt into this section, see [how to promote your program](https://bloop.plus/blog/how-to-promote-referral-programs/). Keep terms to a short, linked reminder at the end.

### What the default guide covers

The default guide is structured into four sections:

* **Getting started** — a numbered checklist: sign up, complete the profile, add payment details, get the affiliate link, and start promoting.
* **Commission structure** — how affiliates earn, including a placeholder for your actual rate.
* **Promotion tips** — practical ways to promote, such as honest reviews, social sharing, and product mentions in content.
* **Terms and conditions** — a reminder to review your full program terms.

You can keep this structure, rewrite it, or replace it entirely.

### Editing the guide

The guide uses a rich-text editor — format headings, lists, and paragraphs, and upload images with no HTML required. Write the way you'd brief a new partner: short sections, clear steps, friendly tone.

Changes are tracked as you edit and surfaced through the save bar at the top of the page. Save to publish, or discard to revert to the last saved version.

### The commission value variable

The guide supports one dynamic value: `{{commission_value}}`. When the guide renders in an affiliate's portal, Bloop replaces this placeholder with that affiliate's actual commission rate, read from their assigned campaign.

* For a **basic** (single-rate) commission, it shows that rate — a percentage like `15%`, or a formatted amount for flat commissions.
* For an **advance** (tiered) commission, it shows the rate from the top tier.

Because the value resolves per affiliate at view time, you can write the rate once and every affiliate sees the figure that applies to them. To learn how rates and tiers are configured, see [Affiliate campaigns and commissions](/affiliate-program/campaigns).

### Related

* [Affiliate campaigns and commissions](/affiliate-program/campaigns) — set the rates that `{{commission_value}}` resolves to.
* [Style your affiliate portal](/affiliate-program/branding/portal-style) — colors, logo, and title for the same portal.
* [Portal translations](/affiliate-program/branding/portal-translations) — translate the guide screen and the rest of the portal.
* [Getting started with affiliates](/quick-start/getting-started-1) — overview and onboarding.


# Sales Tracking

Sales review keeps your affiliate program honest. Every order an affiliate drives starts as a claim — the gap between claim and payment is your chance to catch cancellations, returns, and fraud before money leaves your account.

The **Sales** tab is where that review happens. Every affiliate-driven order is recorded, calculated, and held until you approve it. A sale links an order to the affiliate who drove it and stores the order, customer, total sale amount, commission Bloop calculated, and which campaign rules applied.

> **Best practice:** Align your review rhythm with your refund window. Approving sales weekly — after the typical return period — means you rarely pay commission on an order that later comes back. Skim for anything unusual (a sudden spike from one affiliate, oddly large baskets) before bulk-approving the rest, and reject cancelled or returned orders promptly so balances stay accurate.

### Sale statuses

| Status   | Meaning                                                               |
| -------- | --------------------------------------------------------------------- |
| Pending  | Recorded and awaiting your review. Not yet payable.                   |
| Approved | Valid and confirmed. Counts toward the affiliate's payable balance.   |
| Rejected | Declined (e.g. cancelled order, fraud, returned). No commission owed. |
| Paid     | Included in a completed payout.                                       |

A sale starts as **pending**. Approve it to make the commission payable, or reject it to dismiss it. Once included in a payout, it becomes **paid**. Nothing is payable until you approve it — pending is a holding pen, not an obligation.

### How commission is calculated

When an order comes in through an affiliate link, Bloop calculates the commission from the affiliate's campaign:

* For a **percentage** campaign, the commission is a percent of the qualifying sale amount.
* For **flat per order** (`amount_order`), it is a fixed amount for the whole order.
* For **flat per item** (`amount_item`), it is a fixed amount times the qualifying item quantity.

The qualifying amount respects the campaign's exclusions — excluded products or collections, discounts, shipping, taxes, and tips are removed from the base as configured. Tiered campaigns pick the rate the order total qualifies for, and product-specific rates override the campaign rate for listed products. See [affiliate campaigns and commissions](/affiliate-program/campaigns) for the full rules. If the campaign has a maximum cap, the commission is limited to it.

Each sale stores a snapshot of the campaign rule that applied (its name, type, value, and which exclusions were active), so you can always see why the commission came out the way it did — even if you have since changed the campaign.

### When to approve and when to reject

| Situation                                                                                 | Decision               | Why                                                                                     |
| ----------------------------------------------------------------------------------------- | ---------------------- | --------------------------------------------------------------------------------------- |
| Order fulfilled, past the return window, nothing odd                                      | Approve                | Real revenue; commission is genuinely owed.                                             |
| Order cancelled before fulfilment                                                         | Reject                 | No revenue, so no commission.                                                           |
| Order returned or refunded                                                                | Reject                 | The revenue reversed; don't pay on money you gave back.                                 |
| Within the return window, otherwise normal                                                | Wait, then approve     | Approve after the window so a late return doesn't leave you paying on a reversed order. |
| Suspicious pattern (self-referral, coupon abuse, spike of tiny orders from one affiliate) | Reject and investigate | Protects the program from fraud before money leaves.                                    |
| Manual/offline sale you can verify                                                        | Approve                | Legitimate revenue tracked outside the normal flow.                                     |

**Approve what represents revenue you have kept, reject what reversed or never existed, and wait when the outcome is still in doubt.**

### Adding a sale manually

If a sale happened outside normal tracking — for example an offline order or a missed attribution — you can record it by hand:

1. In the **Sales** tab, create a new sale.
2. Select the affiliate it belongs to. The affiliate must be **approved**; sales cannot be created for pending or rejected affiliates.
3. Enter the order details, total sale, and commission.

Manual sales are flagged so you can tell them apart from automatically tracked ones. Verify the order is real first — a manual sale skips the automatic tracking that would otherwise vouch for it.

### Approving sales

Review pending sales and confirm the valid ones:

* Approve or reject an individual sale from its record, or
* Select multiple sales and **bulk approve** them.

Approving a sale updates the affiliate's approved balance and sends them an approval email. Rejecting sends a declined email instead. If you later delete or change a sale, Bloop recalculates the affiliate's approved balance automatically.

A practical rhythm: filter to **pending**, scan for anything unusual, handle exceptions individually (reject returns and oddities), then bulk-approve the clean remainder.

### A worked example: a week of sales review

*Illustrative.* Monday's queue has six pending sales across three affiliates on a 15% campaign. Four are normal fulfilled orders past the 14-day return window, so you bulk-approve them against their rule snapshot. One $120 order was refunded Friday, so you **reject** its $18 commission. One $200 order shipped two days ago, still inside the return window, so you leave it **pending** for next week. Your approved balances reflect only real, kept revenue.

### Exporting sales

Export your sales to CSV from the **Sales** tab. The file includes the order ID, campaign, affiliate name and email, customer, total sale, SKUs, commission, status, created date, and any note — useful for accounting and reconciliation.

### Common mistakes to avoid

* **Approving before the return window closes.** Approve a sale, the order comes back, and you have committed commission on reversed revenue. Time your approvals just after your typical return period.
* **Bulk-approving without a skim.** Running bulk approval blind waves through returns, cancellations, and fraud. Scan for the odd ones first.
* **Letting pending sales pile up unreviewed.** A growing pending queue hides both money you owe and problems you have not caught. Review on a steady cadence.

### Related

* [Affiliate campaigns and commissions](/affiliate-program/campaigns) — the rules that set each commission.
* [Affiliate payouts](/affiliate-program/payouts) — turn approved sales into payments.
* [Managing affiliates](/affiliate-program/affiliates) — the affiliates behind each sale.
* [Paying affiliates reliably](/best-practices/paying-affiliates) — the rhythm that turns approvals into trust.


# Payouts

Paying on time keeps affiliates loyal. Partners promote stores that pay reliably and drop the ones that make them chase commissions. In Bloop, you only ever pay against **approved** sales — the payout step turns balances you already owe into recorded payments. Bloop never moves money itself.

The **Payouts** area is where that happens. This page covers the Approved and Paid views, payout schedules and thresholds, how to pay an affiliate, a worked example, reverting a payout, and exporting payout history.

> **Best practice:** Set a clear payout schedule and a minimum threshold, then stick to both. A fixed cadence — monthly, once sales have cleared their review period — tells affiliates exactly when to expect payment and keeps your accounting tidy. A minimum balance avoids tiny transfers. Record every payout right after you send it so the Approved view always reflects what you truly owe. See [paying affiliates reliably](/best-practices/paying-affiliates).

### Approved vs Paid

| View     | What it shows                                                                                                          |
| -------- | ---------------------------------------------------------------------------------------------------------------------- |
| Approved | Each affiliate's outstanding balance — the total of their approved, unpaid sales. This is the money you currently owe. |
| Paid     | A record of every completed payout, with the amount, payment method, and any note.                                     |

An affiliate appears in **Approved** as soon as they have approved sales with a balance above zero. After you pay them, that amount moves to **Paid**. **Approved means owed; paid means settled.** A sale only becomes payable once you have approved it in the [Sales](/affiliate-program/sales) tab, so you are always paying money you have already confirmed is genuinely owed.

### Setting a schedule and threshold

Before you pay anyone, decide *when* and *how little*. These two rules turn payouts from an ad-hoc chore into something affiliates can trust.

* **Schedule (when).** A fixed cadence — monthly is common — set just after your sales review period so balances have already cleared returns. Affiliates who know payday is "the first week of every month" stop emailing you about it.
* **Threshold (how little).** A minimum balance — say, $25 or $50 — avoids processing tiny transfers and the fees that come with them. Balances below the threshold roll forward to the next cycle.

### Paying an affiliate

1. Open the **Approved** view and select the affiliate.
2. Review the approved sales making up their balance and choose which to include in this payout.
3. Pay the affiliate outside Bloop using their chosen payment method (their payment details are shown so you can complete the transfer).
4. Record the payout in Bloop, optionally adding a note or message.

When you record the payout, Bloop creates a payout record, flips the included sales from **approved** to **paid**, and reduces the affiliate's approved balance accordingly. A "new commission payout" email goes to the affiliate. Sales that are already paid cannot be paid again, so there is no risk of double-paying the same sale.

You can pay a single affiliate or process several at once, depending on how you batch your payouts.

### Payment methods

The payment method shown for each affiliate is the one they selected and the details they entered (for example bank account or PayPal email). You define which methods are available and what fields each collects in [affiliate settings](/affiliate-program/settings). Bloop records the method and details with each payout; the actual transfer happens in your bank, PayPal, or other tool.

Because Bloop records but does not move money, send the transfer first, confirm it went through, then record the payout. Recording before you have sent the money creates a paid record for a payment that does not exist — the revert step exists to fix exactly that.

### A worked example: from approved sales to a paid payout

*Illustrative.* Affiliate "Sam" builds a $42 approved balance from four orders over the month — above your $25 minimum threshold, so this month's payout goes ahead. You select all four sales in the **Approved** view, send $42 via Sam's chosen PayPal, confirm it cleared, then record the payout in Bloop with a note. Bloop flips the four sales to **paid**, drops Sam's approved balance to $0, and emails the payout notification — next month starts from a clean balance.

### Reverting a payout

If you recorded a payout by mistake, you can revert it. Reverting:

* Deletes the payout record from the **Paid** view, and
* Returns the included sales from **paid** back to **approved**, so the balance reappears in the **Approved** view ready to be paid correctly.

Revert corrects record errors (wrong amount, wrong sales included, recorded before the transfer went out) — it does not move money. Any actual transfer you already made must be handled with the affiliate directly.

### Exporting payouts

You can export your payout history for accounting and reconciliation. Each payout record carries the affiliate, sale quantity, total sales, commission paid, payment method and details, and any note or message.

### Common mistakes to avoid

* **Paying before a sale is truly settled.** Only approve a sale after its return window. If you pay on a sale that should have been rejected, you have paid on reversed revenue.
* **Recording a payout before sending the money.** That creates a paid record with no matching transfer. Send first, confirm, then record.
* **Forgetting to record a payout you sent.** If the transfer went out but you never recorded it, the Approved view still shows the balance as owed — and you may pay it twice.

### When and why to use each action

* **Pay** once an approved balance clears your threshold and you have reached your scheduled payout date.
* **Batch multiple affiliates** on your payout date to process the cycle in one pass.
* **Revert** when a recorded payout is wrong — wrong amount, wrong sales, or recorded before the money went out — to restore the balance and re-record it correctly.
* **Export** at the close of each cycle for accounting and reconciliation against your bank or PayPal records.

### Related

* [Affiliate sales tracking](/affiliate-program/sales) — approve sales before paying them.
* [Affiliate settings](/affiliate-program/settings) — configure payment methods.
* [Managing affiliates](/affiliate-program/affiliates) — the affiliates you pay.
* [Paying affiliates reliably](/best-practices/paying-affiliates) — the schedule-and-threshold playbook.


# Email Notifications

Affiliate emails keep partners moving — they confirm approval, announce tracked sales, and signal that a commission is on its way. Bloop sends these automatically across the affiliate lifecycle, from application through coupon assignment and payout. Every message is a template you can enable, rewrite, and personalise with variables.

Manage them under **Branding → Emails** in the affiliate area. Each email stores its own subject, body, and button per store, plus a sender address for owner-facing notifications.

> **Best practice:** Treat the registration-approved and new-commission emails as your two highest-value touches. The approval email is a partner's first impression — lead with a warm welcome and point clearly to their portal link. The payout email is what keeps affiliates promoting, so confirm the amount and thank them by name with `{{FirstName}}`. Leave the "declined" and "denied" templates off unless you have a reason to email rejections, and send yourself a test of every active template before launch so an affiliate never receives an unfilled placeholder like `{{CouponCode}}`.

### Which emails to enable, and why defaults matter

Several templates ship **disabled**. A couple being off is a sensible default — but the two owner-facing notifications being off can quietly leave *you* in the dark. Walk the list deliberately before launch rather than trusting defaults.

| Email                                 | Trigger                                                  | Default | Enable it when...                                                 |
| ------------------------------------- | -------------------------------------------------------- | ------- | ----------------------------------------------------------------- |
| Registration pending                  | An affiliate signs up, awaiting review                   | On      | Keep on — it confirms the application landed                      |
| Registration approved                 | You approve an affiliate (carries activation link)       | On      | Keep on — it's the partner's first impression and their way in    |
| Registration denied                   | You decline an application                               | Off     | Only if you want to email rejections; many programs leave it off  |
| New coupon                            | You assign a coupon code                                 | On      | Keep on — the affiliate needs the code to promote                 |
| New sales                             | A referral order is tracked                              | On      | Keep on — confirms tracking works, which builds trust             |
| Sales approved                        | You approve a tracked sale                               | On      | Keep on — tells the partner the commission is confirmed           |
| Sales declined                        | You decline a tracked sale                               | Off     | Only if you want to explain declines proactively                  |
| New commission payout                 | You pay out a commission                                 | On      | Keep on — this is what keeps affiliates promoting                 |
| Reset password                        | An affiliate requests a portal password reset            | On      | Keep on — partners can't get back in without it                   |
| Manually added                        | You add an affiliate manually (invite + activation link) | On      | Keep on — it's the invite                                         |
| New affiliate registration *(to you)* | A new affiliate signs up                                 | **Off** | Enable + set a recipient if you want to know about new applicants |
| New affiliate sales *(to you)*        | An affiliate generates a sale                            | **Off** | Enable + set a recipient if you want sales alerts                 |

The owner-facing notifications require a recipient address. If you assume Bloop is alerting you to new registrations or sales but never enabled them, applications can sit unreviewed for days. Turn them on if you rely on alerts; leave them off if you check the dashboard yourself — but decide deliberately.

The "declined" and "denied" templates being off is the opposite case: a reasonable default, since not every store wants to email a rejection. Enable them only if a graceful "thanks, not this time" message fits your program.

### Affiliate emails sent to your affiliates

| Email                 | When it sends                                                        | Default state |
| --------------------- | -------------------------------------------------------------------- | ------------- |
| Registration pending  | An affiliate signs up and is awaiting your review                    | On            |
| Registration approved | You approve an affiliate — includes their portal activation link     | On            |
| Registration denied   | You decline an application                                           | Off           |
| New coupon            | You assign a coupon code to an affiliate                             | On            |
| New sales             | A referral order is tracked to the affiliate                         | On            |
| Sales approved        | You approve a tracked sale                                           | On            |
| Sales declined        | You decline a tracked sale                                           | Off           |
| New commission payout | You pay out an affiliate's commission                                | On            |
| Reset password        | An affiliate requests a password reset for the portal                | On            |
| Manually added        | You add an affiliate manually — invites them with an activation link | On            |

The registration-approved and manually-added emails both carry the affiliate's activation link. The new-sales, sales-approved, and sales-declined emails reference the specific order so the affiliate can track its status.

### Emails sent to you (the store owner)

Both owner notifications ship disabled — turn them on and set a recipient address if you want them.

| Email                      | When it sends                                                       |
| -------------------------- | ------------------------------------------------------------------- |
| New affiliate registration | A new affiliate signs up — includes their name, email, and any note |
| New affiliate sales        | An affiliate generates a new sale                                   |

These use a sender/recipient field so the alert reaches the inbox you choose.

### What good partner-facing emails say

* **Open by name.** Lead with `{{FirstName}}`. A partner who sees their own name reads on; a generic "Hello affiliate" signals they're just a row in a database.
* **Lead with what they care about.** The approval email should say "you're in, here's your dashboard" before anything procedural. The payout email should confirm the amount and thank them first.
* **Make the next step obvious.** Every email that gives access — approval, manual-add, password reset — should point clearly at where to go. Put the link on the button, not buried in a paragraph.
* **Use the right variable for the moment.** Approval and manual-add emails carry `{{AffiliateActivationLink}}`; once active, point partners to `{{AffiliatePortalLink}}`; use `{{SalesOrderId}}` on sales emails.
* **Sound like your store.** Edit the default templates so the voice matches your brand, reinforcing the legitimacy your [portal](/affiliate-program/branding/portal-style) and [registration form](/affiliate-program/branding/registration) already established.

### Editing an affiliate email

Open any email under **Branding → Emails** to edit:

* **Subject line** — supports variables.
* **Body** — the message, with formatting and variables.
* **Button** — text, colour, and font (for example, the reset-password email uses a button).
* **Sender** — for owner-facing notifications, the address the alert is sent to.
* **Image** — an optional header image.

Changes save per store and apply to every future send of that email type.

### Template variables

Variables are placeholders in double braces, like `{{FirstName}}`. Bloop swaps them for real values at send time; if a value isn't available, the placeholder is left in place.

| Variable                      | Fills in                                                          |
| ----------------------------- | ----------------------------------------------------------------- |
| `{{FirstName}}`               | The affiliate's first name                                        |
| `{{LastName}}`                | The affiliate's last name                                         |
| `{{Email}}`                   | The affiliate's email                                             |
| `{{CouponCode}}`              | The coupon code assigned to the affiliate                         |
| `{{SalesOrderId}}`            | The tracked order (rendered as a link to the order in the portal) |
| `{{AffiliateActivationLink}}` | The link an affiliate uses to activate their account              |
| `{{AffiliatePortalLink}}`     | The affiliate's portal dashboard link                             |
| `{{store_name}}`              | Your store name                                                   |
| `{{note}}`                    | The note submitted with a registration (owner notification)       |

The new-coupon email uses `{{FirstName}}` and `{{CouponCode}}`; sales emails use `{{SalesOrderId}}` and `{{AffiliatePortalLink}}`; approval and manual-add emails use `{{AffiliateActivationLink}}`. An unavailable value leaves the placeholder visible, so a test send is the only reliable way to confirm every variable resolves before a partner sees it.

### A worked example: the lifecycle a new partner sees

An affiliate applies (**Registration pending** fires automatically, and if you enabled it, **New affiliate registration** alerts you with their `{{note}}`). You approve them (**Registration approved** carries `{{AffiliateActivationLink}}` as a warm welcome) and assign a coupon (**New coupon** delivers `{{CouponCode}}`). A sale tracks and gets approved (**New sales** → **Sales approved**, reassuring the partner tracking works), then you pay them (**New commission payout** — make this the warmest email of the lot, since it's what keeps them promoting).

Send yourself a test of every email in this chain before launch — confirm the approval button works, the coupon code renders, and no `{{...}}` placeholder leaks through.

### Test before you go live

Send yourself a test from the email editor to preview the final layout and wording. A few limits apply:

* Test sends are **rate limited to 10 per minute** from the same connection.
* A single test can go to **at most 20 recipients** at once.

If you hit the limit, wait a moment and try again. Test emails don't affect any real affiliate record.

### Common mistakes to avoid

* **Assuming everything emails someone.** The owner notifications are off by default. If you rely on alerts you never enabled, applications and sales go unnoticed.
* **Shipping the default copy.** Generic templates read as automated. Edit at least the approval and payout emails to sound like your brand and open with `{{FirstName}}`.
* **Skipping test sends.** It's the only way to catch an unfilled variable or a broken button before a real partner sees it.

### When and why to revisit your emails

* **Applications sit unreviewed** → enable the owner registration notification and set your address so you're alerted in real time.
* **You change your brand voice or program name** → re-edit the templates, especially approval and payout.
* **You start handling declines proactively** → enable the "denied" and "sales declined" templates and write them to be gracious.
* **A partner reports a confusing email** → send yourself a test of that template; an unfilled variable or misordered message is usually the cause.

### Related

* [Affiliate settings](/affiliate-program/settings) — payment methods and broader email configuration.
* [Affiliate sales](/affiliate-program/sales) — approving and declining the sales these emails announce.
* [Affiliate payouts](/affiliate-program/payouts) — paying commissions, which triggers the payout email.
* [Email sender domain](/account-and-settings/email-sender) — send these emails from your own branded domain.
* [Affiliate program setup](/quick-start/getting-started-1) — approving registrations and assigning coupons.
* [Recruiting affiliates](/best-practices/recruiting-affiliates) — a professional email lifecycle is part of attracting and keeping good partners.


# Program Settings

Affiliate settings control how you pay partners and how the program communicates with them. Getting these right before you recruit matters — an affiliate who earns a commission but can't be paid, or never gets a clear confirmation email, quickly loses trust. This page covers payment methods and email notifications, plus how to test emails before going live.

> **Best practice:** Offer the payout methods your affiliates actually use. A familiar method removes friction; one they can't receive money through adds it. Require only the fields you genuinely need to complete a payment. Then test every active affiliate email so the first message a real partner sees is exactly what you intend.

### Payment methods

Payment methods define how you pay affiliates and what details you collect. Configure them under **Branding → Payments**.

Bloop ships with four methods enabled by default:

| Method        | Default fields collected                                                                |
| ------------- | --------------------------------------------------------------------------------------- |
| Bank transfer | Bank name, account name, account number (required); agency code and BIC code (optional) |
| PayPal        | PayPal email (required)                                                                 |
| Debit cash    | Name, debit card number (required)                                                      |
| Google pay    | Email (required)                                                                        |

For each method you can:

* **Enable or disable** it — only enabled methods are offered to affiliates.
* **Edit the fields** it collects, including each field's label, key, type, and whether it is required.

Details an affiliate enters here are stored on their profile and shown when you [pay them out](/affiliate-program/payouts).

#### Choosing which methods to offer

More payout options means more decisions for the affiliate and more reconciliation for you. Enable the one or two methods that cover your partners and disable the rest.

| Method        | Best for                                                 | When to offer it                                                       | Friction to watch                                                    |
| ------------- | -------------------------------------------------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------- |
| PayPal        | Individual creators, influencers, international partners | Most creator-led programs — fast, familiar, and crosses borders easily | Requires a PayPal account; fees may apply on their end               |
| Bank transfer | Businesses, agencies, higher-volume or local partners    | Larger or recurring payouts and partners who prefer direct deposit     | Most fields to collect and verify; details vary by country           |
| Google pay    | Partners in the Google Pay ecosystem                     | A lightweight email-based option alongside PayPal                      | Narrower availability and reach than PayPal                          |
| Debit cash    | Programs that pay directly to a card                     | Niche cases where a card payout is how you settle                      | Card-number fields are sensitive; only enable if you actually use it |

A creator-led program can often run on PayPal alone; a B2B or agency program leans on bank transfer. Offering all four forces every affiliate to choose and leaves you reconciling four payout flows for no benefit.

#### Editing a method's fields

Each field has a **label**, a **key**, a **type**, and a **required** flag. Two principles keep payouts smooth:

* **Require only what you can't pay without.** For bank transfer you genuinely need account name and number; agency code or BIC may be optional depending on the country. Marking a "nice to have" as required delays the partner from finishing their profile.
* **Label fields the way the partner's bank or wallet does.** Matching labels mean a partner copying details from their bank app won't second-guess which number goes where.

### A worked example: a creator program's payout setup

For a program of mostly individual creators with a handful of agencies: enable **PayPal** (its one required field covers most creators), enable **Bank transfer** for agencies (require bank name, account name, account number; leave agency code and BIC optional), and disable Debit cash and Google pay so no affiliate sees a method you can't pay through. A creator fills in one field, an agency fills in three, and you reconcile exactly two payout flows — see [Affiliate payouts](/affiliate-program/payouts).

### Email notifications

Bloop sends affiliates transactional emails at key moments — registration (pending), approval or decline, sale approval or decline, coupon assignment, and payout. Default templates are created during setup.

Some templates ship **disabled** — the "declined" and "denied" templates, and both owner-facing notifications — so they won't fire until you turn them on. If you want alerts on new registrations, enable that owner notification and set a recipient. The full list of types, triggers, and default on/off states is in [Affiliate email notifications](/affiliate-program/emails).

You can edit each template to match your brand voice. Open [affiliate email notifications](/affiliate-program/emails) to view and update them.

### Send a test email

Before launching, send yourself a test of any affiliate email to check wording and formatting:

1. Open the email you want to test.
2. Enter one or more recipient addresses.
3. Send the test.

Bloop renders the template with your store's details and delivers it to the addresses you entered. Test sends are rate-limited, so send in small batches.

Test every enabled email — especially the approval and payout messages, since those are what partners read most carefully. A test send is the only way to catch an unfilled variable or broken button before a real partner sees it.

### Common mistakes to avoid

* **Offering every payment method.** Enable the one or two that fit your partners; disable the rest.
* **Over-requiring payout fields.** Require only what you need to complete a payment. Optional details stall a partner mid-setup.
* **Skipping test sends.** A partner receiving an email with a placeholder still showing is avoidable. Test every active template first.

### When to revisit these settings

* **Your partner mix shifts** (more creators or more agencies) → revisit which payment methods are enabled.
* **You expand to new countries** → bank-transfer fields may need adjusting (agency code, BIC) for partners' regions.
* **You change your brand voice or program name** → re-edit the email templates so messages still sound like you.
* **Payouts feel slow to set up** → trim the required-fields list; partners complete profiles faster with fewer required fields.

### Related

* [Affiliate email notifications](/affiliate-program/emails) — every email type, variables, and editing.
* [Getting started with affiliates](/quick-start/getting-started-1) — program overview and onboarding.
* [Affiliate payouts](/affiliate-program/payouts) — where payment methods are used.
* [Managing affiliates](/affiliate-program/affiliates) — registration and statuses that trigger emails.
* [Recruiting affiliates](/best-practices/recruiting-affiliates) — getting the right partners into a program that's ready to pay them.


# Sharing Link

### The default sharing domain

Open **Settings → General** to see the **Referral sharing URL** card. The sharing domain field shows `r-bloop.cc` unless you have set a custom one. With the default in place, a referral link reads:

```
https://r-bloop.cc/d29azDx
```

The trailing part is the referrer's unique 8-character share code, assigned automatically when someone joins your program.

### Use your own domain

Swap `r-bloop.cc` for a branded subdomain such as `refer.yourstore.com`. Setting one up is a guided request: you add a DNS record, and Bloop activates the domain.

1. On the **Referral sharing URL** card, select **Customize**.
2. Contact support for the IP address of the Bloop sharing service (we share it privately).
3. In your DNS provider, add an **A record** pointing your subdomain to that IP — plus a matching record for its `www.` version.
4. Send support your chosen URL. Bloop verifies the DNS and activates it.

> **Use a subdomain, not your root domain.** Repointing the root `@` record on a domain that hosts your live store can take the storefront offline. Use a subdomain like `refer`, or register a domain separate from your store's.

Provider-specific fields, all using record type **A** with your subdomain as the **Name**:

* **Shopify** — put the IP in the **Points to** field.
* **Cloudflare** — set **Proxy status** to **Proxied**. [Setup video](https://www.youtube.com/watch?v=70P_w_T6Yvg).
* **GoDaddy** — leave **TTL** at the default. [Help](https://www.godaddy.com/help/add-a-subdomain-4080).

Once active, the domain is saved as your `custom_share_url` and every new link uses it: `https://refer.yourstore.com/d29azDx`. Custom domains require a paid plan; if you downgrade, links fall back to `r-bloop.cc`.

### Related

* [Choose a referral sharing method](/referral-program/referral-methods) — turn the link and code methods on or off.
* [Referrer and referee rewards](/referral-program/rewards) — set what each side earns.
* [General settings](/account-and-settings/general) — overview of every store-level setting.


# Portal Link

### The default portal link

Open **Settings → General** and find the **Affiliate portal domain** card. The link shown combines the shared portal domain with your store's unique subpath:

```
https://<portal-domain>/<your-subpath>
```

The subpath is fixed per store and always present, so affiliates can reach your portal even before you set up a custom domain. The card is read-only — you cannot type a new domain directly into it.

> The affiliate portal card only appears on plans that include the affiliate program. On the legacy plan tier it is hidden entirely.

### Use your own portal domain

Replace the shared portal domain with a branded subdomain such as `partners.yourstore.com`. Setting one up is a guided request: you add a DNS record, and Bloop activates the domain.

1. On the **Affiliate portal domain** card, select **Customize**.
2. Contact support for the IP address of the Bloop portal service (we share it privately).
3. In your DNS provider, add an **A record** pointing your subdomain to that IP — plus a matching record for its `www.` version.
4. Send support your chosen URL. Bloop verifies the DNS and activates it.

> **Use a subdomain, not your root domain.** Repointing the root `@` record on a domain that hosts your live store can take the storefront offline. Use a subdomain like `partners`, or register a domain separate from your store's.

Provider-specific fields, all using record type **A** with your subdomain as the **Name**:

* **Shopify** — put the IP in the **Points to** field.
* **Cloudflare** — set **Proxy status** to **Proxied**. [Setup video](https://www.youtube.com/watch?v=70P_w_T6Yvg).
* **GoDaddy** — leave **TTL** at the default. [Help](https://www.godaddy.com/help/add-a-subdomain-4080).

Once active, the domain is saved as your `custom_portal_url` and affiliates reach the portal at your branded address, with your subpath still underneath — for example `https://partners.yourstore.com/your-subpath`. A custom portal domain requires a higher paid plan; if you downgrade, the portal falls back to the shared domain.

### Related

* [Affiliate portal branding](/affiliate-program/branding/portal-guide) — customize the look of the portal pages.
* [Getting started with affiliates](/quick-start/getting-started-1) — program overview and onboarding.
* [General settings](/account-and-settings/general) — overview of every store-level setting.


# Email Sender

Your email sender domain determines whether referral and affiliate emails land in the inbox and whether recipients trust them. Emails sent from a shared, generic address are far more likely to be flagged as spam. Customizing the sender domain means Bloop sends emails from a domain you authenticate — messages come from your brand and inbox providers recognize them as legitimate. Add your domain in Bloop, copy the DNS records it provides (DKIM, SPF, and related entries) into your DNS provider, then verify.

This page covers the three email-sender settings on **Settings → General**: the sender name, the sender address, and the sender domain.

> **Best practice:** Use a dedicated subdomain (`marketing.yourstore.com`), not your root domain — this isolates bulk mail from the reputation of your invoice/order-confirmation domain. Add all DNS records exactly as listed and wait for propagation before verifying.

### Sender name

The sender name is the "from" name recipients see in their inbox. It defaults to your store name. Type a new name and save — no verification needed.

### Sender address and verification

The sender address is the email your messages are sent from. Bloop verifies the address before it goes live:

1. Enter the new sender address.
2. Select **Verify**. Bloop emails a confirmation to that address.
3. Open the email and complete verification.

The field shows **Verified** or **Unverified** next to it. Resending the confirmation is rate-limited to once every 30 seconds. You cannot save the settings while the address is unverified.

### Sender domain and DNS records

The sender domain is the part after the `@`. The default is `email-bsscommerce.com`. Setting your own domain authenticates your mail with DKIM and SPF records so inbox providers trust it. Use the **Customize** link on the **Email sender domain** card to open the domain setup modal:

| Step         | What happens                                                                                                         |
| ------------ | -------------------------------------------------------------------------------------------------------------------- |
| Enter domain | Type the domain (a subdomain like `marketing.yourstore.com` is recommended). Bloop checks whether it already exists. |
| Add domain   | Bloop registers the domain and returns the DNS records you must add.                                                 |
| DNS setup    | A table lists each record — DKIM, SPF, DMARC, and CNAME entries — with the type, name, and value to copy.            |
| Verify       | After adding the records at your DNS provider, Bloop re-checks them.                                                 |
| Active       | Once the records resolve, the domain is verified and used for sending.                                               |

#### Add the DNS records

1. Copy the records Bloop shows in the table (each has a copy button).
2. Log in to your DNS hosting provider.
3. Open the DNS control panel and add each record exactly as listed.
4. Save the records.
5. Wait for DNS propagation (typically 24–48 hours), then return and verify.

> A custom sender domain is a premium feature on paid plans. If your plan changes to one without it, Bloop reverts the sender domain to `email-bsscommerce.com`. The sender name remains customizable.

### Related

* [Referral email notifications](/referral-program/emails) — the emails sent to referrers and friends.
* [Affiliate email notifications](/affiliate-program/emails) — the emails sent to affiliates.
* [General settings](/account-and-settings/general) — overview of every store-level setting.


# General Settings

Bloop's **Settings** page is the store-level control panel shared by both your referral and affiliate programs — the few options that, once set, quietly shape how every program email and link behaves. It has two tabs: **General**, where you set the email sender, the referral sharing link, and the affiliate portal link; and **Integration**, where you connect Bloop to your email marketing apps. Most of these settings are configured once during setup and rarely revisited, which is exactly why this page exists as a map of what lives where, with a detailed guide linked for each one.

### General tab

The General tab groups three cards, in this order:

| Card                    | What it controls                                                   | Detail guide                                                |
| ----------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------- |
| Email sender            | Sender name, sender address (with verification), and sender domain | [Email sender domain](/account-and-settings/email-sender)   |
| Referral sharing URL    | The domain used inside referral links                              | [Referral sharing link](/account-and-settings/sharing-link) |
| Affiliate portal domain | The domain affiliates log in through                               | [Affiliate portal link](/account-and-settings/portal-link)  |

#### Store name

Your store name comes from Shopify and is read-only here. Bloop uses it as the default sender name on emails until you set a custom one, so changing how your brand appears in inboxes is done through the sender name field, not by editing the store name.

#### Sender name and email

The sender name and sender email define how your program emails appear in recipients' inboxes. The name is editable and saves immediately; the email address must be verified before you can save. See [Email sender domain](/account-and-settings/email-sender) for the verification flow and DNS setup.

#### Saving changes

The General tab uses a save bar that appears when you change anything. You cannot save while the sender email is still unverified — verify it first, then save. Discarding reverts every field to its last saved state.

### Integration tab

The Integration tab lists the email marketing apps Bloop can connect to, each with an enabled or disabled status badge:

* **Klaviyo** — sync referral and affiliate events into your Klaviyo flows. See [Klaviyo integration](/referral-program/integrations/klaviyo).
* **Mailchimp** — sync events into Mailchimp audiences and automations. See [Mailchimp integration](/referral-program/integrations/mailchimp).

Select an app to open its setup page and connect or disconnect it.

### Related

* [Email sender domain](/account-and-settings/email-sender) — sender name, address, and domain verification.
* [Referral sharing link](/account-and-settings/sharing-link) — branded referral domain and code prefix.
* [Affiliate portal link](/account-and-settings/portal-link) — branded affiliate portal domain.


# Choosing Rewards

The reward you offer is one of the biggest levers on whether your referral program spreads, so decide it on purpose rather than copying a competitor. The short answer: match the reward **type** to how often your customers buy, and set the combined value **below your profit on a referred order** so every successful referral stays profitable. This article walks through how to make that decision for your store, then points you to the Bloop settings that put it live.

A Bloop referral has two rewards, and they do different jobs. The **referee reward** lowers the barrier for a new customer to try you, so it has to feel worth acting on. The **referrer reward** thanks an existing customer for the introduction, so it has to feel worth the small social risk of recommending you. Tuning both is the work; this page is about the strategy behind the numbers you eventually type into the [rewards settings](/referral-program/rewards).

### Start from your repeat-purchase pattern

The reward type should follow how customers buy from you, not what looks generous on a landing page.

* **Store credit** pulls a customer back for another order, so it suits stores people buy from often. It also keeps the reward inside your store, which protects cash.
* **A percentage or fixed discount** carries more weight when purchases are rare or one-off, because credit toward a "someday" order feels weak.
* **Cash** is the strongest signal for high-ticket or infrequent purchases, where neither credit nor a discount feels worth a recommendation. Like a custom reward, it is tracked but not settled automatically, so plan to process it by hand.
* **A custom reward** — a free gift, early access, swag, or a service you fulfil yourself — thanks a referrer without any discount at all, which suits premium brands wary of markdowns. Bloop holds it for you to approve and fulfil by hand rather than settling it automatically.

### Recommended rewards by industry

There is no universal right answer. Use the table as a starting point, then refine against your own margins.

| Industry                  | Buying pattern             | Suggested referrer reward            | Suggested referee reward                   |
| ------------------------- | -------------------------- | ------------------------------------ | ------------------------------------------ |
| Fashion & apparel         | Frequent, impulse-driven   | Store credit toward the next order   | Percentage off the first order             |
| Subscription              | Recurring, retention-led   | Store credit or a free billing cycle | Discount on the first cycle                |
| Beauty & cosmetics        | Repeat, habit-forming      | Store credit to encourage restocking | Fixed amount off a trial-sized first order |
| Electronics & high-ticket | Infrequent, considered     | Cash or a meaningful fixed amount    | Fixed amount off the first purchase        |
| Food & beverage           | Low margin, high frequency | Modest store credit                  | Small percentage or a free add-on          |

The thread running through every row: high-frequency stores benefit from store credit because it loops customers back, while infrequent high-ticket stores often need cash or a sizeable fixed amount to feel worth a recommendation.

### Position the reward, not just its price

The same value can read as a thank-you or as a markdown depending on how you frame it. Store credit framed as a "treat" or "thank-you" feels like a gift and keeps spend inside your store, while a raw percentage discount can read as just another sale. Tying the reward to a clear reason — "because you brought us a friend" — makes even a discount feel earned. And scale the reward to the ask: a one-tap share needs only a light nudge, while asking for a bigger commitment justifies a larger reward.

### Set a value you cannot lose money on

The safe rule is simple: the **referrer reward plus the referee reward** should stay below the profit you make on a referred order. A referral that costs you more than it earns is a slow leak, even when conversion looks healthy.

* Estimate the gross profit on a typical first order from a new customer.
* Subtract the referee discount, which comes off that first order directly.
* Whatever profit remains is your ceiling for the referrer reward.

If that ceiling is uncomfortably tight, lean on store credit for the referrer side — it is redeemed against a future order, so its real cost is your margin on that order, not its face value.

Be cautious with minimum-spend conditions on the reward: a "spend over X" string can make the offer feel like a sales push and suppress sharing, so weigh it against the margin it actually protects (see [designing your offer](/best-practices/designing-your-offer)). As your program grows, watch reward value too — an oversized reward on a very wide audience can start attracting sign-ups chasing the payout rather than customers who genuinely love you.

### Decide where the reward applies

A reward only works if it is easy to use. In Bloop, discount and store-credit rewards settle automatically inside Shopify, while cash and custom rewards are tracked for you to handle manually. If predictable, hands-off operation matters more than maximum motivation, prefer the automatic types and reserve cash for high-ticket programs where it genuinely moves the needle.

### Set it up in Bloop

Once you have chosen a type and value:

* Configure both sides in [Set up referrer and referee rewards](/referral-program/rewards) — reward type, value, minimum requirements, expiry, and the review period.
* Decide how referrers share that reward in [Referral methods](/referral-program/referral-methods).
* Once you have enough referral traffic to compare fairly, pit two reward variants against each other in [A/B testing](/referral-program/ab-testing) before rolling one out to everyone.
* Mind the wording: "your friend gets 20% off too" lands better than "earn a reward".
* For worked examples of incentive ideas across stores, see [the best referral incentives](https://bloop.plus/blog/best-referral-incentives/).

### Related

* [Best practices: designing your referral offer](/best-practices/designing-your-offer)
* [Set up referrer and referee rewards](/referral-program/rewards)
* [The best referral incentives](https://bloop.plus/blog/best-referral-incentives/)


# Designing Your Offer

Once you have chosen a reward type, the offer is everything wrapped around it: whether you reward one side or both, what a referee has to do to qualify, and how long the reward stays valid. The short answer for most Shopify stores: run a **double-sided** offer, add a **minimum purchase requirement** only if you have a margin reason to, and give rewards a **gentle expiry** to create urgency without punishing genuine customers. This article explains those choices, then links the Bloop settings that apply them.

The offer is where generosity meets guardrails. Too loose and you pay for low-value or abusive referrals; too strict and you suppress the shares you were trying to encourage. The goal is the lightest set of conditions that still protects your margin.

### Single-sided vs double-sided

The first decision is who gets rewarded.

| Offer shape                  | What it means                                  | Best for                                                                                          |
| ---------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| Double-sided                 | Both the referrer and the referee get a reward | Almost every store — it gives the referrer something to talk about and the friend a reason to act |
| Single-sided (referrer only) | Only the existing customer earns               | Stores where the product sells itself and the friend needs no incentive                           |
| Single-sided (referee only)  | Only the new customer is discounted            | Pure acquisition pushes where you are not trying to reward advocacy                               |

Default to double-sided. A referrer-only offer asks customers to recommend you while their friend gets nothing, which makes the pitch awkward; a referee-only offer is really just a discount channel, not a referral program. The friend's reward matters more than it looks: it lets the referrer feel they are *giving* something their friend will appreciate rather than just cashing in — which is what makes people comfortable sharing. Frame it that way in your copy ("give your friend 20% off, get store credit when they buy"). In Bloop each side has its own **Reward status** toggle, so you can switch to single-sided by turning one off.

### Minimum requirements: only when margin demands it

A minimum requirement decides what a referral must achieve before the referrer reward is issued. Bloop offers four options: none, minimum purchase amount, minimum quantity of items, and a minimum number of referees.

* **None** is the right default. Every extra condition costs you some conversions, so add one only to solve a real problem.
* **Minimum purchase amount** protects margin when a referee could otherwise claim a generous reward on a tiny order. Set it just above the point where the order becomes profitable.
* **Minimum quantity of referees** rewards in cycles — at the 5th, 10th, 15th successful referee, for example — which suits programs aimed at a few high-output advocates rather than broad word of mouth.

Between thresholds, a referrer on the minimum-referees option gets a "not enough referrals yet" notification instead of a reward, so be transparent about the rule in your messaging.

### Expiry: urgency without resentment

Reward codes can be set to never expire or to lapse after a set number of days. A reward that never expires loses its nudge; one that expires too fast frustrates customers who were ready to buy.

* For most stores, a valid period in the range of a few weeks creates useful urgency.
* Bloop sends a reminder email before a code expires, so set the window long enough that the reminder has time to land and be acted on.
* For high-ticket or considered purchases, lean toward a longer window — the decision itself takes time.

### Make it easy to say yes to

Beyond the mechanics, an offer only works if a customer feels comfortable sharing it. A referral puts the referrer's reputation on the line, so the clearer the offer, the lower that social risk: state plainly what both sides get and what the friend has to do. Uncertainty — "what happens after I refer?" — is one of the biggest reasons customers who love you still don't share. Keep the conditions and the steps to a minimum too; every extra hoop or data field costs you shares. See [Referral methods](/referral-program/referral-methods) for how customers actually send the offer.

### Match the offer to who can refer

Your offer and your audience rule work together. A wide-open audience paired with a rich, no-minimum reward is the combination most exposed to abuse; a tighter audience lets you be more generous safely. Decide the two together rather than in isolation — see [Set your referral target audience](/referral-program/target-audience) for the eligibility options.

### Set it up in Bloop

* Apply the offer shape, minimums, and expiry in [Set up referrer and referee rewards](/referral-program/rewards).
* Set who is allowed to refer in [Target audience](/referral-program/target-audience).
* For ideas on structuring multi-step or milestone offers, see [multi-step referral rewards](https://bloop.plus/blog/multi-step-referral-rewards/).

### Related

* [Best practices: choosing the right referral reward](/best-practices/choosing-rewards)
* [Best practices: making your program visible](/best-practices/program-visibility)
* [Refer-a-friend scheme ideas](https://bloop.plus/blog/refer-a-friend-scheme-ideas/)


# Program Visibility

The most common reason a referral program underperforms is not a weak reward — it is that customers never see it. The short answer: do not rely on a single placement. Combine an always-on **widget**, a **post-purchase prompt** at the moment of highest goodwill, a dedicated **landing page** you can link anywhere, and **email** so the program reaches customers who have left your store. This article explains how those surfaces work together, then links the Bloop branding settings for each.

Think of visibility as a system, not one button. Each surface catches customers in a different state of mind, and a referral that one surface misses, another can catch.

### The four surfaces and what each is for

| Surface                   | When it reaches the customer   | Its job                                                            |
| ------------------------- | ------------------------------ | ------------------------------------------------------------------ |
| Widget (launcher + panel) | While browsing your store      | An always-on invitation to share, recognised as part of your brand |
| Post-purchase popup       | The instant an order completes | Captures the buyer at peak goodwill, before they leave             |
| Referral landing page     | Anywhere you link to it        | A permanent home for the program, off-site and on                  |
| Email                     | After the customer has left    | Brings inactive customers back into the program                    |

Each surface lives under the **Branding** tab of your referral campaign, except email, which has its own module.

### Lead with the post-purchase moment

The single highest-converting moment is right after checkout, when the customer is happiest with you. Frame the prompt around the friend's reward — "Give friends a discount, and earn one yourself" — so sharing reads as doing a favour, not as you asking for one. Keep it to a sentence. Set this up in the [post-purchase popup](/referral-program/branding/post-purchase).

### Keep the widget quietly present

The on-site widget catches customers mid-browse. Treat the launcher as advertising and the panel as the product: keep the launcher visible on high-intent pages without nagging, and make the panel polished enough that sharing feels worthwhile. Brand it before you promote anything, because every on-site share begins here. Style it in the [referral widget and popup branding](/referral-program/branding/popup).

### Give the program a permanent home

A landing page is the one link you can drop into a menu, newsletter, order email, or social bio and trust to explain the program. Give it a clean handle and add it to your main menu or footer before launch — a page nobody can find converts nobody. Create it in the [referral page branding](/referral-program/branding/page).

### Use email to reach customers who have left

The widget and post-purchase prompt only work while a customer is on your store. Email closes that gap, pulling lapsed customers back into the program and reminding referrers about rewards before they expire. Configure the program emails in [referral emails](/referral-program/emails).

### Sequence it for launch

1. Brand the widget so it matches your store.
2. Turn on the post-purchase prompt — your highest-converting surface.
3. Publish the landing page and add it to navigation.
4. Switch on the referral emails.
5. Then start actively promoting, knowing every surface is ready.

### Set it up in Bloop

* [Referral widget and popup branding](/referral-program/branding/popup)
* [Post-purchase popup](/referral-program/branding/post-purchase)
* [Referral landing page](/referral-program/branding/page)
* [Referral emails](/referral-program/emails)
* For off-site promotion ideas, see [how to promote your referral program](https://bloop.plus/blog/how-to-promote-referral-programs/) and [the best referral widgets for Shopify](https://bloop.plus/blog/referral-widgets/).

### Related

* [Best practices: designing your referral offer](/best-practices/designing-your-offer)
* [Best practices: launching your program](/quick-start/launch-checklist)
* [How to promote your referral program](https://bloop.plus/blog/how-to-promote-referral-programs/)


# Commission Structure

Your commission structure decides how hard partners work to promote you and how much margin you keep on every sale they drive. The short answer: anchor the rate to your **profit margin**, not a round number; pick the commission **model** that matches your average order and product range; and start low so you can reward proven performers rather than cut everyone later. This article works through those choices, then links the Bloop campaign settings that implement them.

In Bloop every affiliate belongs to exactly one **campaign**, and the campaign holds the structure. Get it right once and the program scales cleanly; get it wrong and you either repel good affiliates or quietly lose money on every order.

### Anchor the rate to margin

Before choosing a number, decide what share of the profit on an affiliate-driven order you are willing to give away, then back into the rate from there. A 20% commission on a 60%-margin candle is healthy; the same 20% on a 12%-margin electronics order erases your profit. When unsure, start lower — it is far easier to raise a rate for a top performer than to cut one across the board.

### Pick the model that fits your store

The right model follows your margins, your average order value, and your product range.

| Store profile               | Margin                | Order pattern                | Suggested model                              | Why                                                              |
| --------------------------- | --------------------- | ---------------------------- | -------------------------------------------- | ---------------------------------------------------------------- |
| Fashion & apparel           | Healthy (50–60%)      | Mid-value, varied baskets    | Percentage                                   | Scales fairly with order size without per-item math              |
| Beauty & cosmetics          | High, repeat          | Small, frequent              | Percentage with a cap                        | Keeps rates attractive while protecting margin on bulk orders    |
| Electronics & high-ticket   | Thin (10–20%)         | Infrequent, large            | Flat per order                               | A fixed amount keeps payout predictable on thin margins          |
| Single hero product / DTC   | Known per-unit profit | One product, varied quantity | Flat per item                                | Pays exactly per unit, so cost per sale is predictable           |
| Subscription                | Recurring value       | First order, then renewals   | Flat per order on the first sale             | A fixed bounty avoids over-paying on a low first-cycle price     |
| Mixed catalog               | Ranges widely         | Anything                     | Percentage base + product-specific overrides | Safe base rate everywhere, richer rates only where margin allows |
| High-value creator partners | Any                   | High volume                  | Tiered (advance)                             | Bigger orders earn a higher rate, motivating larger baskets      |

The pattern: **percentage** suits healthy, variable margins; **flat per order** protects thin or high-ticket margins; **flat per item** fits predictable per-unit profit; and **tiered** or **product-specific** rates let you reward selectively once a base program works.

### Build in guardrails before you scale

A structure that scales needs limits, not just rates.

* **Commission cap.** A maximum per order protects margin on unusually large baskets and keeps payouts predictable. It pairs especially well with a percentage model, which would otherwise scale without limit.
* **Exclude what is not profit.** Commission on the order's product revenue, and consider excluding shipping and tax — you rarely want to pay on money that never lands as margin.
* **Attribution window.** A longer cookie suits considered, slower purchases; a shorter one suits impulse buys. Match it to how long your customers take to decide.

### Use campaigns to segment, not to complicate

You can run multiple campaigns and assign each affiliate to one. The cleanest way to scale is a standard campaign for everyone and a higher-rate campaign for proven top performers, rather than negotiating one-off deals. A short-term, richer campaign for a product launch is another common, contained pattern.

### Set it up in Bloop

* Configure the model, cap, exclusions, and cookie in [Affiliate campaigns and commissions](/affiliate-program/campaigns).
* Pay against approved balances in [Affiliate payouts](/affiliate-program/payouts).
* For the full reasoning on setting a number, see [how to set affiliate commission rates](https://bloop.plus/blog/referral-commission/).

### Related

* [Best practices: recruiting and approving affiliates](/best-practices/recruiting-affiliates)
* [Affiliate campaigns and commissions](/affiliate-program/campaigns)
* [How to set affiliate commission rates](https://bloop.plus/blog/referral-commission/)


# Recruiting Affiliates

Who you let into your program matters more than how many people apply. The short answer: recruit for **audience fit** rather than follower count, keep your registration form **short but filtering**, and treat the pending queue as a real gate. A focused roster of partners whose audience overlaps your customers will out-earn a crowd of casual sign-ups every time. This article covers how to attract and screen affiliates, then links the Bloop settings that run it.

There are two ways affiliates join in Bloop: you add them manually, or they self-register through your form. Most programs use both — a handful of hand-picked partners to start, then an open form once the offer is proven.

### Recruit for fit, not volume

A relevant partner with a small, engaged audience usually drives cleaner sales than a large but mismatched one. Before chasing reach, ask whether a candidate's audience plausibly buys what you sell.

* Start with people who already love your products — past customers, creators who have mentioned you, niche publishers in your category.
* Lead recruitment with the concrete benefit: your commission rate and what a partner can realistically earn.
* Hold your richer rates for proven performers so there is a reason to keep promoting, rather than opening the top tier to everyone.

### Make the registration form sell, then filter

The registration form is your first impression and your first screen. It has to convince good partners that joining is worth their time while collecting only what you will actually use to vet and pay them.

* Keep it short. A long, demanding form scares off the creators and customers you most want.
* Lead the copy with the benefit — surface your commission with a dynamic variable so applicants see the upside immediately.
* If you must filter (a niche, an audience size, a portfolio link), collect it with a single-choice or file-upload field rather than free text, so applications are easy to compare at a glance.

Build and style this in [the affiliate registration form](/affiliate-program/branding/registration).

### Use the pending queue as a gate

Self-registered affiliates arrive as **pending** and cannot earn until you approve them (see [affiliate statuses](/affiliate-program/affiliates#affiliate-statuses)). That queue is your control point — review applicants for fit, not just to clear the backlog. You can approve or reject in bulk, and Bloop sends the matching status email automatically, so screening a batch of applications is quick.

### Onboard so partners actually start

An approved affiliate who never promotes is no better than a rejected one. After approval, make sure they have what they need: their referral link, any discount coupon, and a clear sense of what to share. You can preview exactly what an affiliate sees with "login as" before launch, which is the easiest way to confirm their portal and links work.

### Set it up in Bloop

* Add, approve, reject, and export affiliates in [Managing affiliates](/affiliate-program/affiliates).
* Build the application form in [the affiliate registration form](/affiliate-program/branding/registration).
* Hold top performers on a higher-rate campaign — see [Best practices: a commission structure that scales](/best-practices/commission-structure).

### Related

* [Best practices: a commission structure that scales](/best-practices/commission-structure)
* [Managing affiliates](/affiliate-program/affiliates)
* [Referral program vs affiliate program](https://bloop.plus/blog/referral-program-vs-affiliate-program/)


# Preventing Fraud

Every reward you pay is only worth it if a real new customer is on the other end. The short answer: leave Bloop's automatic fraud signals on so abuse is caught before a reward leaves your account, but review each held case on its evidence rather than rejecting on sight — and use your offer settings to remove the incentive to cheat in the first place. This article explains how to treat fraud control as a budget control, then links the Bloop settings involved.

The most common abuse is self-referral: one person posing as both referrer and referee to claim both sides of the deal. Heavy-handed blocking stops that but also frustrates genuine power users; the goal is to catch the few abusers without taxing the many honest customers.

### Let detection do the watching, then judge on evidence

Instead of auditing every referred order, let Bloop watch for the patterns abuse leaves behind (self-referral email matches, repeated IPs, high volume in a week) and surface only the orders that deserve a second look — keep these signals on, they're your cheapest line of defence. A flag is a prompt to look, not a verdict: a power user on a shared office network can look a lot like collusion. **Trust** genuine referrers who keep tripping a signal for innocent reasons, **ban** only clear abusers, and judge each held case on its own evidence rather than rejecting automatically. See the [Fraud center](/referral-program/management/fraud-center) for the full signal breakdown and how to review a case.

### Remove the incentive to cheat at the source

The cheapest fraud to prevent is the kind your offer never invited. Several offer-level choices quietly reduce abuse:

* **A minimum purchase requirement** makes self-referral unprofitable, because the abuser has to spend real money to claim a reward worth less.
* **A reward review period** adds a short delay before approval, giving signals time to surface before money moves. Suspicious orders are held separately regardless.
* **A tighter audience** — for example restricting referring to prior buyers or a customer tag — narrows the pool of people who can game the program. Open wide at launch to gather data, then tighten only if abuse appears.

### Match scrutiny to risk

Not every program needs the same vigilance. A high-value cash reward on a wide-open audience deserves close review; a modest store-credit reward gated to past customers carries far less risk and rarely needs hands-on attention. Calibrate your review effort to what a successful abuse would actually cost you.

### Set it up in Bloop

* Review and resolve flagged orders in the [Fraud center](/referral-program/management/fraud-center).
* Add minimums and a review period in [Set up referrer and referee rewards](/referral-program/rewards).
* Tighten who can refer in [Target audience](/referral-program/target-audience).
* To understand the patterns behind the flags, read [how to prevent referral fraud](https://bloop.plus/blog/referral-fraud/) and [what self-referral is](https://bloop.plus/blog/self-referral/).

### Related

* [Best practices: designing your referral offer](/best-practices/designing-your-offer)
* [Fraud center](/referral-program/management/fraud-center)
* [How to prevent referral fraud](https://bloop.plus/blog/referral-fraud/)


# Testing Referrals

A referral program is a chain of moving parts that only your customers normally see all at once — the sharing widget, the discount, the reward review period, and a sequence of emails. If any link is misconfigured, the cost lands at the worst moment: a referrer is paid the wrong amount, a friend hits a broken discount, or a customer receives an email with a blank coupon. Testing before launch is how you find those gaps while the only person affected is you.

The idea is simple: run one real referral against yourself, end to end, and watch each stage behave the way a customer would experience it. Place a small test order through your own referral link or code, follow it through the **Referral orders** view, confirm the referrer reward is issued correctly, and preview every referral email. This page walks through that dry run step by step.

> **Best practice — test the full chain before you go live.** A quick pre-launch checklist that catches most problems:
>
> 1. App embed on, with the [campaign](/quick-start/getting-started) live and at least one sharing method enabled.
> 2. One real test order placed and correctly attributed in [referral orders](/referral-program/management/orders).
> 3. The referrer [reward](/referral-program/rewards) issued at the right type and value, with any minimum requirement behaving as configured.
> 4. Every [referral email](/referral-program/emails) previewed, with template variables filling in.
> 5. Test data cleaned up and the review period restored before launch.

### Before you start

Make sure these are in place, or the test will not produce a result:

1. **App embed is on.** Bloop widgets only appear on your storefront when the app embed block is enabled in your theme. If it is off, your test referee will not see the popup, landing page, or sharing widgets. See [the FAQs](/help/faqs) for how to enable it.
2. **A campaign is live** with at least one sharing method on. Confirm your [referral methods](/referral-program/referral-methods) (link, code, or both) and your [referrer and referee rewards](/referral-program/rewards) are configured.
3. **The review period is known.** A referrer reward only issues after the **reward review period** set on the campaign. For a fast test, set it to `0` (instant) so you do not wait, then change it back before launch. See [referral orders](/referral-program/management/orders) for how the hold works.
4. **A test email inbox** you control, ideally one different from your store login, so you can play the part of a referred friend.

### 1. Become a referrer and get a sharing link or code

First you need a referrer with a link or code to share:

1. Join your own program the way a real customer would — through the on-site widget, the customer account extension, or the referral landing page.
2. Bloop assigns you a unique referral link and referral code. Note both.
3. If you enabled only one method, you will only see that one. To test both, turn both on in [referral methods](/referral-program/referral-methods) first.

> Tip: use a different name and email here than the one you will use as the referred friend, so Bloop treats them as two separate people and does not flag a self-referral.

### 2. Place a test order as the referred friend

Now act as the friend who was referred:

1. Open the referral link in a fresh browser (or use the referral code at checkout).
2. If you shared a **link**, enter the friend's email to receive the discount code, then apply it at checkout. If you shared a **code**, enter the code directly in the discount field.
3. Add the cheapest product you have and complete a real order through Shopify checkout.

Keep the test order small. To avoid spending real money you can create a draft order in Shopify and mark it paid, use a 100%-off internal discount, or use Shopify's test payment gateway (Bogus Gateway) in test mode. The order still needs to *complete* for the referral to register.

### 3. Confirm the order appears in Referral orders

Open the **Referral orders** view in Bloop and find your test order. Check:

* The order is linked to the right **referrer** (your step-1 identity).
* The status is correct. With a review period of `0` it should approve and issue the reward; with a delay it sits in **Pending** until the period passes. See [referral orders](/referral-program/management/orders) for the full status workflow.
* The order value and customer match what you entered.

If the order is missing, the most common causes are: the app embed is off, the order did not complete, or the referee used the same identity as the referrer (which Bloop blocks as a self-referral).

### 4. Test without a storefront purchase (optional)

If you cannot place a storefront order, you can still test the reward side by adding a referral order by hand:

1. In **Referral orders**, choose to add an order.
2. Enter a Shopify order number, amount, and the customer email.
3. Choose the referrer to credit, and optionally issue the reward immediately on save.

A manually added order is recorded as **Approved** and credits the referrer, so this is a quick way to verify reward issuance and the success emails without a real checkout. The full rules are in [referral orders](/referral-program/management/orders).

### 5. Verify the referrer reward was issued

Once the order is approved, confirm the reward actually reached the referrer:

* **Discount coupon** — a new Shopify discount code is created and emailed to the referrer.
* **Store credit** — the credit is applied to the referrer's Shopify customer account.
* **Cash** — the reward is tracked in Bloop for you to pay out manually (cash requires a payment method on your account).

Check the reward type, value, and any minimum requirement behaved as configured in [referrer and referee rewards](/referral-program/rewards). If you set a minimum-referees threshold, remember the reward only issues on the cycle (for example referee #5), not on the first order.

### 6. Preview the referral emails

You do not need to trigger every event to check your emails. Each referral email supports a test send:

1. Open the email under **Branding → Emails** (see [referral email notifications](/referral-program/emails)).
2. Send yourself a test.

The test uses sample values — a placeholder coupon like `BLOOP123example` and an example link — so you can preview the subject, body, button, and layout exactly as a customer would see them, without affecting a real referral. Walk through the invite, sharing, successful-referral, and reminder emails this way, and check your template variables (such as `{{ReferrerReward}}` and `{{ReferralLink}}`) fill in correctly.

### 7. Reset before you go live

After the dry run, undo your test data and settings:

* Reject or delete the test referral order so it does not skew your [referral analytics](/referral-program/analytics/analytics).
* If you set the review period to `0` for speed, set it back to the value you want for launch.
* Confirm the app embed stays **on** for real customers.

Once your test referral has flowed cleanly from share to order to reward to email, your program is ready to launch.

### Related

* [Getting started with referrals](/quick-start/getting-started) — the full setup flow this test validates.
* [Review and manage referral orders](/referral-program/management/orders) — statuses, holds, and manual orders.
* [Referrer and referee rewards](/referral-program/rewards) — what should be issued in step 5.
* [Referral email notifications](/referral-program/emails) — the emails you preview in step 6.


# Testing Affiliates

An affiliate program is a money flow, not just a marketing channel — every tracked sale ends in a commission you actually pay out. That makes a misconfigured program expensive in a way a quiet referral bug is not: a wrong commission rate, an exclusion that does not apply, or a payout that overpays all cost real money once partners are live. Testing before launch lets you watch each decision in that chain — recruit, track, approve, pay — against a test affiliate, so the only sale at stake is one you placed yourself.

The approach is to run one full sale, end to end. Register a test affiliate and approve them, preview their portal, drive a small sale through their link or coupon, confirm the commission calculates correctly, run a payout, and check every email along the way. This page is that dry run, step by step, before any real partner is watching.

> **Best practice — verify the money flow before partners join.** Run this short pre-launch checklist:
>
> 1. App embed on, with an active [campaign](/quick-start/getting-started-1) and the commission structure you intend to use.
> 2. A test affiliate registered, approved, and previewed with **login as**.
> 3. One real test sale tracked and the commission matching your rules in [affiliate sales](/affiliate-program/sales) — exclusions, caps, and tiers included.
> 4. A test [payout](/affiliate-program/payouts) recorded and confirmed, then reverted.
> 5. All affiliate emails verified and test data cleaned up before launch.

### Before you start

Have these ready, or the test will not produce a result:

1. **App embed is on.** Affiliate links and any on-site affiliate surfaces only work when the app embed block is enabled in your theme. See [the FAQs](/help/faqs) for how to turn it on.
2. **A campaign is active** with the commission structure you want to test — flat, percentage, or tiered. Review it in [affiliate campaigns and commissions](/affiliate-program/campaigns).
3. **At least one payment method enabled**, so you can complete the payout step. Configure these in [affiliate settings](/affiliate-program/settings).
4. **A test email inbox** you control to act as the affiliate and receive their notifications.

### 1. Register a test affiliate

Create an affiliate the same way a real partner would join, so you exercise the registration path:

1. Open your affiliate **registration form** (the self-registration link) and apply with a test name and email.
2. The applicant lands in your **Affiliates** tab with a **pending** status.
3. Alternatively, add the affiliate manually from the Affiliates tab if you want to test the manual-add path instead.

See [managing affiliates](/affiliate-program/affiliates) for both paths.

### 2. Approve the test affiliate

A pending affiliate cannot earn, so approve yours:

1. Open the affiliate's record in the **Affiliates** tab.
2. Change the status to **approved**.

Approving activates their unique referral link immediately and triggers the approval email. Note their referral link, and the discount coupon if you assigned one — you will use it in the next step.

### 3. Preview the affiliate portal with "login as"

Before driving a sale, confirm the affiliate sees the right portal:

1. From the affiliate's record, use **login as** to open their portal session.
2. Check their stats, referral link, and payout details render correctly and match your branding.

There is also a demo portal you can open without selecting a specific affiliate, useful for a quick branding check. Details are in [managing affiliates](/affiliate-program/affiliates).

### 4. Drive a test sale

Now act as a customer who arrives through the affiliate:

1. Open the affiliate's referral link in a fresh browser so the attribution cookie is set, or apply the affiliate's coupon at checkout.
2. Add the cheapest product you have and complete a real Shopify order within the campaign's cookie window.

Keep the order small. To avoid real spend, use a draft order marked paid, a 100%-off internal discount, or Shopify's test payment gateway (Bogus Gateway) in test mode. The order still has to complete for the sale to register.

### 5. Confirm the sale and commission

Open the **Sales** tab and find your test sale. Check:

* It is linked to the right **affiliate** and **campaign**.
* The status is **Pending** (every sale starts pending until you approve it).
* The commission matches your campaign rules — the correct percentage or flat amount, with exclusions, caps, and tiers applied as configured.

Each sale stores a snapshot of the rule that applied, so you can see exactly why the commission came out as it did. The full calculation logic is in [affiliate sales tracking](/affiliate-program/sales).

#### Test without a storefront purchase (optional)

If you cannot place a storefront order, add a sale by hand instead:

1. In the **Sales** tab, create a new sale.
2. Select your test affiliate — they must be **approved**, since sales cannot be created for pending or rejected affiliates.
3. Enter the order details, total sale, and commission.

Manual sales are flagged as manual so you can tell them from tracked ones.

### 6. Approve the sale

Confirm the approval step works:

1. In the **Sales** tab, **approve** the pending test sale (individually or via bulk approve).
2. The affiliate's approved balance updates, and an approval email goes to the affiliate.

Try rejecting a second test sale too, to confirm the declined email behaves as expected. See [affiliate sales tracking](/affiliate-program/sales).

### 7. Run a test payout

Turn the approved balance into a payout to verify the money flow:

1. Open the **Payouts → Approved** view and select your test affiliate.
2. Review the approved sales in their balance and record a payout.

When you record it, Bloop creates a payout record, flips the included sales to **paid**, reduces the approved balance, and sends the affiliate a "new commission payout" email. If anything looks wrong, you can **revert** the payout to return the sales to approved. The full behaviour is in [affiliate payouts](/affiliate-program/payouts).

### 8. Check the affiliate emails

Confirm the affiliate received the right notifications along the way — registration/approval, sale approved (and declined if you tested a rejection), and the new-payout email. Review and edit any of these templates under your affiliate email settings; see [affiliate email notifications](/affiliate-program/emails).

### 9. Reset before you go live

Clean up your test data so it does not skew real reporting:

* Reject or remove the test sale and revert the test payout.
* Set the test affiliate to **rejected** (there is no delete-only "paused" status), or remove them.
* Confirm the app embed stays **on** and your real campaign settings are restored.

Once a test sale has flowed cleanly from registration through approval, commission, and payout — with the right emails firing — your affiliate program is ready to launch.

### Related

* [Getting started with affiliates](/quick-start/getting-started-1) — the setup this test validates.
* [Managing affiliates](/affiliate-program/affiliates) — registration, approval, and "login as".
* [Affiliate sales tracking](/affiliate-program/sales) — how the commission in step 5 is calculated.
* [Affiliate payouts](/affiliate-program/payouts) — the payout you run in step 7.
* [Affiliate email notifications](/affiliate-program/emails) — the emails you check in step 8.


# Measuring & Optimizing

A program you do not measure is a program you cannot improve. The short answer: read your analytics from outcomes back through the funnel to find the one weak step, change a single thing to fix it, and prove the change with an A/B test before you keep it. This article explains how to diagnose and optimize, then links the Bloop tools that do the work.

Optimization is a loop, not a launch task: measure, find the gap, change one lever, test, bank the winner, repeat. Done steadily, a program compounds; done by guesswork, it churns.

### Read the funnel backwards

Your [analytics dashboard](/referral-program/analytics/analytics) moves from outcomes (who joined, who converted, how much revenue followed) back through behaviour (who saw the offer, who shared, on which channels). Reading it in that order makes the gap announce itself.

| Symptom in the data                      | Likely cause                            | Lever to pull                                       |
| ---------------------------------------- | --------------------------------------- | --------------------------------------------------- |
| Many impressions, few shares             | The incentive feels too weak to mention | Reward type or value                                |
| Many shares, few successful referrals    | The referee offer or eligibility is off | Referee discount, minimums, or audience             |
| Strong first orders, thin repeat revenue | A retention problem, not acquisition    | Reward type (store credit), post-purchase follow-up |

Two ratios are worth watching above the rest: **successful referrals to shares** (do shares actually convert) and **subsequent referral revenue** (do referred customers stick). Revenue totals look good on a slide, but these ratios are what you can act on.

### Change one lever at a time

When the data points at a step, resist fixing everything at once. Change the single variable with the most money riding on it — usually the reward value or the referee discount, which move conversions more than wording or layout. Changing one thing keeps the cause of any improvement unambiguous.

### Prove it with an A/B test

Guesswork is the most expensive way to set a reward, because a too-small and a too-generous discount look identical from the outside. Bloop's [A/B testing](/referral-program/ab-testing) splits new participants between your current setup (control) and one edited copy, then declares a winner from real conversions and can promote the winning settings to your live campaign automatically.

* Test the highest-stakes change first — reward value, then referee discount, before anything smaller.
* Change one thing per test.
* Let it run until both groups have real volume.
* Bank each winner before starting the next test.

### Keep affiliate spend tied to real revenue

For affiliate programs, optimization is also about not paying for revenue that evaporates. Build a [sales review](/affiliate-program/sales) rhythm aligned with your refund window — approving weekly, after the typical return period — so you rarely pay commission on an order that later comes back. Skim for anything unusual, like a sudden spike from one affiliate, before bulk-approving the rest.

### Set it up in Bloop

* Diagnose with the [referral analytics dashboard](/referral-program/analytics/analytics).
* Validate changes with [A/B testing](/referral-program/ab-testing).
* Keep affiliate payouts honest in [Affiliate sales review](/affiliate-program/sales).
* For the wider playbook, see [referral program best practices](https://bloop.plus/blog/referral-program-best-practices/).

### Related

* [Best practices: launching your referral program](/quick-start/launch-checklist)
* [Best practices: choosing the right referral reward](/best-practices/choosing-rewards)
* [Referral program best practices](https://bloop.plus/blog/referral-program-best-practices/)


# Paying Affiliates

Paying on time is the quiet thing that keeps affiliates loyal. The short answer: review and approve sales on a fixed rhythm tied to your refund window, pay on a predictable schedule with a small minimum threshold, and record every payout the moment you send it so your balances stay honest. This article explains how to build that discipline, then links the Bloop tools that support it.

Partners promote stores that pay reliably and drop the ones that make them chase commissions. In Bloop the mechanics are deliberately simple: you only ever pay against **approved** sales, so a payout is just turning a balance you already owe into a recorded payment. Bloop never moves money itself — the reliability comes from your process.

### Approve before you pay

Every affiliate-driven order starts as a claim, not a payment. The gap between the two is your chance to catch cancelled orders, returns, and fraud before money leaves your account.

* Review sales on a rhythm aligned with your refund window — approving weekly, after the typical return period, means you rarely pay on an order that later comes back.
* Skim for anything unusual, like a sudden spike from one affiliate or oddly large baskets, before bulk-approving the rest.
* Reject cancelled or returned orders promptly so balances stay accurate.

Do this in the [Sales review](/affiliate-program/sales) tab.

### Set a schedule and a threshold, then keep them

Reliability beats generosity here. A fixed cadence tells affiliates exactly when to expect payment and keeps your accounting tidy.

| Choice            | Recommendation                                                                      | Why                                                  |
| ----------------- | ----------------------------------------------------------------------------------- | ---------------------------------------------------- |
| Cadence           | A fixed interval — for example monthly, once sales have cleared their review period | Predictability is what keeps affiliates loyal        |
| Minimum threshold | A small minimum balance before you pay out                                          | Avoids the overhead of tiny transfers                |
| Timing vs refunds | Pay after the refund window has passed                                              | Stops you clawing back commission on returned orders |

Publish your schedule and threshold to affiliates up front so there are no surprises.

### Record every payout immediately

Bloop's payouts area has two views: **Approved**, each affiliate's outstanding balance (what you currently owe), and **Paid**, a record of everything you have completed. The Approved view is only trustworthy if you record payouts the moment you send them — otherwise it overstates what you owe and you risk paying twice. Make recording the payout the last step of every payment, not a later cleanup task.

### Keep clean records for accounting

Export your payout history regularly so your bookkeeping matches what affiliates received. Clean records also make it easy to answer a partner's "have I been paid?" question without digging, which reinforces the reliability that keeps them promoting.

### Set it up in Bloop

* Approve sales in [Affiliate sales review](/affiliate-program/sales).
* Pay and record in [Affiliate payouts](/affiliate-program/payouts).
* Set the commission those payouts draw on in [Best practices: a commission structure that scales](/best-practices/commission-structure).

### Related

* [Best practices: a commission structure that scales](/best-practices/commission-structure)
* [Best practices: recruiting and approving affiliates](/best-practices/recruiting-affiliates)
* [Affiliate payouts](/affiliate-program/payouts)


# FAQs

Common questions about getting Bloop live, understanding plans, cleaning up branding, and how referral links, codes, and store access work. If you're setting up for the first time, start with [getting started with referrals](/quick-start/getting-started) or [getting started with affiliates](/quick-start/getting-started-1).

### Getting Bloop running

#### How do I enable the app embed block?

Bloop's storefront widgets — the referral popup, landing page, sharing buttons, and account extension — only appear once you enable the **app embed block** in your theme. Do this before you launch.

1. In the Bloop dashboard, find the **Enable app embed on your theme** card (or the **App embed status** indicator on your home screen).
2. Choose **Enable app embed**, or **Open theme editor** to go straight to your theme's app-embed settings.
3. In the theme editor, switch the Bloop app embed on and save.

If the app embed is off, you'll see a warning that your branding won't appear on your storefront. Enabling it is free on all plans.

#### Does Bloop work on the Free plan straight away?

Yes. The Free plan ($0/month) includes referral links and codes, discount and store-credit rewards, landing pages, popups and widgets, the affiliate portal and commissions, and automated email flows — enough to run a real program. Upgrade only when you outgrow the free order limits.

### Pricing and plans

#### How much does Bloop cost?

Bloop has two plans:

* **Free — $0/month.** Includes 10 referee orders and 10 affiliate orders, discount and store-credit rewards, referral link and code, landing pages, popups and widgets, the affiliate portal and commissions, and automated email flows.
* **Premium — $59.90/month.** Everything in Free, plus unlimited referee and affiliate orders, a custom sender email, Klaviyo and Mailchimp integrations, watermark removal, and prioritized support.

Every plan includes a 14-day free trial, and you can cancel anytime with no data loss. See the [full pricing page](https://sbc-gitlab.bsscommerce.com/sa-division/tm-team/SABRP/bloop-docs-md/-/blob/master/pricing/README.md) for the complete feature comparison.

#### What happens when I hit the Free plan's order limit?

The Free plan covers 10 referee orders and 10 affiliate orders. Upgrade to Premium for unlimited orders. Your existing data stays intact when you upgrade or downgrade.

#### Can I switch plans anytime?

Yes. Upgrade or downgrade at any time without losing data. There are no hidden fees beyond the monthly subscription.

### Branding and the watermark

#### How do I remove the "BLOOP" watermark?

The "Powered by BLOOP Referrals & Affiliates" watermark is removed by upgrading to the **Premium plan**.

Bloop also offers to remove the "BLOOP Referral by BSS" watermark for free on request — open the watermark-removal request in your settings and contact the team via chat. If you're already on Premium, the watermark is removed automatically and no request is needed.

### Referral links vs referral codes

#### How do referral links and referral codes work?

Bloop gives referrers two ways to share. Enable either or both in your campaign's referral method settings:

* **Referral link** — each referrer gets a unique link. The friend visits it, enters their email, and receives a discount code to use at checkout. Because it captures the friend's email, Bloop can send the discount and follow-up emails. Best for email, chat, and social sharing.
* **Referral code** — each referrer gets a unique code (prefixed with `BLOOP` by default, like `BLOOP-A1B2C3-1042`). The friend types the code at checkout. No email step, which suits word-of-mouth and offline sharing.

At least one method must stay on; turning both off disables the referral program. For a deeper comparison, see [choose a referral sharing method](/referral-program/referral-methods) and the blog guide on [referral codes vs referral links](https://bloop.plus/blog/referral-codes-vs-referral-links/).

#### Can I run links and codes at the same time?

Yes. Enable both so each referrer shares through whichever channel fits, with the same reward logic behind both. Bloop tracks each share so you can compare channel performance in [referral analytics](/referral-program/analytics/analytics).

### Access and installation

#### Does Bloop need collaborator access to my store?

No. Bloop is installed from the Shopify App Store and runs with the permissions you grant during installation. If an outside party — an agency or a Bloop specialist — needs to help set it up, they request **collaborator access** through the Shopify Partner Dashboard, and you approve it from your Shopify admin under **Settings → Users and permissions**. You can revoke that access at any time.

#### Do I need to be a Shopify Partner to use Bloop?

No. Bloop is a merchant app you install like any other Shopify app. Partner accounts and collaborator requests only come into play when you invite an outside party to help manage your store.

### Related

* [Getting started with referrals](/quick-start/getting-started)
* [Getting started with affiliates](/quick-start/getting-started-1)
* [Test your referral program before launch](/best-practices/test-referral)
* [Test your affiliate program before launch](/best-practices/test-affiliate)
* [Bloop pricing](https://sbc-gitlab.bsscommerce.com/sa-division/tm-team/SABRP/bloop-docs-md/-/blob/master/pricing/README.md)


# Referral Marketing Strategies

Looking into referral marketing? You've come to the right place. We put together the best strategies based on what we've learned through years of running successful referral programs.

### Why Every Shopify Brand Needs a Referral Marketing Strategy

Referral marketing is one of the most powerful ways for Shopify brands to grow through authentic word-of-mouth. Unlike paid ads, referral programs leverage your happy customers to spread the word — driving high-quality traffic and loyal customers at a lower cost.

This guide walks you through everything from choosing the best Shopify referral apps to creating irresistible rewards and promoting your program effectively.

### Do you need a referral program for your Shopify store?

Before building your referral system, it's important to understand whether your brand is ready for it and how it fits your business goals.

* [What is a Referral Program?](https://bloop.plus/blog/what-is-a-referral-program/)
* [Why referral programs work](https://bloop.plus/blog/why-referral-programs-work/)
* [Referral program vs affiliate program](https://bloop.plus/blog/referral-program-vs-affiliate-program/)
* [Types of referral programs](https://bloop.plus/blog/types-of-referral-programs/)

### Get started with referral marketing on Shopify

Start your referral journey with step-by-step guides designed specifically for Shopify users. From setup tutorials to creative program ideas — everything you need to get started is here.

* [How Shopify users can set up a referral program](https://bloop.plus/blog/how-to-build-referral-program/)
* [How to Create and Track Referral Links on Shopify](https://bloop.plus/blog/referral-link/)
* [Referral program examples](https://bloop.plus/blog/referral-program-examples/)
* [How to Acquire More Referral Leads for eCommerce](https://bloop.plus/blog/referral-lead/)
* [Referral Program Ideas For eCommerce](https://bloop.plus/blog/referral-program-ideas/)
* [Referral code examples](https://bloop.plus/blog/referral-code-examples/)

### Shopify referral rewards and incentives

Rewards fuel motivation. Find out which referral incentives work best for Shopify stores — from discounts to gift cards and tiered bonuses.

* [Referral Incentives Ideas With Real-world Examples](https://bloop.plus/blog/referral-incentives-idea/)
* [Referral Gifts Ideas That Actually Convert Shopify Customers](https://bloop.plus/blog/referral-gift-ideas/)
* [Referral Commission For Shopify Stores](https://bloop.plus/blog/referral-commission/)
* [Best Gift Card Referral Program Templates](https://bloop.plus/blog/gift-card-referral-program/)

### Promote your Shopify referral program

Your referral program only works when customers know about it. These guides show how to promote your program effectively and get customers excited to share.

* [How to promote your referral program](https://bloop.plus/blog/how-to-promote-referral-programs/)
* [Best Ways to Promote Referral Links Free](https://bloop.plus/blog/promote-referral-links/)
* [25 Referral Button Copy Ideas That Actually Convert](https://bloop.plus/blog/referral-button/)
* [How to ask referral from clients](https://bloop.plus/blog/how-to-ask-clients-for-referrals/)
* [7 Referral Widgets That Actually Drive Conversions](https://bloop.plus/blog/referral-widgets/)

### Fraud prevention

* [Referral Fraud in Shopify Stores: What It Is and How to Prevent It](https://bloop.plus/blog/referral-fraud/)
* [How to Prevent Self-Referral Fraud](https://bloop.plus/blog/self-referral/)
* [What Is Referral Spam And How To Protect Your Shopify Store Data](https://bloop.plus/blog/referral-spam/)
* [Shopify Referral Traffic: What It Is and How to Generate More Sales](https://bloop.plus/blog/referral-traffic/)

### Shopify referral apps, software, and tracking

Choosing the right app and tracking tools ensures your referral program runs smoothly. Compare top-rated Shopify apps and learn how to measure real impact.

* [12 Best Shopify Referral Apps 2026](https://bloop.plus/blog/best-shopify-referral-apps/)
* [Referral Codes vs Referral Links: Which Drives More Sales?](https://bloop.plus/blog/referral-codes-vs-referral-links/)
* [Free Referral Code Generator](https://bloop.plus/free-tool/free-referral-code-generator/)
* [Free Referral Link Generator](https://bloop.plus/free-tool/referral-message-template-generator/)
* [Free Referral Message Generator](https://bloop.plus/free-tool/referral-message-template-generator/)

### Advanced Shopify referral marketing tactics

Once your program is live, scale it with data-driven optimization. Learn how to increase conversions, personalize offers, and create viral referral loops.

* [Referral Conversion Rate Optimization Guide](https://bloop.plus/blog/referral-sales-strategy/)
* [Customer referral strategy](https://bloop.plus/blog/customer-referral-strategy/)
* [Referral program best practices](https://bloop.plus/blog/referral-program-best-practices/)
* [Best Refer-a-Friend Scheme Ideas for Shopify stores](https://bloop.plus/blog/refer-a-friend-scheme-ideas/)


# Privacy Policy

**Effective Date:** 16 September 2025\
**Last Updated:** 16 September 2025

### 1. Introduction

Welcome to **BLOOP** ("BLOOP", "we", "us", or "our"). We are committed to protecting your privacy. This Privacy Policy describes how we collect, use, disclose, and safeguard your personal information when you visit our website, use our services, or interact with us in any way. By accessing or using our services, you agree to the terms of this policy.

### 2. Information We Collect

We may collect personal information from you in a variety of ways, including but not limited to:

* **Information you provide directly.** Examples include your name, email address, phone number, billing/shipping address, payment information, account credentials, and any other details you submit when you register, place orders, contact customer support, subscribe to newsletters, or otherwise.
* **Information collected automatically.** When you visit our website, we may use cookies, web beacons, pixels, log files, and similar technologies to gather information such as your IP address, browser type, device identifiers, operating system, referring/exit pages, viewing behavior, and date/time stamps.
* **Information from third parties.** We may receive information about you from other sources, including partners, service providers, or publicly available sources, and combine that with information we already have.

### 3. How We Use Your Information

We use collected information for the following purposes:

* To provide, maintain, and improve our services, website, and customer experience.
* To process and fulfill your orders, including shipping and billing.
* To communicate with you, including responding to your inquiries, customer support, and sending transactional messages (order confirmations, shipping notifications, etc.).
* To send marketing communications (where permitted), promotional offers, newsletters; to personalize content and recommendations.
* To analyze usage and trends, understand how you use our services, optimize our operations, prevent fraud, or for security purposes.
* To comply with legal obligations, resolve disputes, enforce our agreements, and protect our rights, property, or safety.

### 4. Cookies, Tracking & Similar Technologies

We use cookies and similar tracking technologies for various reasons:

* **Strictly necessary cookies:** to operate our site, enable basic functions like page navigation and secure access.
* **Performance/analytics cookies:** to understand how users interact with our site (e.g. pages visited, time spent) so we can improve it.
* **Functionality cookies:** to remember preferences, settings, and profile details.
* **Targeting/advertising cookies:** to deliver relevant ads or promotions, possibly via third-party providers.

You may control or disable cookies through your browser settings or other tools, though this may limit some functionalities of our site.

### 5. Data Storage, Security & Retention

* Your personal data will be stored on secure servers operated by us or by trusted third-party service providers.
* We implement appropriate technical and organizational measures to protect your information from unauthorized access, disclosure, alteration, or destruction.
* We retain personal information only for as long as necessary to fulfill the purposes for which it was collected, comply with legal obligations, resolve disputes, and enforce our agreements.

### 6. Sharing & Disclosures

We may share your personal information in the following circumstances:

* With service providers and vendors who perform services for us (e.g. payment processors, shipping carriers, email service providers, analytics providers).
* With affiliates, subsidiaries, or business partners, where necessary to provide services or fulfill orders.
* If required by law, regulation, legal process, or governmental request.
* To enforce or protect our rights, privacy, safety or property, or those of our users or others.
* In connection with a business transaction (e.g. merger, acquisition, reorganization, sale of assets).

### 7. Your Rights

Depending on where you live, you may have certain rights regarding your personal information:

* **Access & correction:** The right to request what personal data we have about you and to correct inaccurate or incomplete data.
* **Deletion:** The right to request deletion of your personal data in certain circumstances.
* **Objection / Restriction:** The right to object to or restrict certain processing of your data.
* **Data portability:** The right to obtain a copy of your data in a structured, commonly used, machine-readable format, and/or to request us to transfer it to another entity.
* **Opt-out:** The right to opt out of marketing communications and targeted advertising.

### 8. Children's Privacy

Our services are not directed to children under 16. We do not knowingly collect personal data from children. If you believe that we may have collected information about a child, please contact us so we can take appropriate action.

### 9. International Transfers

If you are located outside of Vietnam, your personal information may be transferred to, stored, or processed in another country where our servers or service providers are located. We will take steps to ensure that such transfers comply with applicable data protection laws and that adequate safeguards are in place.

### 10. Third-Party Links & Services

* Our site may contain links to third-party websites or services not operated by us. We are not responsible for the privacy practices of those third parties.
* We may also use third-party tools (e.g. analytics, payment processors) which may collect or access your data. Their use of your information is governed by their privacy policies, not ours.

### 11. Legal Basis for Processing

If you are in a jurisdiction that requires us to state a legal basis (e.g. under the GDPR), our legal basis for processing your personal data may include:

* Performance of a contract with you.
* Consent, where you have given it (e.g. for marketing).
* Compliance with legal obligations.
* Legitimate interests, where applicable, except where overridden by your rights.

### 12. Updates to This Policy

We may update this Privacy Policy from time to time. When we do, we will revise the "Last Updated" date. If changes are material, we may provide more prominent notice (e.g. via email or on our site). Please review this policy periodically.

### 13. Contact Us

If you have any questions about this Privacy Policy or our data practices, or if you would like to exercise any of your rights, please contact us at: <support@bloop.plus>


