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-glideapps

v1.0.16

Published

n8n node to connect with Glide Apps

Readme

n8n-nodes-glideapps

This is an n8n community node for integrating with the Glide Big Tables API. It allows you to automate data operations in Glide using n8n workflows.

Installation

Follow these steps to install this node in your n8n instance:

npm install n8n-nodes-glideapps

Credentials

To use this node, you'll need a Glide API key. You can obtain one by:

  1. Creating an account at Glide
  2. Navigating to your team settings
  3. Generating an API key for your team

Configure your credentials in n8n:

  • API Key: Your Glide API key

Features

This node supports various Glide Big Tables API operations including:

  • List, create, and import Big Tables
  • Add, update, and delete rows in Big Tables
  • Replace table schema or data
  • Manage stashes for bulk data operations

Glide Tables Helper Module (for n8n GUI)

This package includes a helper module for the official @glideapps/tables package, focused on dynamic dropdowns and safe UX for n8n nodes.

GUI Operations (for n8n dropdowns and user-facing actions)

  • getApps(apiKey): Returns a list of available apps/teams (placeholder, implement as needed for your Glide setup).
  • getTables(token, appId): Returns a list of tables for a given app (token and appId required).
  • getColumns(client, tableName): Returns a list of columns for a table (for dropdowns).
  • getRows(client, tableName, limit): Returns a preview of rows for dropdowns (with limit).
  • getRowPreview(client, tableName, limit): Returns a preview of rows for dropdowns (with limit).
  • getRowsWithConfirmation(client, tableName, limit, confirmed): Returns rows only if user has confirmed (for large data fetches).
  • getRowFetchWarning(limit): Returns a warning string for the UI before fetching rows.
  • getRowById(client, tableName, rowId): Fetch a single row by ID for previewing.

Use these helpers in your node's loadOptionsMethod for dynamic dropdowns, and in property descriptions to provide warnings or confirmations before large data fetches.

Example: Dynamic Dropdown for Table Columns
{
  displayName: 'Column',
  name: 'column',
  type: 'options',
  typeOptions: {
    loadOptionsMethod: 'getColumns',
    loadOptionsDependsOn: ['table'],
  },
  required: true,
  description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>'
}
Example: Row Fetch with Confirmation
{
  displayName: 'Row',
  name: 'row',
  type: 'options',
  typeOptions: {
    loadOptionsMethod: 'getRowsWithConfirmation',
    loadOptionsDependsOn: ['table', 'confirmed'],
  },
  required: true,
  description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>'
}

Node Execution Helpers (for use in node logic)

  • addRowToTable(client, { tableName, columnValues }): Add a row to a table.
  • setColumnsInRow(client, { tableName, rowID?, rowIndex?, columnValues }): Set columns in a row.
  • deleteRow(client, { tableName, rowID?, rowIndex? }): Delete a row.
  • batchMutateTables(client, mutations): Run multiple mutations in a batch.
  • runMutations(client, mutations): Run any array of mutation objects.
  • queryTableSql(client, { appID, sql, params? }): Run a SQL query (for Big Tables).
  • getAllRowsPaginated(client, tableName, pageSize?, maxPages?): Fetch all rows from a table using pagination (use with caution for large tables).

These helpers are intended for use in your node's main execution logic, not in the GUI.

Note: Internal utilities (such as error extraction and client instantiation) are not intended for direct use in n8n GUI dropdowns.

Below is a full example of using the node execution helpers in your own scripts:

// Example usage of node execution helpers:
const client = getGlideTablesClient('YOUR_API_KEY', 'YOUR_APP_ID'); // For row/column operations

// Add a row
await addRowToTable(client, { tableName: 'MyTable', columnValues: { Name: 'Test' } });

// Update a row
await setColumnsInRow(client, { tableName: 'MyTable', rowID: 'row123', columnValues: { Name: 'Updated' } });

// Delete a row
await deleteRow(client, { tableName: 'MyTable', rowID: 'row123' });

// Batch mutations
await batchMutateTables(client, [
  { kind: 'add-row-to-table', tableName: 'MyTable', columnValues: { Name: 'Batch' } },
  { kind: 'delete-row', tableName: 'MyTable', rowID: 'row456' }
]);

// Query rows
await queryTable(client, { appID: 'YOUR_APP_ID', tableName: 'MyTable' });

// SQL query (Big Tables)
await queryTableSql(client, { appID: 'YOUR_APP_ID', sql: 'SELECT * FROM "MyTable" LIMIT 10' });

// Extract errors from mutation results
const errors = extractMutationErrors(results);

// Dynamic dropdowns for n8n
const tables: DropdownOption[] = await getTables('YOUR_API_KEY', 'YOUR_APP_ID');
const columns: DropdownOption[] = await getColumns(client, 'MyTable');
const rows: DropdownOption[] = await getRows(client, 'MyTable', 50);

// Row preview and confirmation
const preview: DropdownOption[] = await getRowPreview(client, 'MyTable', 10);
const warning = getRowFetchWarning(100);
const safeRows: DropdownOption[] = await getRowsWithConfirmation(client, 'MyTable', 100, true);


// Fetch a single row by ID
const row = await getRowById(client, 'MyTable', 'row123');

🚀 Usage

To get started:

  • Add the Glide node to your workflow
  • Configure your Glide credentials
  • Select the desired operation (e.g., list tables, add rows)
  • Set the operation parameters
  • Connect to other nodes in your workflow

💬 Support & Resources


📝 License

MIT