skills/sales-referralhero/SKILL.md
ReferralHero platform help — full-stack referral, affiliate, waitlist, contest, and NPS platform with REST API, webhooks, Zapier, native ESP connectors, multi-level referral tracking (Level 1/2/3), coupon groups, anti-fraud, and a 5,000 calls/hour limit. Use when referrals aren't tracking, deciding between Free (no API) vs PRO (API + webhooks) vs PREMIUM (ReCaptcha + SMS Verification), auth failing with `no_token` or `Bearer` vs `X-API-Key`, Level 2/3 counts off from calling `level_2_all_referrals` not `level_2_referrals`, bulk 429s from not chunking the 500-transaction `add_bulk_transactions` limit, coupon endpoints 404 without a coupon group, reward fulfillment (`promote` then `unlock_promoted_reward`) failing, or comparing to SparkLoop/ReferralKit/GrowSurf. Do NOT use for newsletter audience growth (use /sales-audience-growth), merge-tag referrals (use /sales-referralkit), SparkLoop recommendations (use /sales-sparkloop), or affiliate strategy across tools (use /sales-affiliate-program).
npx skillsauth add sales-skills/sales sales-referralheroInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
If references/learnings.md exists, read it first for accumulated platform knowledge.
What are you trying to do?
What's your campaign type? Referral / Affiliate / Waitlist / Contest / NPS — the data model and which endpoints matter differ.
What's your ESP? Drives whether the native integration applies (Mailchimp, Kit, AWeber, Klaviyo, ActiveCampaign, SendLane) or you need Zapier/webhook/API patterns.
Skip-ahead rule: if the user's prompt already contains enough context, skip to Step 2.
| If the question is about... | Route to... |
|---|---|
| General newsletter audience growth strategy across all platforms | /sales-audience-growth [question] |
| General newsletter monetization | /sales-newsletter [question] |
| No-code newsletter-only referrals with merge-tag insertion (Copyhackers) | /sales-referralkit [question] |
| SparkLoop paid recommendations + partner network | /sales-sparkloop [question] |
| Affiliate program strategy across many tools | /sales-affiliate-program [question] |
| ESP setup (Mailchimp, Kit, MailerLite, AWeber, Klaviyo, ActiveCampaign) | /sales-mailchimp, /sales-kit, /sales-mailerlite, /sales-klaviyo, /sales-activecampaign |
If the question is ReferralHero-specific, continue to Step 3.
Read references/platform-guide.md for the full reference — feature gating, tier comparison, ESP integration flow, multi-level referral mechanics, anti-fraud controls, and comparisons with SparkLoop / ReferralKit / Viral Loops / GrowSurf / KickoffLabs.
Read references/referralhero-api-reference.md for the verbatim REST API documentation — authentication (Bearer token / X-API-Key), base URL (https://app.referralhero.com/api/v2), full endpoint reference (Lists, Subscribers, Coupons, Rewards, Levels 1/2/3 referrals, transactions, bulk transactions, qualify/unqualify, promote/unlock_promoted_reward), rate limits (5,000 req/hr soft), and error codes.
Answer the user's question using only the relevant section. Don't dump the full reference.
Focus on the user's specific situation:
Authorization: Bearer YOUR_API_TOKEN is the canonical form. X-API-Key: YOUR_API_TOKEN is the documented fallback when the client can't send Authorization. Don't mix headers.too_many_calls error code on overage.POST .../subscribers/add_bulk_transactions) — chunk larger imports.promote after the subscriber crosses the threshold, then unlock_promoted_reward with the reward_id.If you discover a gotcha, workaround, or tip not covered in references/learnings.md, append it there.
Best-effort from research — review these, especially items about plan-gated features that may shift.
too_many_calls error code. For high-volume imports, use add_bulk_transactions (500/request) instead of per-subscriber calls and request a limit increase via support.transactions array, not multipart.level_2_all_referrals includes unqualified referrals; level_2_referrals shows only confirmed. Calling the wrong one explains "the count is off" complaints. Same pattern at Level 3.POST .../subscribers/:id/promote, then POST .../subscribers/:id/unlock_promoted_reward with the reward_id. Skipping promote causes unlock_promoted_reward to silently fail.POST .../coupon_groups first, then POST .../coupons with the coupon_group_id. Importing flat lists without a group fails.Authorization: Bearer ... OR X-API-Key: ... — sending both has undocumented behavior. Prefer Authorization unless your client strips it./subscribers via API, you'll get duplicate adds. Pick one mechanism per campaign./sales-audience-growth — Newsletter audience growth strategy (referrals + cross-promotion + lead magnets across all platforms)/sales-newsletter — Newsletter monetization (paid subs, sponsorships, ad networks)/sales-referralkit — ReferralKit (no-code Morning Brew-style merge-tag-driven referrals, free up to 10K leads, no API)/sales-sparkloop — SparkLoop (referrals + paid recommendations + partner network across 25+ ESPs)/sales-affiliate-program — General affiliate program strategy and platform selection/sales-mailchimp — Mailchimp platform help (one of ReferralHero's native ESP integrations)/sales-kit — Kit / ConvertKit platform help (native ESP integration)/sales-mailerlite — MailerLite platform help (Zapier-based integration)/sales-klaviyo — Klaviyo platform help (native ESP integration)/sales-activecampaign — ActiveCampaign platform help (native ESP integration)/sales-do — Not sure which skill to use? The router matches any sales objective to the right skill. Install: npx skills add sales-skills/sales --skill sales-do -a claude-codeUser says: "I'm running a viral giveaway expecting 20K signups and worried about fake referrals. PRO or PREMIUM?" Skill does: Recommends PREMIUM ($399/mo) because it adds ReCaptcha and SMS Verification — both essential for fraud-prone viral campaigns. Notes PRO ($199/mo, 10K members) wouldn't cover 20K anyway. Mentions PREMIUM Waitlist/Contest variant at $199/mo for 50K subscribers if the contest is the entire campaign and the standard referral feature mix isn't needed. Suggests turning on anti-fraud + coupon validation + reward review workflow regardless of tier. Result: User picks PREMIUM with ReCaptcha + SMS Verification on, sets up reward review for top referrers.
User says: "I'm on the PRO plan. How do I add a subscriber via the API and assign them a referrer?"
Skill does: Provides authentication header (Authorization: Bearer YOUR_API_TOKEN), base URL (https://app.referralhero.com/api/v2), and a cURL example: POST /lists/:uuid/subscribers with email, name, and referrer (the referrer's referral code or unique identifier). Notes that double_optin=true matches the campaign's setting if confirmation is required. Points to references/referralhero-api-reference.md for the full parameter list, and warns about double-adds if Mailchimp/Kit native integration is also connected.
Result: User makes a successful first API call, sees the new subscriber with attribution to the referrer, and knows to disable one of the dual subscription paths.
User says: "I have multi-level referrals enabled. My Level 2 count seems off — way higher than what I see in the dashboard."
Skill does: Asks which endpoint they're hitting. If they're calling GET /lists/:uuid/subscribers/:subscriber_id/level_2_all_referrals that includes UNqualified referrals — dashboard typically shows only qualified. Recommends level_2_referrals (confirmed only) for parity with the dashboard view. Notes the same pattern at Level 3. Suggests qualify / unqualify endpoints to manually re-classify suspicious referrals.
Result: User switches endpoint, counts match the dashboard, and adds qualify/unqualify into their fraud-review workflow.
no_token errorSymptom: API requests return no_token despite sending the header
Cause: Header capitalization, missing Bearer prefix, or sending both Authorization and X-API-Key
Solution: Use exactly Authorization: Bearer YOUR_API_TOKEN (capital A, lowercase bearer per HTTP spec is also accepted, but Bearer with capital B is documented). If your HTTP client strips Authorization headers, fall back to X-API-Key: YOUR_API_TOKEN — but never send both. Verify the token from ReferralHero dashboard > Account > API; tokens are per-account, not per-list.
too_many_calls (HTTP 429) on bulk importSymptom: Bulk subscriber import errors out partway with HTTP 429 too_many_calls
Cause: Hit the 5,000 calls/hour soft rate limit by POSTing per-subscriber instead of using bulk endpoints
Solution: Switch single-subscriber loops to POST /lists/:uuid/subscribers/add_bulk_transactions (500 transactions per request). Add exponential backoff with Retry-After respect. For sustained high volumes, contact ReferralHero support to raise the rate limit.
Symptom: Configured a webhook for confirmation events but it never fires
Cause: Webhooks are PRO+ (not Free), the campaign's double_optin setting interacts with confirmation timing, or the subscriber was added without a referrer value
Solution: Confirm plan tier includes webhooks (PRO and PREMIUM do). Check that the campaign has double_optin configured correctly — if on, confirmation requires the referee to click the confirmation email. For API-added subscribers, ensure referrer is set to the referrer's referral code or unique identifier, otherwise no attribution event fires.
Symptom: Subscriber hit the milestone threshold but the reward email never sent
Cause: Reward fulfillment is a two-step manual flow on the API path — promote then unlock_promoted_reward
Solution: First call POST /lists/:uuid/subscribers/:subscriber_id/promote to mark the subscriber as eligible for the next reward, then POST /lists/:uuid/subscribers/:subscriber_id/unlock_promoted_reward with the reward_id. If you're using the UI-side automatic milestone rewards, check that the milestone threshold is set on the campaign and the subscriber's qualified-referral count actually exceeds it (NOT all-referrals count).
Symptom: POST /lists/:uuid/coupons with an array of codes returns 404
Cause: Coupons must belong to a coupon group; the group ID is required in the request
Solution: First create a coupon group: POST /lists/:uuid/coupon_groups with name, coupons (initial array), and active: true. Capture the returned id. Then add more coupons via POST /lists/:uuid/coupons with coupon_group_id set to that ID.
tools
Wizlogo (wizlogo.com) platform help — a budget online logo maker (template/style-variation, marketed as "AI") plus a hub of FREE branding tools (business-name, blog-name and slogan generators, business-card maker, invoice generator, color converter, domain search). The pricing traps: the FREE logo is PERSONAL-USE-ONLY; the two cheap paid tiers are RASTER PNG/JPG only — Single (~€39.99 one-time) and Unlimited (~€3.99 per WEEK, recurring) — and VECTOR (SVG/PDF/EPS) is gated to the ~€299.99 Enterprise tier, which also bundles human designer edits and a social kit. Transparent PNG is on all paid plans. Use when making a Wizlogo logo, understanding free-vs-paid or personal-vs-commercial use, which tier unlocks vector/SVG for print, the weekly-subscription billing trap, its free name/slogan generators, or whether it has an API (UI-only — no public API, webhooks, Zapier or MCP). Do NOT use to just generate the business name (use /sales-namelix) or to compare/validate branding tools (use /sales-idea-validation).
tools
VistaPrint platform help (vistaprint.com, a Cimpress company) — the small-business design + print + digital-marketing platform: a free AI Logomaker (4 generations, 60 more after free sign-up) exporting SVG/PNG/PDF at 4000x4000 with no watermark, a free Brand Kit, business cards/flyers/signage/apparel/promo print, and a website builder. THE RIGHTS TRAP: VistaPrint states NO intellectual-property rights transfer on an AI-generated logo — you get usage rights but CANNOT register it for trademark or copyright; only its human designer service transfers full IP. Use when making a VistaPrint logo, asking if you own or can trademark it, running out of AI logo credits, printed colors not matching the screen, bleed/DPI/font file-prep rejections, or asking whether VistaPrint has an API (the consumer site does not — automation runs through the parent Cimpress Open partner-fulfilment API). Do NOT use for Vista Social scheduling (use /sales-vistasocial) or comparing logo tools market-wide (use /sales-idea-validation).
tools
Turbologo (turbologo.com) platform help — a budget AI/DIY logo maker: enter a business name + industry, pick icons and colors, and it proposes logo concepts you refine in an in-browser editor, then pay a one-time fee to download (designing is free, previews are watermarked, downloading is the paywall). Vector SVG/PDF is gated to the mid tier and up; the top tier adds a brand kit (business cards, letterheads, email signatures, social assets). Use when generating a logo in Turbologo, choosing which download tier to buy, vector SVG vs raster PNG, removing the free watermark, the time-limited edit-after-purchase window, pay-to-download pricing questions, whether an AI logo is yours to trademark, or whether Turbologo has an API to bulk-generate logos (it is UI-only — no public API, webhooks, Zapier, or MCP). Do NOT use to generate the business name (use /sales-namelix), compare or validate branding tools across the market (use /sales-idea-validation), or build wider marketing creative (use /sales-canva).
tools
Online Logo Maker (onlinelogomaker.com) platform help — a long-standing free/freemium DIY logo maker: build the mark yourself from icons, shapes, text, and fonts — MANUAL/template-based, NOT enter-a-name-get-AI-concepts. The free pack downloads a LOW-RES 300px PNG with a background; vector SVG, transparent PNG, and 2000px high-res are gated to a one-time lifetime Premium pack (not a subscription). The free tier's commercial-use rights are disputed by reviewers — clean ownership effectively needs Premium, and a shared-icon mark can be non-distinctive. Use for building/editing a logo here, free download vs Premium, vector SVG or transparent PNG, one-time pricing, commercial-use/trademark terms, near-namesake confusion (NOT LogoMaker.com / LogoMakr / Logomakerr.ai), or whether it has an API (UI-only — no API, webhooks, Zapier, MCP). Do NOT use to generate the business name (use /sales-namelix), compare branding tools across the market (use /sales-idea-validation), or build wider creative (use /sales-canva).