Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-pincushion
An n8n community node for Pincushion — put visual feedback pins into any automation. Create a pin from a Slack message, an email, a form submission, or a monitoring alert; list open pins; resolve a pin when a downstream job finishes.
A Pincushion pin isn't a comment — it's an agent work packet (URL, selector, thread, project context) your AI coding agent can read and fix via the Pincushion MCP server. This node lets non-agent tools file those packets.
Requirements
Use Node.js 22.22+ or Node.js 24. Node.js 18 and Node.js 20 are unsupported.
Install
In n8n: Settings → Community Nodes → Install and enter n8n-nodes-pincushion.
Self-hosted / CLI:
npm install n8n-nodes-pincushion
Credentials
Add a Pincushion API credential with your license key (the same one the Pincushion browser extension and MCP server use — Pincushion settings → license key). It's sent as the x-license-key header. Free accounts work.
- License Key (required)
- API Base URL — leave default unless you run a self-hosted backend.
Nodes
Pincushion (action)
| Operation | What it does |
|---|---|
| Create Pin | File a new pin. Fields: Project ID, Page URL, Note (required); optional CSS selector, author name/email, tags. The note becomes the pin's first thread message; an n8n tag is always added. |
| List Pins | Return pins your account can see. Optional filters: Project ID, Page URL, Updated Since (ISO), Status (open/ready/resolved). |
| Resolve Pin | Mark an existing pin resolved. Fields: Pin ID + Page URL. |
Pincushion Trigger (polling)
Fires once per pin created, updated, or deleted since the last poll. Scheduled runs use the commit-ordered sync journal with a durable opaque cursor, request at most 200 changes per page, and emit deletion events as { event: "deleted", annotationId }. Options: Project ID (optional), Event (any change / new open pins / resolved pins). The first scheduled poll consumes a paginated materialized bootstrap, then establishes a revision boundary after the existing snapshot so those pins are skipped and only pins from activation forward are emitted. If a cursor expires, the watch scope changes, or the server requires resynchronization, the node resets to a clean paginated bootstrap and emits the recovered pins instead of silently dropping newly accessible history. Manual previews use the snapshot endpoint with a short lookback and do not advance durable state.
Notes
- Pins created through n8n count as manual pins and are never metered — the same as pins dropped in the browser. (Agent-authored pins, which draw from the AI-action pool, are filed through the MCP
create_agent_pintool, not this node.) - Page URLs should fall under a URL you registered on the project (
configure_project) so the pin lands where reviewers and the extension expect it. - Full REST contract: https://pincushion.io/guides/automate-pincushion.
License
MIT © Pincushion