# How to Add Referral Links to Mailjet Campaigns > Use GrowSurf contact properties in Mailjet campaigns so every contact receives their own referral link and progress. - URL: https://growsurf.com/integration-guides/mailjet-referral-email-personalization/ --- [← View All Guides](/integration-guides/) Mailjet’s data variables put each contact’s own referral link into a single campaign. Want the full setup walkthrough? Use these docs for exact setup steps, supported fields, and troubleshooting. [GrowSurf Mailjet email tutorials](https://docs.growsurf.com/integrations/mailjet/tutorials) [Mailjet templating language docs](https://dev.mailjet.com/docs/email-api/send-api-v31/templating-language) Once GrowSurf syncs into a Mailjet list, each contact’s referral link and progress are stored contact properties. Mailjet reads them with `[[data:...]]`, so one campaign serves the whole list. Mailjet has more than one variable form, and picking the wrong one is the usual reason a referral link comes out blank. ## Integration Steps ### Check the properties are there The Mailjet API key and secret key fields in the GrowSurf Program EditorMailjet lives in Program Editor > 4. Options > Integrations. Open a synced contact in Mailjet and confirm the GrowSurf properties carry values before you build the campaign. ### Use the data form, not the var form GrowSurf writes contact properties stored on the contact, which Mailjet reads with `[[data:...]]`. The `var:` form is for values passed in at send time and will not find them. ### Show the link Use `[[data:grsf_share_url]]` as both the href and the visible text, high in the email. ### Keep the offer editable Reward amounts and milestone copy live in GrowSurf. Change them there and the next sync updates every Mailjet contact without an edit to the campaign. ## Code Snippets **The referral link** ```

Share your referral link:

[[data:grsf_share_url]] ``` **Progress and next milestone** ```

You have made [[data:grsf_total_referral_count]] referrals so far.

[[data:grsf_next_milestone]]

``` **A share button** ``` Share on X ``` ## Tips #### `data:`, not `var:` Stored contact properties use the data form. The var form belongs to values supplied in a send call. #### Double brackets, no spaces `[[data:grsf_share_url]]` exactly as written. #### Test to a contact on the list A test send to an address outside the list cannot resolve stored properties. Recommended Guides [Mailjet logo How to Sync GrowSurf Referral Data to Mailjet Contacts An API key and secret key, one contact list, and every contact carries their referral link as a property. View Guide →](/integration-guides/mailjet-referral-contact-sync/) [Brevo logo How to Add Referral Links to Brevo Campaigns and Automations Brevo reads GrowSurf data as uppercase contact attributes, so one campaign gives every contact their own link. View Guide →](/integration-guides/brevo-referral-email-personalization/) [SendGrid logo How to Build SendGrid Referral Email Templates with GrowSurf Sync participants into a SendGrid marketing list, then use GrowSurf referral fields inside reusable email templates. View Guide →](/integration-guides/sendgrid-referral-email-templates/) ## FAQ #### What is the syntax for the referral link? `[[data:grsf_share_url]]`. #### Why does `var:` not work? That form reads values passed in at send time. GrowSurf stores properties on the contact, which the data form reads. #### Which property should always be in the email? The share URL. ## Turn word of mouth into steady growth from your customers Launch a refer-a-friend or affiliate program that lowers your acquisition costs and builds customer loyalty, with little engineering work. [Launch Your Program](https://app.growsurf.com/signup) 14-day free trial No credit card required Trusted by marketing and product teams that grow through customer, user, and partner referrals. ## Built for lean teams, scaled for category leaders Thanks. You're signed up. Something went wrong. Please try again.