npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-innotes

v2.0.21

Published

N8N node for InNotes CRM API integration

Readme

n8n-nodes-innotes

An n8n community node for the InNotes LinkedIn CRM API: contacts, notes, jobs, statuses, tags, the current user, and the job-automation callback.

The LinkedIn scraper node is a separate package, n8n-nodes-linkedin-scraper.

Installation

Published to NPM as n8n-nodes-innotes; package.json carries the n8n-community-node-package keyword.

Build from source (engines: Node >=18.10, yarn >=1.22.0):

yarn install
yarn build

Credentials

Create an InNotes API credential:

| Field | Notes | |---|---| | Base URL | Your InNotes instance. Default https://innotes.me | | Bearer Token | Generate in the InNotes dashboard settings | | Callback Secret | Required — the node refuses to run Automation → Report Job Created without a value. InNotes fills it in when it provisions your automation; setting the credential up by hand, any non-empty value works, because the callback authenticates with the Bearer token above | | Allowed Domains | * for all |

The credential is tested against GET /api/user.

Username/password auth was removed in 2.0.0. Regenerate any older credential with a Bearer token.

Resources and operations

| Resource | Operations | |---|---| | Automation | Get Config, Report Job Created | | Contact | Create, Get, Get Many, Update, Delete | | Note | Create, Get (both broken — see below) | | Job | Create, Get, Get All, Search, Update, Delete, Exists, Batch Exists | | Status | Get All, Create | | Tag | Get All | | User | Get, Get CV |

Required fields: Contact create needs Name and LinkedIn Key; Job create needs Job Name and Company Name.

The Note resource is broken. NoteDescription.ts declares External ID (ext_id) and Note Text (text) as its required fields, but the executor reads content and contactId on create and noteId on get with no fallback — none of which the note resource declares, so a UI-filled node throws on the missing parameter — and Get calls /api/note/{noteId} rather than looking up by external ID.

Job Search takes a search method: general, ext_id, title, company, location, description. Batch Exists takes a comma-separated list of external IDs and posts them to /api/job/batch-exists in chunks of 200.

Pagination

Contact Get Many takes Return All or a Limit (default 24). The limit is capped at 200 because GET /api/contacts clamps pageSize there — without the cap a request for 500 returns 200 rows with a 200 status and nothing to say it was truncated.

Job Get All offers neither: it exposes only Search Term and External ID, while the executor reads an undeclared returnAll/limit, so every call requests pageSize=24, page=1 and cannot be changed.

Options

A node-level Options collection with Batch Size (default 10, max 100) and Timeout Between Batches in ms (default 1000), to stay under rate limits.

Errors

Contact Create and the Job Create / Get / Get All / Update / Delete operations re-raise a failure as NodeApiError naming the operation and the request parameters. Contact creation reports only the count of contact_details entries, never the values — n8n persists execution data, and those are a third party's phone numbers and email addresses.

Development

yarn install
yarn lint     # eslint (flat config, eslint.config.mjs)
yarn test     # jest
yarn build    # gulp: tsc -> dist/, plus icons, credentials, package.json
yarn dev      # build + watch

Publishing is automated — see CI_SETUP.md. Do not npm publish by hand.

License

MIT.