Skip to content

Share links

Once you’re approved for an offering, you get a share link — a tracked redirect URL you put in your bio, newsletter, posts, or wherever. Every click on it logs an attribution record; if the user converts, you get the commission.

Where to find them

Network → Share links lists every active partnership with:

  • The brand name + offering
  • Your live share URL (with copy button)
  • The current slug (with edit affordance)

The URL adapts to your domain config:

  • No custom domainapp.openpartner.dev/r/<vendor-slug>/<your-slug>
  • Custom domain (verified)<your-domain>/r/<your-slug>

So if you set up share.you.com per custom domains, every share URL on this page automatically uses that domain. No re-emailing partners or anything — the URL is computed live each time you load the page.

How a click works

When someone clicks your share URL:

  1. The router (Network’s, or your custom-domain Caddy) records a Click row with the creator + brand + offering + IP hash + user-agent
  2. A cref=<clickId> query param is appended to the destination URL
  3. The user gets 302-redirected to the brand’s destination
  4. The brand’s site reads cref from the URL on landing and stores it as a first-party cookie
  5. When the user signs up / converts, the brand’s SDK reports the event back with the cref
  6. Attribution joins click → conversion → commission via that cref value

The whole roundtrip is ~50ms. The user notices nothing other than the URL change.

Editing the slug

Each partnership has its own creatorSlug — what comes after /r/ on your share URL. Defaults to your handle when the partnership was created. Edit it from Share links → click Edit next to the slug.

Constraints:

  • Lowercase letters, numbers, hyphens
  • 1–40 characters
  • Unique within your own partnerships (you can’t have two /r/coherence URLs going to two different brands)

Different creators can both have /r/coherence because the domain disambiguates — your share.you.com/r/coherence and someone else’s share.them.com/r/coherence are independent.

Copying

The copy button writes the live URL to your clipboard. Paste it anywhere — bio links, newsletter, social posts, DMs, paid ad destinations.

Already-shared posts when you change

If you change your slug on a partnership after having posted the old URL somewhere, the old URL stops resolving. The router doesn’t keep redirects for old slugs.

Workaround: don’t edit slugs after posting. If you have to, accept that already-shared posts will 404; consider deleting and re-creating the partnership if you really need a fresh slug.

(There’s a feature request for “alias slugs” / redirect-old-to-new on GitHub. Not yet built.)

Deep linking (brand-controlled)

The default share URL lands on whatever destination URL the brand’s campaign has set (https://acme.com/). Some brands allow you to override the destination per share — landing on https://acme.com/pricing instead of /, for example.

You can tell from the offering page: if the brand allows deep linking, the page shows a “deep link allowed on these hosts” hint with the host allowlist. If you provide a deep-link URL when creating a Link, the router uses it. Otherwise it inherits from the campaign.

For now, deep-link override is brand-API only — the creator portal doesn’t expose a UI for it. Most brands don’t allow it. Coming in a later update.

Coupon codes

Some brands give you a coupon code alongside the share URL — customers who enter it at the brand’s checkout get attributed to you (and usually get a discount themselves), same commission as if they’d clicked the link.

When you’re approved for one of these programs, a starter code shows up automatically on the partnership card under your share URL — typically your handle plus a short suffix (GRACIE5F2A). You can copy it the same way you copy a share URL.

Picking your own code (when allowed)

If the brand has turned on partner-customizable codes for the program, you’ll see a + Add another button above the code list. Click it, type the code you want — A–Z, 0–9, hyphens, 3–40 chars — and Add. The system checks it isn’t already taken and provisions it on the brand’s checkout immediately.

You can run up to 5 active codes per program. Useful for audience-specific tracking: GRACIE-IG for Instagram bio, GRACIE-YT for YouTube descriptions, GRACIE-NEWSLETTER for emails. The redemptions and attributed revenue tally separately per code on the same card, so you can see which channel actually drives sales.

If the brand has the toggle off, only their admin can pick or change codes — your auto- generated one is the only one you’ll see.

Renaming a code (without breaking shared posts)

OpenPartner doesn’t let you “rename” a code in place because that would silently break the old code at checkout — bad for anyone who already saved it from your bio. Instead:

  1. Add the new code (e.g. GRACIE10)
  2. Update your bio / posts to use it
  3. Once you’re sure you’ve migrated traffic, Deactivate the old one

The deactivated code stops working at checkout immediately — anyone entering it after deactivation gets an “invalid code” error. The redemptions it earned over its lifetime stay attributed to you (they’re already in your commissions); only future redemptions are blocked.

If you change your mind before posting the new code anywhere, just deactivate the new one instead. There’s no penalty for iterating.

Codes that aren’t redeeming

If a code shows No redemptions yet (90d) for weeks despite you sharing it, the brand probably hasn’t wired up the OpenPartner checkout integration on their end — the discount might apply (Stripe is independent) but the partner attribution doesn’t fire. The portal shows a hint when this looks like the situation. Reach out to the brand to confirm they’ve configured POST /coupons/redeem or the Stripe webhook integration.

Tracking performance

Per-partnership stats live on Network → My partnerships. Each affiliation shows:

  • 30-day clicks
  • Attributed events
  • Revenue driven
  • Commission by status (accrued, approved, paid)

Aggregate stats across every partnership land on your public profile + the brand-side discovery directory (90-day windows).