skills/sales-fourfour/SKILL.md
Four/Four (fourfour.ai) platform help — AI customer-research / voice-of-customer copilot that unifies conversations (calls, tickets, emails, chat) from 30+ sources into searchable Insights and Topics, with an AI Analyst for natural-language Q&A and workflows that route findings to Slack/Jira/email. Developer surface: an OData REST API (`/odata`, OAuth2 authorization-code, `api:read` scope, `@odata.nextLink` paging), a CRM Importer API (`/import/crm/{type}`, PAT bearer, CSV, async jobs), HMAC-SHA256-signed webhooks (`Signature` header, 3x retry), and an MCP server (`fourfour.ai/mcp`). Use when pulling Insights or Conversations through the OData API, importing CRM accounts/contacts, verifying signed webhooks, wiring the MCP server into Claude/Cursor, picking an AI Analyst vs AI Researcher plan, or centralizing voice-of-customer data. Do NOT use for VoC survey-program strategy across tools (use /sales-customer-feedback) or feedback-board/roadmap voting (use /sales-frill).
npx skillsauth add sales-skills/sales sales-fourfourInstall 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 → OData API + CRM Importer + signed webhooks. AI assistant → MCP server. No endpoint → native connectors / Zapier / visual Workflows.
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/CES) across tools | /sales-customer-feedback {question} |
| Feedback boards / feature voting / public roadmap | /sales-frill {question} |
| Aggregating unsolicited feedback across reviews/social/support | /sales-noisely {question} |
| Account health / churn-prevention program strategy | /sales-customer-success {question} |
| Connecting Four/Four to a CRM/PM tool generically (iPaaS) | /sales-integration {question} |
When routing, give the exact command, e.g. "This is a strategy question — run: /sales-customer-feedback design a closed-loop VoC program".
Read references/platform-guide.md for the full reference — the Discovery/Validation/AI Analyst/Workflows/Competitive-Intelligence/Customer-Success module map (what's API vs webhook vs UI), plan tiers and usage limits, the Conversations→Insights→Topics→TopicModels data model, integrations by data-flow direction, and quick-start recipes.
Read references/fourfour-api-reference.md for the integration surface — OData base https://fourfour.ai/odata, OAuth2 authorization-code auth (/oauth/token, scope api:read, Bearer, 24h tokens), the entity sets (Insights/Topics/TopicModels/Conversations/Participants + CRM objects), OData query options ($select/$filter/$top/$skip/$expand, @odata.nextLink paging), the CRM Importer API (/import/crm/{type}, PAT bearer, CSV, async jobs), HMAC-SHA256-signed webhooks ({timestamp, event, tenant, payload}, Signature header, 3x retry), and the MCP server (fourfour.ai/mcp, OAuth discovery).
Answer using only the relevant section. Don't dump the full reference.
Focus on the user's specific situation:
/oauth/token for a 24h Bearer token (scope api:read), refresh with the refresh_token grant. Keep client_secret server-side. Basic auth exists for BI tools but prefer OAuth for integrations.@odata.nextLink. Page with $top/$skip; follow @odata.nextLink until it's absent — don't assume one page is the full set. Use $filter (e.g. created ge {iso}) and $expand to shape the pull.PUT /import/crm/{type} with CSV (required id column, ISO-8601 UTC dates). It's async — poll /import/job/{jobId}.HMAC-SHA256(rawBody, secret), constant-time compare to the Signature header, ack 2xx fast (it retries 3x with backoff), dedupe on payload.id + timestamp.https://fourfour.ai/mcp as a remote MCP server; OAuth discovery handles auth and you get search tools over conversations/insights/accounts/contacts — no token plumbing./sales-customer-feedback) or host a public feedback board (→ /sales-frill).If you discover a gotcha, workaround, or tip not covered in references/learnings.md, append it there.
Best-effort from research (2026-06) — API captured from fourfour.ai/developers; pricing from fourfour.ai/pricing. Confirm in-account; the dev portal is JS-rendered so per-entity schemas may differ.
/odata — push CRM records via PUT /import/crm/{type} (CSV) instead.@odata.nextLink. Server-driven paging — a single response is not the whole collection. Loop on nextLink until absent.PUT returns 202 + a jobId; row-level errors only show up when you poll /import/job/{jobId}. A 202 is not a success confirmation.Signature header. Wrong body bytes = signature mismatch.api:read); the CRM Importer uses a Personal Access Token. Don't mix them./sales-customer-feedback — Voice-of-customer / survey-program strategy across tools (Four/Four is the conversation-mining option) — program design, metric selection, tool comparison/sales-frill — Feedback boards / feature voting / public roadmap (solicited board feedback vs Four/Four's conversation mining)/sales-noisely — AI aggregation of unsolicited feedback across reviews/social/support/sales-customer-success — Account-health / churn-prevention program strategy (Four/Four feeds the signals)/sales-integration — Connecting Four/Four 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 export every customer insight from Four/Four since April into BigQuery?"
Skill does: Shows the OData read flow — GET https://fourfour.ai/odata/Insights?$top=100&$filter=created ge 2026-04-01T00:00:00Z with Authorization: Bearer {token}, following @odata.nextLink until absent, then landing rows in the warehouse. Notes OAuth2 token (scope api:read, 24h) + refresh, and that $expand can inline the linked account/topic. Points to a nightly full pull reconciled with webhooks for freshness.
Result: A complete, paginated insight export.
User says: "Four/Four is POSTing events to my endpoint — how do I make sure they're real?"
Skill does: Explains the HMAC-SHA256 check — compute hmac_sha256(rawBody, secret), constant-time compare to the Signature header, reject on mismatch. Notes the payload shape {timestamp, event, tenant, payload}, deduping on payload.id + timestamp, acking 2xx fast (it retries 3x with backoff), and that the secret comes from Settings → Connections → Webhooks.
Result: Authenticated, tamper-evident webhook intake.
User says: "We already record sales calls — should we use Four/Four or just send NPS surveys?"
Skill does: Frames the difference — Four/Four mines conversations you already have (calls/tickets/emails) into Insights/Topics with an AI Analyst and links them to deals, billed on content processed (no per-seat). A survey tool solicits structured NPS/CSAT. Recommends Four/Four when you have rich conversation data and want it queryable, and routes program/metric strategy: "run: /sales-customer-feedback choose between solicited surveys and conversation mining."
Result: A grounded build-vs-survey decision.
Symptom: You get ~100 rows and think that's everything.
Cause: OData uses server-driven paging — the response carries an @odata.nextLink for the next page.
Solution: Read @odata.nextLink from each response and re-request it until it's absent (or page manually with $top/$skip). Accumulate across pages. Use $count to sanity-check the total.
Symptom: PUT /import/crm/account returned 202 but data is missing or partial.
Cause: The Importer is asynchronous — 202 only means queued, and row-level failures surface in the job, not the initial response. Common causes: missing required id column, non-ISO-8601 dates, or wrong record type.
Solution: Poll GET /import/job/{jobId} until completed and check the errors count; fix the CSV (required id, ISO-8601 UTC dates, supported type: account/contact/lead/opportunity/user) and re-upsert.
Symptom: The HMAC you compute doesn't match the Signature header.
Cause: Hashing a re-serialized body instead of the raw bytes, or using the wrong secret.
Solution: Compute HMAC-SHA256 over the raw request body with the webhook secret (Settings → Connections → Webhooks), then constant-time compare to the Signature header. Once verified, dedupe on payload.id + timestamp and ack 2xx quickly so Four/Four doesn't retry.
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).