{
  "workflow": {
    "id": 10824,
    "name": "Automate Instagram engagement & sentiment analysis with GPT-4 and Slack reports",
    "views": 170,
    "recentViews": 1,
    "totalViews": 170,
    "createdAt": "2025-11-14T12:13:30.479Z",
    "description": "## 📊 Description\nAutomatically analyze your Instagram posts’ engagement and audience sentiment using GPT-4 to uncover top-performing content and improvement opportunities. 💬📈\n This workflow fetches your latest Instagram posts using the Facebook Graph API, evaluates likes, comments, and tone, then generates structured performance insights. The results are logged into Google Sheets, shared via Slack alerts, and emailed through Outlook — empowering your social media team with daily, AI-powered engagement intelligence. 🚀\n\n## What This Template Does\n1️⃣ Trigger – Runs daily at 10 AM to fetch the latest Instagram posts. ⏰\n 2️⃣ Data Fetching – Uses the Facebook Graph API to extract post data, captions, likes, and comments. 📲\n 3️⃣ Formatting – Cleans and structures post and comment data for analysis. 🧩\n 4️⃣ AI Evaluation – GPT-4 analyzes engagement metrics and comment sentiment to score post performance. 🤖\n 5️⃣ Decision Routing – Flags high- and low-performing posts for separate processing. ⚙️\n 6️⃣ Notifications – Sends positive performance summaries or negative alerts to Slack. 💬\n 7️⃣ Logging – Records engagement metrics, sentiment labels, and AI recommendations in Google Sheets. 📊\n 8️⃣ Reporting – Emails detailed performance summaries to the marketing team via Outlook. 💌\n\n## Key Benefits\n✅ Automates social performance tracking across Instagram posts\n ✅ Provides AI-driven sentiment and engagement insights\n ✅ Flags top or underperforming content for immediate action\n ✅ Delivers Slack and email reports for team visibility\n ✅ Centralizes analytics in Google Sheets for trend tracking\n\n## Features\n- Facebook Graph API integration for Instagram post and comment retrieval\n- GPT-4 sentiment and engagement evaluation\n- Structured JSON insights and recommendations\n- Slack alerts for both positive and negative performance\n- Google Sheets data logging with trend metrics\n- Outlook email reporting for management visibility\n- Customizable scheduling and thresholds\n\n## Requirements\n- Facebook Graph API credentials connected to your Instagram Business account\n- OpenAI API key for GPT-4 or GPT-4o-mini\n- Slack Bot token with chat:write permissions\n- Google Sheets OAuth2 credentials with edit rights\n- Microsoft Outlook OAuth2 credentials for email delivery\n- Optional environment variables for IDs:\n- SHEET_ID, SLACK_CHANNEL_ID, OUTLOOK_EMAIL\n\n## Target Audience\n1. Marketing and social media teams optimizing engagement 📣\n2. Agencies managing multiple Instagram accounts 🧑‍💼\n3. Analysts tracking performance metrics and audience tone 📊\n4. Brands automating daily performance reports 📅\n\n## Step-by-Step Setup Instructions\n1️⃣ Connect your Facebook Graph API to your Instagram Business Account.\n 2️⃣ Add OpenAI API credentials (use GPT-4 model for best results).\n 3️⃣ Configure Slack for team notifications and specify the channel ID.\n 4️⃣ Link Google Sheets and set your sheet ID for data logging.\n 5️⃣ Connect Microsoft Outlook for daily performance email reports.\n 6️⃣ Adjust the schedule (default: 10 AM daily) to suit your workflow.\n 7️⃣ Run a test once, verify data mapping, and enable automation. ✅\n",
    "workflow": {
      "id": "iWTbaNAM3oNJnYj4",
      "meta": {
        "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
        "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": {
              "id": "credential-id",
              "name": "facebookGraphApi 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 — 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": "## 🧩 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 — 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": "## 🧠 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": "## 💬 Team Notifications  \n\n\nSends automated performance updates and alerts via Slack and Outlook. Positive posts share insights; negative ones trigger a “Performance Alert” 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": "## ⚙️ 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": "## ⏰ 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🙌🙌\"\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 🎉\",\n          \"❤️❤️\"\n        ],\n        \"negativeComments\": [\n          \"Bad posting 🙌\",\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": {
              "id": "credential-id",
              "name": "openAiApi 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": "## 📊 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": "## 🔐 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
          ],
          "webhookId": "819acfce-80d8-4026-a65e-335ffdbbcc5e",
          "parameters": {
            "text": "=🚨 *Top Post Performance metrics*\n\n📝 *Post Message:*\n{{ $json.output.posts[0].caption }}\n\n🔗 *Post ID:* `{{ $json.output.posts[0].post_id }}`\n\n😊 *Post Sentiment:* _{{ $json.output.posts[0].commentSentiment.label }}\n\n⚠️ *Overall Post Sentiment:* {{ $json.output.posts[0].insight }}\n\n💬 *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": {
              "id": "credential-id",
              "name": "slackApi Credential"
            }
          },
          "typeVersion": 2.3
        },
        {
          "id": "1184055b-8c18-4217-a35e-3f17a79de1c0",
          "name": "Outlook: Email Report",
          "type": "n8n-nodes-base.microsoftOutlook",
          "position": [
            64,
            -160
          ],
          "webhookId": "ab5ae3e5-02fc-443c-bf4d-50ab36a96be9",
          "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📊 POST PERFORMANCE OVERVIEW\nPost ID: {{ $json.output.posts[0].post_id }}\nPost URL: {{ $json.output.posts[0].post_url }}\n\n📈 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📝 CAPTION\n\"King of the jungle vibes. Unleash your inner tiger. Fearlessly embracing my stripes.\n#tigerwoods #nature_lovers #kingofkings #wildlifeofinstagram\"\n\n💬 COMMENT SENTIMENT ANALYSIS\n-{{ $json.output.posts[0].commentSentiment.positiveComments }}\n\n✨ KEY INSIGHTS\n{{ $json.output.posts[0].insight }}\n\n💡 RECOMMENDATIONS\n{{ $json.output.overallInsights.recommendations }} \n\nBest regards,\nInstagram Analytics Team",
            "additionalFields": {
              "bodyContentType": "Text"
            }
          },
          "credentials": {
            "microsoftOutlookOAuth2Api": {
              "id": "credential-id",
              "name": "microsoftOutlookOAuth2Api Credential"
            }
          },
          "typeVersion": 2
        },
        {
          "id": "9e1966bf-4cb1-4f75-95c0-e77167bad8c5",
          "name": "Slack: Post Negative Alert",
          "type": "n8n-nodes-base.slack",
          "position": [
            80,
            176
          ],
          "webhookId": "819acfce-80d8-4026-a65e-335ffdbbcc5e",
          "parameters": {
            "text": "=🚨 *Negative Performance metrics Alert*\n\n📝 *Post Message:*\n{{ $json.output.posts[0].caption }}\n\n🔗 *Post ID:* `{{ $json.output.posts[0].post_id }}`\n\n😊 *Post Sentiment:* _{{ $json.output.posts[0].commentSentiment.label }}\n\n⚠️ *Overall Post Sentiment:* {{ $json.output.posts[0].insight }}\n\n💬 *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": {
              "id": "credential-id",
              "name": "slackApi 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": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        }
      ],
      "active": false,
      "pinData": {},
      "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
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 20,
      "nodeTypes": {
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.slack": {
          "count": 2
        },
        "n8n-nodes-base.switch": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 7
        },
        "n8n-nodes-base.googleSheets": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        },
        "n8n-nodes-base.facebookGraphApi": {
          "count": 1
        },
        "n8n-nodes-base.microsoftOutlook": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatOpenAi": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.memoryBufferWindow": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.outputParserStructured": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Rahul Joshi",
      "username": "rahul08",
      "bio": "Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.\n\n",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/callrahul/"
      ],
      "avatar": "https://gravatar.com/avatar/b6cf57822463143589b36ada06fbf6cb1509223a740fae3160b28f1ce41ccc12?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 112,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.switch",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "If",
              "Path",
              "Filter",
              "Condition",
              "Logic",
              "Branch",
              "Case"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Switch",
          "color": "#506000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "Switch",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 314,
        "icon": "file:facebook.svg",
        "name": "n8n-nodes-base.facebookGraphApi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.facebookgraphapi/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/facebookgraph/"
                }
              ]
            },
            "categories": [
              "Development"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Facebook Graph API"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MCA2MCI+PHBhdGggZmlsbD0iIzE4NzdmMiIgZD0iTTU5LjUgMzBDNTkuNSAxMy43MSA0Ni4yOS41IDMwIC41Uy41IDEzLjcxLjUgMzBjMCAxNC43MiAxMC43OSAyNi45MyAyNC44OSAyOS4xNFYzOC41M0gxNy45VjMwaDcuNDl2LTYuNWMwLTcuMzkgNC40LTExLjQ4IDExLjE0LTExLjQ4IDMuMjMgMCA2LjYuNTggNi42LjU4djcuMjZoLTMuNzJjLTMuNjYgMC00LjgxIDIuMjctNC44MSA0LjYxVjMwaDguMThsLTEuMzEgOC41M0gzNC42djIwLjYxQzQ4LjcxIDU2LjkzIDU5LjUgNDQuNzIgNTkuNSAzMCIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik00MS40OCAzOC41MyA0Mi43OSAzMGgtOC4xOHYtNS41M2MwLTIuMzMgMS4xNC00LjYxIDQuODEtNC42MWgzLjcyVjEyLjZzLTMuMzgtLjU4LTYuNi0uNThjLTYuNzQgMC0xMS4xNCA0LjA4LTExLjE0IDExLjQ4VjMwaC03LjV2OC41M2g3LjQ5djIwLjYxYzEuNS4yNCAzLjA0LjM2IDQuNjEuMzZzMy4xMS0uMTIgNC42MS0uMzZWMzguNTN6Ii8+PC9zdmc+"
        },
        "displayName": "Facebook Graph API",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          }
        ]
      },
      {
        "id": 433,
        "icon": "file:outlook.svg",
        "name": "n8n-nodes-base.microsoftOutlook",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.microsoftoutlook/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/microsoft/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Microsoft Outlook"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgODEgODEiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48cGF0aCBmaWxsPSIjMjM3MmJhIiBzdHJva2U9Im5vbmUiIGQ9Ik03Ny45IDE5LjJINDYuODZWMEwwIDguMjMyVjcxLjk4TDQ2Ljg2IDgwVjYxLjg0N0g3Ny45YzEuMjY2IDAgMi4xLTEuMDU1IDIuMS0yLjFWMjEuMzJjMC0xLjI2Ni0uODQ0LTIuMS0yLjEtMi4xek0yMS45NTIgNTQuNDZjLTE1LjQtMS4wNTUtMTQuNzc2LTI5LjEzLjQyMi0yOS45NzQgMTYuNjc1LS44NDQgMTYuMjUzIDMxLjAzLS40MjIgMjkuOTc0bTU1LjUxNSA0LjY0NEg0Ni44NlYzNS4wNGw5LjUgOS4wNzdjLjQyMi40MjIuODQ0LjYzMyAxLjQ3Ny42MzNzMS4wNTUtLjIgMS40NzgtLjYzM0w3Ny40NjcgMjcuMjN6bTAtMzUuNDYyLTE5LjYzIDE4LjE1M0w0Ni44NiAzMS40NXYtOS43aDMwLjM5NnYxLjloLjJ6bS01NS4wOTIgNi41NDNjLTguMjMyLjQyMi04LjQ0MyAxOC4zNjQtLjIgMTguNTc1IDguNjU0LjQyMiA4LjY1NC0xOC45OTcuMi0xOC41NzUiLz48L3N5bWJvbD48L3N2Zz4="
        },
        "displayName": "Microsoft Outlook",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 839,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.scheduleTrigger",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Schedule Trigger",
          "color": "#31C49F"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Schedule Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1153,
        "icon": "file:openAiLight.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "OpenAI Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "OpenAI Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1163,
        "icon": "fa:database",
        "name": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Memory"
              ],
              "Memory": [
                "For beginners"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Simple Memory"
        },
        "iconData": {
          "icon": "database",
          "type": "icon"
        },
        "displayName": "Simple Memory",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1179,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.outputParserStructured",
        "codex": {
          "data": {
            "alias": [
              "json",
              "zod"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Output Parsers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Structured Output Parser"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Structured Output Parser",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 32,
        "name": "Market Research"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}