> ## Documentation Index
> Fetch the complete documentation index at: https://beta-docs.replo.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Affiliates

> Refer new customers to Replo and earn a commission on what they spend.

export const Screenshot = ({src, altText, width, shadow = true}) => {
  const generateAltText = imageSrc => {
    if (!imageSrc) return "Screenshot";
    const filename = imageSrc.split("/").pop() ?? "";
    const nameWithoutExt = filename.replace(/\.[^/.]+$/, "");
    const readable = nameWithoutExt.replace(/[-_]/g, " ").replace(/\b\w/g, char => char.toUpperCase());
    return readable === "" ? "Screenshot" : readable;
  };
  const finalAltText = altText ?? generateAltText(src);
  const imageWidth = width ? `${width}px` : "100%";
  return <div style={{
    position: "relative",
    width: "100%",
    borderRadius: "12px",
    overflow: "hidden",
    boxSizing: "border-box",
    display: "flex",
    justifyContent: "center"
  }}>
      {}
      <svg style={{
    position: "absolute",
    top: 0,
    left: 0,
    width: "100%",
    height: "100%",
    zIndex: 0,
    pointerEvents: "none"
  }} viewBox="0 0 1920 1080" fill="none" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice">
        <g clipPath="url(#clip0_5067_2569)">
          <rect width="1920" height="1080" fill="black" />
          <g opacity="0.9" filter="url(#filter0_fn_5067_2569)">
            <mask id="mask0_5067_2569" style={{
    maskType: "alpha"
  }} maskUnits="userSpaceOnUse" x="539" y="-367" width="2018" height="1261">
              <rect x="539" y="-367" width="2017.6" height="1261" fill="#C4C4C4" />
            </mask>
            <g mask="url(#mask0_5067_2569)">
              <g filter="url(#filter1_f_5067_2569)">
                <path d="M880.949 82.6474L1798.19 -385.441L2215.11 -385.441L2725.35 -260.618L936.539 437.057L880.949 82.6474Z" fill="url(#paint0_linear_5067_2569)" />
              </g>
              <g filter="url(#filter2_f_5067_2569)">
                <ellipse cx="462.152" cy="150.719" rx="462.152" ry="150.719" transform="matrix(0.914846 -0.403803 0.330497 0.943807 1250.96 112.228)" fill="#FEBC2E" />
              </g>
              <g filter="url(#filter3_f_5067_2569)">
                <path d="M1687.1 56.3942C2102.4 -149.497 2274.54 -159.301 2672.61 -80.8668L2803.87 183.851L884.491 784.367C849.346 777.831 951.195 612.791 1228.77 362.78C1281.1 315.653 1271.81 262.285 1687.1 56.3942Z" fill="url(#paint1_linear_5067_2569)" />
              </g>
              <g opacity="0.7" filter="url(#filter4_f_5067_2569)">
                <path d="M1975.09 -76.9728C2367.51 -238.299 2270.38 -191.657 2637.67 -120.329L2758.78 120.402L1001.73 662.047C969.304 656.104 932.244 530.091 1043.42 349.988C1182.4 124.86 1518.29 110.824 1975.09 -76.9728Z" fill="#B7FEAE" fillOpacity="0.5" />
              </g>
              <g filter="url(#filter5_f_5067_2569)">
                <path d="M2052.63 99.5535C2383.11 16.7587 2366.44 -59.7112 2665.61 -7.17013L2707.81 170.156L1276.64 569.14C1250.23 564.762 1220.04 471.939 1310.6 339.273C1423.8 173.44 1803.59 161.946 2052.63 99.5535Z" fill="#EF196E" />
              </g>
              <g opacity="0.4" filter="url(#filter6_f_5067_2569)">
                <ellipse cx="462.152" cy="218.806" rx="462.152" ry="218.806" transform="matrix(0.914846 -0.403803 0.330497 0.943807 1152.46 417.938)" fill="#FFEB80" />
              </g>
              <g filter="url(#filter7_f_5067_2569)">
                <ellipse cx="462.152" cy="150.719" rx="462.152" ry="150.719" transform="matrix(0.914846 -0.403803 0.330497 0.943807 1913.18 237.904)" fill="#B7FEAE" />
              </g>
              <g filter="url(#filter8_f_5067_2569)">
                <g opacity="0.4" filter="url(#filter9_f_5067_2569)">
                  <path d="M1551.1 493.269L2619.23 -0.477507L3125.23 -71.2418L3756.49 -67.6927L1652.68 739.798L1551.1 493.269Z" fill="url(#paint2_linear_5067_2569)" />
                </g>
              </g>
              <g filter="url(#filter10_f_5067_2569)">
                <g opacity="0.4" filter="url(#filter11_f_5067_2569)">
                  <path d="M1696.12 652.03L2820.04 310.947L3330.91 310.947L3956.12 401.903L1764.24 910.278L1696.12 652.03Z" fill="url(#paint3_linear_5067_2569)" />
                </g>
                <g opacity="0.4" filter="url(#filter12_f_5067_2569)">
                  <path d="M1628.55 727.676L2843.38 257.743L3271.53 195.271L3903.03 210.271L1788.72 978.91L1628.55 727.676Z" fill="url(#paint4_linear_5067_2569)" />
                </g>
              </g>
            </g>
          </g>
        </g>
        <defs>
          <filter id="filter0_fn_5067_2569" x="637.809" y="-607" width="2158.79" height="1741" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="120" result="effect1_foregroundBlur_5067_2569" />
            <feTurbulence type="fractalNoise" baseFrequency="1 1" stitchTiles="stitch" numOctaves="3" result="noise" seed="7978" />
            <feColorMatrix in="noise" type="luminanceToAlpha" result="alphaNoise" />
            <feComponentTransfer in="alphaNoise" result="coloredNoise1">
              <feFuncA type="discrete" tableValues="1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " />
            </feComponentTransfer>
            <feComposite operator="in" in2="effect1_foregroundBlur_5067_2569" in="coloredNoise1" result="noise1Clipped" />
            <feFlood floodColor="rgba(0, 0, 0, 0.25)" result="color1Flood" />
            <feComposite operator="in" in2="noise1Clipped" in="color1Flood" result="color1" />
            <feMerge result="effect2_noise_5067_2569">
              <feMergeNode in="effect1_foregroundBlur_5067_2569" />
              <feMergeNode in="color1" />
            </feMerge>
          </filter>
          <filter id="filter1_f_5067_2569" x="878.4" y="-387.991" width="1849.5" height="827.597" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="1.27461" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter2_f_5067_2569" x="1129.77" y="-334.846" width="1187.61" height="805.41" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="84.0203" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter3_f_5067_2569" x="855.856" y="-148.194" width="1969.97" height="954.514" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="10.9761" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter4_f_5067_2569" x="958.113" y="-196.498" width="1811.26" height="869.143" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="5.29875" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter5_f_5067_2569" x="1149.75" y="-124.443" width="1658.06" height="793.583" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="50" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter6_f_5067_2569" x="1098.27" y="39.191" width="1098.61" height="797.277" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="60.1484" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter7_f_5067_2569" x="1886.85" y="-114.306" width="997.881" height="615.684" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="36.5888" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter8_f_5067_2569" x="1540.3" y="-82.0399" width="2226.99" height="832.636" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="5.39908" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter9_f_5067_2569" x="1547.97" y="-74.3651" width="2211.64" height="817.287" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="1.56172" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter10_f_5067_2569" x="1598.84" y="165.553" width="2387" height="843.074" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="14.8586" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter11_f_5067_2569" x="1693" y="307.824" width="2266.24" height="605.577" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="1.56172" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <filter id="filter12_f_5067_2569" x="1617.84" y="184.562" width="2295.9" height="805.057" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
            <feFlood floodOpacity="0" result="BackgroundImageFix" />
            <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
            <feGaussianBlur stdDeviation="5.35445" result="effect1_foregroundBlur_5067_2569" />
          </filter>
          <linearGradient id="paint0_linear_5067_2569" x1="1803.15" y1="-385.441" x2="1040.5" y2="259.543" gradientUnits="userSpaceOnUse">
            <stop stopColor="#FF7D54" />
            <stop offset="1" stopColor="white" stopOpacity="0" />
          </linearGradient>
          <linearGradient id="paint1_linear_5067_2569" x1="2283.14" y1="-17.1385" x2="1351.98" y2="310.625" gradientUnits="userSpaceOnUse">
            <stop stopColor="#B7FEAE" />
            <stop offset="0.65537" stopColor="#EF196E" />
            <stop offset="1" stopColor="#274AE2" />
          </linearGradient>
          <linearGradient id="paint2_linear_5067_2569" x1="2625.25" y1="-1.32004" x2="2201.56" y2="820.649" gradientUnits="userSpaceOnUse">
            <stop stopColor="#3A4CF0" />
            <stop offset="1" stopColor="#F5FAD9" stopOpacity="0" />
          </linearGradient>
          <linearGradient id="paint3_linear_5067_2569" x1="2826.12" y1="310.947" x2="2295.81" y2="1065.13" gradientUnits="userSpaceOnUse">
            <stop stopColor="#EF196E" />
            <stop offset="1" stopColor="white" stopOpacity="0" />
          </linearGradient>
          <linearGradient id="paint4_linear_5067_2569" x1="2452.05" y1="509.031" x2="2135.78" y2="1074.58" gradientUnits="userSpaceOnUse">
            <stop offset="0.166667" stopColor="#EF196E" />
            <stop offset="0.541667" stopColor="#FFEB80" stopOpacity="0.25" />
            <stop offset="1" stopColor="#274AE2" stopOpacity="0" />
          </linearGradient>
          <clipPath id="clip0_5067_2569">
            <rect width="1920" height="1080" fill="white" />
          </clipPath>
        </defs>
      </svg>

      {}
      <div style={{
    position: "relative",
    zIndex: 1,
    padding: "clamp(24px, 4vw, 48px)",
    display: "flex",
    alignItems: "center",
    justifyContent: "center",
    width: "100%"
  }}>
        <img src={src} alt={finalAltText} style={{
    width: imageWidth,
    maxWidth: "100%",
    height: "auto",
    display: "block",
    borderRadius: "8px",
    boxShadow: shadow ? "0 20px 60px rgba(0, 0, 0, 0.3)" : "none"
  }} />
      </div>
    </div>;
};

<Card title="Apply to be an affiliate" icon="rocket" href="https://partners.dub.co/replo">
  Join the Replo Affiliate Program and earn up to 50% commission on referrals.
</Card>

The Replo Affiliate Program lets you earn up to 50% of the subscription revenue from customers you refer for the first twelve months of their subscription. Powered by [Dub](https://dub.co), the program handles everything from tracking to payouts automatically.

## How the Program Works

When you sign up for Replo and create a new workspace, you're automatically assigned a unique referral link (e.g., `try.replo.app/your-code`). Here's how the referral process works:

1. **Share your referral link**: Send your link to your audience, clients, or network.
2. **Someone clicks and signs up**: When they click your link and create a Replo account, Dub records them as a lead.
3. **They subscribe to a paid plan**: When this lead upgrades to a paid subscription, Dub records the sale and calculates your commission. This commission lands in your Dub account, even if you have not connected a payout method just yet.
4. **You get paid**: Commissions are paid out automatically through Dub once you've completed your profile and connected a payout method.

You earn commissions on each referred customer's subscription for 12 months, starting from their subscription start date. The commission rate depends on which affiliate tier you fall into.

## Affiliate Tiers

Your commission rate increases as you refer more paying customers. The more successful referrals you generate, the higher your revenue share.

| Tier     | Paying Referrals | Revenue Share |
| -------- | ---------------- | ------------- |
| Standard | 0–24             | 20%           |
| Gold     | 25+              | 50%           |

To illustrate, let's say you refer 20 paying customers who each pay \$100/month:

* Since you are at the **Standard** tier (20%), you earn \$20 per customer per month.
* That's \$400/month in recurring commissions!
* You can refer 5 more users to reach the Silver tier and earn \$30 per customer.

<Tip>
  Your tier is based on total paying referrals. As you hit each threshold, your commission rate automatically changes.
</Tip>

Let us now go over how you can monitor your accrued referral earnings within the Replo workspace.

## Your Referrals Dashboard

To open your Referrals Dashboard, open the **Settings** app from the app launcher and select **Referrals** under **Account Settings**.

<Screenshot src="/images/cropped/settings-referrals.png" altText="The Referrals tab in Settings, showing your referral link, rewards, earnings, and the Dub-powered dashboard" />

The **Referrals** tab contains a dashboard integrated with our affiliate partner **Dub** embedded directly in Replo. From here you can:

* **Copy your referral link**: Your unique link sits at the top; use **Copy link** to share it anywhere.
* **Track performance**: See earnings for referred customers under the **Earnings** tab.
* **View all of your referral links**: Easily copy your referral links to share in the **Links** tab.
* **Manage payouts**: Connect your payout method to collect earnings from the **Receive earnings** panel.
* **See how you rank**: Check how you stack against other affiliates on the **Leaderboard** tab.

### Setting Up Payouts

<Note>
  You can start earning commissions immediately, but you will only be able to get paid out by our affiliate partner Dub once you've set up a payout method.
</Note>

You'll need to complete two steps to receive payouts:

1. Within your Referrals Dashboard, click the **Connect payouts** button within the panel entitled **Receive earnings**.

<Screenshot src="/images/getting-started/affiliates/ReceiveEarnings.png" width={300} />

2. In the ensuing form, complete your Dub partner profile and connect your payout method to start receiving payouts.

## Best Practices

### Share with the right audience

Performance marketers, ecommerce brands, and agencies building landing pages get the most value from Replo. Focus your referrals on people who will use the product.

### Provide context

Explain why you recommend Replo. Personal recommendations convert better than generic link drops.

### Track your results

Monitor clicks and conversions in your Referrals Dashboard. Understanding which channels work helps you optimize your strategy.

### Be transparent

Disclose that you're a Replo referral partner when sharing your link. Transparency builds trust with your audience and is required by FTC guidelines for affiliate marketing.

<Warning>
  Referral links must be shared ethically. Don't use misleading claims or spam. Violations may result in removal from the program.
</Warning>

## Frequently Asked Questions

<AccordionGroup>
  <Accordion title="How do I sign up for an affiliate account with Replo?">
    When you first open your workspace, Replo automatically sets up your affiliate account and referral link. You'll see 0 clicks and \$0 earnings initially, just head to the Referrals Dashboard, copy your link, and start sharing.

    Alternatively, you can sign up to become a Replo affiliate via the following [application form](https://partners.dub.co/replo).

    If you were already a Replo affiliate prior to Dub and are wondering if you need to sign up for the Replo affiliate program again, please see the question below.
  </Accordion>

  <Accordion title="I was already a Replo affiliate before the migration to Dub. What should I expect?">
    We've migrated our current affiliate program to Dub! Here's what that means for you:

    * **Your referred customers and payouts have been moved to Dub.** You'll now manage everything through your Dub dashboard.

    <Note>
      **Shopify App Store customers:** Customers who onboarded through the Shopify App Store can't be migrated to Dub. To make sure you're fairly compensated, we'll provide a one-time payout covering all remaining commissions for those customers' subscription terms.
    </Note>

    * **Your referral links will continue to work.** All existing links (like `replo.app/signup/your-code`) will automatically redirect to your new link (`try.replo.app/your-code`).
    * **You need to set up your Dub account to keep receiving payouts.** Check your email for an invite with the subject **"Important update on your Replo Affiliate account!"** (it may be in Promotions or spam). Follow the instructions in the email, complete the onboarding flow, then go to the "Invitations" tab in your Dub dashboard and accept the invite there as well. After this point, you will be able to get paid out.

    If you didn't receive an invitation email, reach out to us and we'll resend it.
  </Accordion>

  <Accordion title="What if a referral cancels and gets a refund?">
    Our partner Dub handles this automatically. When a purchase is refunded, the associated commission is marked as `refunded` and won't be paid out.
  </Accordion>

  <Accordion title="What if someone uses a discount code with my link?">
    Your commission reflects the actual amount paid. If someone uses a 20% off code on a \$100 plan, your commission is calculated on the \$80 they paid.
  </Accordion>

  <Accordion title="What if a referral upgrades their subscription?">
    Subscription upgrades are tracked as new sales. If someone you referred upgrades from Starter to Pro, Dub records a new sale for the upgraded amount, and you earn a commission on that upgrade.
  </Accordion>

  <Accordion title="What if a referral downgrades their subscription?">
    Downgrades may require commission adjustment. The Replo team handles these cases to ensure accurate payout amounts.
  </Accordion>

  <Accordion title="How long does the referral cookie last?">
    The Dub cookie persists for a set attribution window of 90 days. If someone clicks your link and signs up within that window, you receive credit for the referral.
  </Accordion>

  <Accordion title="Can I refer existing Replo users?">
    No. Referrals are only counted when someone clicks your link, creates a new Replo account, and later subscribes to a paid plan. Existing Replo users who click your link won't be attributed to you.
  </Accordion>

  <Accordion title="Can I refer my company or myself?">
    Affiliate links are not for personal use or use by your own company/team. Self-referrals are not counted and could result in the deletion of your affiliate account. Please refer to our [Terms of Service](https://www.replo.app/terms/referral-partner-program-terms-and-conditions) for more details.
  </Accordion>

  <Accordion title="What type of promotion is prohibited?">
    Competing against Replo for paid ads is not permitted. Spamming, misleading advertising, malvertising, the use of unauthorized coupons, and cookie stuffing are strictly prohibited.
  </Accordion>

  <Accordion title="Why was my application to Replo's affiliate program rejected?">
    We appreciate your interest in the Replo Affiliate Program. Unfortunately, we're unable to provide individual feedback on applications. Here are some common reasons applications may be declined:

    1. The application was incomplete or missing key details.
    2. The contact email didn't match the information on your business or social profiles.
    3. Your promotional approach wasn't aligned with our current campaign priorities.

    You're welcome to reapply in the future if your content or audience evolves. We review new applications on a regular basis.
  </Accordion>

  <Accordion title="When do I get paid?">
    Payouts are processed by Dub on a regular schedule. You can view your payout status and history in the Referrals Dashboard under the **Earnings** tab after connecting a payment method.
  </Accordion>

  <Accordion title="How long do I earn commissions for each referral?">
    You earn commissions on a referred customer's subscription for 12 months from their subscription start date. After that period, commissions for that customer end, but any new referrals continue to generate commissions for their own 12-month windows.
  </Accordion>

  <Accordion title="How do I update my payout account?">
    To update the PayPal account connected to your Dub affiliate payouts:

    1. Go to [partners.dub.co](https://partners.dub.co) and sign in.
    2. Navigate to **Settings** → **Payouts**.
    3. From there, you can update or reconnect your PayPal account.

    If you're having trouble, reach out to us and we can help resolve any payout issues.
  </Accordion>
</AccordionGroup>

***

For complete program rules and policies, please review our [Referral Partner Program Terms and Conditions](https://www.replo.app/terms/referral-partner-program-terms-and-conditions).
