Affiliate Marketing
Linkzly's Affiliate feature lets you run your own affiliate program — recruit partners, give them trackable links, automatically attribute conversions to the ri
Affiliate Marketing
Linkzly's Affiliate feature lets you run your own affiliate program — recruit partners, give them trackable links, automatically attribute conversions to the right affiliate, and pay them out. Everything lives inside your Linkzly dashboard, including a branded self-service portal your affiliates log into to track their own performance.
Overview
Setting up an affiliate program in Linkzly involves four main steps:
- Create a program — Define your commission structure, attribution rules, and approval settings.
- Set up a tracking domain — Add a CNAME record so your affiliate links use your own domain.
- Invite affiliates — Bring in partners who receive unique tracking links.
- Track and pay — Approve conversions and send payouts to affiliates.
Navigation
In the left sidebar, the Affiliate section (Handshake icon) contains two pages:
- Programs — Create and manage your affiliate programs.
- Reports — View aggregated analytics across all programs.
Note: The Affiliate section is gated by the
affiliateEnabledfeature flag. If you do not see it in your sidebar, contact your account administrator to enable it.
7.1 Creating an Affiliate Program
- In the left sidebar, click Affiliate, then Programs.
- Click Create Program in the top-right corner.
- Fill in the form and click Save.
Program Fields
| Field | Description | Required |
|---|---|---|
| Program Name | The display name for your program. Shown to affiliates in the portal. | Required |
| Description | A short description of your program. Shown on the affiliate portal join page. | Optional |
| Commission Type | How you calculate commissions. Choose Percentage (a percentage of the conversion value, e.g., 15%) or Fixed (a flat fee per conversion, e.g., $25.00 USD). |
Required |
| Commission Value | The commission amount — either a percentage (e.g., 15) or a fixed amount in your currency (e.g., 25). For percentage type, maximum is 100. |
Required |
| Commission Currency | The 3-letter ISO currency code for fixed commissions and payouts (e.g., USD, EUR). Defaults to USD. |
Optional |
| Attribution Window | How many days after a click a conversion is still credited to the affiliate. Enter a number between 1 and 365. Default is 30. For example, a value of 30 means a purchase made within 30 days of clicking the affiliate's link counts as their conversion. |
Optional |
| Approval Mode | Automatic — conversions are approved immediately. Manual — conversions sit in a pending state until you review and approve them. Default is Manual. | Optional |
| Minimum Order Value | The minimum conversion value required for a commission to be earned. Conversions below this amount are not attributed. Leave blank or set to 0 for no minimum. |
Optional |
Note on Cookie Duration: Affiliate tracking cookies are set for a fixed 30-day window. This is separate from the Attribution Window — the cookie determines how long a click is remembered in the browser, while the Attribution Window determines how long after a click a conversion can still be credited.
After saving, Linkzly generates:
- Program Slug — A short identifier used in your affiliate portal URL (e.g.,
acme-rewards). - Join URL — The public URL affiliates use to sign up:
{your-portal-domain}/portal/{program_slug}/join.
Tip: Share the Join URL in your marketing materials so new affiliates can self-register and start promoting immediately.
Programs List
The Programs page shows a searchable, filterable table of all your programs.
Filters:
- Search: "Search programs..."
- Status: All Status | Active | Inactive | Archived
Table columns:
| Column | Description |
|---|---|
| Program | Program name and slug. |
| Commission | Commission type and value (e.g., 15% or $25.00 USD). |
| Status | Current program status: Active, Inactive, or Archived. |
| Approval | Approval mode: Automatic or Manual. |
| Attribution | Attribution window in days. |
| Created | Date the program was created. |
| Actions | Per-row action menu. |
Per-program actions (⋮ menu):
| Action | Description |
|---|---|
| View Details | Open the full program detail page. |
| Analytics | Jump directly to the program's Overview tab analytics. |
| Rotate Secret | Generate a new API secret for S2S postback authentication. |
| Delete Program | Permanently delete the program and all associated data. Destructive. |
7.2 Setting Up a Tracking Domain
A tracking domain is the domain used in your affiliate links. Instead of links using a generic Linkzly domain, your affiliates' links can use a domain you control (e.g., go.yourcompany.com).
Step 1 — Add a CNAME Record
In your DNS provider (Cloudflare, Route 53, Namecheap, etc.), add the following record:
| Field | Value |
|---|---|
| Name | The subdomain you want to use (e.g., go for go.yourcompany.com) |
| Type | CNAME |
| Value | Shown in your Linkzly Tracking tab settings |
DNS propagation typically takes a few minutes to a few hours.
Step 2 — Verify the Domain
- Go to your program's Tracking tab.
- Enter your domain in the Tracking Domain field (e.g.,
go.yourcompany.com). - Click Verify Domain.
Linkzly checks that the CNAME record is in place and confirms ownership. Once verified, the status changes to Active and your affiliate links will use that domain.
Note: You must complete domain verification before affiliate links can be generated on your custom domain.
7.3 Managing Affiliates
Inviting Affiliates
- Open your program and click the Affiliates tab.
- Click Invite Affiliates.
- In the Email Addresses field, enter one or more email addresses (one per line or comma-separated).
- Optionally add a Personal Message that will be included in the invitation email.
- Click Send Invitations.
Each invited affiliate receives an email with a link to join your program. They click the link, complete registration on your affiliate portal, and are added to your program.
Affiliate Status
| Status | Meaning |
|---|---|
| Pending | Affiliate has been invited or registered but has not been approved yet (applies when your program uses Manual approval mode). |
| Active | Affiliate is approved and can generate conversions. |
| Rejected | The affiliate's application was reviewed and declined. |
| Blocked | The affiliate has been temporarily blocked. Their links are disabled. |
| Suspended | The affiliate's account is suspended. Links are disabled. |
Affiliate Table
The Affiliates tab shows all affiliates in your program. Use the search and status filter to narrow the list.
Filters:
- Search: "Search by name or email..."
- Status: All Status | Active | Pending | Rejected | Blocked
Table columns:
| Column | Description |
|---|---|
| Name & Email | The affiliate's display name and registered email address. |
| Status | Current status badge. |
| Verification | Whether the affiliate has verified their email address. |
| Source | How the affiliate joined (invited, self-registered, etc.). |
| Joined | The date they joined your program. |
| Actions | Per-row action menu. |
Per-Affiliate Actions
Click the ⋮ menu on any affiliate row. Available actions depend on the affiliate's current status:
| Action | When Available | Description |
|---|---|---|
| Resend Invite | Invite token exists and not yet verified | Re-send the invitation email. |
| Approve | Pending and verified | Approve the affiliate's application (Manual approval mode). |
| Reject | Pending and verified | Decline the affiliate's application. Destructive. |
| Block Access | Active | Temporarily block the affiliate. Their links stop working. Destructive. |
| Unblock Access | Blocked | Re-activate a blocked affiliate. |
7.4 Affiliate Tracking Links
Each affiliate gets unique tracking links that record clicks and attribute conversions back to them.
Link Format
Affiliate links follow the format: {tracking-domain}/{slug}
The slug is an auto-generated 6–8 character short identifier (e.g., go.yourcompany.com/ab12cd).
Creating a Tracking Link
- Open your program and click the Links tab.
- Click Create Link.
- Fill in the form and click Save.
| Field | Description | Required |
|---|---|---|
| Destination URL | The page the affiliate link redirects to (e.g., your product page or homepage). | Required |
| Campaign Name | A label for this link (e.g., Summer Sale, Instagram Bio). Visible in your dashboard for reporting. |
Optional |
| Affiliate | The affiliate this link belongs to. If left blank, the link is unassigned. | Optional |
| UTM Source | The UTM source tag to append to the destination URL (e.g., affiliate). |
Optional |
| UTM Medium | The UTM medium tag (e.g., referral). |
Optional |
| UTM Campaign | The UTM campaign tag (e.g., summer_sale). |
Optional |
Link Table
| Column | Description |
|---|---|
| Link | The full tracking URL ready to share. |
| Total Clicks | Total times the link has been clicked. |
| Conversions | Conversions attributed to this link. |
| Status | Whether the link is active or inactive. |
| Actions | Per-row action menu. |
Per-Link Actions
Click the ⋮ menu on any link row:
| Action | Description |
|---|---|
| View Analytics | Open detailed analytics for this link. |
| Edit | Edit the link's destination URL, campaign name, or UTM parameters. |
| Toggle Active/Inactive | Enable or disable the link. Inactive links do not track clicks. |
| Delete | Permanently delete the link. Destructive. |
7.5 Conversion Tracking
A conversion is an action (usually a purchase) that gets attributed to an affiliate. Linkzly supports two methods for recording conversions.
Method 1 — Server-to-Server (S2S) Postback
S2S postbacks are the most reliable method. When a customer completes a purchase on your platform, your server sends a POST request to Linkzly's postback endpoint with the conversion details. Linkzly matches the click and credits the affiliate automatically.
Your postback endpoint URL and required parameters are shown in your program's Integration tab under Conversion Tracking. Requests must be authenticated with your program's API secret using HMAC-SHA256 signing.
Required parameters:
| Parameter | Description |
|---|---|
order_id |
Your unique order identifier. Used as an idempotency key to prevent duplicate conversions. |
order_value |
The total order amount as a decimal number. |
order_currency |
3-letter ISO currency code (e.g., USD). |
Optional parameters:
| Parameter | Description |
|---|---|
external_customer_id |
Your internal customer ID. |
coupon_code |
Coupon code used on the order, for coupon-based attribution. |
line_items |
JSON array of individual line items for detailed reporting. |
Method 2 — Pixel / JavaScript
For simpler integrations, you can fire a JavaScript pixel on your order confirmation page. This method works for web-based conversions where you can add a script to your page. Integration details are available in the Integration tab.
Viewing Conversions
- Open your program and click the Conversions tab.
- Use the status filter to narrow the list:
| Status | What It Shows |
|---|---|
| All | Every recorded conversion regardless of status. |
| Pending | Conversions waiting for manual review (Manual approval mode only). |
| Approved | Conversions confirmed and included in affiliate commissions. |
| Rejected | Conversions reviewed and declined. |
| Refunded | Conversions that were reversed due to a refund. |
Table columns:
| Column | Description |
|---|---|
| Order ID | Your unique order identifier submitted with the conversion. |
| Affiliate | The affiliate credited for this conversion. |
| Amount | The order value. |
| Commission | The commission amount earned by the affiliate. |
| Status | Current conversion status. |
| Actions | Per-row action menu. |
Approving and Rejecting Conversions
If your program uses Manual approval mode, conversions arrive in Pending status. Click the ⋮ menu on any pending conversion:
| Action | Description |
|---|---|
| View Details | Open the full conversion detail view. |
| Approve | Confirm the conversion and add the commission to the affiliate's balance. |
| Reject | Decline the conversion. The commission is not applied. Destructive. |
Note: Conversions can only be approved or rejected while in Pending status. Approved conversions that need to be reversed (e.g., due to a refund) can be reversed via the API, resulting in a Refunded status.
7.6 Portal Customization & Branding
Your affiliates log into a branded self-service portal that looks like your own product. You control every visual element.
Open your program's Branding tab to configure the affiliate portal:
| Setting | What You Configure |
|---|---|
| Portal Enable | Toggle the portal on or off. |
| Organization Name | Your company name displayed in the portal header and emails. |
| Tagline | A short tagline shown below your organization name. |
| Website | Your company website URL. |
| Banner Image | A banner image shown at the top of the portal and on the join page. |
| Logo | Your company logo shown in the portal navigation. |
| Primary Color | Primary brand color used for buttons and key highlights. |
| Secondary Color | Secondary brand color for accents. |
| Accent Color | Accent color for interactive elements. |
| Font Family | The typeface used throughout the portal. |
| Layout Template | The overall layout style for the portal. |
| Hero Title | The main headline shown on the affiliate join/login page. |
| Hero Subtitle | Supporting text shown below the hero title. |
| Hero Image | Image displayed in the hero section of the portal. |
| Custom CSS | Advanced: inject custom CSS for fine-grained style control. |
| Welcome Message | Message shown to affiliates after they log in for the first time. |
| Registration Fields | Configure which fields appear on the affiliate registration form. |
| Support Email | Your support email address shown in the portal footer. |
| Social Links | Links to your social media profiles shown in the portal. |
| Terms of Service URL | Link to your Terms of Service, shown during registration and in the portal footer. |
| Privacy Policy URL | Link to your Privacy Policy, shown during registration and in the portal footer. |
After making changes, click Save. Changes take effect immediately.
7.7 Payout Management
Open your program's Payouts tab to access three sub-views:
- Pending Payouts — Affiliates with balances eligible for payout.
- Batch History — History of all payout batches.
- Payout Settings — Payment configuration for your program.
Payout Settings
Click Payout Settings to configure:
| Setting | Description |
|---|---|
| Payout Methods | JSON configuration for the payment methods your affiliates can use (e.g., PayPal, bank transfer, Wise, crypto). |
| Payout Schedule | How often you process payouts (e.g., monthly, bi-weekly, on-demand). |
| Payout Threshold | The minimum balance an affiliate must accumulate before they are eligible for a payout. |
| Payout Hold Days | The number of days after a conversion is approved before its commission becomes eligible for payout (0–365 days). This gives you time to process refunds before paying affiliates. |
| Tax Rate | The tax rate to apply to commission invoices. |
| Tax Label | The label to display for tax on invoices (e.g., VAT, GST). |
| Tax Inclusive | Toggle whether the commission amount already includes tax (inclusive) or whether tax is added on top (exclusive). |
| Company Name | Your company name as it appears on affiliate invoices. |
| Company Address | Your company address for invoice records. |
| Company Tax ID | Your company tax identification number shown on invoices. |
| Company Tax ID Label | The label for your tax ID (e.g., VAT Number, EIN). |
| Company Country | Your company's country for tax compliance purposes. |
Processing Payouts
- Click Pending Payouts to see the total pending balance and all affiliates who have reached your payout threshold.
- Review the list of eligible affiliates.
- Click Create Payout Batch to group them into a single payout run.
Linkzly creates a payout batch — a grouped payment run — and automatically generates a formal invoice for each affiliate in the batch (formatted as INV-{program-slug}-{sequence-number}).
Batch History
The Batch History sub-view shows all previous payout batches. You can filter by date range and export to CSV.
Table columns:
| Column | Description |
|---|---|
| Batch ID | Unique identifier for this payout run. |
| Date | When the batch was created. |
| Affiliates | Number of affiliates included. |
| Total Amount | Total payout value of the batch. |
| Status | Current batch status. |
Batch statuses:
| Status | Meaning |
|---|---|
| Pending | Batch has been created but processing has not started. |
| Processing | Batch is currently being processed. |
| Completed | All payouts in the batch have been sent successfully. |
| Failed | One or more payouts in the batch failed. |
| Cancelled | The batch was cancelled before processing. |
7.8 Webhooks
Linkzly can send webhook events to your server when key things happen in your affiliate program. This lets you automate downstream actions such as updating your CRM, triggering email sequences, or syncing data with your own database.
Configuring a Webhook
- Open your program's Webhooks tab.
- Click Add Webhook.
- Enter your server's Endpoint URL (must be HTTPS).
- Select the Events you want to receive.
- Save the webhook.
Each webhook is secured with an HMAC secret. Linkzly signs each outgoing request so you can verify that the payload came from Linkzly and has not been tampered with.
Supported Webhook Events
| Event | When It Fires |
|---|---|
conversion |
A new conversion is recorded. |
conversion.approved |
A conversion is approved. |
conversion.rejected |
A conversion is rejected. |
conversion.reversed |
A conversion is reversed (e.g., due to a refund). |
affiliate.approved |
An affiliate's application is approved. |
affiliate.rejected |
An affiliate's application is rejected. |
affiliate.blocked |
An affiliate is blocked. |
payout.created |
A new payout batch is created. |
payout.sent |
A payout is sent to an affiliate. |
payout.failed |
A payout fails. |
Testing and Delivery Log
Use the Test Webhook button to send a sample payload to your endpoint and verify your server is responding correctly. Linkzly tracks consecutive failures per webhook endpoint and can disable a webhook automatically if your server repeatedly returns errors.
7.9 Affiliate Analytics
Program Overview (Overview Tab)
Open your program and click the Overview tab to see the program's core performance metrics:
| Metric | Description |
|---|---|
| Total Clicks | Total clicks across all affiliate tracking links for this program. |
| Conversions | Total conversions attributed to affiliates in this program. |
| Total Commission | Total commission amount earned by affiliates. |
| EPC | Earnings Per Click — average commission earned per click. |
| CR | Conversion Rate — percentage of clicks that resulted in a conversion. |
| RPC | Revenue Per Click — average order value generated per click. |
Reports Page
Navigate to Affiliate → Reports in the sidebar to access cross-program analytics. Use the program selector and date range filters (Date From / Date To) to scope the data, then click Refresh.
The Reports page contains five sub-sections:
Overview
Summary cards for the selected program and date range:
| Metric | Description |
|---|---|
| Total Clicks | Total clicks across all affiliate links in the selected period. |
| Conversions | Total conversions in the selected period. |
| Revenue | Total order value attributed to affiliates. |
| Commission | Total commission earned by affiliates. |
Affiliates
A table ranking affiliates by performance:
| Column | Description |
|---|---|
| Name | Affiliate display name. |
| Clicks | Total clicks from this affiliate's links. |
| Conversions | Conversions attributed to this affiliate. |
| Revenue | Total order value from this affiliate's conversions. |
| Commission | Total commission earned by this affiliate. |
| CR | Conversion rate for this affiliate. |
Links
A table of all tracking links and their performance:
| Column | Description |
|---|---|
| Link | The tracking URL. |
| Clicks | Total clicks on this link. |
| Conversions | Conversions attributed to this link. |
| Status | Whether the link is active or inactive. |
Geo
A breakdown of clicks by country:
| Column | Description |
|---|---|
| Country | Country name. |
| Clicks | Number of clicks from this country. |
| Percentage | Share of total clicks from this country. |
Devices
A breakdown of clicks by device type:
| Column | Description |
|---|---|
| Device | Device type (e.g., Desktop, Mobile, Tablet). |
| Clicks | Number of clicks from this device type. |
| Percentage | Share of total clicks from this device type. |
7.10 The Affiliate Self-Service Portal
Your affiliates do not log into your Linkzly dashboard. They get their own branded portal at {your-portal-domain}/portal/{program_slug}.
Affiliate Portal Pages
| Page | What Affiliates See |
|---|---|
| Dashboard | A summary of their performance: total clicks, conversions, earnings, and a time-series chart. |
| Links | All their tracking links with click and conversion counts. They can create new links by entering a destination URL. |
| Conversions | A list of all conversions attributed to them, with status (Pending / Approved / Rejected / Refunded), order value, and commission earned. |
| Payouts | Their payout history and current pending balance. They can see when payouts were processed and the amounts paid. |
| Profile | Their account settings including name, email, and their preferred payout method. |
Affiliate Registration
New affiliates register at {your-portal-domain}/portal/{program_slug}/join. If your program uses Manual approval mode, they see a message that their application is under review. If Automatic, they are immediately approved and can start generating links.
Affiliate Payout Setup
On their Profile page, affiliates select their preferred payout method and enter the relevant details (PayPal email, bank account number, wallet address, etc.). This information is stored securely and used when you process payout batches.
Tips and Best Practices
-
Start with Manual approval mode. When launching your program, using Manual approval lets you review each applicant before they start promoting your brand. You can always switch to Automatic once you have your vetting process established.
-
Set a payout hold period. A hold of 15–30 days gives you time to process returns and cancellations before paying out commissions on orders that might be refunded.
-
Use campaign names on links. Ask affiliates to create separate links for each campaign (Instagram, newsletter, YouTube). This makes it easy to see which channels are driving the most conversions in the Links report.
-
Customize the portal branding before inviting affiliates. First impressions matter. Set up your logo, colors, and hero text in the Branding tab before sharing your Join URL so affiliates see a polished experience from day one.
-
Use UTM parameters on affiliate links. Add UTM tags when creating links so affiliate traffic is clearly labeled in your analytics tools and in Linkzly's own Reports page.
-
Monitor your webhook delivery log. If your server goes down during a conversion event, check the Webhooks tab delivery log to see which events failed. Use the Test Webhook button to verify your endpoint is healthy after any outage.
-
Set a Minimum Order Value if you sell products at varying price points. This prevents very small orders from generating commissions and keeps your program economics predictable.
-
Use the Attribution Window strategically. A longer attribution window (e.g., 60–90 days) benefits affiliates promoting considered purchases, while a shorter window (e.g., 7–14 days) is appropriate for impulse purchases. Remember that the browser cookie is fixed at 30 days regardless of this setting.
Was this helpful?
Help us improve our documentation