F9 — Referral & Viral Loop Engine

Turn happy customers into referrers. AI scores your customers by referral readiness (engagement + tenure + advocate signals), generates a personalized "ask" message via Haiku, and sends it from YOUR mailbox (Gmail/Outlook with Resend fallback). Form submissions carrying ?ref=<code> auto-attribute as conversions. Wraps the existing 3-table Growth referral system (ReferralProgram + ReferralLink + ReferralConversion).

Open in CRMown →

Steps

  1. Go to Tools > Lead Generation > Referrals (or /dashboard/leadgen/referrals).
  2. First-time setup: configure your referral program — name, reward type (credit/discount/cash/custom), reward amount + unit, what the referrer gets, what their friend gets. Save.
  3. AI Candidates panel shows your top 12 customers ranked by referral readiness (score includes lead score, stage, review history, chat engagement, tenure, prior referrals). Each row shows the score + reasons.
  4. Click "Preview ask" to see the Haiku-generated email before sending. Click "Ask now" to send — the email goes from YOUR connected mailbox (creator's OAuth Gmail/Outlook) with Resend fallback.
  5. Funnel strip shows asks-sent → clicks → sign-ups → qualified → rewarded. Top Referrers panel ranks by conversions × clicks. Recent Conversions shows everyone who came in via a ref code.
  6. Conversion lifecycle: pending (signed up) → qualified (you click Qualify after they hit the milestone you defined) → rewarded (you click Issue Reward to mark the incentive paid).

Good to know

  • Public /ref/:code redirect lives in the Growth module (not duplicated in Lead Gen). Hits there increment the link's click counter and redirect to your signup page.
  • Referee gets tagged with source=referral and customFields.referredBy + .referralCode automatically — surfaces on the contact record + flows into F10 dashboard channel attribution.
  • AI candidates rescore on each load. The same person can be asked multiple times across months as their score moves around.
  • No new schema — F9 reused the existing ReferralProgram/Link/Conversion tables (3-table system is richer than the spec's flat Referral model).
Example: A productivity SaaS with 340 customers activates the referral program: $50 credit to referrer, 30% off first 3 months for referee. AI ranks the top 12 advocates — top scorer is a power user who left a 5-star review last month + has 80+ leadScore + 18-month tenure. Founder hits "Preview" → sees a warm 5-line ask with the referral link → "Ask now". Email lands in the customer's inbox FROM the founder's real Gmail. 2 days later: 2 clicks, 1 signup, conversion fires automatically when they fill the trial form (the URL had ?ref=<code> from the email link). 60% of new trials over the next quarter come from referrals.

Troubleshooting

"Set up a referral program before sending asks" error
Program isn't created yet — or it exists but is paused (isActive=false).
Fix: Edit program > toggle Active ON > Save.
"Contact has no email address" on Ask now
Can't send an ask without an email. Some imported customers have phone-only.
Fix: Add an email to the contact, or pick a different referrer.
Conversion didn't auto-attribute when someone signed up
The signup URL didn't include ?ref=<code>, OR the referee's contact record was created OUTSIDE the form-submission pipeline (e.g. via API), OR the referrer was the same as the referee (self-referral blocked).
Fix: Make sure your referral link uses the format /signup?ref=<code> and that signups always go through a CRMown Form (not a direct API call). For API-created contacts, use POST /leadgen/referral/links manually.
Send failed — neither Gmail/Outlook nor Resend worked
No active mailbox AND Resend isn't configured for your org.
Fix: Settings > Communications > Connected Accounts > Connect a mailbox. Or contact support to enable Resend fallback for your org.

Related

  • Growth suite Referrals (the underlying 3-table system; F9 wraps it for marketing-suite users)
  • F3 Outbound Sequencer (same mailbox policy)
  • AI Suite (Haiku for message generation)

View as Markdown