MuxForms referral submission forms collect refer-a-friend details—referrer and friend emails, consent, and hidden campaign codes—in one growth inbox before you connect Rewardful, PartnerStack, or spreadsheet payouts.

Use case

Refer-a-friend and partner referrals

Referral programs need a trustworthy intake pipe before you automate credits, gift cards, or partner payouts.

Referral template

FieldPurpose
referrer_email / friend_emailReward matching
friend_consentPermission to contact referee
campaignHidden promo attribution
customer_idIn-app embed from logged-in user

Refer-a-friend pages often ship as a mailto link or a shared Google Form—then growth asks for fraud checks, campaign IDs, and a CSV export finance can reconcile. MuxForms is the boring middle layer: structured submissions in one inbox until referral SaaS is worth the contract.

Embed on `/referrals`, in the customer dashboard, or beside “Share with a colleague” in B2B products. Collect referrer email (or customer id via hidden field from your app shell), friend name and email, and how they know each other so support can spot self-referrals.

Require a consent field confirming the friend expects contact—reduces CAN-SPAM complaints when your nurture sequence emails the referee. Optional personal note helps AEs recognize warm intros vs bulk paste jobs.

Hidden `campaign` and `referral_code` attribute seasonal promos (“Q4 double credit”) and partner-specific links without showing clutter to users. Clone the form per campaign when reporting must stay separate.

Rate limits and Turnstile matter: referral forms are spam magnets because users expect free credits. Honeypot catches naive bots; you still manually verify before paying rewards at low volume.

Notify growth@ or partnerships@; webhook to your referral platform or a Zapier sheet when submission count justifies automation. Same pattern as waitlists—start inbox-first, integrate later.

Distinct from partnership-inquiries (BD deals) and lead-capture (marketing opt-in). Referral rows should tag `referrer_email` ≠ `friend_email` in review so ops rejects obvious duplicates quickly.

Ready-made template

Create a form named Growth — Referral submission with these fields, then paste the embed on your page. Embed on /referrals or in-app; rate limit + Turnstile; verify both emails before paying rewards; webhook when volume grows.

FieldTypeRequired
Your emailreferrer_emailemailYes
Your namereferrer_nametextYes
Friend's namefriend_nametextYes
Friend's emailfriend_emailemailYes
How do you know them?relationshipselectNo
Why they'd be a good fit (optional)notetextareaNo
My friend agreed to be contacted about this referralfriend_consentconsentYes
CampaigncampaignhiddentextNo
Referral codereferral_codehiddentextNo
Customer IDcustomer_idhiddentextNo
Leave blank_hphiddentextNo

Embed demo

Illustrative preview—wire your form id after signup.

Preview only — connect embed.js to submit

Schema JSON

{
  "name": "Growth — Referral submission",
  "fields": [
    {
      "name": "referrer_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "name": "referrer_name",
      "label": "Your name",
      "type": "text",
      "required": true
    },
    {
      "name": "friend_name",
      "label": "Friend's name",
      "type": "text",
      "required": true
    },
    {
      "name": "friend_email",
      "label": "Friend's email",
      "type": "email",
      "required": true
    },
    {
      "name": "relationship",
      "label": "How do you know them?",
      "type": "select",
      "required": false,
      "options": [
        "Coworker",
        "Friend",
        "Client",
        "Other"
      ]
    },
    {
      "name": "note",
      "label": "Why they'd be a good fit (optional)",
      "type": "textarea",
      "required": false
    },
    {
      "name": "friend_consent",
      "label": "My friend agreed to be contacted about this referral",
      "type": "consent",
      "required": true
    }
  ]
}

Embed snippet

<div data-form-id="FORM_UUID"></div>
<script src="https://www.muxforms.com/embed.js" defer></script>

Common questions

Referrals vs partnership form?
Referrals are customer-to-customer intros; partnership-inquiries is BD—alliance deals.
Stop self-referrals?
Reject rows where emails match; add rate limits and manual review before credits.
Authenticated referrers?
POST hidden customer_id from your app shell; keep ingest secret server-side.
When to upgrade to referral SaaS?
Webhook MuxForms rows until payout rules need automated tracking.

Create the form for this job.

Then clone the pattern for the next site or app.

Upgrade to Pro