Package Information
Released: 7/14/2025
Downloads: 0 weeklyย /ย 0 monthly
Latest Version: 2.5.0
Author: gr0l4f
Documentation
n8n-nodes-nextcloud-tables
A community n8n node for integration with Nextcloud Tables. This node enables full table management, advanced data operations, and is specifically optimized for AI agents.
This repo is the english translation of the original one https://github.com/terschawebIT/n8n-nodes-nextcloud-tables
๐ Production Status: v2.5.0 โ
This node is production-ready for the tested core features and hardened against critical NaN bugs!
โ Version 2.5.0 - Production-Ready:
- โ English translation - All node is now accessible in english
โ Version 2.4.8 - Production-Ready:
- โ Robust Resource Locator Validation - No more NaN errors
- โ AI-Agent Compatibility - Special AI-friendly operations
- โ Comprehensive Error Handling - Detailed HTTP status codes
- โ Optimized API Performance - Query parameters for column operations
- โ Improved Log Labeling - Unique node identification for better grepping
- โ Structured Logging - Debug, Info, Warn, Error levels with context
โ Version 2.4.7 - Production-Ready:
- ๐ก๏ธ NaN Bug Fixes: Robust validation against all NaN sources (null, undefined, 'NaN' strings)
- ๐งน Production Cleanup: Removed all debug tools, clean codebase
- โก Enhanced Error Handling: Helpful error messages for Resource Locator issues
- ๐ง Optimized Builds: TypeScript compilation without warnings
- ๐ฆ Clean Dependencies: Removed outdated scripts and legacy code
โ Tested & Production-Ready:
- Table Management: Basic CRUD operations (getAll, get) โ
- Column Management: All operations including AI-friendly extensions โ
- Row Management: Basic CRUD (create, getAll, get) โ
- Views Management: Basic operations (getAll, create) โ
- Shares Management: User/Group sharing โ
- NaN Bug Protection: Robust Resource Locator validation โ
โ ๏ธ Implemented but Untested:
- Advanced Table Ops: update, delete
- Advanced Row Ops: update (delete not supported by API)
- Advanced Views Ops: get, update, delete, getRows
- Advanced Shares Ops: update, delete
- CSV Import: Complete import pipeline
- Context Integration: App-context features
- Advanced Filter/Sort: Complex multi-column operations
๐ก๏ธ Critical Bug Fixes in v2.4.7
Problem Solved: NaN Table IDs
Nextcloud logs showed critical errors like:
[error] Did expect one result but found none for table id = NaN
[error] no read access to table id = 0
Root Cause: Resource Locator Handling
// BEFORE: Insufficient validation led to NaN IDs
if (!tableId || isNaN(tableId)) { ... }
// AFTER: Robust validation against ALL NaN sources
if (resourceLocator === null || resourceLocator === undefined ||
resourceLocator === 'null' || resourceLocator === 'undefined' ||
resourceLocator === 'NaN' ||
(typeof resourceLocator === 'number' && isNaN(resourceLocator))) {
throw new Error('Resource Locator is required but not set or invalid');
}
Hardened Validation in Load Options
โ
Table ID Extraction: Robust handling of __rl resource locators
โ
Column/View Loading: Validation prevents /tables/NaN/columns requests
โ
Error Messages: Helpful debugging information
โ
String-to-Number Conversion: Safe parseInt() with validation
๐ค AI-Agent Optimized โญ
Unique: This is the first n8n community node specifically optimized for AI agents!
Problem Solved:
Standard n8n nodes use displayOptions to dynamically hide parameters. AI agents can't see these.
Solution: AI-Friendly Operations
โ
All parameters visible at once
โ
No UI dependencies for AI agents
โ
String-based IDs instead of dropdown navigation
โ
Flat parameter structure without nesting
โ
Robust NaN protection in v2.4.7
Available AI-Friendly Operations:
Column Management (AI-Optimized)
// Optimized for AI agents - ALL parameters visible
Operation: "Create Column (AI-Friendly)"
{
"tableIdAI": "123",
"columnType": "selection",
"columnTitle": "Status",
"columnMandatory": true,
// All type-specific parameters available at once:
"selectionOptionsAI": "[\"Open\", \"In Progress\", \"Done\"]",
"selectionDefaultAI": "Open",
"selectionMultipleAI": false,
// Text parameters (ignored for other types):
"textSubtypeAI": "line",
"textMaxLengthAI": 255
// ... all other parameters available
}
// Full updates possible
Operation: "Update Column (AI-Friendly)"
{
"columnIdAI": "456",
"columnType": "text", // Change type
"columnTitle": "New Name", // Change title
"textSubtypeAI": "long", // Text-specific
"textMaxLengthAI": 500 // Change max length
// Only relevant parameters are used
}
Benefits for AI Agents:
๐ Parameter transparency: 24 parameters visible at once
๐ฏ Autonomous operations: No UI interaction required
๐ String-based inputs: No dropdowns, maximum flexibility
๐ก๏ธ NaN protection: Robust validation prevents API errors (v2.4.7)
โฉ๏ธ Backward compatible: Human UI remains unchanged
๐ Feature Overview & Test Status
๐๏ธ Table Operations
โ
Get all tables: Tested, production-ready
โ
Get table: Tested, production-ready
โ ๏ธ Create table: Implemented, untested
โ ๏ธ Update table: Implemented, untested
โ ๏ธ Delete table: Implemented, untested
๐ Column Management โ
FULLY TESTED & AI-OPTIMIZED
Standard operations:
โ
Get all columns: Tested, production-ready
โ
Get column: Tested, production-ready
โ
Create column: Tested, production-ready
โ ๏ธ Update column: Implemented, untested
โ ๏ธ Delete column: Implemented, untested
๐ค AI-Friendly Operations:
โ
Create Column (AI-Friendly): Tested, production-ready - 23 parameters visible
โ ๏ธ Update Column (AI-Friendly): Implemented, untested - 24 parameters for full updates
5 fully supported column types:
โ
Text: Tested - pattern validation, max length, subtypes (single/multiline)
โ
Number: Tested - min/max, decimals, prefix/suffix, validation
โ
DateTime: Tested - default date, flexible input formats
โ
Selection: Tested - dropdown options, default values, multi-select
โ
UserGroup: Tested - user/group selection, multi-select, teams
๐ฏ Row Operations
โ
Get all rows: Tested, production-ready
โ
Get row: Tested, production-ready (client-side filtering)
โ
Create row: Tested, production-ready
โ ๏ธ Update row: Implemented, untested
โ Delete row: Not supported by Nextcloud Tables API
Advanced row features (untested):
โ ๏ธ Smart pagination: Optimized for 1-1000 rows
โ ๏ธ 11 filter operators: =, !=, >, >=, <, <=, LIKE, starts_with, ends_with, is_empty, is_not_empty
โ ๏ธ Multi-column sorting: Priority-based sorting
โ ๏ธ Full-text search: Case-sensitive/insensitive, column-specific
โ
Automatic validation: Column-based data formatting
๐ Views Management
โ
Get views: Tested, production-ready
โ
Create view: Tested, production-ready
โ ๏ธ Get view (single): Implemented, untested
โ ๏ธ Update view: Implemented, untested
โ ๏ธ Delete view: Implemented, untested
โ ๏ธ Get rows from view: Implemented, untested
๐ค Collaboration Features
โ
Get shares: Tested, production-ready
โ
Create share: Tested, production-ready (users & groups)
โ ๏ธ Update share: Implemented, untested
โ ๏ธ Delete share: Implemented, untested
โ
Get users/groups: Tested, production-ready
๐ฅ CSV Import โ ๏ธ UNTESTED
โ ๏ธ Flexible options: Header detection, delimiter selection
โ ๏ธ Column mapping: Automatic or manual mapping
โ ๏ธ Data type conversion: Auto, text, number, datetime, boolean
โ ๏ธ Import status: Monitoring and error handling
๐ App-Context Integration โ ๏ธ UNTESTED
โ ๏ธ Context navigation: Seamless Nextcloud app integration
โ ๏ธ Context tables: Filtered views by app context
โ ๏ธ Context pages: App page management
## Installation
```bash
npm install n8n-nodes-nextcloud-tables
Restart n8n to load the new node.
Configuration
Credentials
Create new credentials of type Nextcloud Tables API:
Nextcloud URL: Full URL (e.g. https://cloud.example.com)
Username: Your Nextcloud username
Password: App password (recommended) or normal password
๐ Security Tip: Use App Passwords:
Nextcloud โ Settings โ Security โ App Passwords
Create a new app password for n8n
๐ค AI-Agent Usage Examples
Create Column (AI-Friendly)
{
"resource": "Column",
"operation": "Create Column (AI-Friendly)",
"tableIdAI": "123",
"columnType": "selection",
"columnTitle": "Project Status",
"columnDescription": "Current status of the project",
"columnMandatory": true,
"selectionOptionsAI": "[\"Planned\", \"In Progress\", \"Testing\", \"Done\", \"Archived\"]",
"selectionDefaultAI": "Planned",
"selectionMultipleAI": false
}
Update Column (AI-Friendly)
{
"resource": "Column",
"operation": "Update Column (AI-Friendly)",
"columnIdAI": "456",
"columnTitle": "Advanced Project Status",
"selectionOptionsAI": "[\"Backlog\", \"Sprint\", \"Review\", \"Done\", \"Cancelled\"]",
"selectionDefaultAI": "Backlog"
}
Various Column Types for AI Agents
// Create Text Column
{
"columnType": "text",
"columnTitle": "Description",
"textSubtypeAI": "long",
"textMaxLengthAI": 1000,
"textPatternAI": "^[A-Za-z0-9\\s]+$"
}
// Create Number Column
{
"columnType": "number",
"columnTitle": "Budget",
"numberMinAI": 0,
"numberMaxAI": 100000,
"numberDecimalsAI": 2,
"numberPrefixAI": "โฌ"
}
// Create User/Group Column
{
"columnType": "usergroup",
"columnTitle": "Responsible",
"usergroupTypeAI": "user",
"usergroupMultipleAI": false
}
Human vs. AI-Agent Comparison
// HUMAN (UI-optimized) - Parameters appear dynamically
Operation: "Create Column"
Table: [Dropdown Selection]
Type: "Selection"
// โ Then type-specific parameters appear
// AI-AGENT (AI-optimized) - All parameters visible
Operation: "Create Column (AI-Friendly)"
// โ ALL 23 parameters immediately visible and usable
// โ String-based inputs instead of dropdowns
// โ Maximum flexibility for autonomous execution
๐ง Advanced Usage
Advanced Row Query with Filters
{
"resource": "Row",
"operation": "Get All Rows",
"source": "table",
"tableId": "123",
"useFiltering": true,
"filters": [
{
"columnId": "5",
"operator": "EQ",
"value": "Active"
},
{
"columnId": "8",
"operator": "GT",
"value": "2024-01-01"
}
],
"useSorting": true,
"sorting": [
{
"columnId": "10",
"direction": "DESC"
}
]
}
CSV Import with Column Mapping
{
"resource": "Import",
"operation": "Import CSV to Table",
"tableId": "123",
"csvData": "[Binary CSV Data]",
"hasHeader": true,
"delimiter": ";",
"columnMapping": [
{
"csvColumn": "Customer Name",
"tableColumn": "1",
"dataType": "text"
},
{
"csvColumn": "Created Date",
"tableColumn": "2",
"dataType": "datetime"
}
]
}
๐ Full API Coverage
โ
Implemented Endpoints
Tables: /tables/* (full CRUD)
Rows: /tables/{id}/rows, /views/{id}/rows (full CRUD except DELETE*)
Views: /tables/{id}/views, /views/{id} (full CRUD)
Columns: /tables/{id}/columns, /columns/{id} (full CRUD + AI-friendly)
Shares: /tables/{id}/shares, /shares/{id} (full CRUD)
Import: /tables/{id}/import (POST + status monitoring)
Context: /contexts/* (GET operations)
*Note: Row DELETE is not supported by the Nextcloud Tables API
๐ง Compatibility
Nextcloud: 28+ (tested)
Tables App: 0.6+ (tested)
n8n: 1.0+ (tested)
๐ ๏ธ Technical Details
API Version: Hybrid v1/v2 (optimized per operation)
Authentication: Basic Auth with app-password support
Error Handling: 10 HTTP status codes with specific messages
Retry Logic: 3 attempts with exponential backoff
Validation: Column-based real-time validation
Development & Testing
Setup
npm install # Install dependencies
npm run build # Compile TypeScript
npm run dev # Development mode
npm run lint # Lint code
npm run format # Format code
Project Structure
nodes/NextcloudTables/
โโโ NextcloudTables.node.ts # Main node
โโโ descriptions/ # UI definitions
โ โโโ column.ts โ AI-OPTIMIZED
โ โโโ table.ts โโโ row.ts
โ โโโ view.ts โโโ share.ts
โ โโโ import.ts โโโ context.ts
โโโ handlers/ # Business logic
โ โโโ column.handler.ts โ AI-FRIENDLY LOGIC
โ โโโ *.handler.ts
โโโ helpers/ # Core utilities
โ โโโ api.helper.ts # HTTP + error handling
โ โโโ data.formatter.ts # Validation
โ โโโ node.methods.ts # Dynamic dropdowns
โโโ interfaces/ # TypeScript types
๐ ๏ธ Troubleshooting
Logging & Debugging
๐ Improved Log Labeling (New in v2.4.8)
All node logs are now clearly labeled for better grepping:
# All Nextcloud Tables node logs
grep "N8N-NEXTCLOUD-TABLES" /path/to/n8n/logs
# Only API errors
grep "N8N-NEXTCLOUD-TABLES.*API-ERROR" /path/to/n8n/logs
# Only validation errors
grep "N8N-NEXTCLOUD-TABLES.*VALIDATION-ERROR" /path/to/n8n/logs
# Operation-specific logs
grep "N8N-NEXTCLOUD-TABLES.*OPERATION-" /path/to/n8n/logs
# Resource Locator debugging
grep "N8N-NEXTCLOUD-TABLES.*RESOURCE-VALIDATION" /path/to/n8n/logs
Log Categories:
[N8N-NEXTCLOUD-TABLES] [DEBUG] [API-REQUEST] - API requests
[N8N-NEXTCLOUD-TABLES] [DEBUG] [API-RESPONSE] - API responses
[N8N-NEXTCLOUD-TABLES] [INFO] [OPERATION-START] - Operation started
[N8N-NEXTCLOUD-TABLES] [INFO] [OPERATION-SUCCESS] - Operation successful
[N8N-NEXTCLOUD-TABLES] [ERROR] [OPERATION-ERROR] - Operation failed
[N8N-NEXTCLOUD-TABLES] [WARN] [VALIDATION-ERROR] - Validation error
[N8N-NEXTCLOUD-TABLES] [DEBUG] [RESOURCE-VALIDATION] - Resource locator debugging
Example Logs:
2024-01-15T10:30:45.123Z [N8N-NEXTCLOUD-TABLES] [INFO] [OPERATION-START] table.getAll
2024-01-15T10:30:45.124Z [N8N-NEXTCLOUD-TABLES] [DEBUG] [API-REQUEST] GET /tables
2024-01-15T10:30:45.234Z [N8N-NEXTCLOUD-TABLES] [DEBUG] [API-RESPONSE] GET /tables -> 200 (110ms)
2024-01-15T10:30:45.235Z [N8N-NEXTCLOUD-TABLES] [INFO] [OPERATION-SUCCESS] table.getAll completed (112ms)
### Common Issues
**401 Unauthorized**
โ
**Solution**: Use an app password, check permissions.
**AI Agent can't see parameters**
โ
**Solution**: Use AI-Friendly operations (`createAIFriendly`, `updateAIFriendly`).
**๐จ NaN Table ID Errors (FIXED in v2.4.7)**
โ **Symptom**: Nextcloud logs show `table id = NaN` or `table id = 0`.
โ
**Solution**: Update to v2.4.7 โ robust Resource Locator validation implemented.
**Filters not working**
โ
**Solution**: Use column IDs instead of names, ensure correct operators.
**Column creation failed**
โ
**Fixed**: Uses optimized API v1 with query parameters.
**Resource Locator Validation Errors**
โ
**New in v2.4.7**: Detailed error messages to help with debugging:
"Resource Locator is required but not set or invalid"
"Invalid ID in Resource Locator: 'undefined' is not a valid number"
### Error Handling
Detailed error messages for all HTTP status codes:
- **400โ404**: Client errors with suggested fixes
- **429**: Rate-limiting with automatic retry
- **5xx**: Server errors with retry logic
- **Resource Locator**: Specific validation and helpful debugging (v2.4.7)
## ๐ฏ **Roadmap**
### โ
**Version 2.4.8 (Current)**
- โ
**Improved Log Labeling** โ clear `[N8N-NEXTCLOUD-TABLES]` prefixes
- โ
**Structured Logging** โ Debug, Info, Warn, Error levels with context
- โ
**API Request/Response Logging** โ detailed debugging information
- โ
**Operation Tracking** โ start, success, error logging with timestamps
- โ
**Validation Logging** โ resource locator and parameter validation
- โ
**Grep-friendly logs** โ easy filtering by category
### โ
**Version 2.4.7**
- ๐ก๏ธ **Critical NaN Bug Fixes**: Robust resource locator validation
- ๐งน **Production Cleanup**: Removed all debug tools and legacy code
- โก **Enhanced Error Handling**: Helpful messages and validation
- ๐ฆ **Optimized Builds**: Clean TypeScript compilation without warnings
### โ
**Version 2.4.6 (Previous)**
- Full AI-Agent optimization
- 24 AI parameters with systematic separation
- Robust validation and error handling
- Clean UX for all operations
### ๐ฎ **Future Versions**
- More AI-Friendly operations for other resources
- Extended AI features (bulk operations, schema inference)
- Performance optimizations for large datasets
- Extended context integration with more Nextcloud apps
## Contributing
**Contributions welcome!** Especially:
- ๐ค **AI-Agent Testing**: Help test the AI-friendly operations
- ๐ **Bug Reports**: Use GitHub Issues
- ๐ป **Code**: Improvements and new features
- ๐ **Documentation**: Examples and best practices
## License
MIT
## Support
- **GitHub**: [Issues & Discussions](https://github.com/terschawebIT/n8n-nodes-nextcloud-tables)
- **n8n Community**: [Community Forum](https://community.n8n.io/)
- **Documentation**: [Nextcloud Tables API](https://github.com/nextcloud/tables/blob/main/docs/API.md)
---
**๐ค This node is the first AI-Agent-optimized n8n community node!**
**Try the AI-friendly operations and experience fully autonomous table mana