Overview
Share Links for Everyone is a strategy for pre-generating a unique referral share link for every customer in your database and pushing that link back into your existing systems — your CRM, ESP, or banking platform — so it can be included in any outbound communication without requiring Extole to be in the loop for every email or touchpoint. The result: every customer already has a share link waiting for them before they ever visit your referral program. You can embed it in welcome sequences, transactional emails, app notifications, and outbound campaigns without any manual intervention. This article covers the two main implementation options and when to use each.Why do this?
Most referral programs are reactive — a customer visits the site, lands on the share experience, and only then gets a link to share. Share Links for All flips this model. By the time you reach out to a customer, their personal share link already exists and can be dropped into any message. Common use cases include:- Including a referral link in every email in your post-signup welcome sequence
- Adding a share link (or QR code) to transactional emails such as order confirmations or account statements
- Embedding a referral link in your app’s “my account” screen without requiring a separate page load
- Giving field employees or contractors their own personal share link to use in conversations and emails
Option 1: Create Share Links and Send to your CRM / CDP
This is the recommended approach for most programs. Extole automatically generates a share link when a specified event occurs (typically converted) and pushes it to your external system via an outbound webhook.How it works
When a customer triggers the chosen event, Extole creates a share link for them and fires a webhook payload — containing the share link, email, and any other configured fields — to the endpoint you specify. Your system stores the link and makes it available for future communications.Setup
Step 1 — Decide on Configuration Options- Confirm which event should trigger a new share link to be created. Examples include: Conversion, Account Opened, or Addition to the Eligible Advocate Audience.
- Confirm which program you’d like share links created for like Refer a Friend or Refer a Friend Employee.
- Determine how you plan to map this data within your internal CRM / CDP.
- Send this info to your Extole team to configure the Create Share Link on an Event extension.
- Go to Tech Center > Security Center.
- Click + New Key and select Webhook as the key type.
- Choose the appropriate algorithm:
- Password — sends the key as Authorization: Bearer
<key> - HTTP Basic — sends as Authorization: Basic
<base64EncodedKey> - HS256 — signs the request body and sends as X-Extole-Signature:
<signed_value>
- Password — sends the key as Authorization: Bearer
- Paste the your API key or bearer token and save.
Note: Firing a webhook off of a
advocate_code_created event is handled by Extole. Provide the above details to Extole to complete configuration.
Example webhook payload
<key>
Webhook retry behavior
If Extole receives a non-200 response, it will retry 5 times on this schedule: 1 second, 1 hour, 3 hours, 12 hours, 12 hours. After that, the event is placed in a dead-letter queue for 7 days. Your Solutions Architect can access the Webhook Events Report or replay events using the /v6/webhooks/events/send endpoint if needed.
Option 2: Create Share Link via API
Use the Create Share Link API when your system needs to generate or retrieve a share link on demand — for example, when your backend is building a personalized email at send time, or when you need fine-grained control over the share link’s code or label. Endpoint<base64EncodedKey>
Example request
<signed_value>
Response Data Fields
Backfilling existing customers
Before launch, you should generate share links for your existing customer base — not just net-new customers going forward. The standard process is:- Provide Extole with your existing customer list (email and/or partner_user_id).
- Your Extole team will help create share links for all customers in bulk.
- Extole delivers the links back to you via a file or webhook for import into your system.
Choosing the right approach
Setting up your ESP or CRM to use the share link
Once Extole is pushing share links to your system via the outbound webhook, you need two things on the receiving end: somewhere to store the link per contact, and a way to insert it into emails. The setup varies by platform.HubSpot
Implementation Details
Implementation Details
Step 1 — Create a custom contact propertyThe webhook payload lands in HubSpot and needs to be written to a contact property. Create a dedicated property to hold the share link:
- In HubSpot, go to Settings > Properties.
- Click Create property and select Contact as the object type.
- Set the Field type to URL (this makes the value clickable in the contact record and validates the format).
- Name it something like Extole Share Link and save.
Salesforce Marketing Cloud (SFMC)
Implementation Details
Implementation Details
Step 1 — Add a share link column to your Data ExtensionSFMC personalizes emails from Data Extensions. The share link needs to be a column in the Data Extension you send from:
- In Email Studio or Contact Builder, open the Data Extension you use for customer sends.
- Add a new column: name it
extole_share_link, typeText, length500. - Ensure the column is populated with share link values before sends — Extole pushes these via the outbound webhook, which should be configured to update this field.
emailFor more control — such as showing a fallback URL if the field is empty — use AMPscript:share_linkshare_codeThis renders each recipient’s share link at send time, falling back to the program’s main URL if the field isn’t populated.Klaviyo
Implementation Details
Implementation Details
Step 1 — Receive the share link as a custom profile propertyKlaviyo stores per-contact data as profile properties. Because Klaviyo uses a schema-less database, you do not need to pre-define the property before Extole writes to it — the first webhook payload that includes the field will create it automatically on the matching profile.The Extole outbound webhook should be configured to POST to Klaviyo’s Update Profile endpoint, writing the share link as a custom property (e.g.,
extole_share_link) matched on email. Confirm the endpoint URL and field name with your Solutions Architect.Step 2 — Use the share link in email via the lookup filterIn any Klaviyo email or flow template, reference the custom property using Klaviyo’s variable syntax with the lookup filter:event_timeThe default filter provides a fallback URL for any profile where the property hasn’t been populated yet. This works in email body copy, subject lines, and button URLs.Note: Custom property names are case-sensitive in Klaviyo. The name used in the template must exactly match the field name set by the webhook — for example, extole_share_link and Extole Share Link are treated as different properties. Agree on a naming convention with your Solutions Architect before going live.Iterable
Extole has a native integration guide for Iterable. The setup below reflects that documented pattern.Implementation Details
Implementation Details
Step 1 — Create an Iterable API key
- In Iterable, go to Integrations > API Keys.
- Click New API Key, enter a name, and click Create API Key.
- Save the key — you’ll paste it into My Extole in the next step.
- In My Extole, go to Tech Center > Security Center.
- Click + New Key and select Webhook as the key type.
- Set the algorithm to Password.
- Paste your Iterable REST API key and save.
POST to Iterable’s Update User endpoint:advocate_code_createdIf using Iterable’s EU data center, use https://api.eu.iterable.com/api/users/update instead.The webhook payload writes the share link directly to the user’s profile as a dataFields value:/v6/webhooks/events/sendStep 4 — Use the share link in email templatesIn any Iterable message template, reference the user profile field using a Handlebars merge tag:person_idAt send time, Iterable replaces the merge tag with the value from the user’s profile. You can use this in email body copy, button URLs, or subject lines.Note: Iterable has a project-level setting called Drop Unrecognized User Fields that, if enabled, will silently ignore fields it doesn’t recognize. If the share_link field isn’t appearing on user profiles, check Settings > Data Schema Management to confirm the field is allowed or use an API override to add it.