Description
n8n-nodes-tela
This is an n8n community node that provides seamless integration with the Tela API. It allows you to interact with Tela projects and canvases in your n8n workflows, enabling dynamic content generation and workflow automation.
TL;DR
Don’t want to read? Import the sample workflow “Tela Canvas Execution with Dynamic Variables” to test this node with real Tela API integration.
What This Node Does
The Tela node enables you to:
- Execute Tela Canvases: Run AI-powered canvases with dynamic variables and get results
- Dynamic Variable Handling: Automatically detect and configure canvas variables
- File Upload Support: Handle file uploads for canvas processing
- Project Management: List and manage Tela projects and their canvases
- Workflow Integration: Seamlessly integrate Tela AI workflows into your n8n automation
Installation
Community Nodes (Recommended)
1. Go to Settings > Community Nodes
2. Select Install
3. Enter @meistrari/n8n-nodes-tela as the package name
4. Agree to the risks of using community nodes
5. Select Install
Manual Installation
For self-hosted n8n instances:
npm install @meistrari/n8n-nodes-tela
For Docker installations, follow the custom nodes guide.
Configuration
1. Create Tela API Credentials
1. Create a new credential of type “Tela API”
2. Enter your Tela API key (find this in your Tela dashboard)
3. Test the connection to verify it works
2. Configure the Node
1. Project: Select the project containing your canvas
2. Canvas: Choose the specific canvas to execute
3. Variables: Configure dynamic fields based on your canvas configuration
Operations
Execute Canvas
The main operation that runs your Tela canvas with the specified variables and returns the AI-generated results.
Parameters:
| Field | Type | Required | Description |
| —————— | ——- | ——– | ————————————————————————— |
| Project | Options | Yes | Select the project containing your canvas |
| Canvas | Options | Yes | Select the canvas to execute |
| Variables | Collection | No | Dynamic fields based on your canvas configuration |
| Async Execution | Boolean | No | When enabled, returns immediately with completion ID instead of waiting |
Use Cases:
Execute Workstation
Create a task in the Tela Workstation dashboard. Tasks are visible in the Tela web interface and can be reviewed, approved, or processed manually.
Parameters:
| Field | Type | Required | Description |
| ————- | ———- | ——– | ————————————————- |
| Project | Options | Yes | Select the project containing your canvas |
| Canvas | Options | Yes | Select the canvas to execute |
| Label | String | No | Optional label for the workstation task |
| Variables | Collection | No | Dynamic fields based on your canvas configuration |
Response:
Use Cases:
Get Completion
Retrieve the result of an async canvas execution. Use this operation to poll for completion status when using async execution.
Parameters:
| Field | Type | Required | Description |
| —————- | —— | ——– | —————————————- |
| Completion ID | String | Yes | The ID returned from async execution |
Response:
id, status, and outputContentUse Cases:
Node Reference
Credentials
| Field | Description |
| ———– | ————————————- |
| API Key | Your Tela API key from your dashboard |
Parameters
| Field | Type | Required | Description |
| ————- | ———- | ——– | ————————————————- |
| Project | Options | Yes | Select the project containing your canvas |
| Canvas | Options | Yes | Select the canvas to execute |
| Variables | Collection | No | Dynamic fields based on your canvas configuration |
Usage Examples
Example 1: Basic Canvas Execution
Input Data:
{
"customerName": "John Doe",
"productType": "Premium Subscription",
"monthlyAmount": 99.99
}
Canvas Variables:
customer_name: John Doeproduct_type: Premium Subscriptionmonthly_amount: 99.99Result: AI-generated personalized content based on your canvas configuration.
Example 2: File Processing
Input Data:
{
"document": "binaryfiledata",
"processingType": "summarize"
}
Canvas Variables:
document: [File upload]processing_type: summarizeResult: AI-processed document with summary or analysis.
Example 3: Dynamic Content Generation
Input Data:
{
"industry": "Technology",
"companySize": "100-500 employees",
"challenge": "Digital transformation"
}
Canvas Variables:
industry: Technologycompany_size: 100-500 employeeschallenge: Digital transformationResult: Tailored content addressing specific business challenges.
Sample Workflows
Workflow 1: Automated Customer Onboarding
1. Webhook receives new customer signup
2. Tela generates personalized welcome email
3. Send Email delivers the generated content
Workflow 2: Document Processing Pipeline
1. File Upload receives document
2. Tela processes and analyzes document
3. Database stores processed results
4. Notification sends completion alert
Workflow 3: Marketing Campaign Generator
1. CRM provides customer segments
2. Tela generates personalized campaigns
3. Marketing Platform deploys campaigns
4. Analytics tracks performance
Advanced Features
Dynamic Variable Detection
The node automatically detects canvas variables and their types:
Smart File Handling
Load Options
Compatibility
Troubleshooting
Common Issues
1. API Key Invalid
– Verify your Tela API key is correct
– Check if the key has expired
– Ensure proper permissions
2. Project Not Loading
– Verify API key has access to projects
– Check Tela API status
– Refresh credentials
3. Canvas Execution Fails
– Verify all required variables are set
– Check canvas configuration in Tela
– Review API response for error details
Error Messages
Failed to load projects: Check API key and permissionsFailed to load canvases: Verify project ID and accessFailed to execute canvas: Review variable configurationResources
Support
Getting Help
Development
Local Development
Clone the repository
git clone https://github.com/meistrari/n8n-nodes-tela.git
cd n8n-nodes-telaInstall dependencies
npm installBuild the project
npm run buildLink locally for testing
npm link
Testing
Run tests
npm testBuild and test
npm run build && npm test
Changelog
Version 1.5.0
Improved Binary File Handling
#### Improvements
helpers.getBinaryDataBuffer() instead of directly accessing binary data, which works correctly in all n8n storage modes (memory, filesystem, S3)file type variables. Tela will automatically parse text content from files when needed 1. String with binary field name (e.g., "data")
2. Binary object passed directly (e.g., {{ $binary.data }})
3. Fallback to first available binary when value is empty
#### Migration Guide
No breaking changes – all existing workflows continue to work. The only difference is:
type: text can now receive binary files (previously only type: file variables could)Version 1.4.0
BREAKING CHANGE: Simplified API Response Handling
All operations now return the raw API response directly instead of formatted/transformed data.
#### Breaking Changes
CompletionResponse object from the API – Before: data.choices[0].message?.content (sync) or { id, status } (async)
– After: Full API response object
– Before: { status: "created" }
– After: Full CompletionResponse object from the API
– Before: { status, ...outputContent } (succeeded) or { status } (pending)
– After: Full GetCompletionResponse object with id, status, and outputContent
#### Migration Guide
If your workflows depend on the previous response format, you’ll need to update your expressions:
Execute Canvas (sync) - accessing content
Before: {{ $json.fieldName }}
After: {{ $json.choices[0].message.content.fieldName }}Execute Canvas (async) - accessing id/status
Before: {{ $json.id }}
After: {{ $json.id }} (no change needed)Get Completion - accessing output content
Before: {{ $json.fieldName }}
After: {{ $json.outputContent.content.fieldName }}
#### Why This Change?
Version 1.2.0
New Features: Async Execution, Completion Polling & Workstation Integration
#### New Operations
– Tasks are visible in the Tela web interface for review and approval
– Supports optional label field for task identification
– Automatically fetches application_id from the canvas
– Returns { status: "created" } on success
– Accepts a completionId parameter
– Returns { status, ...content } when succeeded
– Returns { status } when still processing (for polling workflows)
#### Execute Canvas Enhancements
– When enabled, returns immediately with { id, status } instead of waiting for completion
– Ideal for long-running AI tasks that may exceed timeout limits
– Enables building polling workflows with Wait + If nodes
#### Use Case: Async Workflow Pattern
1. [Tela: Execute Canvas] (Async: ON) → { id: "abc-123", status: "pending" }
2. [Wait] → 5 seconds
3. [Tela: Get Completion] (ID: {{ $json.id }}) → { status: "pending" } or { status: "succeeded", ...content }
4. [If] status !== "succeeded" → Loop back to step 2
5. [Continue] → Process the completed result
#### Use Case: Workstation Task Creation
1. [Webhook] → Receive data from external system
2. [Tela: Execute Workstation] → Create task with label "{{ $json.customer }} - {{ $json.orderId }}"
3. [Task appears in Tela dashboard for human review]
#### Technical Details
async parameter to completion request bodystatus field to completion response typesGetCompletionResponse type for get completion endpointPromptApplication and WorkstationRequest types/prompt-application endpoint integrationVersion 1.1.2
UX Pattern compliance for n8n verification:
#### n8n Verification Requirements
– Resource: Canvas (single option, extensible for future resources)
– Operation: Execute (executes a canvas with variables)
– All existing functionality preserved and unchanged
– No breaking changes – workflows continue to work seamlessly
#### User Experience Improvements
#### Technical Details
resource property with ‘canvas’ optionoperation property with ‘execute’ actiondisplayOptions to show conditionally#### Breaking Changes
Version 1.1.0
Major improvements for n8n Cloud verification compliance:
#### Critical Fixes
overrides section from package.json to prevent masking security vulnerabilitieshttpRequest helper for proper proxy support, retry logic, and request loggingpairedItem metadata on all outputs#### High Priority Improvements
console.error with n8n’s logger service for better debugging in production#### Quality Improvements
– Updated both node and credential files to use tela.svg
– Removed legacy PNG icon from build output
– Consistent icon format across entire package
NodeOperationError with detailed metadata including itemIndex#### Breaking Changes
#### Developer Experience