skills/sales-frill/SKILL.md
Frill (frill.co) platform help — affordable customer-feedback suite (Canny/Nolt/UserVoice alternative): feedback boards (voting/comments), public roadmaps, changelog announcements, surveys, and an embeddable widget. Developer surface: REST API (api.frill.co/v1, Bearer key, cursor pagination via after/endCursor) for ideas/comments/votes/statuses/topics/announcements; HMAC-SHA256-signed webhooks (idea/vote/comment/announcement events; triggered_at/event/data payload); a Frill-Script widget (identify users, surveys); SSO; and 15+ integrations (Slack/Jira/Linear/Intercom/Zapier). Use when reading or syncing ideas/votes via the API, verifying signed webhooks, embedding the widget or identifying users, mapping statuses/topics to your roadmap, or choosing Frill vs Canny/Nolt on price. Do NOT use for voice-of-customer / survey program strategy across tools (use /sales-customer-feedback), feedback aggregation across review/social sources (use /sales-noisely), or generic iPaaS wiring (use /sales-integration).
npx skillsauth add sales-skills/sales sales-frillInstall 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?
API or no-code? Code → REST API + signed webhooks. Front-end → Frill-Script widget. No endpoint → native integrations / Zapier.
Skip-ahead rule: if the user's prompt already provides enough context, skip to Step 2.
| If the question is about... | Route to... |
|---|---|
| Voice-of-customer / survey program strategy (NPS/CSAT) across tools | /sales-customer-feedback {question} |
| Aggregating feedback across reviews/social/support sources | /sales-noisely {question} |
| Connecting Frill to a CRM/PM tool generically (iPaaS) | /sales-integration {question} |
| Public review generation strategy | /sales-customer-reviews {question} |
When routing, give the exact command, e.g. "This is a strategy question — run: /sales-customer-feedback build a closed-loop feedback program".
Read references/platform-guide.md for the full reference — the Ideas/Roadmap/Announcements/Surveys module map (what's API vs widget vs UI), the prioritization matrix, plan tiers, the data model, and quick-start recipes (pull ideas via the API; verify a webhook; embed + identify a user).
Read references/frill-api-reference.md for the integration surface — base https://api.frill.co/v1, Bearer API-key auth (from app.frill.co/settings/company), cursor pagination (after ← pagination.endCursor), the resources (ideas/comments/votes/statuses/topics/followers/announcements/notes), HMAC-SHA256 signed webhooks (events + triggered_at/event/data/data_type), Frill-Script (widget/surveys/identify), and SSO.
Answer using only the relevant section. Don't dump the full reference.
Focus on the user's specific situation:
Authorization: Bearer <key> against api.frill.co/v1; page lists by passing pagination.endCursor as the next request's after param until hasNextPage is false. Keep the key server-side.HMAC-SHA256(rawBody, webhookSecret) (secret from Company Settings → Webhooks) and constant-time compare to the signature header. Payload is {triggered_at, event, data_type, data}; dedupe on the entity id + triggered_at./sales-customer-feedback; for mining unsolicited feedback across reviews/social use /sales-noisely.If you discover a gotcha, workaround, or tip not covered in references/learnings.md, append it there.
Best-effort from research (2026-06) — API verbatim from developers.frill.co; pricing from reviews. Confirm in-account.
endCursor as after; loop until hasNextPage is false. Don't assume offset/page params.?api_key= leaks via logs; Basic auth uses the key as the username). Keep the key server-side./sales-customer-feedback) or mine reviews/social (→ /sales-noisely)..md + a ?ask= dynamic query — use them to confirm exact request bodies per resource./sales-customer-feedback — Voice-of-customer / survey program strategy across tools (Frill is a feedback-board option) — program design, tool selection/sales-featureos — FeatureOS (formerly Hellonext) platform help — the closest like-for-like feedback-board competitor (boards + roadmap + changelog + knowledge base); differs on API auth (API-KEY header + page/per_page vs Frill's Bearer + cursor) and unsigned dashboard webhooks. Install: npx skills add sales-skills/sales --skill sales-featureos/sales-sleekplan — AI feedback board (auto-categorization/duplicate merging) with an MCP server; the AI-forward affordable alternative to Frill. Install: npx skills add sales-skills/sales --skill sales-sleekplan/sales-userjot — UserJot platform help — AI-first feedback board + MCP server, no per-seat pricing (Canny/Productboard alternative); contrast with Frill on webhook signing (Frill is HMAC-SHA256-signed + cursor pagination vs UserJot's unpublished scheme) and the /requests post resource. Install: npx skills add sales-skills/sales --skill sales-userjot/sales-noisely — AI feedback aggregation across reviews/social/support (complement: Frill = solicited boards, Noisely = unsolicited mining)/sales-customer-reviews — Public review generation strategy/sales-integration — Connecting Frill to a CRM/PM tool via API/webhooks/Zapier/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: "How do I sync all the feedback ideas and their vote counts out of Frill?"
Skill does: Shows GET https://api.frill.co/v1/ideas with Authorization: Bearer <key>, paging via after= ← pagination.endCursor until hasNextPage is false, and reading each idea's status/topics/vote count (with /v1/votes / /v1/comments for detail). Notes keeping the key server-side, and that the webhook (idea/vote events) is better than polling for ongoing sync.
Result: A complete, paginated export of ideas + engagement.
User says: "Frill is POSTing events to my endpoint — how do I verify them?"
Skill does: Explains the HMAC-SHA256 signature: get the Webhook Secret (Company Settings → Webhooks), compute hash_hmac('sha256', rawBody, secret), and constant-time compare to the signature header (reject on mismatch). Notes the payload shape {triggered_at, event, data_type, data}, deduping on entity id + triggered_at, and which events exist (idea/vote/comment/announcement).
Result: Authenticated, tamper-evident webhook intake.
User says: "We're a small SaaS — Frill or Canny for a feedback board + roadmap?"
Skill does: Frames the tradeoff — Frill is the affordable pick (~$25/mo, boards + roadmap + changelog + surveys, REST API + signed webhooks), while Canny is pricier (~$400/mo lowest paid) with deeper enterprise features; Nolt is even simpler/per-board. Recommends Frill for cost-sensitive indie/SMB SaaS and routes broader tool selection: "run: /sales-customer-feedback choose a product-feedback board tool."
Result: A price-grounded board-tool choice.
Symptom: You get ~25 ideas and can't reach the rest.
Cause: Frill uses cursor pagination — there are no page/offset params; you must follow the cursor.
Solution: Read pagination.endCursor and pagination.hasNextPage from the response, then repeat the request with ?after=<endCursor> until hasNextPage is false. Accumulate results across pages.
Symptom: The HMAC you compute doesn't match Frill's signature header.
Cause: Hashing a re-serialized body (not the raw bytes), the wrong Webhook Secret, or a wrong algorithm.
Solution: Compute HMAC-SHA256 over the raw request body with the Webhook Secret from Company Settings → Webhooks, then constant-time compare to the signature header. Match the docs' hash_hmac('sha256', payloadJson, secret) exactly; once verified, dedupe on the entity id + triggered_at.
Symptom: Board activity isn't attributed to your actual users.
Cause: The Frill-Script widget isn't identifying users (no SSO / no identity passed).
Solution: Use Frill-Script user identification to pass your logged-in user's id/email/name (and/or set up SSO) so votes/ideas attach to real accounts. See developers.frill.co/frill-script/identifying-users. For VoC program strategy beyond boards, use /sales-customer-feedback.
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).