skills/sales-insightly/SKILL.md
Insightly (insightly.com) platform help — unified CRM + project management + marketing + service platform whose differentiator is converting a won opportunity into a delivery Project. REST API v3.1 (pod-specific base https://api.{pod}.insightly.com/v3.1, HTTP Basic auth with a Base64-encoded API key as username, top/skip/count_total pagination, 10 req/sec + plan-gated daily quota 1k-100k, 429s, ETag/If-Match concurrency) plus workflow-automation webhooks (Professional+). Use when an Insightly API call returns 401 because the API key wasn't Base64-encoded, finding your pod/region for the base URL, hitting the daily request cap, syncing contacts/organisations/opportunities into a warehouse or another CRM, a webhook only fires from a workflow rule, working around limited reporting or no email sequencing, custom objects locked to Enterprise, or choosing Plus vs Professional vs Enterprise. Do NOT use for comparing CRMs across vendors (use /sales-crm-selection) or generic iPaaS wiring (use /sales-integration).
npx skillsauth add sales-skills/sales sales-insightlyInstall 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?
Which module? Sales CRM, Marketing (email automation/scoring), Service (tickets/portals), or AppConnect (the no-code iPaaS). They are licensed and priced separately.
Auth: Single internal account/script → API key (Base64-encoded as the Basic-auth username). You must know your pod (e.g. na1, eu1) — it's printed under the API key in User Settings and sets the base URL.
Skip-ahead rule: if the user's prompt already provides enough context, skip to Step 2.
| If the question is about... | Route to... |
|---|---|
| CRM selection/comparison or migration strategy across vendors | /sales-crm-selection {question} |
| CRM data cleanup, dedupe, record matching | /sales-data-hygiene {question} |
| Contact/company enrichment for CRM records | /sales-enrich {question} |
| Outbound sequence / cadence design across platforms (Insightly has no native sequencing) | /sales-cadence {question} |
| Connecting Insightly to other tools generically (iPaaS) beyond AppConnect | /sales-integration {question} |
| Lead scoring model design | /sales-lead-score {question} |
When routing, give the exact command, e.g. "This is a CRM-comparison question — run: /sales-crm-selection should I move from Insightly to HubSpot at 30 people".
Read references/platform-guide.md for the full reference — the module map (CRM/Marketing/Service/AppConnect and what's API- vs webhook- vs UI-only), the project-linked-to-opportunity data model, pricing/plan gates, the data model with JSON shapes, and quick-start recipes (create a contact + opportunity; nightly incremental export with count_total; fire a webhook from a workflow rule).
Read references/insightly-api-reference.md for the integration surface — pod-specific base URL, the Base64 Basic-auth scheme, top/skip/count_total pagination, the resource list (Contacts, Organisations, Opportunities, Leads, Projects, Tasks, Events, Notes, Pipelines/PipelineStages, Tags, Products/Pricebooks/Quotes, Users, CustomFields), the CUSTOMFIELDS array shape, ETag/If-Match concurrency, the plan-gated daily quota + X-RateLimit-* headers, and the workflow-automation webhook payload/retry rules.
Answer using only the relevant section. Don't dump the full reference.
Focus on the user's specific situation:
Authorization header. Forgetting the encoding is the #1 cause of 401. (The in-browser API sandbox doesn't require manual encoding, which trips people up.)https://api.{pod}.insightly.com/v3.1 — the pod (na1, eu1, etc.) is printed under your API key in User Settings. A wrong pod looks like an auth/DNS failure.top/skip; count with count_total. top defaults to 100, max 500; page with skip. Add count_total=true to get the total in the X-Total-Count header (it's an extra cost, so don't send it on every page).429 when exhausted. Pull incrementally on DATE_UPDATED_UTC, not full scans.If you discover a gotcha, workaround, or tip not covered in references/learnings.md, append it there.
Best-effort from research (2026-06) — review these, especially pricing and plan-gated features, which change.
401. The help-page sandbox hides this because it encodes for you.https://api.{pod}.insightly.com/v3.1). Hard-coding na1 breaks EU/other-region accounts.429 until reset.Organisations (not Organizations) in API paths and field names./sales-crm-selection — CRM comparison, selection, and migration strategy across vendors (is Insightly the right CRM, or time to switch?)/sales-data-hygiene — CRM data quality: dedupe, record matching, enrichment automation/sales-enrich — Contact/company enrichment for Insightly records/sales-cadence — Outbound sequence/cadence design across platforms (Insightly has no native sequencing)/sales-integration — Connecting Insightly to other tools via webhooks/Zapier/Make beyond AppConnect/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: "I'm calling https://api.insightly.com/v3.1/Contacts with my API key and getting 401 Unauthorized."
Skill does: Diagnoses two issues — (1) the key must be Base64-encoded and sent as the Basic-auth username with a blank password (Authorization: Basic base64(apikey:)), not passed raw; (2) the base URL must use your pod (https://api.{pod}.insightly.com/v3.1), found under the key in User Settings. Shows the working cURL + Python snippet from the API reference.
Result: Authenticated requests succeed against the correct regional endpoint.
User says: "I want to pull opportunities that changed each night into our warehouse without blowing the rate limit."
Skill does: Recommends an incremental pull filtered on DATE_UPDATED_UTC, paginated with top/skip, using count_total=true only on the first page to size the job from X-Total-Count; watch X-RateLimit-Remaining and back off on 429. Notes the daily quota scales by plan (Professional ~60k/day). Points to Recipe 2 in the platform guide.
Result: A bounded nightly export that stays under the daily quota.
User says: "We're a 25-person agency outgrowing spreadsheets — is Insightly a good fit or should we look at HubSpot?"
Skill does: Recognizes a cross-tool selection question and routes: "run: /sales-crm-selection 25-person agency, project-delivery work, Insightly vs HubSpot." Briefly notes Insightly's edge for project-linked work (opportunity→project) and its weak spots (reporting, no sequencing) but defers the comparison to the strategy skill.
Result: User is handed to the right strategy skill with a ready prompt.
Symptom: All requests fail with 401 even though the API key is correct.
Cause: The key wasn't Base64-encoded before being placed in the Authorization: Basic header, or it's being sent as a password instead of the username, or the request hit the wrong pod.
Solution: Encode the key as base64("APIKEY:") (key as username, empty password) and send Authorization: Basic <encoded>. Confirm the base URL uses your pod from User Settings (https://api.{pod}.insightly.com/v3.1). The browser sandbox auto-encodes, so a call that works there but not in your code is almost always the missing encoding.
Symptom: A webhook delivered for a while, then events stopped arriving.
Cause: Insightly webhooks are workflow-automation actions (Professional+) and retry only two more times after a failed delivery, then give up for that event — a brief downstream outage silently drops events. They also only fire when the workflow rule's add/update conditions match.
Solution: Make the receiver return 2xx immediately and process async; verify the workflow rule's trigger conditions still match the records you expect; for guaranteed catch-up, run a periodic reconciliation pull on DATE_UPDATED_UTC. Confirm you're on a plan that includes workflow automation.
Symptom: 429 Too Many Requests, often later in the day or during a backfill.
Cause: The per-day request quota for your plan is exhausted (~1,000 free/legacy → 40,000 Plus → 60,000 Professional → 100,000 Enterprise), or you exceeded the 10 req/sec ceiling.
Solution: Switch full scans to incremental pulls on DATE_UPDATED_UTC, request larger pages (top=500), avoid count_total on every page, cache reference data (pipelines, custom-field metadata), throttle to under 10 req/sec, and watch X-RateLimit-Remaining. If still constrained, move to a higher plan with a larger daily quota.
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).