Resume Bullet Writer
Transform weak resume bullets into achievement-focused statements with metrics and impact. Use when the user wants to rewrite bullets, strengthen accomplishments, or add action verbs and impact to their resume.
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, decidi...
--- name: sales-referralhero description: "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 $199/mo (API + webhooks) vs PREMIUM $399/mo (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)." argument-hint: "[describe what you need help with in ReferralHero]" license: MIT version: 1.0.0 tags: [sales, referral-program, affiliate, audience-growth, waitlist, platform] --- # ReferralHero Platform Help ## Step 1 — Gather context If `references/learnings.md` exists, read it first for accumulated platform knowledge. 1. **What are you trying to do?** - A) Pick a tier — Free (25 subs) vs PRO $199/mo (10K) vs PREMIUM $399/mo (50K) - B) Set up the REST API — authentication, base URL, first request - C) Add or track subscribers via API (single, bulk, with transaction data) - D) Configure webhooks for referral confirmation events - E) Integrate a native ESP connector (Mailchimp, Kit, AWeber, Klaviyo, ActiveCampaign, SendLane) - F) Multi-level referral tracking (Level 1/2/3) — counts not appearing or downline math is off - G) Coupon codes — create coupon groups and bulk-import codes - H) Compare ReferralHero against SparkLoop / ReferralKit / Viral Loops / GrowSurf / KickoffLabs - I) Hit the 5,000 calls/hour rate limit — getting 429 too_many_calls - J) Reward fulfillment workflow — promote subscriber + unlock_promoted_reward 2. **What's your campaign type?** Referral / Affiliate / Waitlist / Contest / NPS — the data model and which endpoints matter differ. 3. **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. ## Step 2 — Route or answer directly | 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. ## Step 3 — ReferralHero platform reference **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. ## Step 4 — Actionable guidance Focus on the user's specific situation: - **Free tier (25 subscribers max)** — useful only for proof of concept. Real campaigns need PRO ($199/mo, 10K members) or PREMIUM ($399/mo, 50K members). The Waitlist/Contest variant of PREMIUM is also $199/mo for 50K subscribers and adds broadcasts. - **API available from PRO upward** — the Free tier excludes API access, so don't promise programmatic workflows on the Free tier. Confirm the user's plan before recommending API-driven recipes. - **Auth**: `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. - **Rate limit is per-token, 5,000/hr soft** — contact ReferralHero support to raise it. Returns HTTP 429 with `too_many_calls` error code on overage. - **Bulk transactions are capped at 500 per request** (`POST .../subscribers/add_bulk_transactions`) — chunk larger imports. - **Multi-level referral mechanics**: separate endpoints for Level 1 / 2 / 3 referrals and Level 2 / 3 "all referrals" (qualified + unqualified). Use the right endpoint or the count will look wrong. - **Promote → unlock_promoted_reward** is a two-step manual reward fulfillment flow — for milestone-based rewards, configure them on the campaign and call `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. ## Gotchas > *Best-effort from research — review these, especially items about plan-gated features that may shift.* 1. **API access starts at PRO ($199/mo).** Free tier (25 subs) has NO API access — don't quote programmatic workflows to anyone still on Free. Webhooks also start at PRO. 2. **Rate limit is 5,000 calls/hour (soft) per token.** Exceeding returns HTTP 429 with `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. 3. **ReCaptcha and SMS Verification are PREMIUM-only ($399/mo).** PRO has anti-fraud, coupon codes, custom sender domain, and automation emails — but not the strongest abuse controls. If your program is a target for fraud, budget PREMIUM from day one. 4. **Bulk transactions max 500 per request.** Larger imports must be chunked. The endpoint expects a JSON `transactions` array, not multipart. 5. **Multi-level endpoints have separate "all" vs "confirmed" variants.** `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. 6. **Promote + unlock_promoted_reward is a two-step flow.** First `POST .../subscribers/:id/promote`, then `POST .../subscribers/:id/unlock_promoted_reward` with the `reward_id`. Skipping `promote` causes `unlock_promoted_reward` to silently fail. 7. **Coupons live under coupon groups, not standalone.** `POST .../coupon_groups` first, then `POST .../coupons` with the `coupon_group_id`. Importing flat lists without a group fails. 8. **Lifetime-deal customers got migrated to monthly subs.** Capterra reviews show frustration with the pricing transition — if the user mentions a "lifetime" plan they bought years ago, that's the context; current plans are subscription-only. 9. **Authentication header is single-header, not both.** Send EITHER `Authorization: Bearer ...` OR `X-API-Key: ...` — sending both has undocumented behavior. Prefer `Authorization` unless your client strips it. 10. **Native ESP integrations may double-add subscribers.** If you connect Mailchimp (or Kit/AWeber/etc.) AND also POST to `/subscribers` via API, you'll get duplicate adds. Pick one mechanism per campaign. 11. **No MCP server.** AdButler and some newsletter tools ship MCP — ReferralHero does not, as of research date 2026-06-01. Confirm before claiming MCP support. ## Related skills - `/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-code` ## Examples ### Example 1: PRO vs PREMIUM decision for a fraud-prone giveaway campaign **User 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. ### Example 2: Setting up API + first subscriber add **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. ### Example 3: Multi-level referral counts look wrong **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. ## Troubleshooting ### Authentication failing with `no_token` error **Symptom**: 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 import **Symptom**: 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. ### Webhook not firing on referral confirmation **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. ### Reward not unlocking after milestone **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). ### Coupon import returns 404 **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.--- name: sales-referralhero description: "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 $199/mo (API + webhooks) vs PREMIUM $399/mo (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)." argument-hint: "[describe what you need help with in ReferralHero]" license: MIT version: 1.0.0 tags: [sales, referral-program, affiliate, audience-growth, waitlist, platform] --- # ReferralHero Platform Help ## Step 1 — Gather context If `references/learnings.md` exists, read it first for accumulated platform knowledge. 1. **What are you trying to do?** - A) Pick a tier — Free (25 subs) vs PRO $199/mo (10K) vs PREMIUM $399/mo (50K) - B) Set up the REST API — authentication, base URL, first request - C) Add or track subscribers via API (single, bulk, with transaction data) - D) Configure webhooks for referral confirmation events - E) Integrate a native ESP connector (Mailchimp, Kit, AWeber, Klaviyo, ActiveCampaign, SendLane) - F) Multi-level referral tracking (Level 1/2/3) — counts not appearing or downline math is off - G) Coupon codes — create coupon groups and bulk-import codes - H) Compare ReferralHero against SparkLoop / ReferralKit / Viral Loops / GrowSurf / KickoffLabs - I) Hit the 5,000 calls/hour rate limit — getting 429 too_many_calls - J) Reward fulfillment workflow — promote subscriber + unlock_promoted_reward 2. **What's your campaign type?** Referral / Affiliate / Waitlist / Contest / NPS — the data model and which endpoints matter differ. 3. **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. ## Step 2 — Route or answer directly | 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. ## Step 3 — ReferralHero platform reference **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. ## Step 4 — Actionable guidance Focus on the user's specific situation: - **Free tier (25 subscribers max)** — useful only for proof of concept. Real campaigns need PRO ($199/mo, 10K members) or PREMIUM ($399/mo, 50K members). The Waitlist/Contest variant of PREMIUM is also $199/mo for 50K subscribers and adds broadcasts. - **API available from PRO upward** — the Free tier excludes API access, so don't promise programmatic workflows on the Free tier. Confirm the user's plan before recommending API-driven recipes. - **Auth**: `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. - **Rate limit is per-token, 5,000/hr soft** — contact ReferralHero support to raise it. Returns HTTP 429 with `too_many_calls` error code on overage. - **Bulk transactions are capped at 500 per request** (`POST .../subscribers/add_bulk_transactions`) — chunk larger imports. - **Multi-level referral mechanics**: separate endpoints for Level 1 / 2 / 3 referrals and Level 2 / 3 "all referrals" (qualified + unqualified). Use the right endpoint or the count will look wrong. - **Promote → unlock_promoted_reward** is a two-step manual reward fulfillment flow — for milestone-based rewards, configure them on the campaign and call `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. ## Gotchas > *Best-effort from research — review these, especially items about plan-gated features that may shift.* 1. **API access starts at PRO ($199/mo).** Free tier (25 subs) has NO API access — don't quote programmatic workflows to anyone still on Free. Webhooks also start at PRO. 2. **Rate limit is 5,000 calls/hour (soft) per token.** Exceeding returns HTTP 429 with `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. 3. **ReCaptcha and SMS Verification are PREMIUM-only ($399/mo).** PRO has anti-fraud, coupon codes, custom sender domain, and automation emails — but not the strongest abuse controls. If your program is a target for fraud, budget PREMIUM from day one. 4. **Bulk transactions max 500 per request.** Larger imports must be chunked. The endpoint expects a JSON `transactions` array, not multipart. 5. **Multi-level endpoints have separate "all" vs "confirmed" variants.** `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. 6. **Promote + unlock_promoted_reward is a two-step flow.** First `POST .../subscribers/:id/promote`, then `POST .../subscribers/:id/unlock_promoted_reward` with the `reward_id`. Skipping `promote` causes `unlock_promoted_reward` to silently fail. 7. **Coupons live under coupon groups, not standalone.** `POST .../coupon_groups` first, then `POST .../coupons` with the `coupon_group_id`. Importing flat lists without a group fails. 8. **Lifetime-deal customers got migrated to monthly subs.** Capterra reviews show frustration with the pricing transition — if the user mentions a "lifetime" plan they bought years ago, that's the context; current plans are subscription-only. 9. **Authentication header is single-header, not both.** Send EITHER `Authorization: Bearer ...` OR `X-API-Key: ...` — sending both has undocumented behavior. Prefer `Authorization` unless your client strips it. 10. **Native ESP integrations may double-add subscribers.** If you connect Mailchimp (or Kit/AWeber/etc.) AND also POST to `/subscribers` via API, you'll get duplicate adds. Pick one mechanism per campaign. 11. **No MCP server.** AdButler and some newsletter tools ship MCP — ReferralHero does not, as of research date 2026-06-01. Confirm before claiming MCP support. ## Related skills - `/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-code` ## Examples ### Example 1: PRO vs PREMIUM decision for a fraud-prone giveaway campaign **User 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. ### Example 2: Setting up API + first subscriber add **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. ### Example 3: Multi-level referral counts look wrong **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. ## Troubleshooting ### Authentication failing with `no_token` error **Symptom**: 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 import **Symptom**: 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. ### Webhook not firing on referral confirmation **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. ### Reward not unlocking after milestone **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). ### Coupon import returns 404 **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.
Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.