Built for lean teams,
scaled for category leaders
Thanks. You're signed up.
Something went wrong. Please try again.
Want the full setup walkthrough?
Use these docs for exact setup steps, supported fields, and troubleshooting.
GrowSurf adds and updates contacts in the Brevo list you choose and fills in 15 contact attributes holding each participant’s referral link, referral counts, referrer details, and milestone progress.
If the connection fails on the first try, it is almost always Brevo’s IP blocking rather than a bad key. That fix is the first thing covered below.
Get a private API key from Brevo > SMTP & API > API Keys.
Brevo blocks API calls from unknown IP addresses by default, which rejects GrowSurf’s connection attempt with an error that looks like a bad key. Go to Brevo > Security > Authorized IPs and either add GrowSurf’s IP address as an authorized IP — the Brevo setup docs list the current one — or turn off blocking of unknown IP addresses. Adding the single IP is the tighter option.
Open Program Editor > 4. Options > Integrations and search for Brevo.

Expand the card, paste the private API key, and submit.

Connect before importing participants; the sync covers people added or referred from that point on. Already imported? Use the existing-participant sync options.
Pick the list GrowSurf should keep current, then save. GrowSurf adds or updates a contact there whenever someone joins or gets referred.
| GrowSurf data | Contact attribute | Type | What it holds |
|---|---|---|---|
| Share URL | {{ contact.GRSF_SHARE_URL }} | Text | The participant’s unique referral link |
| Participant ID | {{ contact.GRSF_PARTICIPANT_ID }} | Text | The participant’s GrowSurf ID |
| Referral Status | {{ contact.GRSF_REFERRAL_STATUS }} | Text | CREDIT_PENDING, CREDIT_AWARDED, or CREDIT_EXPIRED |
| Participant first name | {{ contact.GRSF_PARTICIPANT_FIRST_NAME }} | Text | The participant’s first name |
| Participant last name | {{ contact.GRSF_PARTICIPANT_LAST_NAME }} | Text | The participant’s last name |
| Referrer first name | {{ contact.GRSF_REfERRER_FIRST_NAME }} | Text | The referrer’s first name, when there is one |
| Referrer last name | {{ contact.GRSF_REFERRER_LAST_NAME }} | Text | The referrer’s last name, when there is one |
| Referrer email | {{ contact.GRSF_REFERRER_EMAIL }} | Text | The referrer’s email, when there is one |
| Total referral count | {{ contact.GRSF_TOTAL_REFERRAL_COUNT }} | Number | All-time referral count |
| Monthly referral count | {{ contact.GRSF_MONTHLY_REFERRAL_COUNT }} | Number | Referral count for the current month |
| Previous monthly referral count | {{ contact.GRSF_PREV_MONTHLY_REFERRAL_COUNT }} | Number | Referral count for the previous month |
| Next milestone | {{ contact.GRSF_NEXT_MILESTONE }} | Text | The next milestone message, on programs with milestone rewards |
| Next monthly milestone | {{ contact.GRSF_NEXT_MONTHLY_MILESTONE }} | Text | The next monthly milestone message, when there is one |
| Total invite count | {{ contact.GRSF_TOTAL_INVITE_COUNT }} | Number | All-time invite count |
| Total impression count | {{ contact.GRSF_TOTAL_IMPRESSION_COUNT }} | Number | All-time referral-link view count |
Brevo attribute names are uppercase. Use them exactly as shown in campaigns and automations.
Check Authorized IPs first. A working key from a blocked IP produces the same error as a wrong one.
The pattern is {{ contact.GRSF_SHARE_URL }} — lowercase contact, uppercase attribute name. Mixed case renders blank.
The sync is forward-looking. Connecting first saves a backfill.
Brevo blocks unknown IP addresses by default. Authorize GrowSurf’s IP in Brevo > Security > Authorized IPs, or disable the block.
A private API key from your Brevo API keys settings.
Yes. Selecting a list creates them and keeps their values current.
Launch a refer-a-friend or affiliate program that lowers your acquisition costs and builds customer loyalty, with little engineering work.
Trusted by marketing and product teams that grow through customer, user, and partner referrals.
