{
"id": "RLWjEhY8L4TORAIj",
"meta": {
"instanceId": "36399efc72267ed21ee0d3747f5abdd0ee139cb67749ff919ff09fcd65230079",
"templateCredsSetupCompleted": true
},
"name": "NeurochainAI Basic API Integration",
"tags": [],
"nodes": [
{
"id": "da34bd1a-4e4e-4133-acad-939d0cc96596",
"name": "Telegram Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-1740,
880
],
"webhookId": "05885608-5344-4dcf-81ad-4550b9a01241",
"parameters": {
"updates": [
"*"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.1
},
{
"id": "3b3f4b00-6b3b-4346-8fcc-7ab75bcfe838",
"name": "Code",
"type": "n8n-nodes-base.code",
"notes": "Extract the URL from the previous node",
"position": [
80,
260
],
"parameters": {
"jsCode": "// O valor vem como um array com uma string, então precisamos pegar o primeiro item do array\nconst rawUrl = $json.choices[0].text;\n\n// Remover colchetes e aspas (se existirem) e pegar o primeiro elemento do array\nconst imageUrl = JSON.parse(rawUrl)[0];\n\nreturn {\n json: {\n imageUrl: imageUrl\n }\n};"
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "ccb91a15-96b5-42aa-a6ae-ff7ae79d1e8f",
"name": "HTTP Request3",
"type": "n8n-nodes-base.httpRequest",
"position": [
240,
260
],
"parameters": {
"url": "={{ $json.imageUrl }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "588899b6-a68e-407e-b12f-f05c205674c5",
"name": "Telegram2",
"type": "n8n-nodes-base.telegram",
"position": [
-520,
500
],
"parameters": {
"text": "⌛",
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"replyMarkup": "inlineKeyboard",
"additionalFields": {
"appendAttribution": false,
"reply_to_message_id": "={{ $('Telegram Trigger').item.json.message.message_id }}"
}
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "e1534b69-d93d-4e8b-a3c4-adbc17c1dacd",
"name": "Telegram1",
"type": "n8n-nodes-base.telegram",
"position": [
440,
260
],
"parameters": {
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"operation": "sendPhoto",
"binaryData": true,
"additionalFields": {
"caption": "=*Prompt:* `{{ $('Code1').item.json.cleanMessage }}`",
"parse_mode": "Markdown",
"reply_to_message_id": "={{ $('Telegram Trigger').item.json.message.message_id }}"
}
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "88ba4ced-bdd0-408e-94e1-9e54ed4d1b5d",
"name": "Telegram4",
"type": "n8n-nodes-base.telegram",
"position": [
620,
260
],
"parameters": {
"chatId": "={{ $('Telegram2').item.json.result.chat.id }}",
"messageId": "={{ $('Telegram2').item.json.result.message_id }}",
"operation": "deleteMessage"
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "251a026e-ebfa-44f5-9c80-f30e5c142e23",
"name": "Telegram3",
"type": "n8n-nodes-base.telegram",
"position": [
260,
700
],
"parameters": {
"text": "={{ $json.error.message }}",
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"replyMarkup": "inlineKeyboard",
"inlineKeyboard": {
"rows": [
{
"row": {
"buttons": [
{
"text": "🔄 Retry",
"additionalFields": {
"callback_data": "=response= Fluxretry: {{ $('Code1').item.json.cleanMessage }}"
}
}
]
}
}
]
},
"additionalFields": {
"appendAttribution": false,
"reply_to_message_id": "={{ $('Telegram Trigger').item.json.message.message_id }}"
}
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "fb71a62a-9cf8-4abf-baa4-885ae4b1a290",
"name": "Telegram5",
"type": "n8n-nodes-base.telegram",
"position": [
480,
700
],
"parameters": {
"chatId": "={{ $('Telegram2').item.json.result.chat.id }}",
"messageId": "={{ $('Telegram2').item.json.result.message_id }}",
"operation": "deleteMessage"
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "0f9bcdf0-0008-447a-900c-6afe5b9d53fe",
"name": "Telegram6",
"type": "n8n-nodes-base.telegram",
"position": [
260,
520
],
"parameters": {
"text": "=*Prompt too short*",
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"replyMarkup": "inlineKeyboard",
"additionalFields": {
"parse_mode": "Markdown",
"appendAttribution": false,
"reply_to_message_id": "={{ $('Telegram Trigger').item.json.message.message_id }}"
}
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "d805548a-7379-456c-9bc3-f5fafeb86aed",
"name": "Telegram7",
"type": "n8n-nodes-base.telegram",
"position": [
480,
520
],
"parameters": {
"chatId": "={{ $('Telegram2').item.json.result.chat.id }}",
"messageId": "={{ $('Telegram2').item.json.result.message_id }}",
"operation": "deleteMessage"
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "a3e521a3-aff0-4d31-9a69-626f70f86ae2",
"name": "NeurochainAI - REST API",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
-680,
1280
],
"parameters": {
"url": "https://ncmb.neurochain.io/tasks/message",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"Meta-Llama-3.1-8B-Instruct-Q6_K.gguf\",\n \"prompt\": \"You must respond directly to the user's message, and the message the user sent you is the following message: {{ $('Telegram Trigger').item.json.message.text }}\",\n \"max_tokens\": 1024,\n \"temperature\": 0.6,\n \"top_p\": 0.95,\n \"frequency_penalty\": 0,\n \"presence_penalty\": 1.1\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer YOUR-API-KEY-HERE"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "5fea3a8b-3e1b-4c69-b734-3f9dc7647e4b",
"name": "TYPING - ACTION",
"type": "n8n-nodes-base.telegram",
"position": [
-1100,
1280
],
"parameters": {
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"operation": "sendChatAction"
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "ca183e3d-2bef-4d80-bbb7-c712a0290b2b",
"name": "AI Response",
"type": "n8n-nodes-base.telegram",
"position": [
-360,
1000
],
"parameters": {
"text": "={{ $json.choices[0].text }}",
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"additionalFields": {
"parse_mode": "Markdown",
"appendAttribution": false,
"reply_to_message_id": "={{ $('Telegram Trigger').item.json.message.message_id }}"
}
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "27e65f30-e58e-457d-b3b7-2b74267554e1",
"name": "No response",
"type": "n8n-nodes-base.telegram",
"position": [
-140,
1240
],
"parameters": {
"text": "=*No response from worker*",
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"additionalFields": {
"parse_mode": "Markdown",
"appendAttribution": false,
"reply_to_message_id": "={{ $('Telegram Trigger').item.json.message.message_id }}"
}
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "02cf4dfa-558f-4968-ad09-19f1e40735b0",
"name": "Prompt too short",
"type": "n8n-nodes-base.telegram",
"position": [
-140,
1400
],
"parameters": {
"text": "=*Prompt too short*",
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"replyMarkup": "inlineKeyboard",
"additionalFields": {
"parse_mode": "Markdown",
"appendAttribution": false,
"reply_to_message_id": "={{ $('Telegram Trigger').item.json.message.message_id }}"
}
},
"credentials": {
"telegramApi": {
"id": "VPtf3hBnwGucAQtu",
"name": "TEMPLATE"
}
},
"typeVersion": 1.2
},
{
"id": "943d31e4-3745-49ea-9669-8a560a486cc4",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
1220
],
"parameters": {
"color": 3,
"width": 460.4333621829785,
"height": 347.9769162173868,
"content": "## ERROR"
},
"typeVersion": 1
},
{
"id": "6b5d142f-8d8c-493f-81e7-cedb4e95cd31",
"name": "Switch2",
"type": "n8n-nodes-base.switch",
"position": [
-380,
1380
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.error.message }}",
"rightValue": "=500 - \"{\\\"error\\\":true,\\\"msg\\\":\\\"No response from worker\\\"}\""
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ef851d57-0618-4fe7-8469-a30971a05ee5",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "{{ $json.error.message }}",
"rightValue": "400 - \"{\\\"error\\\":true,\\\"msg\\\":\\\"Prompt string is invalid\\\"}\""
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "77651cb7-2530-46b2-89eb-7ac07f39a3ba",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
860
],
"parameters": {
"color": 4,
"width": 459.0810102677459,
"height": 350.68162004785273,
"content": "## SUCCESS\nThis node will send the AI ​​response directly to the Telegram chat."
},
"typeVersion": 1
},
{
"id": "5dce8414-fe7a-450a-a414-553d3e5e01cd",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-830.8527430805248,
861.5987888475245
],
"parameters": {
"color": 5,
"width": 411.78262099325127,
"height": 705.0354263931183,
"content": "## HTTP REQUEST\n\nReplace **MODEL** with the desired AI model from the NeurochainAI dashboard.\n\nReplace YOUR-API-KEY-HERE with your actual NeurochainAI API key.\n\n**Models:**\nMeta-Llama-3.1-8B-Instruct-Q8_0.gguf\nMeta-Llama-3.1-8B-Instruct-Q6_K.gguf\nMistral-7B-Instruct-v0.2-GPTQ-Neurochain-custom-io\nMistral-7B-Instruct-v0.2-GPTQ-Neurochain-custom\nMistral-7B-OpenOrca-GPTQ\nMistral-7B-Instruct-v0.1-gguf-q8_0.gguf\nMistral-7B-Instruct-v0.2-GPTQ\ningredient-extractor-mistral-7b-instruct-v0.1-gguf-q8_0.gguf"
},
"typeVersion": 1
},
{
"id": "3540e1fa-01f8-4b5e-ad7a-1b1c5cd90d08",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-840,
220
],
"parameters": {
"color": 6,
"width": 236.80242230495116,
"height": 535.7153791682382,
"content": "## This node removes the /flux prefix."
},
"typeVersion": 1
},
{
"id": "6720b734-c0ae-4c88-adb6-3931467c780d",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
444
],
"parameters": {
"color": 3,
"width": 593.1328365275054,
"height": 403.9345258807414,
"content": "## ERROR"
},
"typeVersion": 1
},
{
"id": "30332278-399d-4c8f-8470-dfb967764455",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
220
],
"parameters": {
"color": 5,
"width": 384.60321058533617,
"height": 538.7613862505775,
"content": "## HTTP REQUEST\n\nReplace **MODEL** with the desired AI model from the NeurochainAI dashboard.\n\nReplace YOUR-API-KEY-HERE with your actual NeurochainAI API key.\n\n**Models:**\nsuper-flux1-schnell-gguf\nflux1-schnell-gguf"
},
"typeVersion": 1
},
{
"id": "09f17d6a-6229-49ad-b77b-243712552f2b",
"name": "Code1",
"type": "n8n-nodes-base.code",
"position": [
-780,
480
],
"parameters": {
"jsCode": "// Acessa a mensagem original que está em $json.message.text\nconst userMessage = $json.message.text;\n\n// Remover o prefixo '/flux' e qualquer espaço extra após o comando\nconst cleanMessage = userMessage.replace(/^\\/flux\\s*/, '');\n\n// Retornar a mensagem limpa\nreturn {\n json: {\n cleanMessage: cleanMessage\n }\n};"
},
"typeVersion": 2
},
{
"id": "0c809796-9776-4238-94b8-0779ad390bc6",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-580,
220
],
"parameters": {
"height": 535.7153791682384,
"content": "## This node sends an emoji to indicate that the prompt is being processed."
},
"typeVersion": 1
},
{
"id": "19043710-a61a-46d0-9ab9-bcdf9c94f800",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
80
],
"parameters": {
"color": 4,
"width": 596.5768511548468,
"height": 350.68162004785273,
"content": "## SUCCESS\nThis node will send the AI ​​response directly to the Telegram chat."
},
"typeVersion": 1
},
{
"id": "e5715001-75a3-4da3-84bb-9aad193fe680",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
-1420,
880
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Flux",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "f5df9de6-0650-42e4-9a6e-8d1becf16c51",
"operator": {
"type": "string",
"operation": "startsWith"
},
"leftValue": "={{ $json.message.text }}",
"rightValue": "/flux"
}
]
},
"renameOutput": true
},
{
"outputKey": "text",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "a49ecf63-3f68-4e21-a015-d0cbc227c230",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message.text }}",
"rightValue": "@NCNAI_BOT"
}
]
},
"renameOutput": true
},
{
"outputKey": "DM Text",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": false,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "d5ac0c9f-858a-4040-b72e-ae7b522ff60e",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.message.chat.type }}",
"rightValue": "private"
}
]
},
"renameOutput": true
}
]
},
"options": {
"ignoreCase": true
},
"looseTypeValidation": true
},
"typeVersion": 3.2
},
{
"id": "0ebdea59-8518-4078-b07a-9aa24c5e79b5",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1840,
200
],
"parameters": {
"width": 623.6530631885605,
"height": 648.96526541807,
"content": "## Instructions for Using the Template\nFollow these steps to set up and use this template:\n\n**Create a Telegram Bot**:\n- Open Telegram and search for BotFather.\n- Use the ``/newbot`` command to create your bot.\n- Follow the prompts and copy the Token provided at the end.\n-------------\n**Obtain a NeurochainAI API Key:**\n\n- Log in to the NeurochainAI Dashboard.\n- Generate an **API Key** under the Inference As Service section.\n- Ensure your account has sufficient credits for usage.\n-------------\n **Configure Telegram Nodes:**\n- Locate all Telegram nodes in the workflow and add your Telegram Bot Token to each node's credentials.\n-------------\n**Configure HTTP Request Nodes:**\n\n- Identify the NeurochainAI - Rest API and NeurochainAI - Flux nodes in the workflow.\nIn each node:\n- Enter your desired model in the Model field.\n- Replace ``YOUR-API-KEY-HERE`` with your API Key in the headers or configuration section.\n-------------\n**Save and Test:**\n- Save the workflow in N8N.\n- Test the workflow by interacting with your Telegram bot to trigger text and image generation tasks."
},
"typeVersion": 1
},
{
"id": "06642d6b-f8e2-48b6-87e3-5f51af75d357",
"name": "NeurochainAI - Flux",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
-180,
540
],
"parameters": {
"url": "https://ncmb.neurochain.io/tasks/tti",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"flux1-schnell-gguf\",\n \"prompt\": \"Generate an image that matches exactly this: {{ $('Code1').item.json.cleanMessage }}\",\n \"size\": \"1024x1024\",\n \"quality\": \"standard\",\n \"n\": 1,\n \"seed\": {{ Math.floor(Math.random() * 999) + 1 }}\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer YOUR-API-KEY-HERE"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2,
"alwaysOutputData": false
},
{
"id": "92820069-3e65-4385-8b79-9b04dd1d3b03",
"name": "Switch1",
"type": "n8n-nodes-base.switch",
"position": [
100,
600
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.error.message }}",
"rightValue": "400 - \"{\\\"error\\\":true,\\\"msg\\\":\\\"Prompt string is invalid\\\"}\""
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ef851d57-0618-4fe7-8469-a30971a05ee5",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "{{ $json.error.message }}",
"rightValue": "400 - \"{\\\"error\\\":true,\\\"msg\\\":\\\"Prompt string is invalid\\\"}\""
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "ef6d73c3-5256-4bc0-9e10-1daf674c083e",
"connections": {
"Code": {
"main": [
[
{
"node": "HTTP Request3",
"type": "main",
"index": 0
}
]
]
},
"Code1": {
"main": [
[
{
"node": "Telegram2",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Code1",
"type": "main",
"index": 0
}
],
[
{
"node": "TYPING - ACTION",
"type": "main",
"index": 0
}
],
[
{
"node": "TYPING - ACTION",
"type": "main",
"index": 0
}
]
]
},
"Switch1": {
"main": [
[
{
"node": "Telegram6",
"type": "main",
"index": 0
}
],
[
{
"node": "Telegram3",
"type": "main",
"index": 0
}
]
]
},
"Switch2": {
"main": [
[
{
"node": "No response",
"type": "main",
"index": 0
}
],
[
{
"node": "Prompt too short",
"type": "main",
"index": 0
}
]
]
},
"Telegram1": {
"main": [
[
{
"node": "Telegram4",
"type": "main",
"index": 0
}
]
]
},
"Telegram2": {
"main": [
[
{
"node": "NeurochainAI - Flux",
"type": "main",
"index": 0
}
]
]
},
"Telegram3": {
"main": [
[
{
"node": "Telegram5",
"type": "main",
"index": 0
}
]
]
},
"Telegram6": {
"main": [
[
{
"node": "Telegram7",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request3": {
"main": [
[
{
"node": "Telegram1",
"type": "main",
"index": 0
}
]
]
},
"TYPING - ACTION": {
"main": [
[
{
"node": "NeurochainAI - REST API",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"NeurochainAI - Flux": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
],
[
{
"node": "Switch1",
"type": "main",
"index": 0
}
]
]
},
"NeurochainAI - REST API": {
"main": [
[
{
"node": "AI Response",
"type": "main",
"index": 0
}
],
[
{
"node": "Switch2",
"type": "main",
"index": 0
}
]
]
}
}
}