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
This fully automated AI Twin Viral News system researches the latest trending news in any niche or industry, then generates talking-head AI clone videos WITHOUT having to film or edit yourself. This c
This workflow finds potential customers, gathers detailed info about them and their companies, and then uses AI to research them in detail and write personalized messages for LinkedIn and a series of