n8n-nodes-devana is a community node package that integrates Devana AI into n8n workflows. It enables workflow automation with AI-powered conversations, document processing, and agent interactions directly within your n8n automation pipelines.
n8n-nodes-devana# Navigate to your n8n custom nodes folder
cd ~/.n8n/custom
# Install the package
npm install n8n-nodes-devana
# Restart n8n
n8n stop && n8n start
FROM n8nio/n8n:latest
# Install community node
RUN cd /usr/local/lib/node_modules/n8n && \
npm install n8n-nodes-devana
Enables conversational AI interactions within workflows.
| Property | Type | Required | Description |
|---|---|---|---|
| API Key | Credential | Yes | Your Devana API key |
| Agent ID | String | Yes | The AI agent to interact with |
| Conversation ID | String | No | Existing conversation or create new |
| Message | String | Yes | The message to send |
| Stream Response | Boolean | No | Enable streaming responses |
| Include Context | Boolean | No | Include previous messages |
| Max Tokens | Number | No | Maximum response length |
| Temperature | Number | No | Response creativity (0-1) |
{
"nodes": [
{
"type": "n8n-nodes-devana.devanaChat",
"name": "Ask Devana",
"parameters": {
"agentId": "{{$json.agentId}}",
"message": "Analyze this customer feedback: {{$json.feedback}}",
"temperature": 0.7,
"includeContext": true
},
"credentials": {
"devanaApi": {
"id": "1",
"name": "Devana API"
}
}
}
]
}
Process and extract information from documents.
| Property | Type | Required | Description |
|---|---|---|---|
| API Key | Credential | Yes | Your Devana API key |
| Operation | Select | Yes | upload, extract, status, delete |
| Folder ID | String | Yes* | Target folder for upload |
| Document ID | String | Yes* | For extract/status/delete |
| File | Binary/File | Yes* | For upload operation |
| Extract Options | Object | No | OCR, parsing settings |
{
"operation": "upload",
"folderId": "folder-123",
"file": "@/path/to/document.pdf",
"extractText": true,
"performOCR": true
}
{
"operation": "extract",
"documentId": "doc-456",
"format": "structured", // or "text", "markdown"
"includeMetadata": true
}
{
"operation": "status",
"documentId": "doc-456"
}
Query knowledge bases with Retrieval-Augmented Generation.
| Property | Type | Required | Description |
|---|---|---|---|
| API Key | Credential | Yes | Your Devana API key |
| Agent ID | String | Yes | Agent with knowledge base |
| Query | String | Yes | Search query |
| Folders | Array | No | Specific folders to search |
| Max Results | Number | No | Number of results (default: 5) |
| Similarity Threshold | Number | No | Minimum relevance (0-1) |
| Include Sources | Boolean | No | Return source references |
{
"query": "What is our refund policy?",
"folders": ["kb-policies", "kb-legal"],
"maxResults": 3,
"similarityThreshold": 0.7,
"includeSources": true
}
Trigger n8n workflows from Devana conversations.
| Property | Type | Required | Description |
|---|---|---|---|
| Webhook URL | String | Yes | Auto-generated webhook endpoint |
| Agent ID | String | Yes | Agent to monitor |
| Event Type | Select | Yes | message, tool_call, conversation_end |
| Filters | Object | No | Event filtering rules |
Loading diagram...
Implementation:
{
"nodes": [
{
"type": "n8n-nodes-email.emailTrigger",
"name": "New Support Email"
},
{
"type": "n8n-nodes-devana.devanaChat",
"name": "Analyze Sentiment",
"parameters": {
"message": "Analyze sentiment and intent: {{$json.text}}",
"agentId": "support-agent"
}
},
{
"type": "n8n-nodes-base.if",
"name": "Check Sentiment",
"parameters": {
"conditions": {
"string":
Loading diagram...
Implementation:
{
"nodes": [
{
"type": "n8n-nodes-devana.devanaDocument",
"name": "Upload Document",
"parameters": {
"operation": "upload",
"folderId": "{{$json.targetFolder}}",
"extractText": true
}
},
{
"type": "n8n-nodes-devana.devanaDocument",
"name": "Wait for Processing",
"parameters": {
"operation": "status",
"documentId": "{{$json.documentId}}",
"waitUntilComplete":
{
"nodes": [
{
"type": "n8n-nodes-base.httpRequest",
"name": "Receive Question"
},
{
"type": "n8n-nodes-devana.devanaRAG",
"name": "Search Knowledge Base",
"parameters": {
"query": "{{$json.question}}",
"folders": ["kb-products", "kb-support"],
"maxResults": 5
}
},
{
"type": "n8n-nodes-devana.devanaChat",
"name": "Generate Answer",
{
"apiKey": "your-api-key-here",
"baseUrl": "https://api.devana.ai" // Optional custom URL
}
# .env file for n8n
DEVANA_API_KEY=your-api-key
DEVANA_BASE_URL=https://api.devana.ai
N8N_CUSTOM_EXTENSIONS="/home/node/.n8n/custom"
Enable real-time streaming for long AI responses:
{
"type": "n8n-nodes-devana.devanaChat",
"parameters": {
"streamResponse": true,
"onChunk": {
"enabled": true,
"webhook": "{{$json.callbackUrl}}"
}
}
}
Process multiple items efficiently:
{
"type": "n8n-nodes-devana.devanaBatch",
"parameters": {
"operation": "chat",
"items": "{{$items}}",
"parallel": true,
"batchSize": 10,
"delayBetweenBatches": 1000
}
}
Expose n8n workflows as tools to Devana agents:
{
"type": "n8n-nodes-devana.devanaTool",
"name": "Register Workflow as Tool",
"parameters": {
"toolName": "processInvoice",
"description": "Process and validate invoices",
"webhookUrl": "{{$json.webhookUrl}}",
"parameters": {
"invoiceId": "string",
"validate": "boolean"
}
}
}
Implement robust error handling:
{
"nodes": [
{
"type": "n8n-nodes-devana.devanaChat",
"name": "AI Processing",
"continueOnFail": true
},
{
"type": "n8n-nodes-base.if",
"name": "Check Success",
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{$json.error}}",
"operation": "isEmpty"
}
]
}
}
},
{
"type": "n8n-nodes-core.errorWorkflow",
"name": "Handle Error",
"parameters": {
"errorMessage": "{{$json.error.message}}",
"errorCode": "{{$json.error.code}}"
}
}
]
}
{
"type": "n8n-nodes-devana.devanaCache",
"parameters": {
"operation": "get",
"key": "{{$json.queryHash}}",
"fallback": {
"node": "Devana Chat",
"cache": true,
"ttl": 3600
}
}
}
{
"type": "n8n-nodes-devana.devanaRateLimit",
"parameters": {
"limit": 100,
"window": "1h",
"strategy": "sliding",
"onLimit": "queue" // or "reject", "delay"
}
}
{
"type": "n8n-nodes-devana.devanaMetrics",
"parameters": {
"trackUsage": true,
"trackLatency": true,
"trackErrors": true,
"exportTo": "prometheus" // or "datadog", "cloudwatch"
}
}
Enable detailed logging:
{
"type": "n8n-nodes-devana.devanaChat",
"parameters": {
"debug": true,
"logLevel": "verbose", // "error", "warn", "info", "verbose"
"logTo": "console" // or "file", "webhook"
}
}
// Good
{
"agentId": "{{$env.DEVANA_AGENT_ID}}"
}
// Bad
{
"agentId": "agent-12345"
}
{
"retryOnFail": true,
"maxRetries": 3,
"retryInterval": 5000,
"retryExponentialBackoff": true
}
{
"type": "n8n-nodes-base.function",
"name": "Validate Input",
"parameters": {
"functionCode": `
if (!items[0].json.message) {
throw new Error('Message is required');
}
if (items[0].json.message.length > 4000) {
items[0].json.message = items[0].json.message.substring(0, 4000);
}
return items;
`
}
}
{
"type": "n8n-nodes-base.wait",
"name": "Rate Limit Delay",
"parameters": {
"resume": "wait",
"amount": 1,
"unit": "seconds"
}
}
# Check API key is valid
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.devana.ai/v1/agents
# Verify credentials in n8n
n8n credentials:test --name="Devana API"
{
"timeout": 30000, // Increase timeout to 30 seconds
"retryOnTimeout": true
}
{
"type": "n8n-nodes-devana.devanaDocument",
"parameters": {
"streamUpload": true, // Stream large files
"chunkSize": 5242880 // 5MB chunks
}
}
Enable verbose logging in n8n:
# Set log level
export N8N_LOG_LEVEL=debug
# Enable node-specific logging
export DEBUG=n8n-nodes-devana:*
# Start n8n with logging
n8n start --log-level=debug
// Test node configuration
{
"type": "n8n-nodes-devana.devanaTest",
"parameters": {
"test": "connection",
"verbose": true
}
}
| n8n Version | Node Package Version | Notes |
|---|---|---|
| 1.0.0+ | 2.x.x | Full compatibility |
| 0.200.0+ | 1.x.x | Limited streaming support |
| < 0.200.0 | Not supported | Upgrade n8n |
// v1.x
{
"apiKey": "key"
}
// v2.x
{
"authentication": {
"type": "apiKey",
"apiKey": "key"
}
}
// v1.x
{
"type": "devanaChat"
}
// v2.x
{
"type": "n8n-nodes-devana.devanaChat"
}
Full workflow examples available at:
Contributions are welcome! See CONTRIBUTING.md for guidelines.
MIT License - See LICENSE file for details.