Ejemplo de flujo de trabajo de aplicación de chatbot de Bitrix24
Este es unAIflujo de automatización del dominio deautomatización que contiene 13 nodos.Utiliza principalmente nodos como If, Set, Switch, Webhook, Function, combinando tecnología de inteligencia artificial para lograr automatización inteligente. Ejemplo de flujo de trabajo de aplicación de chatbot de Bitrix24 (con integración Webhook)
- •Punto final de HTTP Webhook (n8n generará automáticamente)
- •Pueden requerirse credenciales de autenticación para la API de destino
Nodos utilizados (13)
Categoría
{
"id": "cmGsNvW9bEORABdo",
"meta": {
"instanceId": "15c09ee9508dd818e298e675375571ba4b871bbb8c420fd01ac9ed7c58622669"
},
"name": "Bitrix24 Chatbot Application Workflow example with Webhook Integration",
"tags": [
{
"id": "5YZ9E6AmGZn6WTMa",
"name": "Tech demo",
"createdAt": "2024-12-28T09:13:02.965Z",
"updatedAt": "2024-12-28T09:13:02.965Z"
},
{
"id": "hEvnK1kMYTPrL3vs",
"name": "Bitrix24",
"createdAt": "2025-01-04T16:12:36.741Z",
"updatedAt": "2025-01-04T16:12:36.741Z"
},
{
"id": "yKS9RGKLuFUhYFIE",
"name": "Chatbot",
"createdAt": "2025-01-04T16:12:36.757Z",
"updatedAt": "2025-01-04T16:12:36.757Z"
}
],
"nodes": [
{
"id": "ddd802bb-0da0-474d-b1e9-74f247e603e0",
"name": "Bitrix24 Handler",
"type": "n8n-nodes-base.webhook",
"position": [
0,
0
],
"webhookId": "c3ae607d-41f0-42bc-b669-c2c77936d443",
"parameters": {
"path": "bitrix24/handler.php",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 1
},
{
"id": "5676a53e-6758-4ad5-ace6-e494fa10b6c3",
"name": "Credentials",
"type": "n8n-nodes-base.set",
"position": [
200,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "030f8f90-2669-4c20-9eab-c572c4b7c70c",
"name": "CLIENT_ID",
"type": "string",
"value": "local.6779636e712043.37129431"
},
{
"id": "de9bbb7a-b782-4540-b259-527625db8490",
"name": "CLIENT_SECRET",
"type": "string",
"value": "dTzUfBoTFLxNhuzc1zsnDbCeii98ZaE5By4aQPQEOxLJAS9y6i"
},
{
"id": "86b7aff7-1e25-4b12-a366-23cf34e5a405",
"name": "application_token",
"type": "string",
"value": "={{ $json.body['auth[application_token]'] }}"
},
{
"id": "69bbcb1f-ba6e-42eb-be8a-ee0707ce997d",
"name": "domain",
"type": "string",
"value": "={{ $json.body['auth[domain]'] }}\n"
},
{
"id": "dc1b0515-f06a-4731-b0dc-912a8d04e56b",
"name": "access_token",
"type": "string",
"value": "={{ $json.body['auth[access_token]'] }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "b72c00cf-9f8c-4c2a-9093-b80d82bab85b",
"name": "Validate Token",
"type": "n8n-nodes-base.if",
"position": [
400,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "da73d0ba-6eeb-405e-89fe-9d041fd2e0cd",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.CLIENT_ID }}",
"rightValue": "={{ $json.application_token }}"
},
{
"id": "4ba90f7b-0299-4097-9ae7-6e4dee428a74",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "1",
"rightValue": "1"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "f0feb392-873a-4643-b7ad-0e6d9f877e82",
"name": "Route Event",
"type": "n8n-nodes-base.switch",
"position": [
600,
0
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "ONIMBOTMESSAGEADD",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.event }}",
"rightValue": "ONIMBOTMESSAGEADD"
}
]
},
"renameOutput": true
},
{
"outputKey": "ONIMBOTJOINCHAT",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e9125f57-129e-4026-86ff-746d40b92b04",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.event }}",
"rightValue": "ONIMBOTJOINCHAT"
}
]
},
"renameOutput": true
},
{
"outputKey": "ONAPPINSTALL",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2db7bed5-fd88-4900-b8d2-e27b49c2fcca",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.event }}",
"rightValue": "ONAPPINSTALL"
}
]
},
"renameOutput": true
},
{
"outputKey": "ONIMBOTDELETE",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b708d339-fd46-470d-b0d5-ff2eb405f5ce",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.body.event }}",
"rightValue": "ONIMBOTDELETE"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "56fcdc5f-d509-4c9f-a437-79c53add49f8",
"name": "Process Message",
"type": "n8n-nodes-base.function",
"position": [
800,
0
],
"parameters": {
"functionCode": "// Process Message Node\nconst items = $input.all();\nconst item = items[0];\n\n// Get message data from the correct path\nconst message = item.json.body['data[PARAMS][MESSAGE]'];\nconst dialogId = item.json.body['data[PARAMS][DIALOG_ID]'];\n\n// Get auth data\nconst auth = {\n access_token: item.json.access_token,\n domain: item.json.domain\n};\n\nif (message.toLowerCase() === \"what's hot\") {\n return {\n json: {\n DIALOG_ID: dialogId,\n MESSAGE: \"Hi! I am an example-bot.\\nI repeat what you say\",\n AUTH: auth.access_token,\n DOMAIN: auth.domain\n }\n };\n} else {\n return {\n json: {\n DIALOG_ID: dialogId,\n MESSAGE: `You said:\\n${message}`,\n AUTH: auth.access_token,\n DOMAIN: auth.domain\n }\n };\n}"
},
"typeVersion": 1
},
{
"id": "a647ed67-c812-4416-8c85-55a681bc7f80",
"name": "Process Join",
"type": "n8n-nodes-base.function",
"position": [
800,
160
],
"parameters": {
"functionCode": "// Process Join Node\nconst items = $input.all();\nconst item = items[0];\n\n// Get dialog ID from the correct path\nconst dialogId = item.json.body['data[PARAMS][DIALOG_ID]'];\n\n// Get auth data\nconst auth = {\n access_token: item.json.access_token,\n domain: item.json.domain\n};\n\nreturn {\n json: {\n DIALOG_ID: dialogId,\n MESSAGE: 'Hi! I am an example-bot. I repeat what you say',\n AUTH: auth.access_token,\n DOMAIN: auth.domain\n }\n};"
},
"typeVersion": 1
},
{
"id": "4aac8853-d80e-4201-9f31-7838d18afe71",
"name": "Process Install",
"type": "n8n-nodes-base.function",
"position": [
800,
320
],
"parameters": {
"functionCode": "// Process Install Node\nconst items = $input.all();\nconst item = items[0];\n\n// Get the webhook URL from input\nconst handlerBackUrl = item.json.webhookUrl;\n\n// Get auth data directly from item.json\nconst auth = {\n access_token: item.json.access_token,\n application_token: item.json.application_token,\n domain: item.json.domain\n};\n\nreturn {\n json: {\n handler_back_url: handlerBackUrl,\n CODE: 'LocalExampleBot',\n TYPE: 'B',\n EVENT_MESSAGE_ADD: handlerBackUrl,\n EVENT_WELCOME_MESSAGE: handlerBackUrl,\n EVENT_BOT_DELETE: handlerBackUrl,\n PROPERTIES: {\n NAME: 'Bot',\n LAST_NAME: 'Example',\n COLOR: 'AQUA',\n EMAIL: 'no@example.com',\n PERSONAL_BIRTHDAY: '2020-07-18',\n WORK_POSITION: 'Report on affairs',\n PERSONAL_GENDER: 'M'\n },\n // Use the auth data from item.json\n AUTH: auth.access_token,\n CLIENT_ID: auth.application_token,\n DOMAIN: auth.domain\n }\n};"
},
"typeVersion": 1
},
{
"id": "30922462-255b-4ba6-8167-88aec244fdb1",
"name": "Register Bot",
"type": "n8n-nodes-base.httpRequest",
"position": [
1000,
320
],
"parameters": {
"url": "=https://{{ $json.DOMAIN }}/rest/imbot.register?auth={{$json.AUTH}}",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "CODE",
"value": "LocalExampleBot"
},
{
"name": "TYPE",
"value": "B"
},
{
"name": "EVENT_MESSAGE_ADD",
"value": "={{$json.handler_back_url}}"
},
{
"name": "EVENT_WELCOME_MESSAGE",
"value": "={{$json.handler_back_url}}"
},
{
"name": "EVENT_BOT_DELETE",
"value": "={{$json.handler_back_url}}"
},
{
"name": "PROPERTIES",
"value": "={{ {\n NAME: 'Bot',\n LAST_NAME: 'Example',\n COLOR: 'AQUA',\n EMAIL: 'no@example.com',\n PERSONAL_BIRTHDAY: '2020-07-18',\n WORK_POSITION: 'Report on affairs',\n PERSONAL_GENDER: 'M'\n} }}"
},
{
"name": "CLIENT_ID",
"value": "={{ $json.CLIENT_ID }}"
},
{
"name": "CLIENT_SECRET",
"value": "={{ $json.AUTH }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "8c1c7ebf-d5b3-472e-9d98-34cc65ba86ba",
"name": "Send Message",
"type": "n8n-nodes-base.httpRequest",
"position": [
1000,
0
],
"parameters": {
"url": "=https://{{$json.DOMAIN}}/rest/imbot.message.add?auth={{$json.AUTH}}",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "DIALOG_ID",
"value": "={{ $json.DIALOG_ID }}"
},
{
"name": "MESSAGE",
"value": "={{ $json.MESSAGE }}"
},
{
"name": "AUTH",
"value": "={{ $json.AUTH }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "af0d2b44-53f7-4c4c-9428-d54ebcf41bff",
"name": "Send Join Message",
"type": "n8n-nodes-base.httpRequest",
"position": [
1000,
160
],
"parameters": {
"url": "=https://{{$json.DOMAIN}}/rest/imbot.message.add?auth={{$json.AUTH}}",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "DIALOG_ID",
"value": "={{ $json.DIALOG_ID }}"
},
{
"name": "MESSAGE",
"value": "={{ $json.MESSAGE }}"
},
{
"name": "AUTH",
"value": "={{ $json.AUTH }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "9110f66d-1c35-44b4-bc73-18f821b50b71",
"name": "Process Delete",
"type": "n8n-nodes-base.noOp",
"position": [
800,
480
],
"parameters": {},
"typeVersion": 1
},
{
"id": "81a5fc23-47a4-4ef8-bfb4-31593aed12fd",
"name": "Success Response",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
1200,
0
],
"parameters": {
"options": {
"responseCode": 200
},
"respondWith": "json",
"responseBody": "={\n \"result\": true\n}"
},
"typeVersion": 1.1
},
{
"id": "a19f3b0b-496f-4f3d-a9c2-044356070e32",
"name": "Error Response",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
400,
160
],
"parameters": {
"options": {
"responseCode": 401
},
"respondWith": "json",
"responseBody": "={{\n \"result\": false,\n \"error\": \"Invalid application token\"\n}}"
},
"typeVersion": 1.1
}
],
"active": true,
"pinData": {
"Bitrix24 Handler": [
{
"json": {
"body": {
"ts": "1737037713",
"event": "ONIMBOTMESSAGEADD",
"auth[scope]": "imbot,im",
"auth[domain]": "hgap.bitrix24.eu",
"auth[status]": "L",
"auth[expires]": "1737041313",
"auth[user_id]": "256",
"data[USER][ID]": "256",
"auth[member_id]": "19acdffbcfadf692f61b677d3d824490",
"auth[expires_in]": "3600",
"data[USER][NAME]": "Java Tech User",
"event_handler_id": "126",
"auth[access_token]": "a12589670074bb250066880900000100000007f6bf4682415a014425fed22a6b37af33",
"data[USER][GENDER]": "M",
"data[USER][IS_BOT]": "N",
"auth[refresh_token]": "91a4b0670074bb2500668809000001000000075047004f6b25a0b76236e66bb7316e97",
"auth[client_endpoint]": "https://hgap.bitrix24.eu/rest/",
"auth[server_endpoint]": "https://oauth.bitrix.info/rest/",
"data[BOT][302][scope]": "imbot,im",
"data[PARAMS][CHAT_ID]": "6196",
"data[PARAMS][MESSAGE]": "Szia!",
"data[USER][LAST_NAME]": "Java",
"data[BOT][302][BOT_ID]": "302",
"data[BOT][302][domain]": "hgap.bitrix24.eu",
"data[BOT][302][status]": "L",
"data[PARAMS][LANGUAGE]": "en",
"data[USER][FIRST_NAME]": "Tech User",
"data[USER][IS_NETWORK]": "N",
"auth[application_token]": "0d83800efe3a5b2977650e025e0754d5",
"data[BOT][302][expires]": "1737041313",
"data[BOT][302][user_id]": "302",
"data[PARAMS][AUTHOR_ID]": "256",
"data[PARAMS][CHAT_TYPE]": "P",
"data[PARAMS][DIALOG_ID]": "256",
"data[USER][IS_EXTRANET]": "N",
"data[BOT][302][BOT_CODE]": "LocalExampleBot",
"data[PARAMS][MESSAGE_ID]": "314686",
"data[PARAMS][TO_USER_ID]": "302",
"data[USER][IS_CONNECTOR]": "N",
"data[BOT][302][client_id]": "local.6779636e712043.37129431",
"data[BOT][302][member_id]": "19acdffbcfadf692f61b677d3d824490",
"data[PARAMS][TEMPLATE_ID]": "09c62e39-23c2-4281-a53f-4a3a76d2cf4a",
"data[USER][WORK_POSITION]": "Technical User",
"data[BOT][302][expires_in]": "3600",
"data[PARAMS][FROM_USER_ID]": "256",
"data[PARAMS][MESSAGE_TYPE]": "P",
"data[PARAMS][SKIP_COMMAND]": "N",
"data[BOT][302][AUTH][scope]": "imbot,im",
"data[BOT][302][AUTH][domain]": "hgap.bitrix24.eu",
"data[BOT][302][AUTH][status]": "L",
"data[BOT][302][access_token]": "a12589670074bb25006688090000012ee0e30782de43659ca7cc172d61e7a91b24b241",
"data[PARAMS][SKIP_CONNECTOR]": "N",
"data[PARAMS][SKIP_URL_INDEX]": "N",
"data[BOT][302][AUTH][expires]": "1737041313",
"data[BOT][302][AUTH][user_id]": "302",
"data[BOT][302][refresh_token]": "91a4b0670074bb25006688090000012ee0e307bbd7e4e8b80e4c5ba61e3c99f0283f40",
"data[PARAMS][COMMAND_CONTEXT]": "TEXTAREA",
"data[PARAMS][SILENT_CONNECTOR]": "N",
"data[BOT][302][AUTH][client_id]": "local.6779636e712043.37129431",
"data[BOT][302][AUTH][member_id]": "19acdffbcfadf692f61b677d3d824490",
"data[BOT][302][client_endpoint]": "https://hgap.bitrix24.eu/rest/",
"data[BOT][302][server_endpoint]": "https://oauth.bitrix.info/rest/",
"data[BOT][302][AUTH][expires_in]": "3600",
"data[BOT][302][application_token]": "0d83800efe3a5b2977650e025e0754d5",
"data[PARAMS][IMPORTANT_CONNECTOR]": "N",
"data[BOT][302][AUTH][access_token]": "a12589670074bb25006688090000012ee0e30782de43659ca7cc172d61e7a91b24b241",
"data[BOT][302][AUTH][refresh_token]": "91a4b0670074bb25006688090000012ee0e307bbd7e4e8b80e4c5ba61e3c99f0283f40",
"data[BOT][302][AUTH][client_endpoint]": "https://hgap.bitrix24.eu/rest/",
"data[BOT][302][AUTH][server_endpoint]": "https://oauth.bitrix.info/rest/",
"data[PARAMS][SKIP_COUNTER_INCREMENTS]": "N",
"data[BOT][302][AUTH][application_token]": "0d83800efe3a5b2977650e025e0754d5"
},
"query": {},
"params": {},
"headers": {
"host": "orpheus-dev.h-gap.hu",
"x-real-ip": "3.217.33.54",
"user-agent": "Bitrix24 Webhook Engine",
"content-type": "application/x-www-form-urlencoded",
"content-length": "3711",
"accept-encoding": "gzip",
"x-forwarded-for": "3.217.33.54",
"x-forwarded-proto": "https",
"x-forwarded-scheme": "https"
},
"webhookUrl": "REDACTED_WEBHOOK_URL",
"executionMode": "production"
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "401b00c7-dc0c-4067-9b27-27dc171cc52e",
"connections": {
"5676a53e-6758-4ad5-ace6-e494fa10b6c3": {
"main": [
[
{
"node": "b72c00cf-9f8c-4c2a-9093-b80d82bab85b",
"type": "main",
"index": 0
}
]
]
},
"f0feb392-873a-4643-b7ad-0e6d9f877e82": {
"main": [
[
{
"node": "56fcdc5f-d509-4c9f-a437-79c53add49f8",
"type": "main",
"index": 0
}
],
[
{
"node": "a647ed67-c812-4416-8c85-55a681bc7f80",
"type": "main",
"index": 0
}
],
[
{
"node": "4aac8853-d80e-4201-9f31-7838d18afe71",
"type": "main",
"index": 0
}
],
[
{
"node": "9110f66d-1c35-44b4-bc73-18f821b50b71",
"type": "main",
"index": 0
}
],
[],
[],
[],
[],
[]
]
},
"a647ed67-c812-4416-8c85-55a681bc7f80": {
"main": [
[
{
"node": "af0d2b44-53f7-4c4c-9428-d54ebcf41bff",
"type": "main",
"index": 0
}
]
]
},
"30922462-255b-4ba6-8167-88aec244fdb1": {
"main": [
[
{
"node": "81a5fc23-47a4-4ef8-bfb4-31593aed12fd",
"type": "main",
"index": 0
}
]
]
},
"8c1c7ebf-d5b3-472e-9d98-34cc65ba86ba": {
"main": [
[
{
"node": "81a5fc23-47a4-4ef8-bfb4-31593aed12fd",
"type": "main",
"index": 0
}
]
]
},
"9110f66d-1c35-44b4-bc73-18f821b50b71": {
"main": [
[
{
"node": "81a5fc23-47a4-4ef8-bfb4-31593aed12fd",
"type": "main",
"index": 0
}
]
]
},
"b72c00cf-9f8c-4c2a-9093-b80d82bab85b": {
"main": [
[
{
"node": "f0feb392-873a-4643-b7ad-0e6d9f877e82",
"type": "main",
"index": 0
}
],
[
{
"node": "a19f3b0b-496f-4f3d-a9c2-044356070e32",
"type": "main",
"index": 0
}
]
]
},
"4aac8853-d80e-4201-9f31-7838d18afe71": {
"main": [
[
{
"node": "30922462-255b-4ba6-8167-88aec244fdb1",
"type": "main",
"index": 0
}
]
]
},
"56fcdc5f-d509-4c9f-a437-79c53add49f8": {
"main": [
[
{
"node": "8c1c7ebf-d5b3-472e-9d98-34cc65ba86ba",
"type": "main",
"index": 0
}
]
]
},
"ddd802bb-0da0-474d-b1e9-74f247e603e0": {
"main": [
[
{
"node": "5676a53e-6758-4ad5-ace6-e494fa10b6c3",
"type": "main",
"index": 0
}
]
]
},
"af0d2b44-53f7-4c4c-9428-d54ebcf41bff": {
"main": [
[
{
"node": "81a5fc23-47a4-4ef8-bfb4-31593aed12fd",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Inteligencia Artificial
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Ferenc Erb
@fefehunWith 30+ years in IT and 20+ years in leadership, I specialize in no-code automation with n8n, optimizing workflows and integrating systems efficiently. As an Agile Coach and Project Manager, I’ve led teams, managed R&D, and driven IT transformations. Skilled in n8n, Java, Node.js, and cloud solutions, I help businesses streamline operations. Let’s connect if you need an n8n expert for automation!
Compartir este flujo de trabajo