AutomationFlowsSlack & Telegram › C — Кнопки И Публикация (челлендж 200 Дней)

C — Кнопки И Публикация (челлендж 200 Дней)

C — Кнопки и публикация (Челлендж 200 дней). Uses executeWorkflowTrigger, telegram, googleSheets, httpRequest. Event-driven trigger; 22 nodes.

Event trigger★★★★☆ complexity22 nodesExecute Workflow TriggerTelegramGoogle SheetsHTTP Request
Slack & Telegram Trigger: Event Nodes: 22 Complexity: ★★★★☆ Added:

This workflow follows the Execute Workflow Trigger → Google Sheets recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "C \u2014 \u041a\u043d\u043e\u043f\u043a\u0438 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f (\u0427\u0435\u043b\u043b\u0435\u043d\u0434\u0436 200 \u0434\u043d\u0435\u0439)",
  "nodes": [
    {
      "parameters": {
        "inputSource": "passthrough"
      },
      "id": "c-trigger",
      "name": "\u0417\u0430\u043f\u0443\u0441\u043a \u0438\u0437 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "typeVersion": 1.1,
      "position": [
        -1400,
        0
      ]
    },
    {
      "parameters": {
        "jsCode": "const cq = $json.callback_query || {};\nconst data = cq.data || '';\nconst [action, day] = data.split(':');\nreturn [{ json: {\n  action,\n  day: Number(day),\n  chat_id: cq.message && cq.message.chat ? cq.message.chat.id : $env.TELEGRAM_CHAT_ID,\n  query_id: cq.id\n} }];"
      },
      "id": "c-parse",
      "name": "\u0420\u0430\u0437\u0431\u043e\u0440 callback",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -1180,
        0
      ]
    },
    {
      "parameters": {
        "resource": "callback",
        "queryId": "={{ $json.query_id }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "id": "c-answer",
      "name": "\u041e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 callback",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        -960,
        0
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "typeValidation": "loose",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.action }}",
                    "rightValue": "publish",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "publish"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "typeValidation": "loose",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.action }}",
                    "rightValue": "queue",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "queue"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "typeValidation": "loose",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.action }}",
                    "rightValue": "regen",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "regen"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "typeValidation": "loose",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.action }}",
                    "rightValue": "reject",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "reject"
            }
          ]
        },
        "options": {}
      },
      "id": "c-switch",
      "name": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3,
      "position": [
        -740,
        0
      ]
    },
    {
      "parameters": {
        "jsCode": "const p = $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json;\nreturn [{ json: { day: p.day, chat_id: p.chat_id } }];"
      },
      "id": "c-pub-input",
      "name": "\u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -520,
        -300
      ]
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultName": "P \u2014 \u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f: \u0434\u0432\u0438\u0436\u043e\u043a (\u0427\u0435\u043b\u043b\u0435\u043d\u0434\u0436 200 \u0434\u043d\u0435\u0439)"
        },
        "workflowInputs": {
          "mappingMode": "autoMapInputData",
          "value": {},
          "matchingColumns": [],
          "schema": []
        },
        "options": {
          "waitForSubWorkflow": false
        }
      },
      "id": "c-exec-p",
      "name": "\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e (P)",
      "type": "n8n-nodes-base.executeWorkflow",
      "typeVersion": 1.2,
      "position": [
        -300,
        -300
      ]
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $env.GOOGLE_SHEETS_ID }}"
        },
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "pipeline"
        },
        "options": {}
      },
      "id": "c-queue-read",
      "name": "\u0412\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 (queue)",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        -520,
        -100
      ],
      "alwaysOutputData": true
    },
    {
      "parameters": {
        "jsCode": "const day = $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day;\nconst rows = $input.all().map(i => i.json).filter(r => r.day_number !== undefined && r.day_number !== '');\nconst row = rows.find(r => Number(r.day_number) === day);\n\nif (!row) return [{ json: { ok: false, reason: '\u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043d\u044f \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435' } }];\nif (row.status !== 'awaiting_approval') {\n  return [{ json: { ok: false, reason: `\u0441\u0442\u0430\u0442\u0443\u0441 \u00ab${row.status}\u00bb, \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 awaiting_approval` } }];\n}\n\nconst today = DateTime.now().setZone('Europe/Berlin').startOf('day');\nlet maxSched = null;\nfor (const r of rows) {\n  if (r.status === 'scheduled' && r.scheduled_date) {\n    const d = DateTime.fromISO(String(r.scheduled_date), { zone: 'Europe/Berlin' });\n    if (d.isValid && (!maxSched || d > maxSched)) maxSched = d;\n  }\n}\n\nlet next = today;\nif (maxSched && maxSched.plus({ days: 1 }) > next) next = maxSched.plus({ days: 1 });\n\nconst pos = rows.filter(r => r.status === 'scheduled').length + 1;\nreturn [{ json: { ok: true, day, scheduled_date: next.toFormat('yyyy-MM-dd'), pos } }];"
      },
      "id": "c-queue-calc",
      "name": "\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0434\u0430\u0442\u0443 \u043e\u0447\u0435\u0440\u0435\u0434\u0438",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -300,
        -100
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "typeValidation": "loose",
            "version": 2
          },
          "conditions": [
            {
              "leftValue": "={{ $json.ok }}",
              "rightValue": true,
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "c-queue-ok",
      "name": "\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -80,
        -100
      ]
    },
    {
      "parameters": {
        "operation": "appendOrUpdate",
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $env.GOOGLE_SHEETS_ID }}"
        },
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "pipeline"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "day_number": "={{ $json.day }}",
            "status": "scheduled",
            "scheduled_date": "={{ $json.scheduled_date }}"
          },
          "matchingColumns": [
            "day_number"
          ],
          "schema": []
        },
        "options": {}
      },
      "id": "c-queue-save",
      "name": "\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        140,
        -180
      ]
    },
    {
      "parameters": {
        "chatId": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.chat_id }}",
        "text": "=\ud83d\uddd3 \u0414\u0435\u043d\u044c {{ $('\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0434\u0430\u0442\u0443 \u043e\u0447\u0435\u0440\u0435\u0434\u0438').first().json.day }} \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 {{ $('\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0434\u0430\u0442\u0443 \u043e\u0447\u0435\u0440\u0435\u0434\u0438').first().json.scheduled_date }} (\u043f\u043e\u0437\u0438\u0446\u0438\u044f {{ $('\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0434\u0430\u0442\u0443 \u043e\u0447\u0435\u0440\u0435\u0434\u0438').first().json.pos }}). \u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u2014 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 18:00.",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "id": "c-queue-confirm",
      "name": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u044c",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        360,
        -180
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000
    },
    {
      "parameters": {
        "chatId": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.chat_id }}",
        "text": "=\u26a0\ufe0f \u0414\u0435\u043d\u044c {{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }}: \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u2014 {{ $json.reason }}.",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "id": "c-queue-fail",
      "name": "\u041e\u0447\u0435\u0440\u0435\u0434\u044c: \u043e\u0442\u043a\u0430\u0437",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        140,
        -20
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $env.GOOGLE_SHEETS_ID }}"
        },
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "pipeline"
        },
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "day_number",
              "lookupValue": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }}"
            }
          ]
        },
        "options": {}
      },
      "id": "c-row-regen",
      "name": "\u0421\u0442\u0440\u043e\u043a\u0430 (regen)",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        -520,
        140
      ]
    },
    {
      "parameters": {
        "jsCode": "const row = $json;\nconst day = row.day_number;\nconst total = Number($env.CHALLENGE_TOTAL_DAYS || 200);\nconst transcript = row.transcript_de || '';\n\nconst system = `\u0422\u044b \u043f\u0438\u0448\u0435\u0448\u044c \u0442\u0435\u043a\u0441\u0442\u044b \u0434\u043b\u044f \u043d\u0435\u043c\u0435\u0446\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u0433\u0430 \u043e \u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436\u0435 \"200 \u0434\u043d\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438\". \u0410\u0432\u0442\u043e\u0440 \u0431\u043b\u043e\u0433\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0432\u0438\u0434\u0435\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043e\u043d \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e (n8n, API, AI-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b); \u0446\u0435\u043b\u044c \u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436\u0430 \u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0444\u0444\u0435\u0440 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443.\\n\\n\u041a\u0430\u0436\u0434\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0441\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0443\u043a\u0430 \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \"Tag ${day}/${total}\".\\n\\n\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u043c:\\n- caption_linkedin: \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u043e\u043d, 600\u2013900 \u0437\u043d\u0430\u043a\u043e\u0432, 3\u20135 \u0445\u044d\u0448\u0442\u0435\u0433\u043e\u0432.\\n- caption_instagram: \u0436\u0438\u0432\u043e\u0439 \u0442\u043e\u043d, 300\u2013500 \u0437\u043d\u0430\u043a\u043e\u0432, 5\u20138 \u0445\u044d\u0448\u0442\u0435\u0433\u043e\u0432, \u044d\u043c\u043e\u0434\u0437\u0438 \u0443\u043c\u0435\u0440\u0435\u043d\u043d\u043e.\\n- title_youtube: \u0434\u043e 70 \u0437\u043d\u0430\u043a\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \"Tag ${day}/${total}\".\\n- caption_youtube: \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 200\u2013400 \u0437\u043d\u0430\u043a\u043e\u0432.\\n\\n\u0412\u0441\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u043d\u0430 \u043d\u0435\u043c\u0435\u0446\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435.\\n\\n\u0412\u0435\u0440\u043d\u0438 \u0422\u041e\u041b\u042c\u041a\u041e \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 JSON \u0431\u0435\u0437 markdown \u0438 \u0431\u0435\u0437 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0439, \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b:\\n{ \"caption_linkedin\": \"...\", \"caption_instagram\": \"...\", \"caption_youtube\": \"...\", \"title_youtube\": \"...\" }`;\n\nconst user = `\u0422\u0440\u0430\u043d\u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0435\u043c\u0435\u0446\u043a\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u0438\u0434\u0435\u043e (\u0434\u0435\u043d\u044c ${day}/${total}):\\n\\n${transcript}\\n\\n\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f. \u0412\u043e\u0442 \u043e\u043d:\\nLinkedIn: ${row.caption_linkedin || ''}\\nInstagram: ${row.caption_instagram || ''}\\nYouTube: ${row.title_youtube || ''} \u2014 ${row.caption_youtube || ''}\\n\\n\u0421\u0434\u0435\u043b\u0430\u0439 \u0414\u0420\u0423\u0413\u041e\u0419 \u0432\u0430\u0440\u0438\u0430\u043d\u0442: \u0434\u0440\u0443\u0433\u043e\u0439 \u0445\u0443\u043a, \u0434\u0440\u0443\u0433\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0438.`;\n\nreturn [{ json: {\n  day_number: day,\n  claudeRequest: {\n    model: 'claude-sonnet-4-6',\n    max_tokens: 2000,\n    system,\n    messages: [{ role: 'user', content: user }]\n  }\n} }];"
      },
      "id": "c-regen-build",
      "name": "\u0417\u0430\u043f\u0440\u043e\u0441: \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -300,
        140
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.anthropic.com/v1/messages",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "x-api-key",
              "value": "={{ $env.ANTHROPIC_API_KEY }}"
            },
            {
              "name": "anthropic-version",
              "value": "2023-06-01"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify($json.claudeRequest) }}",
        "options": {}
      },
      "id": "c-regen-claude",
      "name": "Claude: \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -80,
        140
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000
    },
    {
      "parameters": {
        "jsCode": "let text = ($json.content && $json.content[0] && $json.content[0].text) || '';\ntext = text.trim().replace(/^```(json)?\\s*/i, '').replace(/```\\s*$/, '').trim();\ntry {\n  const p = JSON.parse(text);\n  if (!p.caption_linkedin || !p.caption_instagram || !p.caption_youtube || !p.title_youtube) throw new Error('missing fields');\n  return [{ json: { ok: true, ...p } }];\n} catch (e) {\n  return [{ json: { ok: false } }];\n}"
      },
      "id": "c-regen-parse",
      "name": "\u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c JSON (regen)",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        140,
        140
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "typeValidation": "loose",
            "version": 2
          },
          "conditions": [
            {
              "leftValue": "={{ $json.ok }}",
              "rightValue": true,
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "c-regen-ok",
      "name": "JSON \u0432\u0430\u043b\u0438\u0434\u0435\u043d? (regen)",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        360,
        140
      ]
    },
    {
      "parameters": {
        "chatId": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.chat_id }}",
        "text": "=\u26a0\ufe0f \u0414\u0435\u043d\u044c {{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }}: \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 (\u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 JSON \u043e\u0442 Claude). \u041d\u0430\u0436\u043c\u0438 \u00ab\u041f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b\u00bb \u0435\u0449\u0451 \u0440\u0430\u0437.",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "id": "c-regen-fail",
      "name": "\u041e\u0448\u0438\u0431\u043a\u0430 \u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        580,
        260
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000
    },
    {
      "parameters": {
        "operation": "appendOrUpdate",
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $env.GOOGLE_SHEETS_ID }}"
        },
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "pipeline"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "day_number": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }}",
            "caption_linkedin": "={{ $json.caption_linkedin }}",
            "caption_instagram": "={{ $json.caption_instagram }}",
            "caption_youtube": "={{ $json.caption_youtube }}",
            "title_youtube": "={{ $json.title_youtube }}",
            "status": "awaiting_approval"
          },
          "matchingColumns": [
            "day_number"
          ],
          "schema": []
        },
        "options": {}
      },
      "id": "c-regen-save",
      "name": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b (regen)",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        580,
        60
      ]
    },
    {
      "parameters": {
        "chatId": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.chat_id }}",
        "text": "=\ud83d\udcdd \u041d\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0434\u043b\u044f \u0434\u043d\u044f {{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }}:\n\n\ud83d\udd37 LinkedIn:\n{{ $('\u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c JSON (regen)').first().json.caption_linkedin }}\n\n\ud83d\udcf8 Instagram:\n{{ $('\u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c JSON (regen)').first().json.caption_instagram }}\n\n\u25b6\ufe0f YouTube: {{ $('\u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c JSON (regen)').first().json.title_youtube }}\n{{ $('\u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c JSON (regen)').first().json.caption_youtube }}",
        "replyMarkup": "inlineKeyboard",
        "inlineKeyboard": {
          "rows": [
            {
              "row": {
                "buttons": [
                  {
                    "text": "\u2705 \u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0439\u0447\u0430\u0441",
                    "additionalFields": {
                      "callback_data": "=publish:{{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }}"
                    }
                  }
                ]
              }
            },
            {
              "row": {
                "buttons": [
                  {
                    "text": "\ud83d\uddd3 \u0412 \u043e\u0447\u0435\u0440\u0435\u0434\u044c (\u0430\u0432\u0442\u043e, 18:00)",
                    "additionalFields": {
                      "callback_data": "=queue:{{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }}"
                    }
                  }
                ]
              }
            },
            {
              "row": {
                "buttons": [
                  {
                    "text": "\u270f\ufe0f \u041f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b",
                    "additionalFields": {
                      "callback_data": "=regen:{{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }}"
                    }
                  }
                ]
              }
            },
            {
              "row": {
                "buttons": [
                  {
                    "text": "\u274c \u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c",
                    "additionalFields": {
                      "callback_data": "=reject:{{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }}"
                    }
                  }
                ]
              }
            }
          ]
        },
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "id": "c-regen-preview",
      "name": "\u041f\u0440\u0435\u0432\u044c\u044e (regen)",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        800,
        60
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000
    },
    {
      "parameters": {
        "operation": "appendOrUpdate",
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $env.GOOGLE_SHEETS_ID }}"
        },
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "pipeline"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "day_number": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }}",
            "status": "rejected"
          },
          "matchingColumns": [
            "day_number"
          ],
          "schema": []
        },
        "options": {}
      },
      "id": "c-reject",
      "name": "\u0421\u0442\u0430\u0442\u0443\u0441: rejected",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        -520,
        460
      ]
    },
    {
      "parameters": {
        "chatId": "={{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.chat_id }}",
        "text": "=\u274c \u0414\u0435\u043d\u044c {{ $('\u0420\u0430\u0437\u0431\u043e\u0440 callback').first().json.day }} \u043e\u0442\u043a\u043b\u043e\u043d\u0451\u043d. \u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "id": "c-reject-msg",
      "name": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        -300,
        460
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 5000
    }
  ],
  "connections": {
    "\u0417\u0430\u043f\u0443\u0441\u043a \u0438\u0437 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430": {
      "main": [
        [
          {
            "node": "\u0420\u0430\u0437\u0431\u043e\u0440 callback",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0420\u0430\u0437\u0431\u043e\u0440 callback": {
      "main": [
        [
          {
            "node": "\u041e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 callback",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u041e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 callback": {
      "main": [
        [
          {
            "node": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435": {
      "main": [
        [
          {
            "node": "\u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "\u0412\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 (queue)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "\u0421\u0442\u0440\u043e\u043a\u0430 (regen)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "\u0421\u0442\u0430\u0442\u0443\u0441: rejected",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438": {
      "main": [
        [
          {
            "node": "\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e (P)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0412\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 (queue)": {
      "main": [
        [
          {
            "node": "\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0434\u0430\u0442\u0443 \u043e\u0447\u0435\u0440\u0435\u0434\u0438",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0434\u0430\u0442\u0443 \u043e\u0447\u0435\u0440\u0435\u0434\u0438": {
      "main": [
        [
          {
            "node": "\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430?": {
      "main": [
        [
          {
            "node": "\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "\u041e\u0447\u0435\u0440\u0435\u0434\u044c: \u043e\u0442\u043a\u0430\u0437",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c": {
      "main": [
        [
          {
            "node": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u044c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0421\u0442\u0440\u043e\u043a\u0430 (regen)": {
      "main": [
        [
          {
            "node": "\u0417\u0430\u043f\u0440\u043e\u0441: \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0417\u0430\u043f\u0440\u043e\u0441: \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442": {
      "main": [
        [
          {
            "node": "Claude: \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude: \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442": {
      "main": [
        [
          {
            "node": "\u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c JSON (regen)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c JSON (regen)": {
      "main": [
        [
          {
            "node": "JSON \u0432\u0430\u043b\u0438\u0434\u0435\u043d? (regen)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "JSON \u0432\u0430\u043b\u0438\u0434\u0435\u043d? (regen)": {
      "main": [
        [
          {
            "node": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b (regen)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "\u041e\u0448\u0438\u0431\u043a\u0430 \u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u044b (regen)": {
      "main": [
        [
          {
            "node": "\u041f\u0440\u0435\u0432\u044c\u044e (regen)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0421\u0442\u0430\u0442\u0443\u0441: rejected": {
      "main": [
        [
          {
            "node": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

C — Кнопки и публикация (Челлендж 200 дней). Uses executeWorkflowTrigger, telegram, googleSheets, httpRequest. Event-driven trigger; 22 nodes.

Source: https://github.com/nikita-automation/content-publishing-pipeline/blob/main/workflows/C-callbacks-publish.json — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

Deal-Finder. Uses executeWorkflowTrigger, googleSheets, perplexity, httpRequest. Event-driven trigger; 49 nodes.

Execute Workflow Trigger, Google Sheets, Perplexity +2
Slack & Telegram

This workflow provides a complete solution for handling Telegram Stars payments, invoicing and refunds using n8n. It automates the process of sending invoices, managing pre-checkout approvals, recordi

HTTP Request, Execute Workflow Trigger, Google Sheets +2
Slack & Telegram

A — Приём и перевод (Челлендж 200 дней). Uses executeWorkflowTrigger, telegram, httpRequest, executeCommand. Event-driven trigger; 32 nodes.

Execute Workflow Trigger, Telegram, HTTP Request +5
Slack & Telegram

P — Публикация: движок (Челлендж 200 дней). Uses executeWorkflowTrigger, googleSheets, telegram, httpRequest. Event-driven trigger; 15 nodes.

Execute Workflow Trigger, Google Sheets, Telegram +1
Slack & Telegram

DocFlow 04 - Invoice Extractor. Uses executeWorkflowTrigger, httpRequest, googleSheets, telegram. Event-driven trigger; 9 nodes.

Execute Workflow Trigger, HTTP Request, Google Sheets +1