Skip to content
Back to Growth & Acquisition

Referral Mechanic Design

Design the in-product moment where a user has both motivation and an audience to invite someone, and make the invite one click.

Why

A referral mechanic works only when it fires at the moment of peak motivation — right after the user experienced the value they want to share, not on a settings page they visit once. The mechanic must reduce friction to one click (pre-filled message, contact picker, deep link) because every additional step loses 30-50% of potential inviters. The audience matters as much as the moment: a B2B user invites colleagues at the moment of collaboration, a consumer user invites friends at the moment of a shareable result. A referral button in a settings menu fires at zero motivation and converts near zero; a 'share this with your team' button on the just-saved dashboard fires at peak motivation and converts 10x.

When

When users complete a shareable outcome (saved dashboard, finished document, won game). Build the trigger into the outcome, not a menu.

How

1. Map the user journey and mark every moment where the user produces a shareable artifact or experiences a peak-value moment
2. Pick the 1-2 moments with highest motivation × largest natural audience (team for B2B, friends for consumer)
3. Design the trigger UI at that exact moment: a contextual button, not a menu item — "Share with your team" on the saved dashboard
4. Pre-fill the invite message with the user's result and a one-line value prop; let them edit but don't start blank
5. Integrate the contact picker (Google Contacts, Slack workspace, phone contacts) so selecting recipients is one click
6. Generate a deep link with the inviter's ID and the artifact context so the recipient lands on the shared thing, not the homepage
7. Track the funnel: trigger impressions → invites sent → invites opened → signups → activated; fix the weakest step
8. Iterate the trigger placement and copy weekly; a 10% lift in trigger impressions compounds across the whole funnel

Example

# B2B: collaborative dashboard tool
Peak moment: user saves a dashboard they want their team to see
Trigger: "Share with your team" button on the saved-success toast
Pre-filled message: "I built a deploy-frequency dashboard — edit with me"
Contact picker: Slack workspace (#devops channel) — one click
Deep link: ez4code.com/d/deploy-freq?from=alice&shared=true
Recipient lands: on the dashboard (read-only), CTA "Edit with Alice"

# Funnel (weekly)
Trigger impressions: 2,000 (on saved-dashboard toasts)
Invites sent:        600  (30% of impressions)
Invites opened:      360  (60% of sent)
Signups:             180  (50% of opened)
Activated:            72  (40% of signups)
→ k = 72/2000 = 0.036 per sharing user (improve trigger placement)

Common Problems

  • ⚠Putting the referral button in a settings menu where motivation is zero; it gets 0.1% CTR and the team concludes 'referrals don't work'.
  • ⚠Starting the invite message blank — 60% of users won't type anything and the invite never sends.
  • ⚠Dropping the recipient on the homepage with no context; they bounce because they don't know why they're there.
  • ⚠Measuring only signups, not the full trigger→activated funnel, so the weakest step stays invisible.

Best Practices

  • ✓Fire the trigger at the peak-motivation moment (just-saved, just-won, just-shared), not in a settings menu; placement is 80% of the result.
  • ✓Pre-fill the invite message with the user's result and a value prop; a blank message kills 60% of invites.
  • ✓Use a deep link that lands the recipient on the shared artifact, not the homepage; context is what converts the open to a signup.
  • ✓Measure the full trigger→activated funnel and optimize the weakest step; a 10% lift anywhere compounds through the whole chain.