> For the complete documentation index, see [llms.txt](https://docs.growsurf.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.growsurf.com/getting-started/referral-program-workflow.md).

# Referral Program Workflow

Follow a referred friend from a shared link through signup, the action that counts, and reward approval and delivery.

GrowSurf tracks who referred each new customer and unlocks rewards when the goals you set are reached. This guide explains when referrals count, who confirms the action, and how rewards are approved and sent.

![How a referred friend moves from a referral link to earning a reward](https://2794996218-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LeklWo0yn03AhWro2Ux%2Fuploads%2Fgit-blob-1e799a8cfb47a8b58ff7d267594f4df31b062911%2Freferral-program-workflow-diagram.svg?alt=media)

Before you invite participants, use the Program Editor to configure your referral trigger, rewards, who gets rewarded, and whether rewards require approval.

## 1. Give each participant their referral link

You can provide participants with their referral link through the [referral widget](/developer-tools/javascript-sdk/tutorials.md#example-2-open-growsurf-window-on-button-click), [embedded form](/developer-tools/embeddable-elements.md#embedded-form), or a hosted referral portal.

For an iOS or Android app, follow [Getting Started for Native Mobile](https://docs.growsurf.com/getting-started-for-native-mobile) to add the referral widget to your app. Participants can then view and share their referral link and track their referrals and rewards.

{% tabs %}
{% tab title="Referral widget" %}
{% embed url="<https://www.youtube.com/watch?v=ajvHNt95Wm8>" %}
{% endtab %}

{% tab title="Hosted referral portal" %}
{% embed url="<https://www.youtube.com/watch?v=8yhxlwUzMt4>" %}
{% endtab %}

{% tab title="Embeddable elements" %}
{% embed url="<https://www.youtube.com/watch?v=Awk4d-u-01U>" %}
{% endtab %}
{% endtabs %}

## 2. Keep track of who referred the friend

When a referred friend signs up, GrowSurf needs to record who referred them. If you're using the Automagic form tracking method, verify that referral tracking is working correctly.

For forms that aren't compatible with Automagic form tracking, use the [JavaScript SDK](/developer-tools/javascript-sdk.md) or follow the [REST API](/developer-tools/rest-api.md) tutorial. When adding the new user with the REST API, include `referredBy` to associate the new user with a referrer. It can be the referrer's email address or unique GrowSurf ID. You can use [`growsurf.getReferrerId()`](https://docs.growsurf.com/developer-tools/javascript-sdk/api-reference#get-referrer-id) to retrieve the referrer ID.

For iOS and Android apps, install the [iOS](/developer-tools/ios-sdk.md) or [Android SDK](/developer-tools/android-sdk.md) to capture referral attribution, create referred participants, and show a native referral window in your app.

{% embed url="<https://www.youtube.com/watch?v=eNFz2MruxfU>" %}

## 3. Record the action that counts

Your program's referral trigger determines when the referrer receives credit:

| Referral trigger            | How to record it                                                                                                        |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Signup                      | Configure your program to award referral credit on signup, then follow the signup flow for your integration.            |
| Sign Up + Qualifying Action | Configure your program to award referral credit after a qualifying action, such as making a purchase or booking a demo. |

### Choose an action your team can confirm

For a referral that counts only after a later action, connect a supported integration or have your backend confirm the action through the [REST API tutorial](/developer-tools/rest-api/tutorials.md). Signing up and completing that action are separate steps.

These are examples to adapt to your program, not built-in industry checks:

| Business                                                               | Example action that counts                                 | Who confirms it                                                           |
| ---------------------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------------------- |
| [SaaS](https://growsurf.com/for/saas/)                                 | A first subscription payment                               | Your connected payment platform or your backend                           |
| [Consumer fintech](https://growsurf.com/for/financial-services/)       | A first deposit or completed transfer                      | Your backend, after your team's required checks                           |
| [Insurance](https://growsurf.com/for/insurance/)                       | A referred lead meets your program's criteria              | Your CRM or your team; policy and cancellation checks stay in your system |
| [Telehealth](https://growsurf.com/for/telehealth/)                     | A referred customer completes the action your team chose   | Your connected tools or your backend                                      |
| [Provider recruitment](https://growsurf.com/for/provider-recruitment/) | A referred provider completes your onboarding requirements | Your recruitment team or system, including any credential checks          |

Choose the action and reward rules before connecting your tools. GrowSurf counts the referral from the confirmation you send; your team owns the business checks behind it. For commissions on partner-referred sales, follow the [affiliate program workflow](/getting-started/affiliate-program-workflow.md).

## 4. Unlock and approve rewards

Referral credit counts toward your program's reward goals. A participant earns a reward when the applicable goal is reached. If you require manual approval, the reward unlocks after you approve it. If you offer an [upfront discount](/integrations/stripe.md#upfront-discounts), the referred friend can receive their coupon before completing the qualifying action.

Choose how rewards are approved:

* **Manually approve rewards.** Review the participant's activity and pending reward in the dashboard before approving it. After you or your connected integration sends the reward, mark it as sent if needed. You can enable the New Participant Reward email notification to know when a reward is ready for review.
* **Automatically approve rewards.** When a participant earns a reward, GrowSurf automatically approves it. You can then manually mark the reward as sent to keep track of which rewards have been issued.
* **Automatically approve & mark as sent.** When a participant earns a reward, GrowSurf automatically approves it and marks it as sent. This status does not confirm delivery.

## 5. Deliver rewards and show participants their progress

Use a supported reward integration to deliver approved rewards, or send them through your own system. You can deliver gift cards through [Tango Card](/integrations/tango-card.md) or [Tremendous](/integrations/tremendous.md), coupons or credits through [Stripe](/integrations/stripe.md#coupons-credits), and payouts with [PayPal](/integrations/paypal.md#payouts) or [webhooks](/developer-tools/webhooks.md). Follow the selected integration's setup instructions, including recipient settings and any funding requirements.

Use webhooks when you want your application to send rewards. For example, when a participant reaches a goal, your backend can use the [`PARTICIPANT_REACHED_A_GOAL`](/developer-tools/webhooks/events-reference.md#participant_reached_a_goal) event to trigger your own reward logic, such as adding points to a user’s account or creating a reward in your system.

After a reward is issued, participants can check their referrals and rewards through the referral widget, the [embedded referral progress](/developer-tools/embeddable-elements.md#embedded-referral-status) or [earned rewards elements](/developer-tools/embeddable-elements.md#embedded-rewards), or your program's referral portal. Place the widget or elements in your customer dashboard.

## Check the journey before launch

Create a separate development program to test your referral flow before going live. This keeps test participants and integration activity separate from your production program. If you're testing an integration, use its test mode to avoid affecting live data.

| Situation                                     | What to verify                                                                                                              |
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| A referred friend follows a link and signs up | The new participant is associated with their referrer.                                                                      |
| The qualifying action happens later           | The referrer gets credit when the friend completes the action that counts within the referral credit window, not at signup. |
| A participant reaches a reward goal           | The reward unlocks once the participant reaches the number of referrals needed to earn it.                                  |
| A reward needs manual approval                | A reward is issued after it has been approved.                                                                              |
| A friend receives an upfront discount         | The friend can use the coupon before purchase, while the referrer's reward waits for the qualifying action.                 |
| A webhook is delivered again                  | If the same webhook event is received more than once, your application should only issue the reward once.                   |

Review the participant’s activity, progress, and reward details to make sure everything works as expected from the referral link to the reward.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.growsurf.com/getting-started/referral-program-workflow.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
