AutomationFlowsAI & RAG › Create Marketing Content with Voice Commands Using Gpt-4 & AI Tools in Telegram

Create Marketing Content with Voice Commands Using Gpt-4 & AI Tools in Telegram

ByMuhammad Ashar @ashar0086 on n8n.io

How It Works – Your AI Marketing Team in Action This automation acts as your AI-powered content and image marketing assistant inside Telegram. With just a voice note or text message, it can:

Event trigger★★★★☆ complexityAI-powered25 nodesOpenRouter ChatTool WorkflowTelegramMemory Buffer WindowOpenAITelegram TriggerAgentTool Think
AI & RAG Trigger: Event Nodes: 25 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #6325 — we link there as the canonical source.

This workflow follows the Agent → OpenRouter Chat 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
{
  "id": "7LI7szVWjgxuYSD2",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "AI Marketing Team",
  "tags": [],
  "nodes": [
    {
      "id": "243cc16f-a8ca-4e9f-8d8a-6e48d2c1796f",
      "name": "GPT 4.1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -180,
        200
      ],
      "parameters": {
        "model": "openai/gpt-4.1",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b46f6e9a-9719-4540-9aa6-23da285e89f2",
      "name": "Create Image",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        780,
        200
      ],
      "parameters": {
        "name": "createImage",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "lsZTPeThp35cB3Hs",
          "cachedResultName": "Create Image"
        },
        "description": "Call this tool to create an image. ",
        "workflowInputs": {
          "value": {
            "chatID": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
            "imageTitle": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('imageTitle', `The title of the image. Should be no more than 4 words.`, 'string') }}",
            "imagePrompt": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('imagePrompt', `The image requested by the user`, 'string') }}"
          },
          "schema": [
            {
              "id": "imageTitle",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "imageTitle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "imagePrompt",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "imagePrompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "chatID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "chatID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "9856dbc9-1904-422e-8dfa-f84e210b1edc",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1160,
        -140
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3c80151c-dc63-4981-8136-15f5e16a647f",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        100,
        200
      ],
      "parameters": {
        "sessionKey": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "ae38e1af-dc55-48cf-9be2-7439a592453d",
      "name": "Edit Image",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        940,
        200
      ],
      "parameters": {
        "name": "editImage",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "nMBpMe21l4gDEjOI",
          "cachedResultName": "Edit Image"
        },
        "description": "Call this tool to edit an image.",
        "workflowInputs": {
          "value": {
            "image": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('image', `The title of the image the user wants to edit`, 'string') }}",
            "chatID": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
            "request": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('request', `The edit the user wants to make to the image`, 'string') }}",
            "pictureID": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('pictureID', `The ID of the image to edit`, 'string') }}"
          },
          "schema": [
            {
              "id": "image",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "image",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "request",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "request",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "chatID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "chatID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "pictureID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "pictureID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e1b30c8b-b081-4689-97fb-22733fbac6a7",
      "name": "Search Images",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        1180,
        200
      ],
      "parameters": {
        "name": "searchImages",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "zDYAKGCIEChJa1JH",
          "cachedResultName": "Search Images"
        },
        "description": "Call this tool to search the image database.",
        "workflowInputs": {
          "value": {
            "image": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('image', `The image title`, 'string') }}",
            "chatID": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
            "intent": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('intent', `The intent of the user. This can either be \"Get\" or \"Edit\"`, 'string') }}"
          },
          "schema": [
            {
              "id": "intent",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "intent",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "image",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "image",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "chatID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "chatID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "c8d4ca3f-591e-4751-91ff-3aa6714e893f",
      "name": "Blog Post",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        600,
        200
      ],
      "parameters": {
        "name": "blogPost",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "sS2JMp5z7YiqtJpa",
          "cachedResultName": "Blog Post"
        },
        "description": "Call this tool to create a blog post using a topic and a target audience.",
        "workflowInputs": {
          "value": {
            "chatID": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
            "blogTopic": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('blogTopic', `The topic of the blog.`, 'string') }}",
            "targetAudience": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('targetAudience', `The target audience for the blog.`, 'string') }}"
          },
          "schema": [
            {
              "id": "blogTopic",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "blogTopic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "targetAudience",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "targetAudience",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "chatID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "chatID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ac099456-afcf-4c32-8d2d-cf9162932ce5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        600,
        -300
      ],
      "parameters": {
        "width": 460,
        "height": 400,
        "content": "# Marketing Team"
      },
      "typeVersion": 1
    },
    {
      "id": "93e30328-9637-411f-bb0d-1c5e9cc207e1",
      "name": "LinkedIn Post",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        440,
        200
      ],
      "parameters": {
        "name": "linkedinPost",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "RgUBWsswXoQsX2tI",
          "cachedResultName": "LinkedIn Post"
        },
        "description": "Call this tool to create a LinkedIn post using a topic and a target audience.",
        "workflowInputs": {
          "value": {
            "chatID": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
            "postTopic": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('postTopic', `The topic of the LinkedIn post`, 'string') }}",
            "targetAudience": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('targetAudience', `The target audience of the LinkedIn post`, 'string') }}"
          },
          "schema": [
            {
              "id": "postTopic",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "postTopic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "targetAudience",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "targetAudience",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "chatID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "chatID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "a3451421-dcc6-4643-94a4-f4b187dbb70b",
      "name": "Set 'Text'",
      "type": "n8n-nodes-base.set",
      "position": [
        320,
        -60
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "fe7ecc99-e1e8-4a5e-bdd6-6fce9757b234",
              "name": "text",
              "type": "string",
              "value": "={{ $json.message.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "cd462755-96a8-4ca2-a3a8-77e85e83f024",
      "name": "Download Voice File",
      "type": "n8n-nodes-base.telegram",
      "position": [
        240,
        -220
      ],
      "parameters": {
        "fileId": "={{ $json.message.voice.file_id }}",
        "resource": "file"
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "26f7a215-90a0-4719-a7a2-fbfba550277b",
      "name": "Transcribe Audio",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        400,
        -220
      ],
      "parameters": {
        "options": {},
        "resource": "audio",
        "operation": "transcribe"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.6
    },
    {
      "id": "3c795fe4-9c50-4b1d-a43e-2b9d36746a39",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        -20,
        -140
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Voice",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.message.voice.file_id }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Text",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "8c844924-b2ed-48b0-935c-c66a8fd0c778",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.message.text }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "12bb0833-769d-4592-af4d-fa335c6e84ab",
      "name": "Telegram Trigger",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -160,
        -140
      ],
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "cd9f9d75-e1bf-4279-b733-3339fb383536",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -220,
        -300
      ],
      "parameters": {
        "color": 6,
        "width": 360,
        "height": 400,
        "content": "# Trigger\n"
      },
      "typeVersion": 1
    },
    {
      "id": "97967485-58d3-4f7e-b879-c0895721fd99",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        120
      ],
      "parameters": {
        "color": 5,
        "width": 480,
        "height": 220,
        "content": "# Content Creation"
      },
      "typeVersion": 1
    },
    {
      "id": "5c76b653-8a55-4c6d-b335-35185944a48b",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        740,
        120
      ],
      "parameters": {
        "color": 3,
        "width": 320,
        "height": 220,
        "content": "# Image Creation"
      },
      "typeVersion": 1
    },
    {
      "id": "079a7833-0fff-4fd3-81d1-9d112b432e24",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1080,
        120
      ],
      "parameters": {
        "color": 4,
        "width": 300,
        "height": 220,
        "content": "# Image Database"
      },
      "typeVersion": 1
    },
    {
      "id": "60b95e09-119e-4477-99cb-a5629ef4965a",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1080,
        -300
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 400,
        "content": "# Response\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "65a7791a-7d13-4dff-b532-8576692a9ffa",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -220,
        120
      ],
      "parameters": {
        "color": 2,
        "width": 440,
        "height": 220,
        "content": "# Brain\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6c35946c-e517-40f2-8d96-7b0f391dcb3c",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        -300
      ],
      "parameters": {
        "color": 7,
        "width": 420,
        "height": 400,
        "content": "# Voice or Text"
      },
      "typeVersion": 1
    },
    {
      "id": "5137d58b-d6d9-4877-9d95-6d4cf870d09f",
      "name": "Video",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        280,
        200
      ],
      "parameters": {
        "name": "video",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "7HwL0nnjhjdXJ3FY",
          "cachedResultName": "Faceless Video"
        },
        "description": "Call this tool to create a video.",
        "workflowInputs": {
          "value": {
            "chatID": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
            "videoTopic": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('videoTopic', `The topic of the video`, 'string') }}"
          },
          "schema": [
            {
              "id": "videoTopic",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "videoTopic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "chatID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "chatID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "13aea3f4-b9b0-4f14-9d68-06baee17bea5",
      "name": "Marketing Team Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        700,
        -140
      ],
      "parameters": {
        "text": "={{ $json.text }}",
        "options": {
          "systemMessage": "=# Overview\nYou are a marketing team AI agent. Your job is to help the user create and edit images based on the request, or create content.\n\n## Tools\ncreateImage - Use this to create an image. Send the requested image prompt to this tool.\neditImage - Use this to edit an image. The user might also say \"make\" rather than \"edit\".\nImage Database - Use this to search the image database. \nblogPost - Use this to create a blog post.\nlinkedinPost - Use this to create a LinkedIn post.\nvideo - Use this tool to create a video.\nThink - Use this if you need help making a decision.\n\n## Instructions\n- If the user asks to 'edit that image' or 'make that...', this indicates they want to edit the last image in the database, the most recent one.\n- If the user requests a blog post or LinkedIn post, use the \"blogPost\" or \"linkedinPost\" tool and output: \"Here's that post you requested. Hope you enjoy it.\"\n\n## Output\n- Make sure to return the image link as a clickable link\n\n"
        },
        "promptType": "define"
      },
      "typeVersion": 1.9
    },
    {
      "id": "7642374d-7e12-4f7d-be49-d74bc85932e5",
      "name": "Think",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        -40,
        200
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b7c8b7b9-b25d-4f20-8713-3013d2955b9d",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        -300
      ],
      "parameters": {
        "width": 560,
        "height": 1000,
        "content": "# \ud83d\udccb Setup Guide  \n**Author: [Muhammad Ashar Ishfaq(https://www.linkedin.com/in/muhammad-ashar-ishfaq/)**\n---\n### \u2705 First Steps\n1. **Import the following workflows** into your n8n environment:\n   - Video\n   - LinkedIn Post\n   - Blog Post\n   - Create Image\n   - Edit Image\n   - Search Images\n\n2. **Link all workflows** together appropriately.\n   - Make sure that the tools the Marketing Team Agent uses are correctly linked to these workflows.\n   - Rename workflows as needed to fit your naming system.\n---\n\n### \ud83d\udd17 Credentials to Connect\n- **[Telegram Credential](https://telegram.org/)** (for outbound/inbound communication)\n- **[OpenRouter](https://openrouter.ai/) Credential** (for AI requests)\n- **[Tavily](https://tavily.com/) Credential** (for research inside LinkedIn Post and Blog Post workflows)\n---\n\n### \ud83d\udd11 API Keys to Configure\nInside the **Video Workflow**:\n- **[PiAPI](https://piapi.ai/) API Key** (for video generation)\n- **[Runway](https://runwayml.com/) API Key** (for video processing)\n- **[ElevenLabs](https://elevenlabs.io/) API Key** (for voice generation)\n\nInside the **LinkedIn Post** and **Blog Post Workflows**:\n- **[Tavily](https://tavily.com/) API Key** (for research assistance)\n---\n\n### \ud83d\udcc4 Templates to Download and Connect\n- **[Creatomate](https://creatomate.com/) Image Template**  \n  \u2192 Download from the Free Skool Community\n\n- **[Google Sheets Log Template](https://docs.google.com/spreadsheets/d/1wQxM9cAwewCigPH22KDidMu_i9j_dx4MHEa5rmJiw5I/edit?usp=sharing)**  \n  \u2192 Connect it to your n8n Google Sheets node to track content outputs.\n---\n\nMake sure all credentials, APIs, and templates are properly set before running the full system!\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d41cc226-7086-4a5e-bb39-a8fd64014322",
  "connections": {
    "Think": {
      "ai_tool": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Video": {
      "ai_tool": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Download Voice File",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Set 'Text'",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GPT 4.1": {
      "ai_languageModel": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Blog Post": {
      "ai_tool": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Edit Image": {
      "ai_tool": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Set 'Text'": {
      "main": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Image": {
      "ai_tool": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "LinkedIn Post": {
      "ai_tool": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Search Images": {
      "ai_tool": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transcribe Audio": {
      "main": [
        [
          {
            "node": "Marketing Team Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Voice File": {
      "main": [
        [
          {
            "node": "Transcribe Audio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Marketing Team Agent": {
      "main": [
        [
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

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

About this workflow

How It Works – Your AI Marketing Team in Action This automation acts as your AI-powered content and image marketing assistant inside Telegram. With just a voice note or text message, it can:

Source: https://n8n.io/workflows/6325/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Jarvis is a powerful multi-agent productivity assistant built in n8n. It works directly from Telegram and can understand both text messages and voice notes.

Telegram Trigger, Telegram, OpenAI +10
AI & RAG

AI-powered Telegram bot for effortless expense tracking. Send receipts, voice messages, or text - the bot automatically extracts and categorizes your expenses. 📸 Receipt & Invoice OCR - Send photos of

Telegram Trigger, Mcp Client Tool, Tool Calculator +7
AI & RAG

Turn your Telegram into a personal Bloomberg terminal. Ask any question about any stock — get institutional-grade analysis back in seconds. TwelveData Pro Analyst is a complete, ready-to-import n8n wo

Telegram, Telegram Trigger, Agent +6
AI & RAG

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Output Parser Structured, Telegram, N8N Nodes Tesseractjs +14
AI & RAG

Multi Agent System Benefits. Uses gmailTool, lmChatOpenAi, agent, googleCalendarTool. Event-driven trigger; 46 nodes.

Gmail Tool, OpenAI Chat, Agent +12