skills/sales-growsurf/SKILL.md
GrowSurf platform help — referral AND affiliate program software for SaaS and B2C product and marketing teams: JavaScript SDK + embeddable Elements, REST API (`api.growsurf.com/v2`, Bearer auth), 7 webhook events (participant, commission, payout, fraud), Stripe-native referral triggering, affiliate commissions with 1099 tax filing, anti-fraud, and 60+ native connectors (Stripe, HubSpot, Salesforce, Zapier). Use when GrowSurf referrals aren't tracking because test mode is still on or a dev URL isn't whitelisted, a Stripe referral won't fire after a customer changed their email, wiring participant or commission webhooks into a CRM, adding participants or triggering referrals via the API, the API key is locked with EMAIL_NOT_VERIFIED or rotated on first dashboard login, or picking a participant-based plan. Do NOT use for referral/affiliate strategy across tools (use /sales-affiliate-program), audience-growth tactics (use /sales-audience-growth), or comparing rival referral tools (use /sales-referralhero).
npx skillsauth add sales-skills/sales sales-growsurfInstall 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?
Referral or affiliate program? The data model and webhook events differ — commissions/payouts and 1099 filing are affiliate-only; goal/reward unlocks are referral-only.
What's your stack? Stripe (native triggering), your CRM (HubSpot/Salesforce), and whether you embed client-side (JS SDK) or drive server-side (API/webhooks).
Skip-ahead rule: if the user's prompt already contains enough context, skip to Step 2.
| If the question is about... | Route to... |
|---|---|
| Referral/affiliate program strategy across many tools (commission rates, cookie windows, recruiting) | /sales-affiliate-program [question] |
| General audience-growth tactics (lead magnets, cross-promo, waitlists) | /sales-audience-growth [question] |
| Comparing full-stack referral tools with multi-level Level 1/2/3 + coupon groups | /sales-referralhero [question] |
| Turnkey viral-campaign templates (waitlist/giveaway/milestone) | /sales-viral-loops or /sales-kickofflabs |
| Deliverability of the referral/reward emails | /sales-deliverability [question] |
When routing, give the exact command: "This is a {domain} question — run: /sales-{skill} {original question}."
If the question is GrowSurf-specific, continue to Step 3.
Read references/platform-guide.md for the full reference — capabilities & automation surface, participant-based pricing/plan gates, integrations, data model, and quick-start recipes.
Read references/growsurf-api-reference.md for the verbatim REST API — authentication (Bearer, EMAIL_NOT_VERIFIED gate, key rotation), base URL (https://api.growsurf.com/v2), the full endpoint list (Accounts, Campaigns, Participants, Rewards, Referrals/Invites, Analytics, Commissions/Payouts, Webhooks), three-tier rate limiting, and the 7 webhook events with payload gotchas.
Answer using only the relevant section. Don't dump the full reference.
Focus on the user's specific situation and apply these:
localhost or a staging domain, add the URL to the campaign's allowed URLs first. Also test each signup entry point separately (inline form AND popup) — attribution can work on one and silently miss another.https://api.growsurf.com/v2, header Authorization: Bearer <key>. The key is locked until email verification (EMAIL_NOT_VERIFIED_ERROR on non-Accounts endpoints) and rotates on first dashboard login — re-read it from Account settings if you scripted creation. Attribute referrals by passing referredBy on POST /campaign/{id}/participant; omitting it makes a standalone referrer, not a credited referral.NEW_PARTICIPANT_ADDED (new signups/referrals) and, on affiliate programs, NEW_COMMISSION_ADDED and NEW_PAYOUT_ISSUED. Double-sided rewards send TWO events (branch on data.reward.isReferrer), manual-approval rewards fire the event TWICE (pending, then approved), and CAMPAIGN_ENDED caps at the first 1,000 winners. Dedupe on ids, respond 2xx fast (GrowSurf retries with backoff for days), and — since there's no documented HMAC — keep the URL secret and re-verify via GET before any payout.growsurf.com/pricing — do not quote exact prices as current./sales-affiliate-program or /sales-referralhero.If you discover a gotcha, workaround, or tip not covered in references/learnings.md, append it there.
Best-effort from research (2026-07) — review these, especially plan-gated features and integration details that may shift.
EMAIL_NOT_VERIFIED_ERROR until the account email is verified, and it rotates automatically on first dashboard login. Re-read it from settings after that first login.isReferrer), and the event fires twice for manual approval (pending → approved). Dedupe or you'll double-fulfill.GET before paying out. CAMPAIGN_ENDED only lists the first 1,000 winners.COMMISSION_ADJUSTED (refunds/chargebacks), and 1099 filing are affiliate-only; goal/reward unlocks are referral-only. Pick the right program mode up front./sales-affiliate-program — Affiliate & referral program strategy and platform selection across tools (commission models, cookie windows, recruiting, fraud)/sales-audience-growth — Audience-growth strategy (lead magnets, cross-promotion, referral program design across platforms)/sales-referralhero — ReferralHero (full-stack referral/affiliate/waitlist/contest with multi-level Level 1/2/3 + coupon groups)/sales-viral-loops — Viral Loops (turnkey referral/waitlist/giveaway/milestone campaign templates)/sales-referral-factory — Referral Factory (no-code referral builder, qualification→due-reward API flow, native CRM syncs)/sales-kickofflabs — KickoffLabs (viral waitlists + bonus-entry giveaways + milestone rewards)/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: "We flipped our GrowSurf campaign live but no referrals are being recorded even though people are signing up." Skill does: Rules out test mode still enabled first (referrals/commissions don't fire in live mode while test mode is on), then checks the signup entry points are each tracked (inline vs popup) and that non-production/dev URLs are whitelisted. If they're on Stripe, checks the email-change timing race. Points to the testing best-practices flow in the guide. Result: User finds test mode was left on, switches to live, and referrals start recording; adds each entry point to their test checklist.
User says: "How do I push every new GrowSurf participant and affiliate commission into HubSpot automatically?"
Skill does: Explains the webhook egress model — subscribe to NEW_PARTICIPANT_ADDED and NEW_COMMISSION_ADDED (5 webhooks/program cap), respond 2xx fast because GrowSurf retries with backoff, and dedupe on ids because double-sided/approval events repeat. Notes there's no documented HMAC so keep the URL secret and re-verify via GET before acting on payouts. Gives the Flask handler from the guide and points to native HubSpot as an alternative to hand-rolling.
Result: User stands up a deduping webhook listener and mirrors participants + commissions into HubSpot.
User says: "Show me how to add a referred signup through the GrowSurf API and credit the referrer."
Skill does: Gives base URL https://api.growsurf.com/v2, Authorization: Bearer <key>, and POST /campaign/{id}/participant with referredBy set to the referrer's id/link code — warning that omitting referredBy creates a standalone referrer, not a credited referral. Flags the EMAIL_NOT_VERIFIED gate and first-login key rotation, and notes the API requires an active paid subscription.
Result: User makes a successful attributed POST, sees the referral credited, and knows to re-read the key after first dashboard login.
Symptom: Signups happen but no referral/commission is recorded after going live Cause: Test mode was left enabled at launch; or the entry point/dev URL isn't tracked; or a Stripe email change immediately preceded payment Solution: Confirm test mode is OFF (referrals/commissions won't generate in live while test mode is on). Whitelist any dev/staging URL and test each signup entry point (inline + popup). For Stripe, leave a few minutes between a customer email change and their payment. Check participant activity logs to trace where attribution dropped.
EMAIL_NOT_VERIFIED_ERROR (or the key stopped working)Symptom: Every non-Accounts endpoint 403s, or a previously working key is now rejected
Cause: Account email isn't verified yet, or the key rotated on first dashboard login
Solution: Verify the account email to unlock the key, then re-copy it from Account settings (app.growsurf.com/settings#api-keys) after the first dashboard login. Confirm the account is on an active paid subscription (referral) or has a payment method on file (affiliate) — the API is gated behind that.
Symptom: A referrer/referee got double-credited, or a manual-approval reward processed twice
Cause: Double-sided rewards send two events (referrer + referee); manual-approval rewards fire the event twice (pending, then approved)
Solution: Branch on data.reward.isReferrer to separate referrer/referee, and dedupe on the event/participant id (and approval state) so pending+approved don't both trigger fulfillment. Respond 2xx quickly and re-verify via GET before issuing a payout.
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).