Hi, thanks for your response.
I’ve attached two codes for review:
- The full n8n workflow (API keys are hidden)
- Sample output data from the Telegram node
The workflow executes, but I’m facing an authorization issue when making requests to the Yougile API.
I consistently receive a 401 Unauthorized error, even though the API key is set in the request headers.
I suspect there may be an issue with how the Authorization header is formatted or with the request URL, but I haven’t been able to resolve it.
Any help or guidance would be greatly appreciated.
Thanks in advance.
N8N WORKFLOW
{
“name”: “Tennis School Task Management Assistant with Yougile Integration”,
“nodes”: [
{
“parameters”: {
“updates”: [
“message”
],
“additionalFields”: {}
},
“id”: “16c137fc-0eb8-416a-be1e-8bdf9d44c3fc”,
“name”: “Telegram Trigger”,
“type”: “n8n-nodes-base.telegramTrigger”,
“typeVersion”: 1.2,
“position”: [
8256,
736
],
“webhookId”: “6124341a-f511-40bc-9184-98e5debbe6a2”,
“credentials”: {
“telegramApi”: {
“id”: “Z7tOLdkSBMrwGgJJ”,
“name”: “Telegram account”
}
}
},
{
“parameters”: {
“assignments”: {
“assignments”: [
{
“id”: “id-1”,
“name”: “yougileApiUrl”,
“value”: “https://ru.yougile.com/api-v2”,
“type”: “string”
},
{
“id”: “id-2”,
“name”: “yougileApiKey”,
“value”: “Bearer Z72NZoT87QOTr5BXbDiP8XZqLkXktIUxTzjNh8wHYnvJMGynXZyZQREJ2SZ6tJm9”,
“type”: “string”
},
{
“id”: “id-3”,
“name”: “departments”,
“value”: “{ “Развитие”: “96acda1c-21eb-4dad-926e-81a0046e6825”, “Маркетинг”: “3cca2e43-9502-4a09-a0b0-2fefcdbf5fc2”, “Финансы”: “5e19d8b7-1d05-415f-b049-ee7cf30ad88d”, “Мероприятия и турниры”: “9117018c-ce0c-41ea-8ff8-3d54d3b7309b”, “Test”: “6f0ce0f1-e907-47b6-affe-96a00bd48a59”, “Работа на локации Рублево”: “5d366900-0e92-4f23-a647-cc4b5a2bb781” }”,
“type”: “object”
}
]
},
“includeOtherFields”: true,
“options”: {}
},
“id”: “4d524947-b00d-4d4e-a967-632b2475b5fb”,
“name”: “Workflow Configuration”,
“type”: “n8n-nodes-base.set”,
“typeVersion”: 3.4,
“position”: [
8480,
736
],
“alwaysOutputData”: false
},
{
“parameters”: {
“promptType”: “define”,
“text”: “={{ $json.message.text }}”,
“hasOutputParser”: true,
“options”: {
“systemMessage”: “Ты — внутренний интеллектуальный ассистент школы тенниса 10is, работающий внутри автоматизированной системы управления задачами.\n\nТвоя цель — превратить любое сообщение от сотрудника (текст или расшифрованное голосовое сообщение) в корректно структурированную задачу для Yougile.\n\nОтделы (проекты в Yougile):\n1. Маркетинг - реклама, контент, соцсети, идеи для продвижения, рекламные кампании\n2. Развитие - улучшение процессов, автоматизация, внедрение новых инструментов, стратегические задачи, внутренние проекты\n3. Мероприятие и турниры - организация турниров, ивенты, расписание мероприятий, координация участников, партнёры\n4. Финансы - оплаты, счета, акты, зарплаты, финансовая отчётность\n5. Работа на Локации Рублево - работа тренеров, расписание занятий, замены, вопросы клиентов на локации, инвентарь и состояние площадок\n6. Test - тестовые задачи, отладка автоматизации\n\nЛогика классификации:\n- Если запрос связан с рекламой или контентом → Маркетинг\n- Если запрос про улучшение, внедрение, развитие → Развитие\n- Если запрос про события, турниры, мероприятия → Мероприятие и турниры\n- Если запрос про деньги → Финансы\n- Если запрос связан с ежедневной работой локации Рублево → Работа на Локации Рублево\n- Если запрос не удалось уверенно классифицировать → Test\n\nФормирование задачи:\n1. Заголовок (title): короткий, деловой, без воды\n2. Описание (description): суть задачи, контекст, ожидаемый результат, пошаговый план выполнения\n3. Дедлайн (deadline): если не указан срок:\n - срочная операционная задача → +1–2 дня\n - обычная рабочая задача → +3–5 дней\n - стратегическая → +7–14 дней\n Формат даты: YYYY-MM-DD\nДедлайн ты должен считать от сегодняшний даты,27 декабря 2025 года\n4. Отдел (department): название отдела из списка выше\n\nЕсли сообщение пришло из голосового ввода, игнорируй слова-паразиты и разговорную речь.\nВерни структурированный JSON с полями: title, description, deadline, department.”
}
},
“id”: “b5637713-3022-40dc-b3dc-c6a0ac4ff20c”,
“name”: “Task Classification Agent”,
“type”: “@n8n/n8n-nodes-langchain.agent”,
“typeVersion”: 3.1,
“position”: [
8800,
752
]
},
{
“parameters”: {
“model”: {
“__rl”: true,
“mode”: “list”,
“value”: “gpt-4.1-mini”
},
“builtInTools”: {},
“options”: {}
},
“id”: “b3a26822-e065-44da-9460-781ad2e879e7”,
“name”: “OpenAI Chat Model”,
“type”: “@n8n/n8n-nodes-langchain.lmChatOpenAi”,
“typeVersion”: 1.3,
“position”: [
8704,
960
],
“credentials”: {
“openAiApi”: {
“id”: “WB9CaWTjeXoJ4VtI”,
“name”: “n8n free OpenAI API credits”
}
}
},
{
“parameters”: {
“sessionIdType”: “customKey”,
“sessionKey”: “={{ $json.message.chat.id }}”
},
“id”: “7602c3f0-9243-436b-99ae-bdcddcaddb6b”,
“name”: “Simple Memory”,
“type”: “@n8n/n8n-nodes-langchain.memoryBufferWindow”,
“typeVersion”: 1.3,
“position”: [
8832,
960
]
},
{
“parameters”: {
“schemaType”: “manual”,
“inputSchema”: “{\n\t"type": “object”,\n\t"properties": {\n\t\t"title": {\n\t\t\t"type": “string”,\n\t\t\t"description": “The title of the task”\n\t\t},\n\t\t"description": {\n\t\t\t"type": “string”,\n\t\t\t"description": “The description of the task”\n\t\t},\n\t\t"deadline": {\n\t\t\t"type": “string”,\n\t\t\t"description": “The deadline in YYYY-MM-DD format”,\n\t\t\t"pattern": “^\\d{4}-\\d{2}-\\d{2}$”\n\t\t},\n\t\t"department": {\n\t\t\t"type": “string”,\n\t\t\t"description": “The department for the task”\n\t\t}\n\t},\n\t"required": [“title”, “description”, “deadline”, “department”]\n}”
},
“id”: “b771da10-3e94-4dc2-a0d7-b8494711836f”,
“name”: “Structured Output Parser”,
“type”: “@n8n/n8n-nodes-langchain.outputParserStructured”,
“typeVersion”: 1.3,
“position”: [
8960,
960
]
},
{
“parameters”: {
“chatId”: “={{ $(‘Telegram Trigger’).first().json.message.chat.id }}”,
“text”: “=✅ Задача создана!\n\nОтдел: {{ $(‘Task Classification Agent’).first().json.output.department }}\nЗаголовок: {{ $(‘Task Classification Agent’).first().json.output.title }}\nДедлайн: {{ $(‘Task Classification Agent’).first().json.output.deadline }}”,
“additionalFields”: {}
},
“id”: “6812e41e-9769-4798-ad2d-0c411d428ade”,
“name”: “Send Telegram Response”,
“type”: “n8n-nodes-base.telegram”,
“typeVersion”: 1.2,
“position”: [
9808,
736
],
“webhookId”: “14f94324-2b65-4b65-ab10-39b6fb4853aa”,
“credentials”: {
“telegramApi”: {
“id”: “Z7tOLdkSBMrwGgJJ”,
“name”: “Telegram account”
}
}
},
{
“parameters”: {
“method”: “POST”,
“url”: “https://yougile.com/api-v2/tasks”,
“sendHeaders”: true,
“headerParameters”: {
“parameters”: [
{
“name”: “Authorization”,
“value”: “Bearer vXDcoCinmAAWgWgf01DrixDTpuQBBRuAb-UgI1FqKLDkAiSeqgEpshc13tm3EqM6”
}
]
},
“sendBody”: true,
“specifyBody”: “json”,
“jsonBody”: “{\n “title”: “test task”,\n “columnId”: “fefbc00f-3870-4f52-807f-225ce2e4c701”,\n “description”: “string”,\n “archived”: false,\n “completed”: false,\n “subtasks”: [\n “0fe1e417-2415-4e76-932a-ca07a25d6c64”,\n “f0118d9e-2888-48e4-a172-116085da4279”\n ],\n “assigned”: [\n “80eed1bd-eda3-4991-ac17-09d28566749d”\n ],\n “deadline”: {\n “deadline”: 1653029146646,\n “startDate”: 1653028146646,\n “withTime”: true,\n “history”: [\n “string”\n ],\n “blockedPoints”: [\n “string”\n ],\n “links”: [\n “string”\n ]\n },\n “timeTracking”: {\n “plan”: 10,\n “work”: 5\n },\n “checklists”: [\n {\n “title”: “list 1”,\n “items”: [\n {\n “title”: “option 1”,\n “isCompleted”: false\n },\n {\n “title”: “option 2”,\n “isCompleted”: false\n }\n ]\n }\n ],\n “stickers”: {\n “fbc30a9b-42d0-4cf7-80c0-31fb048346f9”: “0baced9640b2”,\n “645250ca-1ae8-4514-914d-c070351dd905”: “815016901edd”,\n “660b9096-a2d0-45df-b09a-b53ba521e86f”: “empty”,\n “060f5185-e613-4f74-97c1-060667cc3a7e”: “ООО «Производство»”,\n “46d005ea-c89e-449b-878e-d3cc43204a5a”: “345.123”\n },\n “color”: “task-red”,\n “idTaskCommon”: “ID-484”,\n “idTaskProject”: “DEV-484”,\n “stopwatch”: {\n “running”: true\n },\n “timer”: {\n “running”: true,\n “seconds”: 600\n },\n “deal”: {\n “dealAmount”: 25000000,\n “contactPersonIds”: [\n “string”\n ],\n “organizationId”: “string”,\n “customFields”: {}\n }\n}”,
“options”: {}
},
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 4.3,
“position”: [
9408,
736
],
“id”: “234c412e-7ac8-4303-a39f-645a7a3d85cc”,
“name”: “HTTP Request1”
}
],
“pinData”: {},
“connections”: {
“Telegram Trigger”: {
“main”: [
[
{
“node”: “Workflow Configuration”,
“type”: “main”,
“index”: 0
}
]
]
},
“Workflow Configuration”: {
“main”: [
[
{
“node”: “Task Classification Agent”,
“type”: “main”,
“index”: 0
}
]
]
},
“OpenAI Chat Model”: {
“ai_languageModel”: [
[
{
“node”: “Task Classification Agent”,
“type”: “ai_languageModel”,
“index”: 0
}
]
]
},
“Simple Memory”: {
“ai_memory”: [
[
{
“node”: “Task Classification Agent”,
“type”: “ai_memory”,
“index”: 0
}
]
]
},
“Structured Output Parser”: {
“ai_outputParser”: [
[
{
“node”: “Task Classification Agent”,
“type”: “ai_outputParser”,
“index”: 0
}
]
]
},
“Task Classification Agent”: {
“main”: [
[
{
“node”: “HTTP Request1”,
“type”: “main”,
“index”: 0
}
]
]
},
“HTTP Request1”: {
“main”: [
[
{
“node”: “Send Telegram Response”,
“type”: “main”,
“index”: 0
}
]
]
}
},
“active”: false,
“settings”: {
“executionOrder”: “v1”,
“availableInMCP”: false
},
“versionId”: “251cb3e8-4f2f-451f-91f8-89307280570a”,
“meta”: {
“instanceId”: “55bd4614c9bd5c50ae48a380b8ba2bb2e962cb99838b7af0d22bb66da9c42a94”
},
“id”: “rgvuldIICy6eeHFU”,
“tags”:
}
Telegram Node
“name”: “Telegram NODE”,
“nodes”: [
{
“parameters”: {
“updates”: [
“message”
],
“additionalFields”: {}
},
“id”: “70204b24-3887-49d7-9ffd-3097d3b15b48”,
“name”: “Telegram Trigger”,
“type”: “n8n-nodes-base.telegramTrigger”,
“typeVersion”: 1.2,
“position”: [
0,
0
],
“webhookId”: “6124341a-f511-40bc-9184-98e5debbe6a2”,
“credentials”: {
“telegramApi”: {
“id”: “Z7tOLdkSBMrwGgJJ”,
“name”: “Telegram account”
}
}
}
],
“pinData”: {},
“connections”: {},
“active”: false,
“settings”: {
“executionOrder”: “v1”,
“availableInMCP”: false
},
“versionId”: “b06d6f16-c021-4e18-849a-2515d6249f51”,
“meta”: {
“instanceId”: “55bd4614c9bd5c50ae48a380b8ba2bb2e962cb99838b7af0d22bb66da9c42a94”
},
“id”: “MuDKVeZbUsNPED6P”,
“tags”:
}