Description
n8n-nodes-rows
An n8n community node for integrating with the Rows API.
- Development Setup
- Implementation Details
- Development Workflow
- Publishing
- Resources
- Example workflows
- Node.js 20+ and npm
- n8n installed globally:
npm install n8n -g - Git
– Prerequisites
– Installation
– Project Structure
– Node Architecture
– API Integration
– Key Files
– Rows.node.ts
– operations/
– utils/validation.ts
– RowsApi.credentials.ts
– Making Changes
– Testing Locally
– Debugging
– Vision
Development Setup
Prerequisites
Installation
1. Clone the repository:
git clone
cd n8n-nodes-rows
2. Install dependencies:
npm install
3. Build the node:
npm run build
4. Link for local development:
npm link
5. Link in your n8n installation:
cd ~/.n8n/custom
npm link @rowshq/n8n-nodes-rows
In case you don’t have the folder custom locally, you can create it with mkdir custom
6. Restart n8n to load the node
Project Structure
n8n-nodes-rows/
├── credentials/
│ └── RowsApi.credentials.ts # API credential configuration
├── nodes/
│ └── Rows/
│ ├── operations/ # Operation-specific implementations
│ │ ├── appendData.ts # Append Data operation
│ │ ├── overwriteData.ts # Overwrite Data operation
│ │ └── importVisionData.ts # Vision Import operation
│ ├── utils/ # Shared utilities
│ │ └── validation.ts # File validation functions
│ ├── Rows.node.ts # Main node implementation
│ ├── Rows.node.json # Node codex metadata
│ └── rows.svg # Node icon
├── package.json
└── tsconfig.json
Implementation Details
Node Architecture
The node implements three operations:
/values/{range}:append endpoint/cells/{range} endpoint/vision/import endpoint for extracting data from image filesAll operations are extracted into standalone async functions in the operations/ directory:
appendDataToTable: Appends data to a tableoverwriteDataInTable: Overwrites data in a tableimportVisionData: Processes a single item (one file per request)importVisionDataFromAllItems: Processes all items (multiple files in one request)Shared utilities (file validation, constants) are in the utils/ directory.
API Integration
The node uses:
httpRequestWithAuthentication for authenticated API callsKey Files
#### Rows.node.ts
Main node implementation with:
loadOptions methods for dynamic dropdowns (spreadsheets, tables, folders)execute method for processing workflow items#### operations/
Operation-specific implementations:
appendData.ts: Append data to spreadsheet tablesoverwriteData.ts: Overwrite data in spreadsheet tablesimportVisionData.ts: Vision import with file handling and multipart form data#### utils/validation.ts
Shared validation utilities:
#### RowsApi.credentials.ts
Defines the credential schema for Rows API key authentication.
Development Workflow
Making Changes
1. Edit the TypeScript files in nodes/ or credentials/
2. Run linter:
npm run lint
# or auto-fix issues:
npm run lintfix
3. Rebuild:
npm run build
Testing Locally
1. Start n8n in development mode:
n8n start
2. Access n8n at http://localhost:5678
3. Create a workflow with the Rows node
Debugging
Enable n8n debug logging:
export N8NLOGLEVEL=debug
n8n start
Check logs for API request/response details.
Publishing
1. Update version in package.json
2. Build: npm run build
3. Publish to npm: npm publish
4. (Optional) Submit for n8n cloud verification: docs
Resources
Example workflows
Vision
Read/Write files (file1) ──┐
├──> Merge ──> Rows (Import Vision Data)
Read/Write files (file2) ──┘