{"id":"RLWjEhY8L4TORAIj","meta":{"instanceId":"workflow-1b5f2a96","versionId":"1.0.0","createdAt":"2025-09-29T07:07:46.464637","updatedAt":"2025-09-29T07:07:46.464649","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"NeurochainAI Basic API Integration","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,"notes":"This telegramTrigger node performs automated tasks as part of the workflow."},{"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":"{{ $env.BASE_URL }}","options":{}},"typeVersion":4.2,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"id":"a3e521a3-aff0-4d31-9a69-626f70f86ae2","name":"NeurochainAI - REST API","type":"n8n-nodes-base.httpRequest","onError":"continueErrorOutput","position":[-680,1280],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","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,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"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,"notes":"This telegram node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This switch node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This code node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"e5715001-75a3-4da3-84bb-9aad193fe680","name":"Switch","type":"n8n-nodes-base.switch","position":[-1420,880],"parameters":{"rules":{"values":[{"outputKey":"YOUR_CREDENTIAL_HERE","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":"YOUR_CREDENTIAL_HERE","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":"YOUR_CREDENTIAL_HERE","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,"notes":"This switch node performs automated tasks as part of the workflow."},{"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,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"06642d6b-f8e2-48b6-87e3-5f51af75d357","name":"NeurochainAI - Flux","type":"n8n-nodes-base.httpRequest","onError":"continueErrorOutput","position":[-180,540],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","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,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"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,"notes":"This switch node performs automated tasks as part of the workflow."}],"active":false,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"ef6d73c3-5256-4bc0-9e10-1daf674c083e","connections":{"HTTP Request3":{"main":[[],[],[],[],[],[],[],[],[]]},"NeurochainAI - REST API":{"main":[[],[],[],[],[],[],[],[],[]]},"NeurochainAI - Flux":{"main":[[],[],[],[],[],[],[],[],[]]},"Telegram Trigger":{"main":[[]]},"Telegram2":{"main":[[]]},"Telegram1":{"main":[[]]},"Telegram4":{"main":[[]]},"Telegram3":{"main":[[]]},"Telegram5":{"main":[[]]},"Telegram6":{"main":[[]]},"Telegram7":{"main":[[]]},"TYPING - ACTION":{"main":[[]]},"AI Response":{"main":[[]]},"No response":{"main":[[]]},"Prompt too short":{"main":[[]]}},"description":"Automated workflow: NeurochainAI Basic API Integration. This workflow integrates 7 different services: telegramTrigger, httpRequest, stickyNote, telegram, code. It contains 47 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: NeurochainAI Basic API Integration. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}