Run offers, end to end.
ACTIONABLE AFFILIATE folds four tools into one workspace — a contacts CRM, an email mailer, a split-testable campaign tracker, and an AI advisor that reads your real numbers. This guide walks the whole path: traffic in, leads and revenue out.
Overview & Setup Path
When you create an account you get a workspace — an isolated organization where every campaign, contact, lead, domain, and broadcast lives. Nobody outside it can see your data, and you can invite teammates into the same workspace to share everything.
Finding your way around
The sidebar inside the app is your map. Each destination has a dedicated chapter in this guide:
- Dashboard — a stats overview of recent activity across campaigns and broadcasts.
- Campaigns — tracked offers, their landing-page variants, and links.
- Contacts — your CRM of everyone who entered the workspace, with tags and custom fields.
- Leads & Forms — a pipeline view plus a builder for hosted lead-capture forms.
- Mailer — compose broadcasts, manage templates, review send logs.
- Domains — connect your own domains for pages, links, and email.
- AI Chat — ask the advisor about the docs or your real performance.
- Settings — manage your AI key, default model, and account preferences.
The typical first-run path
You don't have to follow this order — but it's the fastest route to a working funnel. Each step links straight to its chapter.
Add a domain
Connect a domain you own and dedicate it to pages, links, email, or all three. → Domains
Create a campaign with variants
Name it, give it a slug, attach a verified domain, add landing-page variants and split weights. → Campaigns
Share your tracking links
Hand the auto-generated links to affiliates or use them in your own ads. Clicks and conversions record automatically. → Tracking
Collect leads & contacts
Build a hosted form or let landing pages capture visitors. Every submission becomes a contact and a lead. → Leads & Forms
Send a broadcast
Target by tags, preview, test to yourself, then launch to your full audience. → Broadcasts
Ask the AI advisor
“How does split testing work?” or “How did my last campaign perform this week?” → AI Advisor
Domains
Connecting your own domain lets your landing pages, tracking links, and email run under your own brand instead of a generic platform address.
Adding a domain
When you add a domain you choose which purposes it serves — any combination of the three:
- Pages — campaign landing pages are served on this domain.
- Links — tracking links (
/c/{code}) run on this domain. - Email — send broadcasts and transactional email from an address on this domain.
One domain can cover all three, or you can split them — say, one domain for landing pages and a separate one purely for sending email.
Verifying with DNS
After adding a domain you're shown the exact DNS records to create at your registrar. Add them, then click Verify. Need the record details? See the DNS record cheat-sheet
Understanding the status chips
A domain only becomes fully active for a purpose once its relevant checks — page routing and, separately, email identity — both show verified.
Campaigns
A campaign is a tracked offer: a landing page (or set of variants) plus a destination you send visitors to. Every click, conversion, and stat rolls up to a campaign — they're the core building block of the tracker.
Creating a campaign
- A name — for your own reference, shown throughout the dashboard.
- A slug — the URL segment your landing page lives at.
- An optional domain — one of your verified domains. No domain yet? The campaign exists but has no live landing page until you assign one.
- An offer URL — where visitors go after converting or clicking through, e.g. a network or advertiser link.
How the landing URL works
Your slug combines with the domain to form the address: https://{your-domain}/{slug}. Two campaigns on the same domain need different slugs — a slug only has to be unique within a domain. A domain-less campaign's slug must be unique across your other domain-less campaigns.
The offer URL & the click ID
Your offer URL can include the token {click_id} anywhere; it's replaced with that visitor's unique click ID on redirect, so conversions can be matched back to the exact visit. Leave it out and the ID is appended automatically as a click_id query parameter — attribution is never lost. How click-ID pass-through works
Campaign status
Only Active campaigns render a landing page or accept redirects; the others return not-found. Switching back to active brings the page and links online immediately with whatever variants and weights are configured.
Handling suspicious traffic with a safe variant
A campaign can designate one variant as its safe page. When bot detection flags a visitor as suspicious, they can be shown the safe variant instead of your split-tested pages — keeping your real conversion data clean without ever fully blocking anyone. It's optional; skip it and flagged visitors still see a normal variant, just excluded from stats. How bot detection decides
Split Testing
Every campaign can run more than one landing page at once, sending a share of traffic to each so you learn which converts best. It's built into every campaign — no extra setup.
Variants
Each campaign can have between 1 and 5 variants. The enabled variants' weights must add up to exactly 100. A 50/50 test is two variants at 50 each; a three-way might be 40/30/30. Disable a variant without deleting it to pull it from rotation — the remaining weights cover the traffic. Weighting rules & examples
Two ways to build a page
- Template mode — pick a ready-made template and fill fields (headline, subheading, body, CTA, image). Fastest to launch; guarantees clean, tested markup.
- Raw HTML mode — paste your own HTML for full control. It's sanitized before serving. What sanitization strips
How visitors are assigned a variant
On landing, the tracker picks a variant using your weighted split, then remembers the choice with a cookie lasting 30 days. The same visitor keeps seeing the same variant on repeat visits — so per-variant reporting stays accurate and the page never changes out from under them mid-funnel.
Previewing a specific variant
While building or QAing, force a variant to load by adding ?variant={id} to the landing URL. This bypasses weighted selection and doesn't disturb the sticky cookie for real visitors.
Personalizing pages with dynamic text
Both template and raw HTML variants support token substitution from the visitor's URL parameters. Writing {utm_term} in a headline echoes back whatever was in that visitor's utm_term — great for matching the exact keyword or ad copy that brought them in. Token syntax & fallbacks
Tracking
The tracker records every visitor who touches your campaigns and every conversion that follows — so your stats reflect what actually happened, not what your ad network self-reports.
Tracking links
Every link follows the pattern /c/{code} on one of your domains. A click is recorded and the visitor is redirected to your offer URL with the click ID attached. Visiting a landing page directly also records a click (deduplicated per session) — so you get credit for direct and organic traffic too.
What gets captured on every click
Standard UTMs (source, medium, campaign, content, term), the major ad-platform click IDs — fbclid, gclid, msclkid, ttclid — the referrer, and the visitor's country. Any other query parameters are captured too, so you can pass custom values through from your own systems.
Recording conversions
Two ways a conversion attaches back to a click:
- Server-to-server postback — your network calls a postback URL with the click ID, optional payout, and transaction ID. Most reliable; independent of the browser. Postback URL format
- Pixel / JavaScript snippet — a pixel on your thank-you page fires a conversion using the click ID stored in the visitor's cookie. Useful when your network doesn't support postbacks.
Bot detection
Every click is screened for non-human signals — known bot user agents, missing browser headers, automated patterns. Flagged clicks are excluded from reported stats (and optionally shown your safe variant). Detection never blocks anyone outright; it only filters and flags. Signals used
Reading your stats
For each campaign — and broken out per variant — you'll see: open the metrics glossary
Building tracking links with UTMs
Each campaign includes a UTM generator: pick your source, medium, campaign, content and term, and it builds a ready-to-share link encoded correctly. Save presets for combos you reuse and copy the finished link in one click. Using the UTM builder
Leads & Forms
Leads track prospects from first contact through to a closed deal. Forms are one of the main ways new leads enter your workspace.
The lead pipeline
Attach notes as you work a lead, and set a follow-up date so you know when to check back — useful for keeping a pipeline of any size from falling through the cracks.
Where leads come from
Each lead records its source — a hosted form, a visitor converting on a campaign page, or a manual add. When a lead originates from a tracked campaign click, it's automatically linked back to that campaign, so you see which campaigns generate actual leads, not just clicks.
Building a form
The builder assembles a form field by field. Supported types: single-line text, email, multi-line text, dropdown select, and checkbox. Every form needs exactly one email field (that's what ties a submission to a contact). Mark fields required or optional, and choose the post-submit action: show a success message, or redirect to a URL. Notification & autoresponder emails
Hosting a form
Once built, a form is hosted at its own address on any of your connected domains — ready to share directly, embed as a link in ads, or link from a campaign landing page.
What happens on submission
- Their contact record is created or updated (matched by email), just like any other way contacts enter your workspace.
- A new lead is created in your pipeline with status “New.”
- If the visitor arrived through a tracked click, the submission auto-attributes both the lead and — where applicable — a conversion back to that click, so your stats reflect the full funnel from click to lead.
Spam protection
Two invisible layers keep bots out. How the honeypot & rate-limiting work
Contacts
Contacts are your CRM: everyone who signed up through a form, opted into a list, or otherwise entered your workspace. Each record is your source of truth for who someone is and what you know about them.
One record per person
Each contact is unique by email address within your workspace. Submit a second form with the same email and the existing record is updated, not duplicated — so tags, custom fields, and history accumulate on a single record over time.
Tags
Tags are simple labels — a contact can carry as many as you like. They're the primary way you segment: source, interest, lifecycle stage, anything. When you send a broadcast you target it by picking one or more tags, and everyone with a matching tag joins that send's audience.
Custom fields
Beyond name and email, contacts carry custom fields — arbitrary extra data from your forms or added manually (phone, product interest, anything). Custom fields are available as merge tags in broadcasts, so you can personalize beyond a first name. Merge tags in broadcasts
Where contacts come from
Each record tracks its signup source (which form or campaign) and method — a clear picture of which channels actually generate people in your CRM, and useful context the AI advisor can draw on.
Unsubscribes & suppressions
Every contact gets a unique unsubscribe link on every broadcast, plus a one-click unsubscribe header that lets Gmail and major webmail offer a built-in unsubscribe action. Separately, the platform auto-tracks suppressions — addresses that bounced or complained. Either way, those contacts are always excluded from sends. Unsubscribe vs suppression
Broadcasts
Broadcasts send email to your contacts — announcements, promotions, any message you want to reach a segment at once. They live under Mailer alongside reusable templates and send logs.
Composing a broadcast
The composer is a rich-text editor — write with formatting, links, and images like any modern email tool. Set a subject line and preview text (the snippet inboxes show before the email is opened). Personalize with merge tags like {{first_name}}, which fill in each recipient's actual data — including custom fields. Merge tag reference
Choosing your audience
Target by selecting one or more tags — every contact with a matching tag joins the audience. A live recipient count updates as you adjust, so you know exactly how many people will receive it before committing. Unsubscribed and suppressed contacts are always excluded automatically.
Testing before you send
Send a test copy to yourself (or any address) to check formatting, merge tags, and links render as expected before hitting your full list.
How sending works
A launched broadcast doesn't go out all at once — it's processed in batches so large sends stay reliable. A send to tens of thousands can run without timeouts, and can be paused mid-send and resumed without duplicating or losing track of who's already received it. Batched sending & tracking progress
Which domain your broadcast sends from
With a verified sending domain (set up under Domains), broadcasts send from that domain for a consistent, branded from-address. No verified domain yet? Broadcasts fall back to the platform's shared domain, so you can start sending right away. Sending domain selection
AI Advisor
A chat assistant built into the platform that answers questions about how to use ACTIONABLE AFFILIATE and reads your own workspace's real performance data to help you make decisions.
Bringing your own key
The advisor runs on your own OpenRouter API key, added once under Settings. Your key is encrypted before storage and never displayed again — to change it you paste a new one to rotate it. Remove it any time to disable the advisor. Because it's your key, usage is billed to your own OpenRouter account. Setting up your key
Choosing a model
OpenRouter gives access to a range of models. In Settings you pick a default used for new conversations; within any conversation you can switch models — say, a more powerful one for a complex question — without changing your account-wide default.
What the assistant can do
- Answer questions about the product — it searches this documentation and cites the specific sections its answer draws from, so you can always see where an answer came from.
- Look at your real data — it reads your workspace's live data: campaign performance, broadcast results, contact-list growth. Ask “how did my last campaign do?” or “which broadcast had the best open rate?” and get an answer from your real numbers.
Conversations & memory
Conversations are saved per user — return to a previous one or start fresh any time. The assistant also builds a lightweight memory: tell it a durable fact (a preference, a recurring goal, how you like campaigns run) and it brings that back into future conversations. The more you use it, the more it tailors answers to how you actually work.
Glossary
Quick definitions for the terms that show up across the product. Search them all with ⌘K.