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-teable-io

v0.4.1

Published

n8n community node for Teable — full CRUD, dynamic dropdowns, bulk operations, and upsert for your Teable tables and CRM.

Downloads

3,182

Readme

n8n-nodes-teable

An n8n community node for Teable — the fast, real-time, no-code database built on Postgres.

Replace clunky HTTP nodes with a proper Teable integration: dynamic dropdowns, full CRUD, bulk operations, upsert, and auto-pagination — all in one node.

npm version License: MIT


Installation

In your n8n instance go to Settings → Community Nodes → Install and enter:

n8n-nodes-teable-io

Or install via npm (self-hosted n8n):

npm install n8n-nodes-teable-io

Credentials

Create a Teable API credential with:

| Field | Description | |---|---| | API Token | Your personal access token from Teable account settings | | Base URL | https://app.teable.ai (default) or your self-hosted URL |

After saving, click Test — n8n verifies the token works regardless of which permission scope it was issued with (space, base, table, or record level).


Nodes

Teable (action node)

Record

| Operation | Description | |---|---| | Get All | List records with optional filter, sort, view, field selection, and auto-pagination | | Get | Fetch a single record by its ID | | Create | Create a new record with a field-value UI | | Create Many | Bulk-create from a JSON array (auto-batched at 1 000 per request) | | Update | Patch fields on a single record | | Update Many | Bulk-update from a JSON array | | Delete | Delete a record by ID | | Upsert | Create or update based on a unique field match | | Search | Full-text or field-scoped search |

Table

| Operation | Description | |---|---| | Get All | List all tables in a base | | Get Schema | Return all fields with their types and settings | | Get Views | List all views for a table |

Space / Base

| Operation | Description | |---|---| | List Spaces | All spaces accessible to your token | | List Bases | All bases within a space |


Teable Trigger (polling trigger)

Polls for new or updated records on a schedule you set in the workflow settings.

| Event | Description | |---|---| | New Record | Fires when a record is added | | Record Updated | Fires when an existing record is modified (excludes newly created records) | | New or Updated Record | Fires on any change |

Each trigger output includes:

  • event"created" or "updated"
  • current — current field values (flattened for easy expression access)
  • previous — previous field snapshot (null on first run)

Usage Tips

Finding IDs: Run Space → List Spaces then Space → List Bases to get your IDs, or copy them from the Teable URL.

Return All: Toggle on "Return All" in Get All to automatically paginate through every record (uses skip/take internally, max 1 000 per page).

Field Key Type: Switch between Field Name (human-readable) and Field ID (fldXXX) per operation.

Upsert: Pick the match field from the dropdown — the node searches for a record with that value and updates it, or creates a new one if not found.

Bulk operations: Pass a JSON array to Create Many / Update Many. Each update object needs id and fields:

[
  { "id": "recABC123", "fields": { "Status": "Done" } },
  { "id": "recXYZ456", "fields": { "Status": "In Progress" } }
]

Filter JSON: The Get All filter follows Teable's filter schema:

{
  "conjunction": "and",
  "filterSet": [
    { "fieldId": "fldXXX", "operator": "=", "value": "Active" }
  ]
}

Known Limitations

| Limitation | Detail | |---|---| | n8n version | usableAsTool (AI Agent support) requires n8n ≥ 1.22.0. Workflow node works on any supported n8n version. | | Large table sorting | Ordering by createdTime or lastModifiedTime on very large tables can cause 504 timeouts. The trigger falls back to unordered fetching automatically. The main node does not — avoid sorting by system fields on tables with millions of rows. | | Trigger poll volume | The trigger fetches up to the configured limit per poll cycle. If your table receives bursts larger than that limit between polls, some records may be missed. Raise the limit or shorten the poll interval to compensate. | | Static crawl only | JS-rendered pages are not relevant here, but the Teable API is REST-only — there is no real-time webhook trigger yet. Polling introduces latency equal to your poll interval. | | Return All cap | All Return All operations are hard-capped at 100,000 records to prevent out-of-memory crashes in n8n. |


Roadmap

  • Webhook trigger — real-time record events via Teable webhooks (no polling)
  • Additional record operations — bulk delete, record history, and more

Security

0.2.5 introduced a security hardening pass:

  • SSRF protection on the baseUrl credential field
  • Path injection prevention on all resource ID parameters
  • Improved credential test endpoint (works with any token scope)
  • Error message hardening (no raw user input in logs)

See CHANGELOG.md for full details.


Development

# Install dependencies
npm install

# Build (compiles TypeScript to dist/)
npm run build

# Link to local n8n for testing
npm link
cd ~/.n8n && mkdir -p nodes && cd nodes
npm link n8n-nodes-teable-io

# Start n8n — the Teable node appears in the node picker
npx n8n start

Author

Built and maintained by ZACHARIA Kimotho (Imperol)

LinkedIn GitHub


License

MIT © ZACHARIA Kimotho (Imperol)