This workflow corresponds to n8n.io template #10824 — we link there as the canonical source.
This workflow follows the Agent → Facebookgraphapi 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": "iWTbaNAM3oNJnYj4",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Automate Instagram Engagement & Sentiment Analysis with GPT-4 and Slack Reports",
"tags": [],
"nodes": [
{
"id": "1164e598-a1f0-46c8-a57a-235d4b674646",
"name": "Fetch Recent Instagram Posts",
"type": "n8n-nodes-base.facebookGraphApi",
"position": [
-1248,
128
],
"parameters": {
"edge": "media",
"options": {
"fields": {
"field": [
{
"name": "id,caption,media_type,media_url,permalink,timestamp,like_count,comments_count,comments{username,text,timestamp,like_count}"
}
]
}
},
"graphApiVersion": "v23.0"
},
"credentials": {
"facebookGraphApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "bfbb74f0-ef19-44c6-bb55-b626489aff92",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1472,
128
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 10
}
]
}
},
"typeVersion": 1.2
},
{
"id": "5958fe5f-35b9-4e5e-9418-8a2bea7eaf69",
"name": "AI Agent - Sentiment Analyzer",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-752,
128
],
"parameters": {
"text": "=Analyze the following Instagram posts and their audience engagement metrics.\n\nPosts JSON:\n{{ JSON.stringify($json) }}\n\nFor each post, consider:\n- Post caption, media type, likes, comments_count, total_engagement\n- The sentiment and content of comments\n- How positive/negative reactions might affect performance\n\nReturn your analysis strictly in JSON format:\n\n{\n \"summary\": {\n \"totalPostsAnalyzed\": number,\n \"averageEngagement\": number,\n \"topPerformingPostId\": string,\n \"topPerformanceReason\": string\n },\n \"posts\": [\n {\n \"post_id\": string,\n \"post_url\": string,\n \"caption\": string,\n \"likes\": number,\n \"comments_count\": number,\n \"total_engagement\": number,\n \"engagementScore\": number,\n \"commentSentiment\": {\n \"averageScore\": number,\n \"label\": string,\n \"positiveComments\": [string],\n \"negativeComments\": [string]\n },\n \"performanceLabel\": string,\n \"insight\": string,\n \"recommendation\": string\n }\n ],\n \"overallInsights\": {\n \"contentPatterns\": [string],\n \"engagementInsights\": [string],\n \"recommendations\": [string]\n }\n}\n",
"options": {
"systemMessage": "=You are an AI Instagram Performance Analyst. \nYour goal is to evaluate the performance of multiple Instagram posts using both quantitative engagement data and qualitative comment sentiment.\n\nAnalyze each post considering:\n- Likes, comments count, and total engagement\n- The tone of comments (positive, neutral, negative)\n- Caption style and media type\n- Audience interaction patterns\n\nThen identify which post performed best overall, explain why, and provide content strategy recommendations. \nBe analytical and specific \u2014 avoid generic comments. \nAlways respond strictly in **valid JSON** format with no extra text.\n"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.1
},
{
"id": "d59bdb69-efb5-4a9b-81ea-60a34b1b7738",
"name": "Window Buffer Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-672,
352
],
"parameters": {
"sessionKey": "=\"Post Engagement\"",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "b8cfe1b8-8de0-4527-a8d6-0ed897551a71",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1776,
-640
],
"parameters": {
"width": 448,
"height": 576,
"content": "## \ud83e\udde9 Social Engagement Analyzer\n\n### How it works\nThis workflow automates social media post performance tracking for Instagram. It pulls recent posts via the Graph API, analyzes engagement and comment sentiment using OpenAI GPT-4o, identifies top or underperforming content, and sends alerts or summaries to Slack, Outlook, and Google Sheets.\n\nThe flow includes AI-driven sentiment classification, engagement scoring, and actionable recommendations \u2014 giving your marketing team a full engagement report each day automatically.\n\n### Setup steps\n1. Connect your **Facebook Graph API** to your Instagram Business account. \n2. Add **OpenAI** credentials and keep the model as `gpt-4o`. \n3. Connect your **Slack workspace**, **Outlook**, and **Google Sheets** accounts. \n4. Set the **Schedule Trigger** (e.g., daily at 10 AM). \n5. Adjust the **Switch node** conditions if you want custom sentiment labels. \n6. Run once manually to verify connections and data flow.\n"
},
"typeVersion": 1
},
{
"id": "0087156a-16e8-4dbe-8e05-c1805e7c9267",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-848,
-112
],
"parameters": {
"color": 2,
"width": 480,
"height": 640,
"content": "## \ud83e\udde0 AI Sentiment & Engagement Analysis \n\nAnalyzes likes, comments, and caption tone using GPT-4o. Generates structured JSON insights identifying performance patterns, sentiment scores, and improvement recommendations.\n"
},
"typeVersion": 1
},
{
"id": "eb57fa22-2964-489f-878d-3ad92a9b01f3",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
-400
],
"parameters": {
"color": 2,
"width": 256,
"height": 768,
"content": "## \ud83d\udcac Team Notifications \n\n\nSends automated performance updates and alerts via Slack and Outlook. Positive posts share insights; negative ones trigger a \u201cPerformance Alert\u201d to your team.\n"
},
"typeVersion": 1
},
{
"id": "090c96f3-03c1-4b97-9315-b6c07c8226c6",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-352,
-176
],
"parameters": {
"color": 2,
"width": 192,
"height": 640,
"content": "## \u2699\ufe0f Sentiment Decision Logic \n\n\nEvaluates AI output to decide next actions: positive results route to performance reporting, negative results trigger alerts to Slack and email.\n"
},
"typeVersion": 1
},
{
"id": "65e09666-1f38-4a07-a751-5acf04ba97db",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1520,
-32
],
"parameters": {
"color": 2,
"width": 640,
"height": 336,
"content": "## \u23f0 Data Fetch & Preparation \n\nThis section triggers the workflow on schedule, fetches Instagram posts using the Graph API, and formats them into clean, analyzable JSON data.\n"
},
"typeVersion": 1
},
{
"id": "63c36a24-19b2-4fb9-b287-f371e19ee11d",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-544,
352
],
"parameters": {
"jsonSchemaExample": "{\n \"summary\": {\n \"totalPostsAnalyzed\": 2,\n \"averageEngagement\": 9,\n \"topPerformingPostId\": \"18409530772188672\",\n \"topPerformanceReason\": \"High positive sentiment and better like-to-comment ratio.\"\n },\n \"posts\": [\n {\n \"post_id\": \"18409530772188672\",\n \"post_url\": \"https://www.instagram.com/p/DQwFngujZgI/\",\n \"caption\": \"King of the jungle vibes. Unleash your inner tiger...\",\n \"likes\": 3,\n \"comments_count\": 5,\n \"total_engagement\": 8,\n \"engagementScore\": 8.5,\n \"commentSentiment\": {\n \"averageScore\": 0.9,\n \"label\": \"Highly Positive\",\n \"positiveComments\": [\n \"Awsome tiger\",\n \"King of Jungle\",\n \"Nice posts aashu team\ud83d\ude4c\ud83d\ude4c\"\n ],\n \"negativeComments\": []\n },\n \"performanceLabel\": \"High Engagement\",\n \"insight\": \"Audience responded very positively to nature/wildlife content.\",\n \"recommendation\": \"Post more wildlife or 'motivational' themed content with emojis and short captions.\"\n },\n {\n \"post_id\": \"18056243003289432\",\n \"post_url\": \"https://www.instagram.com/p/DQvmp7lguoV/\",\n \"caption\": \"Living for the moments that take your breath away.\",\n \"likes\": 2,\n \"comments_count\": 8,\n \"total_engagement\": 10,\n \"engagementScore\": 6.8,\n \"commentSentiment\": {\n \"averageScore\": 0.4,\n \"label\": \"Mixed\",\n \"positiveComments\": [\n \"Amazing image \ud83c\udf89\",\n \"\u2764\ufe0f\u2764\ufe0f\"\n ],\n \"negativeComments\": [\n \"Bad posting \ud83d\ude4c\",\n \"Not good post\",\n \"looking like the blurry image.\"\n ]\n },\n \"performanceLabel\": \"Moderate\",\n \"insight\": \"Higher comment count but mixed audience sentiment reduced quality engagement.\",\n \"recommendation\": \"Improve image clarity; audience responds negatively to poor visuals.\"\n }\n ],\n \"overallInsights\": {\n \"contentPatterns\": [\n \"Posts with strong visual or emotional elements perform best.\"\n ],\n \"engagementInsights\": [\n \"Positive audience tone correlates with higher like-to-comment ratio.\"\n ],\n \"recommendations\": [\n \"Focus on wildlife or motivational imagery with clean composition.\",\n \"Avoid blurry visuals or unclear posts; they reduce engagement quality.\"\n ]\n }\n}\n"
},
"typeVersion": 1.3
},
{
"id": "a77f57fb-7f5c-4456-afc7-85a80d119ea0",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-800,
352
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "="
},
"options": {
"temperature": 0.4
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "75e5cae4-b4a4-49fe-867c-7e284bab7148",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-16
],
"parameters": {
"color": 2,
"width": 448,
"height": 416,
"content": "## \ud83d\udcca Log Analytics to Google Sheets \n\n\nFlattens and saves all engagement and sentiment metrics into Google Sheets for trend tracking and data-driven decisions.\n"
},
"typeVersion": 1
},
{
"id": "c344edb9-fc03-4c83-9911-60e56801798b",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
976,
192
],
"parameters": {
"color": 6,
"width": 336,
"height": 224,
"content": "## \ud83d\udd10 Credentials & Security \n\n\nUse OAuth2 for Slack, Google Sheets, and Outlook. \nAPI keys for OpenAI and Graph API only. \nAvoid storing personal or business emails in shared templates.\n"
},
"typeVersion": 1
},
{
"id": "f303ebd2-c5a8-4c1a-b29b-5588268a6911",
"name": "Format Instagram Data",
"type": "n8n-nodes-base.code",
"position": [
-1024,
128
],
"parameters": {
"jsCode": "// n8n Code Node - Instagram Data Formatter\n// Access input data\nconst inputData = $input.all();\n\n// Process and format the data\nconst formattedItems = [];\n\nfor (const item of inputData) {\n const rawData = item.json;\n \n // Check if data array exists\n if (rawData.data && Array.isArray(rawData.data)) {\n \n // Process each post\n for (const post of rawData.data) {\n const formattedPost = {\n // Post Basic Info\n post_id: post.id,\n post_url: post.permalink,\n timestamp: post.timestamp,\n posted_date: new Date(post.timestamp).toLocaleDateString(),\n posted_time: new Date(post.timestamp).toLocaleTimeString(),\n \n // Content Info\n caption: post.caption || '',\n media_type: post.media_type,\n media_url: post.media_url,\n \n // Engagement Metrics\n likes: post.like_count || 0,\n comments_count: post.comments_count || 0,\n total_engagement: (post.like_count || 0) + (post.comments_count || 0),\n \n // Comments Details\n comments: [],\n has_comments: post.comments && post.comments.data && post.comments.data.length > 0\n };\n \n // Process comments if they exist\n if (post.comments && post.comments.data && Array.isArray(post.comments.data)) {\n formattedPost.comments = post.comments.data.map(comment => ({\n comment_id: comment.id,\n username: comment.username,\n text: comment.text,\n timestamp: comment.timestamp,\n commented_date: new Date(comment.timestamp).toLocaleDateString(),\n commented_time: new Date(comment.timestamp).toLocaleTimeString(),\n likes: comment.like_count || 0\n }));\n }\n \n // Add the formatted post to results\n formattedItems.push({ json: formattedPost });\n }\n }\n}\n\n// Return formatted data\nreturn formattedItems;"
},
"typeVersion": 2
},
{
"id": "62d51c53-7426-421c-942b-dc863b6ca592",
"name": "Prepare Google Sheets Data",
"type": "n8n-nodes-base.code",
"position": [
464,
208
],
"parameters": {
"jsCode": "// n8n Code Node - Format Instagram Analytics for Google Sheets\n// This flattens the nested analytics data into sheet-friendly rows\n\nconst items = $input.all();\nconst sheetRows = [];\n\nfor (const item of items) {\n const data = item.json.output || item.json;\n \n // Process each post in the analytics\n if (data.posts && Array.isArray(data.posts)) {\n data.posts.forEach(post => {\n const postRow = {\n // Summary Information\n totalPostsAnalyzed: data.summary?.totalPostsAnalyzed || 0,\n averageEngagement: data.summary?.averageEngagement || 0,\n topPerformingPostId: data.summary?.topPerformingPostId || '',\n topPerformanceReason: data.summary?.topPerformanceReason || '',\n \n // Post Basic Information\n postId: post.post_id || '',\n postUrl: post.post_url || '',\n caption: post.caption || '',\n \n // Engagement Metrics\n likes: post.likes || 0,\n commentsCount: post.comments_count || 0,\n totalEngagement: post.total_engagement || 0,\n engagementScore: post.engagementScore || 0,\n \n // Performance Assessment\n performanceLabel: post.performanceLabel || '',\n insight: post.insight || '',\n recommendation: post.recommendation || '',\n \n // Comment Sentiment\n sentimentScore: post.commentSentiment?.averageScore || 0,\n sentimentLabel: post.commentSentiment?.label || '',\n positiveCommentsCount: post.commentSentiment?.positiveComments?.length || 0,\n negativeCommentsCount: post.commentSentiment?.negativeComments?.length || 0,\n \n // Positive Comments (comma-separated)\n positiveComments: post.commentSentiment?.positiveComments?.join(' | ') || '',\n \n // Negative Comments (comma-separated)\n negativeComments: post.commentSentiment?.negativeComments?.join(' | ') || '',\n \n // Alert Flags\n needsAttention: post.commentSentiment?.label === 'Negative' || \n post.performanceLabel === 'Poor',\n isTopPerformer: post.post_id === data.summary?.topPerformingPostId,\n \n // Overall Insights (from summary)\n contentPatterns: data.overallInsights?.contentPatterns?.join(' | ') || '',\n engagementInsights: data.overallInsights?.engagementInsights?.join(' | ') || '',\n recommendations: data.overallInsights?.recommendations?.join(' | ') || '',\n \n // Timestamp\n analyzedAt: new Date().toISOString(),\n analyzedDate: new Date().toLocaleDateString(),\n analyzedTime: new Date().toLocaleTimeString()\n };\n \n sheetRows.push(postRow);\n });\n }\n}\n\n// Return formatted data for Google Sheets\nreturn sheetRows.map(row => ({ json: row }));"
},
"typeVersion": 2
},
{
"id": "1aa67d90-3cf9-406a-9580-bf9db948da7c",
"name": "Slack: Post Positive Summary",
"type": "n8n-nodes-base.slack",
"position": [
80,
16
],
"parameters": {
"text": "=\ud83d\udea8 *Top Post Performance metrics*\n\n\ud83d\udcdd *Post Message:*\n{{ $json.output.posts[0].caption }}\n\n\ud83d\udd17 *Post ID:* `{{ $json.output.posts[0].post_id }}`\n\n\ud83d\ude0a *Post Sentiment:* _{{ $json.output.posts[0].commentSentiment.label }}\n\n\u26a0\ufe0f *Overall Post Sentiment:* {{ $json.output.posts[0].insight }}\n\n\ud83d\udcac *Comments ({{ $json.output.posts[0].commentSentiment.positiveComments }}):*\n\nRecommendation:-{{ $json.output.overallInsights.recommendations[0] }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "="
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "1184055b-8c18-4217-a35e-3f17a79de1c0",
"name": "Outlook: Email Report",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
64,
-160
],
"parameters": {
"subject": "=Top Post Perfomer ",
"bodyContent": "=Subject: Top Post Performer - Instagram Analytics Report\n\nHi Team,\n\nHere's your Instagram post performance summary:\n\n\ud83d\udcca POST PERFORMANCE OVERVIEW\nPost ID: {{ $json.output.posts[0].post_id }}\nPost URL: {{ $json.output.posts[0].post_url }}\n\n\ud83d\udcc8 ENGAGEMENT METRICS\n- Likes: {{ $json.output.posts[0].likes }}\n- Comments: {{ $json.output.posts[0].commentSentiment.averageScore }}\n- Total Engagement: {{ $json.output.posts[0].total_engagement }}\n- Engagement Score: {{ $json.output.posts[0].engagementScore }}\n- Performance Label: {{ $json.output.posts[0].commentSentiment.label }}\n\n\ud83d\udcdd CAPTION\n\"King of the jungle vibes. Unleash your inner tiger. Fearlessly embracing my stripes.\n#tigerwoods #nature_lovers #kingofkings #wildlifeofinstagram\"\n\n\ud83d\udcac COMMENT SENTIMENT ANALYSIS\n-{{ $json.output.posts[0].commentSentiment.positiveComments }}\n\n\u2728 KEY INSIGHTS\n{{ $json.output.posts[0].insight }}\n\n\ud83d\udca1 RECOMMENDATIONS\n{{ $json.output.overallInsights.recommendations }} \n\nBest regards,\nInstagram Analytics Team",
"additionalFields": {
"bodyContentType": "Text"
}
},
"credentials": {
"microsoftOutlookOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "9e1966bf-4cb1-4f75-95c0-e77167bad8c5",
"name": "Slack: Post Negative Alert",
"type": "n8n-nodes-base.slack",
"position": [
80,
176
],
"parameters": {
"text": "=\ud83d\udea8 *Negative Performance metrics Alert*\n\n\ud83d\udcdd *Post Message:*\n{{ $json.output.posts[0].caption }}\n\n\ud83d\udd17 *Post ID:* `{{ $json.output.posts[0].post_id }}`\n\n\ud83d\ude0a *Post Sentiment:* _{{ $json.output.posts[0].commentSentiment.label }}\n\n\u26a0\ufe0f *Overall Post Sentiment:* {{ $json.output.posts[0].insight }}\n\n\ud83d\udcac *Comments ({{ $json.output.posts[0].commentSentiment.positiveComments }}):*\n\nRecommendation:-{{ $json.output.overallInsights.recommendations[0] }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "="
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "9a7265bf-8b87-4e9c-a08a-c6b8ab5bf191",
"name": "Sentiment Decision Router",
"type": "n8n-nodes-base.switch",
"position": [
-304,
128
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7ee8a25a-3c77-4674-8fc3-bb2ceb798661",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.posts[0].commentSentiment.label }}",
"rightValue": "Positive"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b074dc01-a4d5-40ea-9599-4376ed0e47b4",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.posts[0].commentSentiment.label }}",
"rightValue": "Negative"
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.3
},
{
"id": "a73e3520-0715-4ae7-ab93-07f631b115e4",
"name": "Log Analytics to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
656,
208
],
"parameters": {
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultUrl": "",
"cachedResultName": ""
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "="
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "7eeeef48-74fa-4df4-9173-8e4fc9f3223a",
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "Fetch Recent Instagram Posts",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent - Sentiment Analyzer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Window Buffer Memory": {
"ai_memory": [
[
{
"node": "AI Agent - Sentiment Analyzer",
"type": "ai_memory",
"index": 0
}
]
]
},
"Format Instagram Data": {
"main": [
[
{
"node": "AI Agent - Sentiment Analyzer",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Agent - Sentiment Analyzer",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Sentiment Decision Router": {
"main": [
[
{
"node": "Outlook: Email Report",
"type": "main",
"index": 0
},
{
"node": "Prepare Google Sheets Data",
"type": "main",
"index": 0
},
{
"node": "Slack: Post Positive Summary",
"type": "main",
"index": 0
}
],
[
{
"node": "Slack: Post Negative Alert",
"type": "main",
"index": 0
}
]
]
},
"Prepare Google Sheets Data": {
"main": [
[
{
"node": "Log Analytics to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Fetch Recent Instagram Posts": {
"main": [
[
{
"node": "Format Instagram Data",
"type": "main",
"index": 0
}
]
]
},
"AI Agent - Sentiment Analyzer": {
"main": [
[
{
"node": "Sentiment Decision Router",
"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.
facebookGraphApigoogleSheetsOAuth2ApimicrosoftOutlookOAuth2ApiopenAiApislackApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automatically analyze your Instagram posts’ engagement and audience sentiment using GPT-4 to uncover top-performing content and improvement opportunities. 💬📈 This workflow fetches your latest Instagram posts using the Facebook Graph API, evaluates likes, comments, and tone, then…
Source: https://n8n.io/workflows/10824/ — 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.
Automate your cross-platform publishing workflow by automatically uploading Instagram videos to YouTube with AI-optimized titles and tags. 🚀🎬 This workflow runs every six hours, fetches newly posted I
This workflow is ideal for individuals, marketers, agencies, and brands who want to effortlessly automate the entire blogging and social media process—from idea generation to promotion. Its primary go
This workflow is built for creators, solopreneurs, SaaS founders, and agencies looking to automate their social media content process from idea to publication. It combines the power of OpenAI, Google
Nova AI Content Marketing Agent - LinkedIn & Facebook Automation This n8n template demonstrates how to create a complete AI-powered social media content creation and scheduling system that generates p
Content creators, social media managers, and solopreneurs who want to automate carousel post creation and multi-platform publishing from a single Telegram message.