AutomationFlowsAI & RAG › Twitter AI Feed Translator

Twitter AI Feed Translator

Twitter AI Feed Translator. Uses rssFeedReadTrigger, openAi, telegram. Event-driven trigger; 9 nodes.

Event trigger★★★★☆ complexityAI-powered9 nodesRss Feed Read TriggerOpenAITelegram
AI & RAG Trigger: Event Nodes: 9 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the OpenAI → Telegram 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": "Twitter AI Feed Translator",
  "nodes": [
    {
      "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
      "name": "RSS Feed Trigger",
      "type": "n8n-nodes-base.rssFeedReadTrigger",
      "typeVersion": 1,
      "position": [
        250,
        300
      ],
      "parameters": {
        "feedUrl": "https://rss.app/feeds/your-feed-url.xml",
        "pollInterval": 15
      }
    },
    {
      "id": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e",
      "name": "Filter Retweets",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2,
      "position": [
        550,
        100
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": ""
          },
          "conditions": [
            {
              "id": "c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f",
              "leftValue": "={{ $json.title }}",
              "rightValue": "RT @",
              "operator": {
                "type": "string",
                "operation": "contains"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      }
    },
    {
      "id": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
      "name": "Filter Mentions",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2,
      "position": [
        550,
        300
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": ""
          },
          "conditions": [
            {
              "id": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b",
              "leftValue": "={{ $json.title }}",
              "rightValue": "@",
              "operator": {
                "type": "string",
                "operation": "contains"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      }
    },
    {
      "id": "f6a7b8c9-d0e1-4f2a-3b4c-5d6e7f8a9b0c",
      "name": "Filter Original Tweets",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2,
      "position": [
        550,
        500
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": ""
          },
          "conditions": [
            {
              "id": "a7b8c9d0-e1f2-4a3b-4c5d-6e7f8a9b0c1d",
              "leftValue": "={{ $json.title }}",
              "rightValue": "@",
              "operator": {
                "type": "string",
                "operation": "notContains"
              }
            },
            {
              "id": "b8c9d0e1-f2a3-4b4c-5d6e-7f8a9b0c1d2e",
              "leftValue": "={{ $json.title }}",
              "rightValue": "RT @",
              "operator": {
                "type": "string",
                "operation": "notContains"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      }
    },
    {
      "id": "c9d0e1f2-a3b4-4c5d-6e7f-8a9b0c1d2e3f",
      "name": "Clean Junk",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        850,
        500
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\n\nfor (const item of items) {\n  let text = item.json.title || '';\n  \n  // Remove common junk patterns\n  text = text.replace(/\\s+/g, ' ').trim();\n  text = text.replace(/[\\u200B-\\u200D\\uFEFF]/g, ''); // Zero-width characters\n  text = text.replace(/&amp;/g, '&');\n  text = text.replace(/&lt;/g, '<');\n  text = text.replace(/&gt;/g, '>');\n  text = text.replace(/&quot;/g, '\"');\n  \n  item.json.cleanedTitle = text;\n}\n\nreturn items;"
      }
    },
    {
      "id": "d0e1f2a3-b4c5-4d6e-7f8a-9b0c1d2e3f4a",
      "name": "Clean Links",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1150,
        500
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\n\nfor (const item of items) {\n  let text = item.json.cleanedTitle || item.json.title || '';\n  \n  // Remove cc: references\n  text = text.replace(/\\s*cc:\\s*https?:\\/\\/\\S+/gi, '');\n  \n  // Remove pic.twitter.com references\n  text = text.replace(/\\s*pic\\.twitter\\.com\\/\\S+/gi, '');\n  \n  // Remove t.co links\n  text = text.replace(/\\s*https?:\\/\\/t\\.co\\/\\S+/gi, '');\n  \n  // Clean up extra spaces\n  text = text.replace(/\\s+/g, ' ').trim();\n  \n  item.json.finalText = text;\n}\n\nreturn items;"
      }
    },
    {
      "id": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
      "name": "Translate",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.4,
      "position": [
        1450,
        500
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "value": "chatgpt-4o-latest",
          "mode": "list",
          "cachedResultName": "chatgpt-4o-latest"
        },
        "options": {
          "systemMessage": "You are a professional translator. Translate the following tweet text from English to Russian. Preserve the meaning, tone, and any technical terms. Return ONLY the translated text without any explanations or additional commentary."
        },
        "prompt": "={{ $json.finalText }}"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "f2a3b4c5-d6e7-4f8a-9b0c-1d2e3f4a5b6c",
      "name": "Commentary",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.4,
      "position": [
        1750,
        500
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "value": "chatgpt-4o-latest",
          "mode": "list",
          "cachedResultName": "chatgpt-4o-latest"
        },
        "options": {
          "systemMessage": "You are an AI analyst and technology expert. Analyze the following tweet and provide a brief, insightful commentary in Russian about its significance, implications, or context in the AI/tech industry. Keep it concise (2-3 sentences) and informative."
        },
        "prompt": "={{ $json.finalText }}"
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "id": "a3b4c5d6-e7f8-4a9b-0c1d-2e3f4a5b6c7d",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        2050,
        500
      ],
      "parameters": {
        "resource": "message",
        "operation": "sendMessage",
        "chatId": "196267257",
        "text": "=<b>\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0432\u0438\u0442 (\u043f\u0435\u0440\u0435\u0432\u043e\u0434):</b>\n{{ $('Translate').item.json.text }}\n\n<b>\ud83d\udcca \u0410\u043d\u0430\u043b\u0438\u0437:</b>\n{{ $('Commentary').item.json.text }}\n\n<b>\ud83d\udd17 \u0421\u0441\u044b\u043b\u043a\u0430:</b>\n{{ $('RSS Feed Trigger').item.json.link }}",
        "additionalFields": {
          "parseMode": "HTML"
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "RSS Feed Trigger": {
      "main": [
        [
          {
            "node": "Filter Retweets",
            "type": "main",
            "index": 0
          },
          {
            "node": "Filter Mentions",
            "type": "main",
            "index": 0
          },
          {
            "node": "Filter Original Tweets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Original Tweets": {
      "main": [
        [
          {
            "node": "Clean Junk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean Junk": {
      "main": [
        [
          {
            "node": "Clean Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean Links": {
      "main": [
        [
          {
            "node": "Translate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Translate": {
      "main": [
        [
          {
            "node": "Commentary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Commentary": {
      "main": [
        [
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}

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

Twitter AI Feed Translator. Uses rssFeedReadTrigger, openAi, telegram. Event-driven trigger; 9 nodes.

Source: https://github.com/AI-agents-incubator/n8n-pilot/blob/main/tests/acceptance/output/twitter-ai-feed-generated.json — 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

inoreader_AI->196267257. Uses httpRequest, openAi, telegram, airtable. Event-driven trigger; 28 nodes.

HTTP Request, OpenAI, Telegram +2
AI & RAG

rss.app_Twitter_AI_selebs->196267257. Uses telegram, openAi, airtable, rssFeedReadTrigger. Event-driven trigger; 18 nodes.

Telegram, OpenAI, Airtable +1
AI & RAG

rss_app_Twitter_AI_feed__196267257. Uses telegram, openAi, airtable, rssFeedReadTrigger. Event-driven trigger; 18 nodes.

Telegram, OpenAI, Airtable +1
AI & RAG

inoreader_AI_Telegram->196267257. Uses telegram, airtable, rssFeedReadTrigger, openAi. Event-driven trigger; 17 nodes.

Telegram, Airtable, Rss Feed Read Trigger +1
AI & RAG

AI News RSS Pipeline. Uses rssFeedReadTrigger, httpRequest, openAi, telegram. Event-driven trigger; 14 nodes.

Rss Feed Read Trigger, HTTP Request, OpenAI +1