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-ynab-by-liam

v1.0.1

Published

A community node for the YNAB budgeting app

Readme

Overview of YNAB Node

I created this node for personal use.

While I am currently an employee of n8n, this is an unofficial node I built in my own time. I have no affiliation with YNAB beyond being a user.

Haven't heard of YNAB? Check it out here.

Version 2 (breaking changes)

As of 1.0.0, the YNAB node has a new version 2. Version 2 is the default for any node you newly add to a workflow. If you already have YNAB nodes in existing workflows, they are unaffected — n8n pins them to version 1 automatically, so nothing breaks. You can manually upgrade a node to v2 by removing it and re-adding it (or replacing it), then updating its parameters to match the changes below.

Version 1.0.0+ of this package requires n8n 1.80 or newer, since it uses APIs that older n8n versions lack. If you're on an older n8n, stay on package version 0.1.6.

Breaking changes

  • One item per record. List-type operations (Get Many) now output one n8n item per YNAB record, instead of a single item wrapping all results. v1 returned: [{ "json": [ {account1}, {account2} ] }] for List Accounts, or [{ "json": { "payees": [...] } }] for List Payees. v2 returns one item per record, so Split In Batches and Filter work naturally downstream.
  • Operations renamed to the "Get Many" convention. e.g. List Accounts is now Get Many, Get Account is now Get. See the full migration table below.
  • Update operations use an "Update Fields" collection. Fields you want to change are now added individually to an "Update Fields" collection instead of being fixed top-level parameters, matching standard n8n node UX.
  • Since parameter renamed. The UI label remains "Since", but the internal parameter key changed from since to sinceDate on operations that support delta requests (affects expressions referencing the parameter).
  • Scheduled Transaction update now uses PUT, matching the current YNAB API (the endpoint no longer accepts PATCH).

Fixed bugs

  • Amounts like -128.14 are no longer rejected (#1). Converting to milliunits with floating point math could produce a non-integer (e.g. -128140.00000000001), which YNAB's API rejects. This is fixed in both v1 and v2.
  • Delete Scheduled Transaction now actually works. In v1 this operation was present in the UI but silently did nothing.
  • An amount of 0 is now accepted on create/update operations (v2 only) — previously it was dropped.
  • The trigger node is more robust: the first poll after activation no longer floods your workflow with every historical event, each event type tracks its own delta cursor, and the deduplication buffer is larger.

New in v2

  • Return All / Limit options on Get Many operations, so you can cap results without pulling every record.
  • Name-or-ID dropdowns for Account, Category, and Payee fields — pick from a searchable list instead of pasting a raw ID.
  • Usable as an AI Agent tool.
  • Credential test button to verify your Personal Access Token and Budget ID before running a workflow.

Migration table (v1 operation → v2 operation)

| Resource | v1 operation | v2 operation | | --- | --- | --- | | Budget | budgetDetails | get | | Budget | budgetSettings | getSettings | | Account | listAccounts | getMany | | Account | getAccount | get | | Account | createAccount | create | | Category | listCategories | getMany | | Category | getCategory | get | | Category | updateCategory | update | | Payee | listPayees | getMany | | Payee | getPayee | get | | Payee | updatePayee | update | | Payee Location | listPayeesLocations | getMany | | Payee Location | getLocationById | get | | Payee Location | getLocationByPayee | getByPayee | | Month | listMonths | getMany | | Month | getMonth | get | | Transaction | listTransactions | getMany | | Transaction | getTransaction | get | | Transaction | getTransactionByCategory | getManyByCategory | | Transaction | getTransactionByPayee | getManyByPayee | | Transaction | getTransactionByMonth | getManyByMonth | | Transaction | createTransaction | create | | Transaction | createTransactions | createMany | | Transaction | updateTransaction | update | | Transaction | deleteTransaction | deleteTransaction | | Scheduled Transaction | listScheduledTransactions | getMany | | Scheduled Transaction | getScheduledTransaction | get | | Scheduled Transaction | createScheduledTransaction | create | | Scheduled Transaction | updateScheduledTransaction | update | | Scheduled Transaction | deleteScheduledTransaction | deleteScheduledTransaction |

Note that resource values also changed from plural to singular in v2, e.g. accountsaccount, categoriescategory, payeespayee, payeeLocationspayeeLocation, monthsmonth, transactionstransaction, scheduledTransactionsscheduledTransaction, budget stays budget.

Bugs/Contributing/Feature Request

If you have a bug to report or a feature request, please submit a GitHub issue with as much detail as you're able to give.

Feel free to submit PRs, but please get in touch with me first to make sure I am willing to add the feature before you spend the time on it.

Documentation

Installation

This can only be installed if you are self-hosting n8n or if this node becomes a verified community node.

Follow the installation guide in the n8n community nodes documentation.

Operations

It should be pretty self explainitory.

If you get stuck, try checking out the YNAB api docs and refrence since this node is just a thin layer ontop of the API.

Credentials

You need a personal access token and your budget ID to authenticate with this node.

This will tell you how to create an access token in YNAB.

And the budget ID will be in this spot on your URL when you are on the webapp. screenshot of id

You will need to make a credential per budget if you work with multiple budgets

Development

If you're contributing to this node, npm run dev now runs n8n-node dev, which starts a local n8n instance with the node loaded and hot reload enabled.

On very new Node.js versions (26+), npm install may need to be run as npm install --ignore-scripts to work around a transitive native dependency of the dev CLI. This only affects contributors setting up a dev environment — it has no effect on users installing the published node.