← View All Guides
Loops logo
Integration Guide

How to Add Referral Links to Loops Emails

Single-brace contact properties put each reader’s own referral link into one Loops campaign or loop.

Want the full setup walkthrough?

Use these docs for exact setup steps, supported fields, and troubleshooting.

With GrowSurf syncing into a Loops mailing list, each contact’s referral link and progress are contact properties. One campaign covers the whole list, each reader seeing their own link.

Loops merges with single braces and camelCase names. Both differ from what most email tools use, so they are worth getting right before your first send.

Integration Steps

Confirm the properties exist

The Loops API key field in the GrowSurf Program Editor
Loops lives in Program Editor > 4. Options > Integrations.

Open a synced contact in Loops and confirm the grsf properties carry values before you write against them.

Put the link where it gets copied

Use {grsfShareUrl} as both the href and the visible text, above the fold.

Keep progress honest for new contacts

{grsfTotalReferralCount} reads well for an active referrer and badly for someone at zero. Write the sentence so it works at zero, or send that variant only to contacts with referrals.

Move the prompt into a loop

A loop that fires after signup keeps asking every new contact without another send. Change the reward in GrowSurf and the next sync updates the values.

Code Snippets

The referral link

<p>Share your referral link:</p>
<a href="{grsfShareUrl}">{grsfShareUrl}</a>

Progress and next milestone

<p>You have made {grsfTotalReferralCount} referrals so far.</p>
<p>{grsfNextMilestone}</p>

A link into your referral portal

<a href="https://grow.surf/YOUR_PROGRAM_ID">View your referral progress</a>

Replace YOUR_PROGRAM_ID with your GrowSurf Program ID, or use your custom Referral Portal domain.

Tips

FAQ

What is the merge syntax in Loops?

Single curly braces around the camelCase property, for example {grsfShareUrl}.

Do these work in loops as well as campaigns?

Yes. They are contact properties, so anywhere Loops merges contact data.

Why is my value blank?

Usually a snake_case spelling, or a contact that has not synced yet.

Trusted by marketing and product teams that grow through customer, user, and partner referrals.