skills/sales-userjot/SKILL.md
UserJot (userjot.com) platform help — AI-first customer-feedback suite (Canny/Productboard alternative, no per-seat pricing): feedback boards (posts + voting + comments, AI duplicate detection + auto-categorization), public roadmap, AI changelog, and an in-app widget. Developer surface: REST API (api.userjot.com/v1, Bearer token) for boards/posts/changelogs, webhooks, an MCP server (Claude Code/Cursor/Codex/ChatGPT/Windsurf) so AI agents triage feedback and publish changelogs, plus a Widget SDK (identify users) and a Swift SDK. Use when reading or syncing feedback posts/votes via the API, wiring the UserJot MCP server into Claude Code, reacting to a webhook, embedding the widget or identifying logged-in users, mapping post statuses to a roadmap, or picking a plan (free vs Starter vs Professional). Do NOT use for voice-of-customer / NPS survey program strategy across tools (use /sales-customer-feedback) or aggregating unsolicited feedback across reviews/social (use /sales-noisely).
npx skillsauth add sales-skills/sales sales-userjotInstall 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.userjot.com/v1, Bearer token)identify, or the Swift SDK on iOS)API or no-code? Code → REST API + webhooks + MCP. Front-end → Widget SDK (identify) / Swift SDK. AI-client → MCP server.
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 / NPS/CSAT/CES survey program strategy across tools | /sales-customer-feedback {question} |
| Aggregating unsolicited feedback across reviews/social/support | /sales-noisely {question} |
| Public review generation strategy (Trustpilot/G2) | /sales-customer-reviews {question} |
| Connecting UserJot 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 build a closed-loop feedback program".
Read references/platform-guide.md for the full reference — the Boards/Posts/Roadmap/Changelog module map (what's API vs widget vs MCP vs UI), the AI layer (duplicate detection, auto-categorization, AI changelog), plan tiers + integration gating, the data model, and quick-start recipes (pull posts via the API; create a post idempotently; verify a webhook; configure the MCP server; embed + identify a user).
Read references/userjot-api-reference.md for the integration surface — Bearer token auth, base URL https://api.userjot.com/v1, the confirmed Boards CRUD endpoints + BoardColor enum, the Posts (/requests) and Changelogs (/changelogs) write endpoints with the optional Idempotency-Key header, the status-code map (401/409 duplicate-or-quota/422/429 + Retry-After), and a Gaps section noting which endpoint bodies are JS-rendered and must be confirmed in the live docs.
Answer using only the relevant section. Don't dump the full reference.
Focus on the user's specific situation:
Authorization: Bearer <token> against https://api.userjot.com/v1. Generate the token in your UserJot workspace settings and keep it server-side.POST /requests (create a feedback post) and POST /changelogs accept an optional Idempotency-Key header — send a stable UUID per logical create so retries don't double-post. Boards and other writes don't take it.409 means a duplicate name or a quota exceeded (e.g. board limit on your plan) — don't blind-retry; inspect which. A 429 carries a Retry-After header — back off for that many seconds.userjot.com/docs → MCP) — don't hard-code an unverified URL.identify (or the Swift SDK auth flow) to attach posts/votes to a real account; without it, widget activity is anonymous. SSO ("automatic login") is plan-gated./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) — Boards endpoints, base URL, auth, and status codes captured verbatim from userjot.com/docs/api; pricing/feature gating from userjot.com/pricing + third-party reviews. The full request/response bodies for non-Boards endpoints are JS-rendered — confirm in the live docs (and in-account) before relying on them.
/requests, not /posts. The product UI calls them "posts," but the create endpoint that accepts Idempotency-Key is POST /requests — don't assume /posts.409 is overloaded. It means a duplicate name OR quota exceeded (board limit, etc.). Branch on the cause; a duplicate is a no-op-ish conflict, a quota means you've hit a plan cap./requests and /changelogs are idempotent. Sending Idempotency-Key elsewhere is ignored; design retries accordingly (or guard duplicates yourself for boards/votes/comments).userjot.com/docs/api lazy-loads sections beyond Boards; sub-paths like /docs/api/requests 404 in the migrated docs app. Confirm bodies/params in the live page — don't reconstruct from memory./sales-customer-feedback — Voice-of-customer / survey program strategy across tools (UserJot is a feedback-board option) — program design, metric choice, tool selection. Install: npx skills add sales-skills/sales --skill sales-customer-feedback -a claude-code/sales-sleekplan — The closest like-for-like AI feedback board with an MCP server (Canny/Frill alternative); compare on webhooks (Sleekplan verifies via secret GET-param, not HMAC) and AI-credit model. Install: npx skills add sales-skills/sales --skill sales-sleekplan -a claude-code/sales-frill — Affordable feedback-board competitor with HMAC-SHA256-signed webhooks + cursor pagination — useful contrast if signed-webhook verification matters. Install: npx skills add sales-skills/sales --skill sales-frill -a claude-code/sales-featureos — FeatureOS (formerly Hellonext) feedback boards + roadmap + changelog + knowledge base; REST API v3 (API-KEY header), OAuth 2.0 apps, auto-disabling webhooks. Install: npx skills add sales-skills/sales --skill sales-featureos -a claude-code/sales-feedbear — Budget feedback board with no pull API (webhooks/JWT SSO/Zapier only) — the contrast when API read access is the deciding factor. Install: npx skills add sales-skills/sales --skill sales-feedbear -a claude-code/sales-noisely — AI aggregation of unsolicited feedback across reviews/social/support (complement: UserJot = solicited boards, Noisely = unsolicited mining). Install: npx skills add sales-skills/sales --skill sales-noisely -a claude-code/sales-integration — Connecting UserJot to a CRM/PM tool via API/webhooks. Install: npx skills add sales-skills/sales --skill sales-integration -a claude-code/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 pull all our feedback posts and their vote counts out of UserJot?"
Skill does: Shows authenticating with Authorization: Bearer <token> against https://api.userjot.com/v1, listing boards (GET /boards) and then the feedback posts (the /requests resource — confirm the list path/params in the live docs since the page is JS-rendered), and reading each post's status/votes. Notes the token stays server-side, that pagination/exact bodies must be confirmed in-app, and that webhooks (new post / vote / status change) beat polling for ongoing sync.
Result: A correct, auth'd export plan with the JS-rendered-spec caveat and a webhook recommendation.
User says: "Can I use UserJot from Claude so it reads, categorizes, and replies to feedback and drafts our changelog?"
Skill does: Points to UserJot's MCP server (setup guides for Claude Code / Cursor / Codex / ChatGPT / Windsurf at userjot.com/docs → MCP), explains it lets an agent triage feedback, update the roadmap, and publish changelogs, and tells the user to grab the exact endpoint/command from the live MCP docs rather than hard-coding an unverified URL. Flags that MCP may count against the plan's integration cap.
Result: A connected MCP server Claude can use, with the plan-gating caveat surfaced.
User says: "We're a small SaaS — UserJot, Canny, or Sleekplan for a feedback board + roadmap, and can I use the API on UserJot free?"
Skill does: Frames the tradeoff — UserJot is the AI-first, no-per-seat affordable pick (free tier with unlimited posts/users + AI duplicate detection + AI changelog + an MCP server), Sleekplan is similarly AI-forward with its own MCP server, and Canny is pricier/enterprise. Flags that on UserJot free there are no integrations (likely including API/webhooks/MCP) — those start on Starter ($29, 1 integration) / Professional ($59, unlimited), best-effort, confirm in-account — and routes broader selection: "run: /sales-customer-feedback choose a product-feedback board tool."
Result: A price-, AI-, and integration-grounded board-tool choice with the free-plan API caveat.
POST /requests (or POST /changelogs) is creating duplicates on retrySymptom: A network retry or re-run creates two identical feedback posts / changelog entries.
Cause: The create succeeded but the response was lost, so your client retried without idempotency.
Solution: Send a stable Idempotency-Key header (a UUID per logical create) on POST /requests and POST /changelogs — UserJot dedupes on it. Note this header is only honored on those two endpoints; for boards/votes/comments, guard duplicates yourself (e.g. check by name/board first).
409 and I can't tell whySymptom: A create (e.g. a board) fails with 409 Conflict.
Cause: 409 is overloaded — it means either a duplicate name OR a quota exceeded (you've hit a plan limit such as the board cap: 2 on Free, 5 on Starter, unlimited on Professional).
Solution: Branch on the cause — if it's a duplicate name, reuse the existing object (GET /boards and match); if it's a quota, upgrade the plan or delete unused objects. Don't blind-retry; the retry will keep 409-ing.
Symptom: Auth fails, or the API/webhooks/MCP aren't available on the free plan.
Cause: Integrations are plan-gated — Free has no integrations, Starter allows 1, Professional unlimited; the API/webhooks/MCP surfaces appear to fall under that cap.
Solution: Upgrade to Starter ($29/mo) for one integration or Professional ($59/mo) for unlimited, then issue/use the token. Confirm in-account exactly which surfaces the cap counts, since the gating wording is best-effort. For survey-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).