Shopify Referral Campaigns: links, codes & payouts

Pay creators for the sales they drive to your Shopify store: set up a campaign, hand out trackable links and per-creator discount codes, see which sales were credited to whom, and pay from your Cruva balance.

For brands and agencies paying creators for the sales they drive to a Shopify store.

The short version

Creators join your campaign and get their own trackable link — one per product, plus a store-wide link if you offer one — and, if you turn it on, their own discount code. When someone buys after using that link or code, Cruva reads it back off Shopify's own record of the visit, credits the sale to that creator, and works out what they earned when the period closes. You confirm every payment; nothing pays itself. Cruva takes 1.5% of attributed sales, billed on your Shopify invoice.

Find it under Creator Community → Shopify (/dashboard/community/shopify-campaigns). It opens as a workspace with its own menu on the left: Overview, Campaigns, Products, Requests, Samples (beta) and Payments.

Before you start

  • A connected Shopify store. Referral tracking needs no new Shopify permissions — the connection you already have is enough. Only discount codes ask for one more.
  • The 1.5% fee, agreed on the campaign form. A campaign can't be published without it. Creators are always paid their full commission; the fee is charged to you.
  • Cruva's fee subscription approved in Shopify. Shopify requires app charges to go through Shopify Billing, so someone at the store approves the charge once. Payouts are held until it's approved, so do this before your first one.
  • A funded Cruva balance — the same one community campaign payouts come from. See Creator payouts & adding funds.

Create a campaign

  1. Go to Creator Community → Shopify → Campaigns → Create campaign.

  2. Name it, write what creators should know, and pick the products they'll promote.

  3. Set what creators earn. The rules add up: percent of sales, a flat amount per order, and a one-off joining fee paid the first time that creator earns anything on the campaign.

  4. Choose how often a period closes — daily, weekly, biweekly or monthly — and the attribution window (7 days by default).

  5. Optionally give each creator their own discount code, and optionally offer a store-wide link.

  6. Optionally require approval to join. Requests then land under Requests in the Shopify workspace's left menu for you to approve.

  7. Add an image, branding, requirements and example posts, then publish.

Then hand the campaign out with Copy creator link. That link opens the campaign page creators see.

A campaign whose only commission rule is set to zero is live and pays nobody. The panel at the top of the Shopify page lists anything holding money up, including that.

What creators see

They open your campaign page, read your terms, and join. Joining gives them their discount code straight away. Links are minted the first time they copy one — so a creator who joined last month can take a link for a product you add tomorrow, which is the point.

Everything is on that one page: their code, the store-wide link if you offered one, a searchable list of your products with a copy button on each, their own sales chart, and what they've earned.

Creator templates

The Cruva creators app lets creators repost their videos to Instagram Reels and auto-DM their link to people who comment. You switch each tool on or off under Creator tools on the campaign form. While at least one of them is on, the Creator templates section underneath lets you write the starting point for them.

Creators can edit anything; templates are a starting point. Nothing in a template is locked.

A template has a Name (creators see it) and any of these three parts:

  • Caption — the Reel caption. Click a placeholder to insert it: {title} (the video's title), {code} (the creator's discount code), {offer} (your discount, e.g. 15%), {brand}, {product} (the linked product's name), {keyword} and {cta}. {cta} reads "Comment LINK and I'll DM you the link" when the creator has auto-DM on and "link in bio" when they don't. The editor shows the caption both ways with sample values. Links are removed from captions, because nobody can tap them there, and #ad is added if you left it out.
  • Include auto-DM settings — the trigger words, how the DM is sent (two-step, which is recommended, or link right away), the first message, the DM text, and an optional public reply to the comment. The creator's own link and code are always added after the DM text.
  • Default link — Campaign default, Whole store (if you offer a store-wide link), or one of the campaign's products. Search for the product by name.

Add up to 10 templates with Add template, and use the arrows to order them. With one template, creators start from it. With several, each creator picks one, and the list is in the order you set.

If you remove a product that a template links to, or switch off the store-wide link, the template is flagged. When you save, its link goes back to the campaign default.

Reviewing reposts

You can approve every Reel before it goes out. Turn on Review reposts before creators post them under Creator tools. This toggle only appears while reposting is on, and it's off until you switch it on.

When review is on:

  • What creators send: a creator who wants to repost a video sends it to you first, together with the exact caption they'll post. The video can be one of their TikToks or a video they uploaded.
  • Where it shows up: it lands in the campaign's Reviews tab. The number on the tab counts the videos waiting for you.
  • What you do: open a video to watch it, read the caption, and leave comments. Click Add comment with Pin to the current time ticked to tie a comment to a moment in the video.
  • Approve: this lets the creator post the video with the caption you approved. You never post for them; they post it themselves from their own Instagram account.
  • Request changes: you must write a note saying what to change. The creator can then send a new caption, a new version of an uploaded video, or both. The new round shows up in the same review, and the previous caption is shown under the current one.

If a creator edits the caption after you approved it, or uploads a new version of the video, they have to send it for review again.

You don't review:

  • the link the creator shares;
  • their auto-DM settings.

Both stay the creator's choice.

How a sale gets credited

Cruva looks for the strongest signal first:

  • Their link — the ?ref= on the URL, read back off the buyer's visit.
  • utm_content — the same code again, which survives platforms that strip parameters they don't recognise.
  • The landing page the buyer arrived on.
  • Their discount code — the only signal a sale has when someone simply typed a code they heard in a video.

Last touch wins. If a buyer used two creators' links, the sale goes to the most recent one inside the window. The window is measured from the visit to the order, so a visit older than the window no longer counts — and a code-only sale is exempt, because a typed code carries no timestamp.

Give it a few minutes. Shopify doesn't finish recording where a visit came from until a little after checkout, so a sale shows up on Cruva's next pass rather than instantly. Refunds arrive the same way and reduce what's owed on their own.

Credited, not sold. A link is credited with the whole order. Someone who arrives through a snowboard link and adds three other things to the basket puts all of it against that link — which is why the Products tab says Credited GMV rather than units sold.

Discount codes

Two modes, and the difference matters:

  • One per creator — each code is built from that creator's handle and names exactly one person, so a sale counts for them even when there was no link at all.
  • One code for everyone — a single code you choose. A code everyone reads out can't say who drove a sale, so those sales are credited through links only. Keep the link in their posts.

Creating codes needs one extra Shopify permission (write_discounts). Cruva asks for it in context the first time you switch codes on, and granting takes seconds in your Shopify admin. Declining leaves you with working links and no codes, which is a perfectly usable campaign.

Codes get shared — one read out in a video reaches coupon sites eventually. Uses per code and one use per customer are what limit that.

Reading the numbers

Open a campaign and you get three tabs:

  • Creators — a row per creator with a sales sparkline, orders, clicks, and what they've been paid and are owed. Expand a row to see the individual links they hold and what each one earned.
  • Products — how each product performed, the store-wide link, and a separate row for sales credited by discount code, which belong to no single product.
  • Payments — every payout computed for this campaign, and what Cruva has charged you.

Prices and images come from what Shopify returned when you picked the products. Refresh product data on the campaign's edit page pulls them again.

Getting paid out

When a period closes, Cruva writes one pending payout per earning creator. Money never moves on its own: you click Pay on a row and it goes from your Cruva balance to that creator. Cruva's 1.5% is posted to your Shopify invoice straight after.

If one of those charges is refused — usually because the billing cap your store approved is used up — payouts are held until it goes through, so the gap can't quietly widen. The banner on the Payments tab has a Retry button; raising the cap needs a fresh approval from the store, and nothing retries on its own.

Pausing vs ending a campaign

  • Pause closes it to new creators. Links already out in the world keep working and keep earning — a creator's video can't be edited, so their posts keep paying.
  • End stops it earning. Sales made while it was live are still credited and still paid out; ending is not a clawback.

Common questions

Do I need a new Shopify permission for this? Not for links, tracking or payouts. Only per-creator discount codes need one, and it's asked for in context.

A creator says their link isn't tracking. Check the campaign is published (not a draft), that the sale is inside the attribution window, and allow a few minutes for Shopify to settle the visit. If they only ever read their code out, the sale is credited by code instead — you'll see it on the Products tab's discount-code row.

Can a creator get a link for a product I add later? Yes. Links are minted when they copy one, so a product added today is available to everyone already in the campaign.

Can I make creators use my caption word for word? Not with templates alone: templates are defaults, and creators can change any part of them. If you turn on Review reposts before creators post them, a Reel can only go out with a caption you approved. Every post still carries #ad, and every DM carries the creator's own link and code.

Two creators, one buyer — who gets it? The most recent link the buyer used inside the window.

Can I pay someone before the period closes? No. Payouts are computed per campaign, creator and period, so the period has to close first. Shorten the cadence if you want to pay more often.

Can payouts go out before the fee subscription is approved? Not by default. If your Cruva contact has agreed it for your store, payouts stop waiting on Shopify Billing: creators get paid as usual, and Cruva's fee is still charged to your Shopify invoice once the subscription is approved. The billing items on Overview then show as warnings, not blockers.

Why don't these numbers match my Shopify reports? They're counting different things on purpose — see why Cruva's numbers differ.

Does this replace my Shopify affiliate app? It's the same job done from inside Cruva, with the creators already in your community. Sales are read from Shopify's own customer journey, so nothing has to be installed on your storefront.

Was this article helpful?

Related articles