This workflow corresponds to n8n.io template #9355 — we link there as the canonical source.
This workflow follows the Gmail → HTTP Request 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 →
{
"id": "EdXR18SX0sWTrnnA",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Tweets Summarizer",
"tags": [],
"nodes": [
{
"id": "642f2b18-6530-49c8-a998-486cfd304bb2",
"name": "Get User",
"type": "n8n-nodes-base.twitter",
"position": [
-496,
-80
],
"parameters": {
"user": {
"__rl": true,
"mode": "username",
"value": "your_target_username"
},
"resource": "user"
},
"credentials": {
"twitterOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "890190cc-6830-4f5d-9541-6c8d74d8ee0e",
"name": "Message a model",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
272,
-80
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-5-nano",
"cachedResultName": "GPT-5-NANO"
},
"options": {},
"messages": {
"values": [
{
"content": "=Analyze the recent competitor tweets on X, considering their recent updates and engagement rate.\n\n{{ $json.data.map(t => `Tweet: ${t.text}\\nLikes: ${t.public_metrics.like_count}, Impressions: ${t.public_metrics.impression_count}`).join('\\n\\n') }}\n"
}
]
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.8
},
{
"id": "0e3760b0-afae-4c7b-9a9f-4b20f43689e3",
"name": "Send a message",
"type": "n8n-nodes-base.gmail",
"position": [
784,
-80
],
"parameters": {
"sendTo": "user@example.com",
"message": "={{ $json.message.content }}",
"options": {},
"subject": "Latest Competitor Analysis",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "c9d970ec-d3d3-418e-821d-23c0b2228af8",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-944,
-80
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "5bec126d-97c8-4bf0-b67a-2ce3d5ac02ae",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-592,
-304
],
"parameters": {
"width": 288,
"height": 400,
"content": "## Step 2\n\nHardcode your competitor's X (formerly Twitter) username in this node. \nThis node will fetch basic profile data to extract the corresponding user ID.\n"
},
"typeVersion": 1
},
{
"id": "126d2909-cde2-4daa-bf93-e51f25d9fcfc",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-176,
-304
],
"parameters": {
"width": 288,
"height": 400,
"content": "## Step 3\n\nThis node will fetch the 5 most recent posts from your competitor. \nYou can change this number by modifying the `max_results` parameter in this node.\n"
},
"typeVersion": 1
},
{
"id": "6786839b-ed1f-466b-b336-b49bbad1dd82",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
-304
],
"parameters": {
"width": 288,
"height": 400,
"content": "## Step 4\n\nThis OpenAI node uses the `gpt-5-nano` model to generate a competitor analysis summary based on recent posts. \nYou can tailor the summary to your needs by modifying the prompt.\n"
},
"typeVersion": 1
},
{
"id": "f995941a-b4dc-4db1-83b3-4daead61193b",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
688,
-304
],
"parameters": {
"width": 288,
"height": 400,
"content": "## Final Step\n\nSend an email to yourself or your team by updating the email address in this node.\n"
},
"typeVersion": 1
},
{
"id": "0be06c61-a4c3-4763-b478-705f2930f10b",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1040,
-304
],
"parameters": {
"width": 288,
"height": 400,
"content": "## Step 1\n\nSet your preferred schedule. The task is currently set to run every day at midnight.\n"
},
"typeVersion": 1
},
{
"id": "0d067076-c3a1-42d6-b196-842efa52d5fb",
"name": "Fetch Recent Posts",
"type": "n8n-nodes-base.httpRequest",
"position": [
-80,
-80
],
"parameters": {
"url": "=https://api.twitter.com/2/users/{{ $json.id }}/tweets ",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "max_results",
"value": "5"
},
{
"name": "tweet.fields",
"value": "public_metrics,created_at"
}
]
},
"nodeCredentialType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "07b834ba-0a7b-4c6f-b99a-2de3adca6056",
"connections": {
"Get User": {
"main": [
[
{
"node": "Fetch Recent Posts",
"type": "main",
"index": 0
}
]
]
},
"Message a model": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Get User",
"type": "main",
"index": 0
}
]
]
},
"Fetch Recent Posts": {
"main": [
[
{
"node": "Message a model",
"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.
gmailOAuth2httpBearerAuthopenAiApitwitterOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Stay on top of your competition with this powerful n8n workflow that automatically fetches and summarizes your competitors’ latest tweets every day. Using the official X (formerly Twitter) API and OpenAI's GPT-5-Nano model, this template extracts insights from public tweets and…
Source: https://n8n.io/workflows/9355/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
It’s very important to come prepared to Sales calls. This often means a lot of manual research about the person you’re calling with. This workflow delivers a summary of the latest social media activit
This n8n template automates the process of curating and sharing the latest cryptocurrency news on X (formerly Twitter) and Telegram. By leveraging AI for content summarization, this workflow allows yo
Turn your favorite podcast episodes into engaging social media content automatically. This workflow fetches new episodes from an RSS feed, transcribes the audio using OpenAI Whisper, generates a conci
Automate Crypto News Posting to X & Telegram with AI Summarization. Uses openAi, httpRequest, twitter, telegram. Scheduled trigger; 20 nodes.
IntelliX.AI - Editorial Automatizado v2. Uses postgres, rssFeedRead, openAi, httpRequest. Event-driven trigger; 62 nodes.