{"workflow":{"id":12847,"name":"Repurpose LinkedIn posts into X tweets with Apify, Claude AI and Airtable","views":42,"recentViews":0,"totalViews":42,"createdAt":"2026-01-20T13:29:59.106Z","description":"Automatically scrape LinkedIn posts with Apify, transform them into optimized tweets and threads using Claude AI, store them in Airtable for approval, and publish to X on a daily schedule.\n\n## Who is this for\n\nThis workflow is designed for content creators, social media managers, and personal brand builders who want to maximize their content reach by repurposing LinkedIn posts for X (Twitter) without manual rewriting.\n\n## What it does\n\nThis workflow automates the entire LinkedIn-to-X content repurposing pipeline:\n\n1.  **Weekly scraping**: Uses Apify to scrape your recent LinkedIn posts based on configurable parameters stored in Airtable\n2.  **Carousel extraction**: If a post contains a carousel/PDF, OpenAI extracts the slide content via OCR\n3.  **AI transformation**: Claude (via OpenRouter) converts each LinkedIn post into two X-optimized variations: a standalone tweet and a thread (3-7 tweets)\n4.  **Content storage**: Saves both the original posts and generated tweets to Airtable with a \"Pending\" status for review\n5.  **Scheduled publishing**: Daily at 12:30, searches for ‘Approved’ tweets whose publication date has passed and posts them to X\n6.  **Thread handling**: Properly chains thread tweets as replies to maintain the conversation structure\n\n## Requirements\n\n-   Apify account (LinkedIn Profile Posts Scraper actor)\n-   Airtable account with configured base\n-   OpenAI API access (for carousel OCR)\n-   OpenRouter API access (for Claude)\n-   X/Twitter API access\n\n## How to set up\n\n1.  Create an Airtable base with three tables: `Config`, `LK Posts`, and `X Tweets` (see table configurations below)\n2.  Configure the `Config` table with your LinkedIn profile URL, scraping limits, and tweet scheduling delay\n3. Configure the ‘TWEET NOW’ button in Airtable with the following URL formula: ```\"https://your-n8-server-url/webhook/post-tweet?id=\"&RECORD_ID()```\n4.  Connect your credentials: Apify, Airtable, OpenAI, OpenRouter, and X/Twitter\n5.  Set the weekly and daily schedule triggers according to your timezone\n6.  Activate the workflow\n\n### Config Table\n\n| Field Name | Type | Description |\n|------------|------|-------------|\n| Name | String | Configuration parameter name |\n| Type | Single Select | Data type indicator: `String`, `Integer` |\n| String Value | String | Value when Type is \"String\" |\n| Integer Value | Number | Value when Type is \"Integer\" |\n\n\n**Configuration parameters to create:**\n- `profile_url` — LinkedIn profile URL to scrape\n- `posted_limit` — Time range for scraping (possible values: \"any\", \"1h\", \"24h\", \"week\", \"3months\", \"6months\", \"year\")\n- `max_posts` — Maximum number of posts to scrape\n- `schedule_tweets_days_after_lk` — Number of days after LinkedIn post date to schedule the tweet\n\n\n\n### LK Posts Table\n\n| Field Name | Type | Description |\n|------------|------|-------------|\n| LK Post ID | String | LinkedIn post unique identifier |\n| Status | Single Select | Post processing status: `Scrapped`, `Converted`, `Tweeted` |\n| Date | DateTime | Original LinkedIn post publication date |\n| Content | Long Text | LinkedIn post text content |\n| Post URL | URL | Link to the original LinkedIn post |\n| Post Img URL | URL | URL of post image (if any) |\n| Post Doc URL | URL | URL of carousel/PDF document (if any) |\n| Carousel Content | Long Text | Extracted text content from carousel slides |\n\n\n\n### X Tweets Table\n\n| Field Name | Type | Description |\n|------------|------|-------------|\n| Unique ID | Formula | Auto-generated unique identifier |\n| LK Post ID | String | Reference to the source LinkedIn post |\n| Status | Single Select | Tweet status: `Pending`, `Approved`, `Rejected`, `Tweeted` |\n| Variation | Single Select | Tweet format: `Standalone`, `Thread` |\n| Tweet Nb | Number | Tweet position in thread (0 for standalone, 1-7 for thread tweets) |\n| Content | Long Text | The tweet text content |\n| Publication Date | DateTime | Scheduled date/time to publish the tweet |\n| Post Now | Button | Triggers webhook to post immediately |\n\n\n## How to customize\n\n- AI prompt: Edit the \"ConvertPostIntoTweets\" node to adjust tone and style\n- LLM model: Replace the OpenRouter node with OpenAI or any other LLM node in \"ConvertPostIntoTweets\" if you prefer a different model\n- Posting delay: Change schedule_tweets_days_after_lk in the Config table\n- Schedule: Modify \"Weekly_OnSunday\" and \"Daily_AtNoon\" triggers\n- Scraping: Adjust max_posts and posted_limit in Config table","workflow":{"id":"877ioymbRzPHfCJehk_eQ","meta":{"instanceId":"313b93d489cbc0ae87ad93f25c395bbdc59c46c632d00f395c3586a8fbbb7a34"},"name":"TEMPL - Repurpose LK posts to X","tags":[{"id":"YidW5yq6nFH1kWx6","name":"Twitter","createdAt":"2026-01-18T10:55:00.843Z","updatedAt":"2026-01-18T10:55:00.843Z"},{"id":"g3ZPlgdz6fhFzBWM","name":"LinkedIn","createdAt":"2025-08-07T16:29:08.849Z","updatedAt":"2025-08-07T16:29:08.849Z"},{"id":"gEcmTxdEuNwBQ6jK","name":"Airtable","createdAt":"2025-09-06T18:57:59.051Z","updatedAt":"2025-09-06T18:57:59.051Z"},{"id":"oAJYcGVigztuUBgh","name":"Apify","createdAt":"2025-09-28T15:56:08.736Z","updatedAt":"2025-09-28T15:56:08.736Z"},{"id":"qNP3W9JI3jWy9tgy","name":"Templates","createdAt":"2025-09-22T19:45:32.302Z","updatedAt":"2025-09-22T19:45:32.302Z"}],"nodes":[{"id":"0af109fe-a87a-4f3d-bfc7-ec7affd9105c","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[224,1120],"parameters":{"width":688,"height":1248,"content":"# Repurpose LinkedIn posts to X (Twitter)\n\n## How it works\n\n### Weekly (Sunday)\n- Fetches your recent LinkedIn posts via Apify scraper\n- Extracts carousel/PDF content using OpenAI vision (if applicable)\n- Transforms each post into 2 variations using Claude AI: a standalone tweet + a thread (3-7 tweets)\n- Saves everything to Airtable with \"Pending\" status\n\n### Daily (12:30)\n- Searches for approved tweets with publication date in the past\n- Posts standalone tweets or full threads to X\n- Updates status to \"Tweeted\"\n\n### Manual trigger (button clicked)\n- Use the \"TWEET NOW\" button in Airtable to publish a specific tweet immediately.\n\n\n## Setup\n\n- [ ] Create an Airtable base with 3 tables: 'Config', 'LK Posts', and 'X Tweets' - or duplicate it from this link: https://airtable.com/appiS2JpMdnxAS5o4/shrXh9iXTnL9fX63L/tbl7B3JblukFTGrAo/viwgajzRGnydUDjnw\n- [ ] Update the Config table with your LinkedIn profile URL\n- [ ] Configure the ‘TWEET NOW’ button in Airtable with the following URL formula:\n```\"https://your-n8n-server-url/webhook/post-tweet?id=\"&RECORD_ID()```\n- [ ] Connect your API credentials: Apify, OpenAI, OpenRouter, X/Twitter\n- [ ] Adjust the schedule triggers to your timezone\n- [ ] Activate the workflow\n\n\n## Customization\n\n- AI prompt: Edit the \"ConvertPostIntoTweets\" node to adjust tone and style.\n- LLM model: Replace the OpenRouter node with OpenAI or any other LLM node in \"ConvertPostIntoTweets\" if you prefer a different model.\n- Posting delay: Change schedule_tweets_days_after_lk in the Config table.\n- Schedule: Modify \"Weekly_OnSunday\" and \"Daily_AtNoon\" triggers.\n- Scraping: Adjust max_posts and posted_limit in Config table."},"typeVersion":1},{"id":"b3d48bbe-3c65-48a2-8aa3-50c92760cfa5","name":"ScrapeLastPosts","type":"@apify/n8n-nodes-apify.apify","position":[1872,1424],"parameters":{"actorId":{"__rl":true,"mode":"url","value":"https://console.apify.com/actors/A3cAPGpwBEG8RJwse"},"timeout":{},"operation":"Run actor and get dataset","customBody":"={\n    \"includeQuotePosts\": false,\n    \"includeReposts\": false,\n    \"maxComments\": 0,\n    \"maxPosts\": {{ $('FormatConfig').item.json.max_posts }},\n    \"maxReactions\": 0,\n    \"postedLimit\": \"{{ $('FormatConfig').item.json.posted_limit }}\",\n    \"scrapeComments\": false,\n    \"scrapeReactions\": false,\n    \"targetUrls\": [\n       \"{{ $('FormatConfig').item.json.profile_url }}\"\n    ]\n}"},"credentials":{"apifyApi":{"id":"0pRh3BTbu4hnA6Fi","name":"Apify account"}},"executeOnce":true,"retryOnFail":false,"typeVersion":1,"alwaysOutputData":true},{"id":"d60c9a11-7ad8-4416-91f8-12710aa0f1b3","name":"LoopOverPosts","type":"n8n-nodes-base.splitInBatches","position":[2272,1424],"parameters":{"options":{}},"typeVersion":3},{"id":"bbf2b91f-b09c-4668-9e7c-c943ebcc6887","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[4336,1120],"parameters":{"color":7,"width":528,"height":672,"content":"## 4. Save LK posts in Airtable"},"typeVersion":1},{"id":"8b264b15-8292-44d9-8751-2d465b1a8d88","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[5488,1632],"parameters":{"jsonSchemaExample":"{\n  \"thread_variation\": {\n    \"tweets\": [\n      {\n        \"tweet_number\": 1,\n        \"content\": \"Tweet text here\",\n        \"character_count\": 245\n      },\n      {\n        \"tweet_number\": 2,\n        \"content\": \"Tweet text here\",\n        \"character_count\": 198\n      }\n    ],\n    \"total_tweets\": 5,\n    \"thread_summary\": \"Brief description of the thread's narrative arc\",\n    \"hook_type\": \"bold_claim|numbers|question|contrast|pattern_interrupt\"\n  },\n  \"standalone_variation\": {\n    \"content\": \"Complete standalone tweet text\",\n    \"character_count\": 234,\n    \"format_used\": \"stat_insight|before_after|lesson|contrarian\"\n  },\n  \"original_post_summary\": \"One-sentence summary of the LinkedIn post\",\n  \"recommended_format\": \"thread|standalone\"\n}"},"typeVersion":1.3},{"id":"f2db4dd1-c36c-4898-a39b-4e703bb287c4","name":"Switch","type":"n8n-nodes-base.switch","position":[2752,1424],"parameters":{"rules":{"values":[{"outputKey":"no_post_found","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"1c7de4b8-3885-4bcb-9326-d0a7af6da5a0","operator":{"type":"string","operation":"empty","singleValue":true},"leftValue":"={{ $('SearchExistingPost').item?.json?.id ?? null }}","rightValue":""}]},"renameOutput":true},{"outputKey":"not_converted_yet","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"de5953db-21f6-4026-9169-7f8637ae4944","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $('SearchExistingPost')?.item?.json?.Status ?? null }}","rightValue":"Scrapped"}]},"renameOutput":true},{"outputKey":"already_converted_or_posted","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"ea1fa20e-182e-404f-94f5-710bc24c494f","operator":{"type":"string","operation":"notEquals"},"leftValue":"={{ $('SearchExistingPost')?.item?.json?.Status ?? null }}","rightValue":"Scrapped"}]},"renameOutput":true}]},"options":{},"looseTypeValidation":true},"typeVersion":3.4},{"id":"80897200-fb92-448c-8a25-bcc8fdd33fc5","name":"ConvertPostIntoTweets","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[5344,1424],"parameters":{"text":"=# Role\n\nYou are an AI Content Repurposing Specialist focused on transforming LinkedIn posts into engaging X (Twitter) content. Your expertise lies in condensing long-form professional content into punchy, hook-driven tweets while preserving the core message and maximizing engagement potential. You understand platform-specific best practices, audience behavior differences, and copywriting techniques that drive interaction on X.\n\n# Constraints\n\n-   Generate exactly 2 variations: one thread format (3-7 tweets) and one standalone tweet\n-   Keep each tweet under 280 characters; aim for 150-250 characters for standalone tweets\n-   Preserve the core message and key insights from the original LinkedIn post\n-   Transform professional LinkedIn tone into conversational, punchy X style\n-   Use maximum 2 hashtags per tweet\n-   Start threads with a strong hook that works independently\n-   Write each thread tweet to stand alone while contributing to the narrative\n-   Use clear language with active voice and strong verbs\n-   Write for X's broader, more casual audience\n-   Base all content on information present in the original post\n-   Use standard punctuation (dots and commas instead of em dashes)\n\n# Inputs\n\n- **LinkedIn post content** (mandatory):\n```\n{{ $('MergePost').item.json?.Content || $('MergePost').item.json?.fields?.Content }}\n```\n- **LinkedIn carousel content** (facultative):\n```\n{{ $('MergePost').item?.json['Carousel Content'] || $('MergePost').item.json?.fields['Carousel Content'] }}\n```\n\n# Instructions\n\n## Content Analysis Workflow\n\n1.  **Read and understand the LinkedIn post:**\n    -   Identify the main message or core insight\n    -   Extract key statistics, data points, or concrete examples\n    -   Determine the narrative structure (story, lesson, tips, opinion, etc.)\n    -   Note any emotional elements or personal experiences\n    -   Identify the target audience and their pain points\n2.  **Assess repurposing potential:**\n    -   Determine if content works better as a thread (multiple points, story arc) or standalone (single insight)\n    -   Identify the strongest hook or attention-grabbing element\n    -   List 3-5 key points that must be preserved\n    -   Note any time-sensitive or trending elements\n\n## Thread Format Creation (Variation 1)\n\n**Structure Requirements:**\n\n-   **Tweet 1 (Hook):** Must grab attention and work as standalone\n    -   Use one of these hook formulas:\n        -   Bold claim: \"Most people get X wrong. Here's why:\"\n        -   Numbers: \"5 lessons from [experience]:\"\n        -   Question: \"Want to [outcome]? Here's how:\"\n        -   Contrast: \"Everyone says X. The truth is Y:\"\n        -   Pattern interrupt: \"Unpopular opinion:\"\n    -   End with thread indicator: 🧵 or \"Here's what happened:\" or similar\n-   **Tweets 2-6 (Body):** One clear point per tweet\n    -   Each tweet = one idea, stat, or step\n    -   Use line breaks for readability (1-2 sentences per line)\n    -   Keep concrete examples and data\n    -   Build narrative momentum\n - **Final Tweet (Conclusion):**\n    -   Summarize the key lesson or takeaway\n    -   Include a call-to-action (question, request for engagement, link)\n    -   Optional: Add relevant link or credit\n\n**Transformation Rules:**\n-   Convert long paragraphs into single-sentence tweets\n-   Replace \"I learned that...\" with direct statements\n-   Remove hedging language (\"maybe\", \"I think\", \"perhaps\")\n-   Use \"you\" instead of \"one\" or passive voice\n-   Add emphasis through line breaks, not length\n-   Keep the strongest 1-2 examples, cut the rest\n\n## Standalone Tweet Creation (Variation 2)\n\n**Extract the Core Insight:**\n\n1.  Identify the single most valuable takeaway from the LinkedIn post\n2.  Condense it into 150-250 characters\n3.  Make it punchy and immediately valuable\n\n**Standalone Tweet Requirements:**\n\n-   Must work completely independently (no context needed)\n-   Should be the \"headline\" version of the LinkedIn post\n-   Include the key stat or insight if present\n-   End with engagement driver (question, bold statement, or call-to-action)\n-   Can reference full story with \"Full story: [link]\" if URL provided\n\n**Standalone Tweet Formulas:**\n\n-   Stat + Insight: \"[Surprising stat]. Here's why it matters: [insight]\"\n-   Before/After: \"We went from X to Y by doing Z.\"\n-   Lesson format: \"Biggest lesson from [experience]: [insight]\"\n-   Contrarian: \"Hot take: [controversial statement]. Here's why: [brief reason]\"\n\n## Character Count Management\n\n1.  **For each tweet, verify:**\n    -   Character count ≤ 280 (use exact counting, including spaces and emoji)\n    -   If over limit: remove filler words, use contractions, simplify phrasing\n    -   Aim for 250-270 characters max to leave room for platform variations\n2.  **Optimization techniques:**\n    -   Replace \"and\" with \"&\" when appropriate\n    -   Use \"→\" instead of \"leads to\" or \"results in\"\n    -   Replace \"because\" with \"bc\" sparingly (only if desperate for characters)\n    -   Remove unnecessary adjectives and adverbs\n    -   Use numerals (5) instead of words (five)\n\n\n## Tone Transformation\n\nTransform from LinkedIn professional to X conversational:\n\n**LinkedIn → X Conversions:**\n\n-   \"I'm excited to share\" → [Cut completely, start with insight]\n-   \"In my experience\" → [Direct statement]\n-   \"This is particularly important\" → \"This matters:\"\n-   \"I would recommend\" → \"Do this:\"\n-   \"It's worth noting that\" → [Cut]\n-   Multi-clause sentences → Short, punchy sentences\n\n## Quality Assurance Checklist\n\nBefore finalizing, verify each variation:\n-   Thread: 3-7 tweets, each ≤280 characters\n-   Standalone: 150-250 characters\n-   First tweet (thread) works independently\n-   Core message preserved from original post\n-   Tone is conversational, not corporate\n-   Includes engagement hook (question/CTA)\n-   No more than 2 hashtags total\n-   Active voice used throughout\n-   No fabricated information\n-   Character counts are accurate\n\n## Response Formatting\n\nStructure your response as a JSON object:\n{\n  \"thread_variation\": {\n    \"tweets\": [\n      {\n        \"tweet_number\": 1,\n        \"content\": \"Tweet text here\",\n        \"character_count\": 245\n      },\n      {\n        \"tweet_number\": 2,\n        \"content\": \"Tweet text here\",\n        \"character_count\": 198\n      }\n    ],\n    \"total_tweets\": 5,\n    \"thread_summary\": \"Brief description of the thread's narrative arc\",\n    \"hook_type\": \"bold_claim|numbers|question|contrast|pattern_interrupt\"\n  },\n  \"standalone_variation\": {\n    \"content\": \"Complete standalone tweet text\",\n    \"character_count\": 234,\n    \"format_used\": \"stat_insight|before_after|lesson|contrarian\"\n  },\n  \"original_post_summary\": \"One-sentence summary of the LinkedIn post\",\n  \"recommended_format\": \"thread|standalone\"\n}\n\n# Conclusions (Expected Outputs)\n\n-   JSON-structured response containing two complete variations of the LinkedIn post\n-   Thread variation with 3-7 interconnected tweets, each under 280 characters\n-   Standalone variation with single punchy tweet between 150-250 characters\n-   All content transformed from professional to conversational tone\n-   Core message and key insights preserved from original post\n-   Each tweet optimized for X engagement with proper hooks and CTAs\n-   Character counts validated for all tweets\n-   Recommendation on which format likely performs better\n-   Clear documentation of transformation decisions and insights preserved\n\n# Solutions (Error Handling)\n\n-   **If post_content is missing or empty**: Return error: \"No LinkedIn post content provided. Please include post_content in the linkedin_post object.\"\n-   **If post_content is too short (<50 characters)**: Return error: \"LinkedIn post content too brief. Minimum 50 characters required for meaningful repurposing.\"\n-   **If post_content is extremely long (>5000 characters)**: Focus on first 2-3 main points and note in response: \"Original post was very long. Thread focuses on primary insights. Consider splitting into multiple pieces.\"\n-   **If no clear hook or insight can be extracted**: Use the most interesting stat or claim as the hook and note: \"Post lacks strong hook. Used most compelling element available.\"\n-   **If content is too technical or niche**: Simplify language while preserving accuracy and note in response: \"Simplified technical language for broader X audience.\"\n-   **If individual tweet exceeds 280 characters after optimization**: Aggressively cut filler words, use abbreviations, or split into two tweets. Flag in response if meaning might be compromised.\n-   **If thread would require more than 7 tweets**: Condense to 7 maximum by combining related points or cutting less essential details. Note in response: \"Thread condensed to 7 tweets. Some supporting details omitted.\"\n-   **If standalone tweet cannot capture essence in 250 characters**: Extend up to 280 characters maximum and note: \"Standalone required full character limit due to complexity.\"\n-   **If original post has no clear takeaway or lesson**: Create thread around the narrative/story itself and note: \"Post is experiential. Thread focuses on narrative rather than explicit lesson.\"\n-   **If post_url is provided**: Include it in the final tweet of thread or at end of standalone with \"Read more:\" prefix\n-   **If metadata suggests time-sensitive content**: Add temporal context to hook (e.g., \"Right now,\" \"In 2026,\") and note recommendation urgency\n\n# JSON Schema for Output\n{\n  \"type\": \"object\",\n  \"properties\": {\n    \"thread_variation\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"tweets\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"tweet_number\": {\n                \"type\": \"integer\"\n              },\n              \"content\": {\n                \"type\": \"string\",\n                \"maxLength\": 280\n              },\n              \"character_count\": {\n                \"type\": \"integer\"\n              }\n            },\n            \"required\": [\"tweet_number\", \"content\", \"character_count\"]\n          },\n          \"minItems\": 3,\n          \"maxItems\": 7\n        },\n        \"total_tweets\": {\n          \"type\": \"integer\"\n        },\n        \"thread_summary\": {\n          \"type\": \"string\"\n        },\n        \"hook_type\": {\n          \"type\": \"string\",\n          \"enum\": [\"bold_claim\", \"numbers\", \"question\", \"contrast\", \"pattern_interrupt\"]\n        }\n      },\n      \"required\": [\"tweets\", \"total_tweets\", \"thread_summary\", \"hook_type\"]\n    },\n    \"standalone_variation\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"content\": {\n          \"type\": \"string\",\n          \"minLength\": 150,\n          \"maxLength\": 280\n        },\n        \"character_count\": {\n          \"type\": \"integer\"\n        },\n        \"format_used\": {\n          \"type\": \"string\",\n          \"enum\": [\"stat_insight\", \"before_after\", \"lesson\", \"contrarian\"]\n        }\n      },\n      \"required\": [\"content\", \"character_count\", \"format_used\"]\n    },\n    \"original_post_summary\": {\n      \"type\": \"string\"\n    },\n    \"recommended_format\": {\n      \"type\": \"string\",\n      \"enum\": [\"thread\", \"standalone\"]\n    }\n  },\n  \"required\": [\"thread_variation\", \"standalone_variation\", \"original_post_summary\", \"recommended_format\"]\n}","batching":{},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":1.9},{"id":"7659255a-4fe1-4676-981f-62d0fba796b2","name":"SplitThreadVariations","type":"n8n-nodes-base.splitOut","position":[5856,1424],"parameters":{"options":{},"fieldToSplitOut":"output.thread_variation.tweets"},"typeVersion":1},{"id":"4558ed79-8dda-4233-97f8-7c72629c58dd","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[4880,1120],"parameters":{"color":7,"width":1632,"height":672,"content":"## 5. Convert LK post into tweets and save them in Airtable\n\nWe compute a defaut tweet publication date = LK post date + nb of days in Config table"},"typeVersion":1},{"id":"06bcc2b7-7c4e-4e0f-b2d1-5ad9c449d656","name":"IfIsCarousel","type":"n8n-nodes-base.if","position":[3088,1328],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"5e688c12-09b2-4b63-a9e0-edddd304368f","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $('LoopOverPosts').item.json?.document?.transcribedDocumentUrl ?? null }}","rightValue":""}]}},"typeVersion":2.3},{"id":"e07e0f07-4f75-4b20-89a6-c796cb0b05e1","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[2160,1120],"parameters":{"color":7,"width":2160,"height":672,"content":"## 4. Extract LinkedIn post and carousel content"},"typeVersion":1},{"id":"67385f5f-631c-40a7-8a8f-0af35459e4b0","name":"GetCarouselFile","type":"n8n-nodes-base.httpRequest","position":[3360,1232],"parameters":{"url":"={{ $('LoopOverPosts').item.json.document.transcribedDocumentUrl }}","options":{},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br"},{"name":"Connection","value":"keep-alive"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}]}},"typeVersion":4.3,"alwaysOutputData":true},{"id":"d422b4f8-1507-4c24-abb6-8a1718795dbb","name":"MergePost","type":"n8n-nodes-base.merge","position":[4688,1424],"parameters":{},"typeVersion":3.2},{"id":"893cabda-41da-456b-97c0-30e89adafce2","name":"MergeContent","type":"n8n-nodes-base.merge","position":[4112,1328],"parameters":{},"typeVersion":3.2,"alwaysOutputData":true},{"id":"9c8ed31a-cd3f-4758-9111-b54c82511a48","name":"MergeTweets","type":"n8n-nodes-base.merge","position":[6320,1408],"parameters":{},"typeVersion":3.2},{"id":"5fcfe105-e692-4932-ae20-83ea99b203be","name":"Webhook_OnPostTweet","type":"n8n-nodes-base.webhook","position":[1072,2048],"webhookId":"4ccf01e4-57f6-495f-90ae-4f791196a601","parameters":{"path":"post-tweet","options":{}},"typeVersion":2.1},{"id":"2b4a6ade-7817-46c0-beac-612d98cf339d","name":"SearchExistingPost","type":"n8n-nodes-base.airtable","position":[2528,1440],"parameters":{"base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"LinkedIn2Twitter"},"table":{"__rl":true,"mode":"list","value":"tblzy5zMwaTWaTHof","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tblzy5zMwaTWaTHof","cachedResultName":"LK Posts"},"options":{},"operation":"search","filterByFormula":"={LK Post ID}='{{ $json.id }}'"},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1,"alwaysOutputData":true},{"id":"69c22ddc-1ae2-410a-92df-758ad65983da","name":"SavePost","type":"n8n-nodes-base.airtable","position":[4448,1328],"parameters":{"base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"LinkedIn2Twitter"},"table":{"__rl":true,"mode":"list","value":"tblzy5zMwaTWaTHof","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tblzy5zMwaTWaTHof","cachedResultName":"LK Posts"},"columns":{"value":{"Date":"={{ $('LoopOverPosts').item.json.postedAt.date }}","Status":"Scrapped","Content":"={{ $('LoopOverPosts').item.json.content }}","Post URL":"={{ $('LoopOverPosts').item.json.linkedinUrl }}","LK Post ID":"={{ $('LoopOverPosts').item.json.id }}","Post Doc URL":"={{ $('LoopOverPosts').item.json?.document?.transcribedDocumentUrl ?? null }}","Post Img URL":"={{ $('LoopOverPosts').item.json?.postImages[0]?.url ?? null }}","Carousel Content":"={{ JSON.stringify($('MergeContent').item.json?.slides ?? null) }}"},"schema":[{"id":"LK Post ID","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"LK Post ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Scrapped","value":"Scrapped"},{"name":"Converted","value":"Converted"},{"name":"Tweeted","value":"Tweeted"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Date","type":"dateTime","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Content","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Content","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Carousel Content","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Carousel Content","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post URL","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Post URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post Img URL","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Post Img URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post Doc URL","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Post Doc URL","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"create"},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1},{"id":"418983c9-1ec9-459b-b3a8-df168076f987","name":"CreateStandaloneTweet","type":"n8n-nodes-base.airtable","position":[5856,1232],"parameters":{"base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"LinkedIn2Twitter"},"table":{"__rl":true,"mode":"list","value":"tblGhyo7vlTUNkfoX","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tblGhyo7vlTUNkfoX","cachedResultName":"X Tweets"},"columns":{"value":{"Status":"Pending","Content":"={{ $json.output.standalone_variation.content }}","Tweet Nb":0,"Variation":"Standalone","LK Post ID":"={{ $('LoopOverPosts').item.json.id }}","Publication Date":"={{ $('ComputeTweetDate').item.json.tweet_post_date }}"},"schema":[{"id":"Unique ID","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"Unique ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"LK Post ID","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"LK Post ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Pending","value":"Pending"},{"name":"Rejected","value":"Rejected"},{"name":"Approved","value":"Approved"},{"name":"Tweeted","value":"Tweeted"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Variation","type":"options","display":true,"options":[{"name":"Standalone","value":"Standalone"},{"name":"Thread","value":"Thread"}],"removed":false,"readOnly":false,"required":false,"displayName":"Variation","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Tweet Nb","type":"number","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Tweet Nb","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Content","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Content","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Publication Date","type":"dateTime","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Publication Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post Now","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"Post Now","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"create"},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1},{"id":"6977f048-d52b-4a86-bc56-168b6d295f0f","name":"CreateThreadTweet","type":"n8n-nodes-base.airtable","position":[6080,1424],"parameters":{"base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"LinkedIn2Twitter"},"table":{"__rl":true,"mode":"list","value":"tblGhyo7vlTUNkfoX","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tblGhyo7vlTUNkfoX","cachedResultName":"X Tweets"},"columns":{"value":{"Status":"Pending","Content":"={{ $json.content }}","Tweet Nb":"={{ $json.tweet_number }}","Variation":"Thread","LK Post ID":"={{ $('LoopOverPosts').item.json.id }}","Publication Date":"={{ $('ComputeTweetDate').item.json.tweet_post_date }}"},"schema":[{"id":"Unique ID","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"Unique ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"LK Post ID","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"LK Post ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Pending","value":"Pending"},{"name":"Rejected","value":"Rejected"},{"name":"Approved","value":"Approved"},{"name":"Tweeted","value":"Tweeted"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Variation","type":"options","display":true,"options":[{"name":"Standalone","value":"Standalone"},{"name":"Thread","value":"Thread"}],"removed":false,"readOnly":false,"required":false,"displayName":"Variation","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Tweet Nb","type":"number","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Tweet Nb","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Content","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Content","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Publication Date","type":"dateTime","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Publication Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post Now","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"Post Now","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"create"},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1},{"id":"364583fc-d92f-4779-8bf9-a7b5c5f879bf","name":"UpdatePostStatus","type":"n8n-nodes-base.airtable","position":[6064,1232],"parameters":{"base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"LinkedIn2Twitter"},"table":{"__rl":true,"mode":"list","value":"tblzy5zMwaTWaTHof","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tblzy5zMwaTWaTHof","cachedResultName":"LK Posts"},"columns":{"value":{"Status":"Converted","LK Post ID":"={{ $('LoopOverPosts').item.json.id }}"},"schema":[{"id":"id","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"id","defaultMatch":true},{"id":"LK Post ID","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"LK Post ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Scrapped","value":"Scrapped"},{"name":"Converted","value":"Converted"},{"name":"Tweeted","value":"Tweeted"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Date","type":"dateTime","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Content","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Content","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post URL","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Post URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post Img URL","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Post Img URL","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post Doc URL","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Post Doc URL","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["LK Post ID"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update"},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1},{"id":"b63a7ee3-2996-47a1-be6f-a1b4c8980f32","name":"GetTweet","type":"n8n-nodes-base.airtable","position":[1456,2048],"parameters":{"id":"={{ $json.query.id }}","base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"Growth Machine"},"table":{"__rl":true,"mode":"list","value":"tblGhyo7vlTUNkfoX","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tblGhyo7vlTUNkfoX","cachedResultName":"X Tweets"},"options":{}},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1},{"id":"08c9822d-b0d7-4a57-ba92-5738982ec5e9","name":"SwitchStatusAndVariation","type":"n8n-nodes-base.switch","position":[1968,2320],"parameters":{"rules":{"values":[{"outputKey":"standalone","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"1b039897-7aff-4529-bfad-e16656605571","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.Status == 'Approved' && $json.Variation == 'Standalone' }}","rightValue":""}]},"renameOutput":true},{"outputKey":"thread","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"ef60251a-bf97-4eef-b177-91d82747fe30","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.Status == 'Approved' && $json.Variation == 'Thread' }}","rightValue":""}]},"renameOutput":true},{"outputKey":"not_approved","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"3e16d4ef-aeac-487f-a216-8138ff13521b","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.Status !== 'Approved' }}","rightValue":""}]},"renameOutput":true}]},"options":{}},"typeVersion":3.4},{"id":"ac82b4e3-e5f0-4a6b-9581-3f7b10120657","name":"PostStandaloneTweet","type":"n8n-nodes-base.twitter","position":[2416,2128],"parameters":{"text":"={{ $json.Content }}","additionalFields":{}},"credentials":{"twitterOAuth2Api":{"id":"r64whIz2x3uiZUQO","name":"X account"}},"typeVersion":2},{"id":"1d837de6-8ced-4b72-98c8-0939d863bc75","name":"SearchAllThreadTweets","type":"n8n-nodes-base.airtable","position":[2656,2464],"parameters":{"base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"LinkedIn2Twitter"},"sort":{"property":[{"field":"Tweet Nb"}]},"table":{"__rl":true,"mode":"list","value":"tblGhyo7vlTUNkfoX","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tblGhyo7vlTUNkfoX","cachedResultName":"X Tweets"},"options":{},"operation":"search","filterByFormula":"=AND({LK Post ID}='{{ $('SwitchStatusAndVariation').item.json['LK Post ID'] }}', {Variation}='{{ $('SwitchStatusAndVariation').item.json.Variation }}')"},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1},{"id":"13b16f3f-4dcf-4bd7-b7b0-cb39c2eb50aa","name":"UpdateStandaloneTweetStatus","type":"n8n-nodes-base.airtable","position":[2672,2128],"parameters":{"base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"LinkedIn2Twitter"},"table":{"__rl":true,"mode":"list","value":"tblGhyo7vlTUNkfoX","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tblGhyo7vlTUNkfoX","cachedResultName":"X Tweets"},"columns":{"value":{"id":"{{ $json.query.id }}","Status":"Tweeted"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"id","defaultMatch":true},{"id":"Unique ID","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"Unique ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"LK Post ID","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"LK Post ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Pending","value":"Pending"},{"name":"Rejected","value":"Rejected"},{"name":"Approved","value":"Approved"},{"name":"Tweeted","value":"Tweeted"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Variation","type":"options","display":true,"options":[{"name":"Standalone","value":"Standalone"},{"name":"Thread","value":"Thread"}],"removed":true,"readOnly":false,"required":false,"displayName":"Variation","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Tweet Nb","type":"number","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Tweet Nb","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Content","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Content","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Publication Date","type":"dateTime","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Publication Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post Now","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"Post Now","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update"},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1},{"id":"b509b247-fc01-4154-9a1a-d896800a492b","name":"InitTemporaryTweetId","type":"n8n-nodes-base.dataTable","position":[2432,2464],"parameters":{"columns":{"value":{"name":"tweet_id","value":"={{''}}"},"schema":[{"id":"name","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"name","defaultMatch":false},{"id":"value","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"value","defaultMatch":false}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"filters":{"conditions":[{"keyName":"name","keyValue":"tweet_id"}]},"options":{},"operation":"upsert","dataTableId":{"__rl":true,"mode":"list","value":"P1OpzB1QUCvmqmuk","cachedResultUrl":"/projects/o8fPOY5GNHi4Bzy3/datatables/P1OpzB1QUCvmqmuk","cachedResultName":"temporary_variables"}},"typeVersion":1.1},{"id":"6faeec85-b1d6-48a1-9986-f2c79e3b0412","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[960,1824],"parameters":{"color":7,"width":320,"height":544,"content":"## 1. (A) Manual trigger : when clicked on \"TWEET NOW\" button in Airtable"},"typeVersion":1},{"id":"17771166-9e30-4612-92aa-47bc73817f8a","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[2320,2048],"parameters":{"color":7,"width":768,"height":288,"content":"## 4. Post a standalone tweet"},"typeVersion":1},{"id":"63238249-04ee-49cb-a93b-7ce171a2a0d4","name":"PostFirstThreadTweet","type":"n8n-nodes-base.twitter","position":[3936,2400],"parameters":{"text":"={{ $('LoopOverTweets').item.json.Content }}","additionalFields":{}},"credentials":{"twitterOAuth2Api":{"id":"r64whIz2x3uiZUQO","name":"X account"}},"typeVersion":2},{"id":"0aebbcb7-3432-4365-95d3-7e45985fa02e","name":"GetLastTweetId","type":"n8n-nodes-base.dataTable","position":[3232,2480],"parameters":{"filters":{"conditions":[{"keyName":"name","keyValue":"tweet_id"}]},"matchType":"allConditions","operation":"get","dataTableId":{"__rl":true,"mode":"list","value":"P1OpzB1QUCvmqmuk","cachedResultUrl":"/projects/o8fPOY5GNHi4Bzy3/datatables/P1OpzB1QUCvmqmuk","cachedResultName":"temporary_variables"}},"typeVersion":1.1},{"id":"8eca34f6-b762-4152-99ca-fc016fec78fa","name":"IfEmpty","type":"n8n-nodes-base.if","position":[3504,2480],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"aba9099c-316e-419d-b143-2621facf7ae3","operator":{"type":"string","operation":"empty","singleValue":true},"leftValue":"={{ $('GetLastTweetId').item.json.value }}","rightValue":""}]}},"typeVersion":2.3},{"id":"d11fd204-27c0-4272-a214-0723871b7ccc","name":"UpdateTemporaryTweetId","type":"n8n-nodes-base.dataTable","position":[4592,2480],"parameters":{"columns":{"value":{"name":"tweet_id","value":"={{ $json.id }}"},"schema":[{"id":"name","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"name","defaultMatch":false},{"id":"value","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"value","defaultMatch":false}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"filters":{"conditions":[{"keyName":"name","keyValue":"tweet_id"}]},"options":{},"operation":"upsert","dataTableId":{"__rl":true,"mode":"list","value":"P1OpzB1QUCvmqmuk","cachedResultUrl":"/projects/o8fPOY5GNHi4Bzy3/datatables/P1OpzB1QUCvmqmuk","cachedResultName":"temporary_variables"}},"typeVersion":1.1},{"id":"feb68066-d491-492c-9db1-d1075e7a976c","name":"UpdateThreadTweetStatus","type":"n8n-nodes-base.airtable","position":[4896,2480],"parameters":{"base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"LinkedIn2Twitter"},"table":{"__rl":true,"mode":"list","value":"tblGhyo7vlTUNkfoX","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tblGhyo7vlTUNkfoX","cachedResultName":"X Tweets"},"columns":{"value":{"id":"={{ $('LoopOverTweets').item.json.id }}","Status":"Tweeted"},"schema":[{"id":"id","type":"string","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"id","defaultMatch":true},{"id":"Unique ID","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"Unique ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"LK Post ID","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"LK Post ID","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"options","display":true,"options":[{"name":"Pending","value":"Pending"},{"name":"Rejected","value":"Rejected"},{"name":"Approved","value":"Approved"},{"name":"Tweeted","value":"Tweeted"}],"removed":false,"readOnly":false,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Variation","type":"options","display":true,"options":[{"name":"Standalone","value":"Standalone"},{"name":"Thread","value":"Thread"}],"removed":true,"readOnly":false,"required":false,"displayName":"Variation","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Tweet Nb","type":"number","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Tweet Nb","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Content","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Content","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Publication Date","type":"dateTime","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Publication Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Post Now","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"Post Now","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update"},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1},{"id":"9d538e06-a3bb-46cd-96a2-2339c0bb8374","name":"PostReplyTweet","type":"n8n-nodes-base.twitter","position":[3936,2544],"parameters":{"text":"={{ $('LoopOverTweets').item.json.Content }}","additionalFields":{"inReplyToStatusId":{"__rl":true,"mode":"id","value":"={{ $('GetLastTweetId').item.json.value }}"}}},"credentials":{"twitterOAuth2Api":{"id":"r64whIz2x3uiZUQO","name":"X account"}},"typeVersion":2},{"id":"631131ed-a9e4-42a1-98e9-fc0a2e83c4c8","name":"Merge","type":"n8n-nodes-base.merge","position":[4384,2480],"parameters":{},"typeVersion":3.2},{"id":"53067c5f-bdd9-483f-8c2c-09805531409f","name":"LoopOverTweets","type":"n8n-nodes-base.splitInBatches","position":[2912,2464],"parameters":{"options":{}},"typeVersion":3},{"id":"32df89d3-33ee-4813-b281-d71f725c8bff","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[2320,2352],"parameters":{"color":7,"width":2848,"height":400,"content":"## 4. Post a thread of tweets"},"typeVersion":1},{"id":"17bf7d19-68f8-4b5b-bed9-d7d5b8272584","name":"GetConfig","type":"n8n-nodes-base.airtable","position":[1376,1424],"parameters":{"base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"LinkedIn2Twitter"},"table":{"__rl":true,"mode":"list","value":"tbl7B3JblukFTGrAo","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tbl7B3JblukFTGrAo","cachedResultName":"Config"},"options":{},"operation":"search"},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1},{"id":"8284659d-49a6-40b0-9d5f-c1dffdc9022c","name":"FormatConfig","type":"n8n-nodes-base.code","position":[1552,1424],"parameters":{"jsCode":"const configArray = $('GetConfig').all();\nconst config = {};\n\nconfigArray.forEach(item => {\n  const name = item.json.Name;  \n  const type = item.json.Type;\n  let value;\n\n  // Determine the value based on the Type field, with fallback to String Value\n  if (type === 'Integer') {\n    value = item.json['Integer Value'];\n  } else if (type === 'String') {\n    // If Type is String or not specified, use String Value\n    value = item.json['String Value'];\n  } else {\n    // Default fallback\n    value = item.json['String Value'];\n  }\n\n  config[name] = value;\n});\n\nreturn config;\n// Result will be:\n// {\n//   \"profile_url\": \"https://www.linkedin.com/in/elodetasia\",\n//   \"posted_limit\": \"week\",\n//   \"max_posts\": 5\n// }"},"typeVersion":2},{"id":"3b4724ce-2045-4f01-9ff6-842009f4e7cd","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[1312,1120],"parameters":{"color":7,"width":400,"height":672,"content":"## 2. Get config"},"typeVersion":1},{"id":"5a2ebd20-9a49-451f-94a9-2b117466cb3c","name":"ComputeTweetDate","type":"n8n-nodes-base.code","position":[5024,1424],"parameters":{"jsCode":"const nbDaysAfter = $('FormatConfig').first().json.schedule_tweets_days_after_lk || 0;\nconst lkDate = DateTime.fromISO($('MergePost').first().json.Date || $('MergePost').first().json.fields.Date);\n\nreturn {\n  \"tweet_post_date\": lkDate.plus({ days: nbDaysAfter }).toISO()\n};"},"typeVersion":2},{"id":"6b6583db-c31b-4e78-a789-d70252b59dcf","name":"Daily_AtNoon","type":"n8n-nodes-base.scheduleTrigger","position":[1072,2656],"parameters":{"rule":{"interval":[{"triggerAtHour":12,"triggerAtMinute":30}]}},"typeVersion":1.3},{"id":"fcc814cc-5670-4862-af95-b5f04cb77473","name":"SearchApprovedTweets","type":"n8n-nodes-base.airtable","position":[1456,2656],"parameters":{"base":{"__rl":true,"mode":"list","value":"appiS2JpMdnxAS5o4","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4","cachedResultName":"LinkedIn2Twitter"},"sort":{"property":[{"field":"Tweet Nb"}]},"table":{"__rl":true,"mode":"list","value":"tblGhyo7vlTUNkfoX","cachedResultUrl":"https://airtable.com/appiS2JpMdnxAS5o4/tblGhyo7vlTUNkfoX","cachedResultName":"X Tweets"},"options":{},"operation":"search","filterByFormula":"=AND(\n{Status}='Approved',\nIS_BEFORE({Publication Date}, NOW()),\nOR({Variation}='Standalone', {Tweet Nb}=1)\n)"},"credentials":{"airtableTokenApi":{"id":"2LKyxNNsd4Rn2PBf","name":"Airtable account"}},"typeVersion":2.1},{"id":"7df00fd2-62b8-4784-ae9e-a3a32439db3a","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[1312,2400],"parameters":{"color":7,"width":400,"height":544,"content":"## 2. (B) Get tweets to be posted\n\n- Status: Approved\n- Publication date before NOW\n- Standalone or only first one of a Thread"},"typeVersion":1},{"id":"475330cd-f96f-471f-88c8-ffd404323cc2","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[960,2400],"parameters":{"color":7,"width":320,"height":544,"content":"##  1. (B) Daily trigger"},"typeVersion":1},{"id":"2affbc92-aa04-4640-b49f-ebc33bebea32","name":"Sticky Note10","type":"n8n-nodes-base.stickyNote","position":[1312,1824],"parameters":{"color":7,"width":400,"height":544,"content":"## 2. (A) Get tweet"},"typeVersion":1},{"id":"6613fa71-fc63-4df2-a6c8-d44c290e618c","name":"Weekly_OnSunday","type":"n8n-nodes-base.scheduleTrigger","position":[1040,1424],"parameters":{"rule":{"interval":[{"field":"weeks"}]}},"typeVersion":1.3},{"id":"0ce13871-6382-47ac-b9b4-795944d10f97","name":"Sticky Note12","type":"n8n-nodes-base.stickyNote","position":[960,1120],"parameters":{"color":7,"width":320,"height":672,"content":"##  1. Weekly Trigger\n\nEach Sunday at midnight"},"typeVersion":1},{"id":"fc0744ad-9535-4515-b45a-4e8fd9c428c1","name":"Sticky Note13","type":"n8n-nodes-base.stickyNote","position":[1744,2048],"parameters":{"color":7,"width":544,"height":704,"content":"## 3. Check tweet Variation (standalone/thread) and Status (must be Approved)"},"typeVersion":1},{"id":"3f6e63fb-445e-4a5c-81b1-3b5cfe82cb2a","name":"ParseJSON","type":"n8n-nodes-base.code","position":[3856,1232],"parameters":{"jsCode":"let text = $input.first().json?.output[0]?.content[0]?.text ?? \"\";\nlet parsedJson = {};\n\nif (text) {\n  // Extract JSON from markdown code block\n  // Handles ```json ... ``` or just ``` ... ```\n  const jsonMatch = text.match(/```(?:json)?\\s*([\\s\\S]*?)```/);\n  if (jsonMatch && jsonMatch[1]) {\n    const jsonString = jsonMatch[1].trim();\n    parsedJson = JSON.parse(jsonString);\n  } else {\n    // If no code block, try parsing the text directly\n    parsedJson = JSON.parse(text.trim());\n  }\n}\n\n\nreturn { slides: parsedJson };"},"typeVersion":2,"alwaysOutputData":true},{"id":"c582fa3e-b3f8-4358-a128-8d50c7bee2a7","name":"Claude-4.5-Sonnet","type":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","position":[5344,1632],"parameters":{"model":"anthropic/claude-sonnet-4.5","options":{}},"credentials":{"openRouterApi":{"id":"CUmw6cOD2pnRaaWO","name":"OpenRouter account"}},"typeVersion":1},{"id":"48a8ce5b-f83c-450c-b666-61b46bb5cd86","name":"ExtractContentFromFile","type":"@n8n/n8n-nodes-langchain.openAi","position":[3552,1232],"parameters":{"modelId":{"__rl":true,"mode":"list","value":"chatgpt-4o-latest","cachedResultName":"CHATGPT-4O-LATEST"},"options":{},"responses":{"values":[{"content":"=\n# Role\nYou are an expert OCR and layout interpreter specialized in extracting structured textual content from visual documents such as LinkedIn carousel PDFs. \nYour purpose is to identify and extract the main readable text content while classifying slides into semantic categories based on visual and textual cues.\n\n# Constraints\n• Output must be valid JSON (no Markdown, comments, or text outside JSON).  \n• Preserve the exact text as seen — do not rewrite or summarize.  \n• Ignore decorative or non-informative elements such as logos, author names, hashtags, or “swipe” buttons.  \n• Maintain correct slide order and numbering.  \n• Ensure extracted text retains readable structure (e.g., line breaks or paragraph spacing when meaningful).  \n• Classify slides strictly into one of: `front`, `content`, or `cta`.  \n• If a slide contains no relevant text, omit it from the output.  \n• Return only main textual data, not OCR noise.  \n\n# Inputs\n• A multi-page PDF LinkedIn carousel file (each page is a visual slide).  \n• Each slide may contain titles, short paragraphs, or CTA text.  \n\n# Instructions\n1. For each slide, extract all visible text that conveys meaningful information.  \n2. Identify the slide type:  \n   • `front` → the first slide introducing the topic or title.  \n   • `content` → middle slides explaining concepts, steps, or insights.  \n   • `cta` → the final slide inviting engagement (e.g., “Follow”, “Contact”, “Learn more”).  \n3. Remove all decorative or irrelevant text (logos, tags, “swipe”, etc.).  \n4. Build a JSON object with this schema:  \n   ```json\n   {\n     \"slides\": [\n       {\n         \"slide_number\": 1,\n         \"type\": \"front\",\n         \"content\": \"...\"\n       },\n       {\n         \"slide_number\": 2,\n         \"type\": \"content\",\n         \"content\": \"...\"\n       },\n       {\n         \"slide_number\": 3,\n         \"type\": \"cta\",\n         \"content\": \"...\"\n       }\n     ]\n   }\n```\n5. Validate JSON syntax before returning the response.\n\n# Conclusions\nThe output must be a single JSON object representing the extracted textual content from each slide, ordered and classified by type, ready for structured use in automated workflows (e.g., caption generation, analytics, or translation). \n\n# Solutions\n- If a slide’s content cannot be extracted, skip it silently. \n- If classification is ambiguous, default to `\"content\"`. \n- If the file cannot be read, return `{ \"error\": \"Invalid or unreadable PDF file.\" }`. \n- Ensure the model never outputs non-JSON commentary or explanations."},{"type":"file","fileName":"={{ $binary.data.fileName }}","fileType":"base64"}]},"builtInTools":{}},"credentials":{"openAiApi":{"id":"8cWrXPbW8jATNO3M","name":"OpenAi account"}},"typeVersion":2.1,"alwaysOutputData":true},{"id":"f1414a02-4d9e-4cec-84c7-895d17f7567b","name":"Sticky Note17","type":"n8n-nodes-base.stickyNote","position":[1744,1120],"parameters":{"color":7,"width":384,"height":672,"content":"## 3. Scrape LinkedIn posts\n\nApify  API doc here:\nhttps://console.apify.com/actors/A3cAPGpwBEG8RJwse/information/latest/readme\n\nPrice: $2 per 1k posts"},"typeVersion":1}],"active":false,"pinData":{"Weekly_OnSunday":[{"json":{"Hour":"12","Year":"2026","Month":"January","Minute":"41","Second":"48","Timezone":"America/Sao_Paulo (UTC-03:00)","timestamp":"2026-01-18T12:41:48.261-03:00","Day of week":"Sunday","Day of month":"18","Readable date":"January 18th 2026, 12:41:48 pm","Readable time":"12:41:48 pm"}}],"Webhook_OnPostTweet":[{"json":{"body":{},"query":{"id":"recPCix3Crw5qYV1z"},"params":{},"headers":{"host":"n8n.srv942115.hstgr.cloud","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","cookie":"rl_page_init_referrer=RudderEncrypt%3AU2FsdGVkX1%2FTuUtKzQCAX%2BhTP9kQHNcEf%2BPtEEIVkd94ydz1b0Urqdfis0v9ssmL; rl_page_init_referring_domain=RudderEncrypt%3AU2FsdGVkX1%2BVcHMElvJL3g5E8j32GwL7z2VtiFOZjqPYL%2BxFJ6BlKyc042KiFR%2Bb; rl_anonymous_id=RudderEncrypt%3AU2FsdGVkX19MGOTmSCyuz0uDPsxTNYPgdFUDWF9iz98zRfi7iTdQdWQAxLgGWS8OTR3VPGCvha2YoAwxDBc6tg%3D%3D; rl_user_id=RudderEncrypt%3AU2FsdGVkX184Y19pYz72c2o8MItziteUiPWHw%2FKVR9t%2BGdCftCUPGHvoqp%2BdQWc4DZvrRIscM6Vbr0n02ozy4Ah%2F%2BV6qaLvEQheK%2B3MU3AVqtTPxXz7B%2FMDWsC%2BJvhwUA5TZEu0hr7YpKd%2Bnkd%2BpyzYbTF3L18YTEvkRRoY4tDs%3D; rl_trait=RudderEncrypt%3AU2FsdGVkX1%2FGHwURW4kRVKioBl9refNz719MzMuOxXt9iMQV1nBUy6GaR4H1C4uFM%2FYb0eTyVkCXIshprSw3clTdKj1UOWubCUlS09W9wd0qjL7lFflg1vy9glQT6ljNvOPOiTB6r%2FfZydDwz5hdNd218cdl5plbXvKsAIFXy4U%3D; ph_phc_4URIAm1uYfJO7j8kWSe0J8lc8IqnstRLS7Jx8NcakHo_posthog=%7B%22%24device_id%22%3A%2201987628-2857-7d4a-846e-ece87610323a%22%2C%22distinct_id%22%3A%22313b93d489cbc0ae87ad93f25c395bbdc59c46c632d00f395c3586a8fbbb7a34%236e3cbaf2-43d8-4d35-927e-626c91948469%22%2C%22%24sesid%22%3A%5B1768668058837%2C%22019bcc6e-542b-7a1b-8458-e17e0397b631%22%2C1768661341227%5D%2C%22%24epp%22%3Atrue%2C%22%24initial_person_info%22%3A%7B%22r%22%3A%22https%3A%2F%2Fhpanel.hostinger.com%2F%22%2C%22u%22%3A%22https%3A%2F%2Fn8n.srv942115.hstgr.cloud%2Fsetup%22%7D%7D; rl_session=RudderEncrypt%3AU2FsdGVkX19UY6qjOlfe7yDXGNicKdaEDvj7HbnLtkPIQuoXoVoatYIYEbQwfsosgn%2F2QKIsFsfvE4%2FlbQa59pmWB%2FKqybuzaqekCO0oYdwtHa%2B%2FVOzbmQcmE8atWFV2XYGXHmg5jMiP%2FiMYmKFbWg%3D%3D","priority":"u=0, i","sec-ch-ua":"\"Google Chrome\";v=\"143\", \"Chromium\";v=\"143\", \"Not A(Brand\";v=\"24\"","x-real-ip":"179.94.25.19","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36","sec-fetch-dest":"document","sec-fetch-mode":"navigate","sec-fetch-site":"cross-site","sec-fetch-user":"?1","accept-encoding":"gzip, deflate, br, zstd","accept-language":"en-US,en;q=0.9,fr-FR;q=0.8,fr;q=0.7,es;q=0.6,et;q=0.5","x-forwarded-for":"179.94.25.19","sec-ch-ua-mobile":"?0","x-forwarded-host":"n8n.srv942115.hstgr.cloud","x-forwarded-port":"443","x-forwarded-proto":"https","sec-ch-ua-platform":"\"Windows\"","x-forwarded-server":"55e0cce82669","upgrade-insecure-requests":"1"},"webhookUrl":"https://n8n.srv942115.hstgr.cloud/webhook/post-tweet","executionMode":"production"}}]},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"4ec41126-9a2c-4ea6-bbf3-0abefddfe931","connections":{"Merge":{"main":[[{"node":"UpdateTemporaryTweetId","type":"main","index":0}]]},"Switch":{"main":[[{"node":"IfIsCarousel","type":"main","index":0}],[{"node":"MergePost","type":"main","index":1}],[{"node":"LoopOverPosts","type":"main","index":0}]]},"IfEmpty":{"main":[[{"node":"PostFirstThreadTweet","type":"main","index":0}],[{"node":"PostReplyTweet","type":"main","index":0}]]},"GetTweet":{"main":[[{"node":"SwitchStatusAndVariation","type":"main","index":0}]]},"SavePost":{"main":[[{"node":"MergePost","type":"main","index":0}]]},"GetConfig":{"main":[[{"node":"FormatConfig","type":"main","index":0}]]},"MergePost":{"main":[[{"node":"ComputeTweetDate","type":"main","index":0}]]},"ParseJSON":{"main":[[{"node":"MergeContent","type":"main","index":0}]]},"MergeTweets":{"main":[[{"node":"LoopOverPosts","type":"main","index":0}]]},"Daily_AtNoon":{"main":[[{"node":"SearchApprovedTweets","type":"main","index":0}]]},"FormatConfig":{"main":[[{"node":"ScrapeLastPosts","type":"main","index":0}]]},"IfIsCarousel":{"main":[[{"node":"GetCarouselFile","type":"main","index":0}],[{"node":"MergeContent","type":"main","index":1}]]},"MergeContent":{"main":[[{"node":"SavePost","type":"main","index":0}]]},"LoopOverPosts":{"main":[[],[{"node":"SearchExistingPost","type":"main","index":0}]]},"GetLastTweetId":{"main":[[{"node":"IfEmpty","type":"main","index":0}]]},"LoopOverTweets":{"main":[[],[{"node":"GetLastTweetId","type":"main","index":0}]]},"PostReplyTweet":{"main":[[{"node":"Merge","type":"main","index":1}],[]]},"GetCarouselFile":{"main":[[{"node":"ExtractContentFromFile","type":"main","index":0}]]},"ScrapeLastPosts":{"main":[[{"node":"LoopOverPosts","type":"main","index":0}]]},"Weekly_OnSunday":{"main":[[{"node":"GetConfig","type":"main","index":0}]]},"ComputeTweetDate":{"main":[[{"node":"ConvertPostIntoTweets","type":"main","index":0}]]},"UpdatePostStatus":{"main":[[{"node":"MergeTweets","type":"main","index":0}]]},"Claude-4.5-Sonnet":{"ai_languageModel":[[{"node":"ConvertPostIntoTweets","type":"ai_languageModel","index":0}]]},"CreateThreadTweet":{"main":[[{"node":"MergeTweets","type":"main","index":1}]]},"SearchExistingPost":{"main":[[{"node":"Switch","type":"main","index":0}]]},"PostStandaloneTweet":{"main":[[{"node":"UpdateStandaloneTweetStatus","type":"main","index":0}]]},"Webhook_OnPostTweet":{"main":[[{"node":"GetTweet","type":"main","index":0}]]},"InitTemporaryTweetId":{"main":[[{"node":"SearchAllThreadTweets","type":"main","index":0}]]},"PostFirstThreadTweet":{"main":[[{"node":"Merge","type":"main","index":0}],[]]},"SearchApprovedTweets":{"main":[[{"node":"SwitchStatusAndVariation","type":"main","index":0}]]},"ConvertPostIntoTweets":{"main":[[{"node":"SplitThreadVariations","type":"main","index":0},{"node":"CreateStandaloneTweet","type":"main","index":0}]]},"CreateStandaloneTweet":{"main":[[{"node":"UpdatePostStatus","type":"main","index":0}]]},"SearchAllThreadTweets":{"main":[[{"node":"LoopOverTweets","type":"main","index":0}]]},"SplitThreadVariations":{"main":[[{"node":"CreateThreadTweet","type":"main","index":0}]]},"ExtractContentFromFile":{"main":[[{"node":"ParseJSON","type":"main","index":0}]]},"UpdateTemporaryTweetId":{"main":[[{"node":"UpdateThreadTweetStatus","type":"main","index":0}]]},"UpdateThreadTweetStatus":{"main":[[{"node":"LoopOverTweets","type":"main","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"ConvertPostIntoTweets","type":"ai_outputParser","index":0}]]},"SwitchStatusAndVariation":{"main":[[{"node":"PostStandaloneTweet","type":"main","index":0}],[{"node":"InitTemporaryTweetId","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":54,"nodeTypes":{"n8n-nodes-base.if":{"count":2},"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.merge":{"count":4},"n8n-nodes-base.switch":{"count":2},"n8n-nodes-base.twitter":{"count":3},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.airtable":{"count":11},"n8n-nodes-base.splitOut":{"count":1},"n8n-nodes-base.dataTable":{"count":3},"n8n-nodes-base.stickyNote":{"count":14},"n8n-nodes-base.httpRequest":{"count":1},"@apify/n8n-nodes-apify.apify":{"count":1},"n8n-nodes-base.splitInBatches":{"count":2},"n8n-nodes-base.scheduleTrigger":{"count":2},"@n8n/n8n-nodes-langchain.openAi":{"count":1},"@n8n/n8n-nodes-langchain.chainLlm":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenRouter":{"count":1},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Elodie Tasia","username":"ladypixl","bio":"AI automation & Voice Agent specialist. I build clean, conversion-ready sites and n8n workflows that take your content from idea to publish, on autopilot, in your voice. Grab my templates or message me for a custom build.","verified":true,"links":["https://www.linkedin.com/in/elodietasia"],"avatar":"https://gravatar.com/avatar/79b99f2c7d221874463901bb2324d31f2dfed573dc1296ba203450e1a61c70a3?r=pg&d=retro&size=200"},"nodes":[{"id":2,"icon":"file:airtable.svg","name":"n8n-nodes-base.airtable","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/2021-goals-level-up-your-vocabulary-with-vonage-and-n8n/","icon":"🎯","label":"2021 Goals: Level Up Your Vocabulary With Vonage and n8n"},{"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-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 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/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"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/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/sending-sms-the-low-code-way-with-airtable-twilio-programmable-sms-and-n8n/","icon":"📱","label":"Sending SMS the Low-Code Way with Airtable, Twilio Programmable SMS, and n8n"},{"url":"https://n8n.io/blog/automating-conference-organization-processes-with-n8n/","icon":"🙋‍♀️","label":"Automating Conference Organization Processes with n8n"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"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.airtable/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/airtable/"}]},"categories":["Data & Storage"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Airtable"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMTcwIj48cGF0aCBmaWxsPSIjZmNiNDAwIiBkPSJNODkgNC44IDE2LjIgMzQuOWMtNC4xIDEuNy00IDcuNC4xIDkuMWw3My4yIDI5YzYuNCAyLjYgMTMuNiAyLjYgMjAgMGw3My4yLTI5YzQuMS0xLjYgNC4xLTcuNC4xLTkuMWwtNzMtMzAuMUMxMDMuMiAyIDk1LjcgMiA4OSA0LjgiLz48cGF0aCBmaWxsPSIjMThiZmZmIiBkPSJNMTA1LjkgODguOXY3Mi41YzAgMy40IDMuNSA1LjggNi43IDQuNWw4MS42LTMxLjdjMS45LS43IDMuMS0yLjUgMy4xLTQuNVY1Ny4yYzAtMy40LTMuNS01LjgtNi43LTQuNUwxMDkgODQuM2MtMS45LjgtMy4xIDIuNi0zLjEgNC42Ii8+PHBhdGggZmlsbD0iI2Y4MmI2MCIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctMi41IDEuMkw5LjEgMTMwYy0zLjIgMS42LTcuNC0uOC03LjQtNC40VjU3LjVjMC0xLjMuNy0yLjQgMS42LTMuM3EuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNSA0LjMgNy4xLjUgOC45Ii8+PHBhdGggZmlsbD0iI2JhMWU0NSIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctNTkuNC01MHEuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNCA0LjMgNyAuNSA4LjgiLz48L3N2Zz4="},"displayName":"Airtable","typeVersion":2,"nodeCategories":[{"id":3,"name":"Data & Storage"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"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/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-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"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/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"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/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"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/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"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/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"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/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"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/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/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"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/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"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/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"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-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"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/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"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/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"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/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/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"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/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/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"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/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"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/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"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":325,"icon":"file:x.svg","name":"n8n-nodes-base.twitter","codex":{"data":{"alias":["Tweet","Twitter","X","X API"],"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/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.twitter/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/twitter/"}]},"categories":["Marketing"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"output\"]","defaults":{"name":"X"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIzLjMxNzEgMTYuOTM3M0wzNy45MDI2IDBIMzQuNDQ2M0wyMS43ODE3IDE0LjcwNjRMMTEuNjY2NiAwSDBMMTUuMjk2MSAyMi4yMzg3TDAgNDBIMy40NTY0OEwxNi44MzA2IDI0LjQ2OTZMMjcuNTEyOSA0MEgzOS4xNzk1TDIzLjMxNjMgMTYuOTM3M0gyMy4zMTcxWk0xOC41ODMgMjIuNDM0NkwxNy4wMzMyIDIwLjIyMDFMNC43MDE5IDIuNTk5MzZIMTAuMDEwOEwxOS45NjIzIDE2LjgxOTlMMjEuNTEyMiAxOS4wMzQ0TDM0LjQ0NzkgMzcuNTE4OUgyOS4xMzlMMTguNTgzIDIyLjQzNTRWMjIuNDM0NloiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo="},"displayName":"X (Formerly Twitter)","typeVersion":2,"nodeCategories":[{"id":27,"name":"Marketing"}]},{"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":1123,"icon":"fa:link","name":"@n8n/n8n-nodes-langchain.chainLlm","codex":{"data":{"alias":["LangChain"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Chains","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Basic LLM Chain","color":"#909298"},"iconData":{"icon":"link","type":"icon"},"displayName":"Basic LLM Chain","typeVersion":2,"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"}]},{"id":1239,"icon":"file:splitOut.svg","name":"n8n-nodes-base.splitOut","codex":{"data":{"alias":["Split","Nested","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Split Out"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjOUI2REQ1IiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4MCAxNDhjMC02LjYyNy01LjM3My0xMi0xMi0xMkgzMjJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxNDZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDMyMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDE0NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0wIDk2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMzIyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTQ2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBkPSJNNDM4IDc2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMydjU2YzAgMjYuOTc4LTEwLjI3MiA1MS41NTctMjcuMTE5IDcwLjAzOS01LjA1NSA1LjU0NS01LjA1NSAxNC4zNzcgMCAxOS45MjIgMTYuODQ3IDE4LjQ4MiAyNy4xMTkgNDMuMDYxIDI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMySDQyNmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtNDQuMTgzIDAtODAtMzUuODE3LTgwLTgwdi01NmMwLTMwLjkyOC0yNS4wNzItNTYtNTYtNTZhNS43ODMgNS43ODMgMCAwIDEtNS43ODMtNS43ODN2LTM2LjQzNGE1Ljc4MyA1Ljc4MyAwIDAgMSA1Ljc4My01Ljc4M2MzMC45MjggMCA1Ni0yNS4wNzIgNTYtNTZ2LTU2YzAtNDQuMTgzIDM1LjgxNy04MCA4MC04MEg0MjZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzYgMjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01MTIgMEgwdjUxMmg1MTJ6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+"},"displayName":"Split Out","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1250,"icon":"file:openAi.svg","name":"@n8n/n8n-nodes-langchain.openAi","codex":{"data":{"alias":["LangChain","ChatGPT","Sora","DallE","whisper","audio","transcribe","tts","assistant"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg1IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NiAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MSA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K"},"displayName":"OpenAI","typeVersion":2,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1281,"icon":"file:openrouter.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenrouter/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenRouter Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjOTRBM0I4IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5PcGVuUm91dGVyPC90aXRsZT48cGF0aCBkPSJNMTYuODA0IDEuOTU3bDcuMjIgNC4xMDV2LjA4N0wxNi43MyAxMC4yMWwuMDE3LTIuMTE3LS44MjEtLjAzYy0xLjA1OS0uMDI4LTEuNjExLjAwMi0yLjI2OC4xMS0xLjA2NC4xNzUtMi4wMzguNTc3LTMuMTQ3IDEuMzUyTDguMzQ1IDExLjAzYy0uMjg0LjE5NS0uNDk1LjMzNi0uNjguNDU1bC0uNTE1LjMyMi0uMzk3LjIzNC4zODUuMjMuNTMuMzM4Yy40NzYuMzE0IDEuMTcuNzk2IDIuNzAxIDEuODY2IDEuMTEuNzc1IDIuMDgzIDEuMTc3IDMuMTQ3IDEuMzUybC4zLjA0NWMuNjk0LjA5MSAxLjM3NS4wOTQgMi44MjUuMDMzbC4wMjItMi4xNTkgNy4yMiA0LjEwNXYuMDg3TDE2LjU4OSAyMmwuMDE0LTEuODYyLS42MzUuMDIyYy0xLjM4Ni4wNDItMi4xMzcuMDAyLTMuMTM4LS4xNjItMS42OTQtLjI4LTMuMjYtLjkyNi00Ljg4MS0yLjA1OWwtMi4xNTgtMS41YTIxLjk5NyAyMS45OTcgMCAwMC0uNzU1LS40OThsLS40NjctLjI4YTU1LjkyNyA1NS45MjcgMCAwMC0uNzYtLjQzQzIuOTA4IDE0LjczLjU2MyAxNC4xMTYgMCAxNC4xMTZWOS44ODhsLjE0LjAwNGMuNTY0LS4wMDcgMi45MS0uNjIyIDMuODA5LTEuMTI0bDEuMDE2LS41OC40MzgtLjI3NGMuNDI4LS4yOCAxLjA3Mi0uNzI2IDIuNjg2LTEuODUzIDEuNjIxLTEuMTMzIDMuMTg2LTEuNzggNC44ODEtMi4wNTkgMS4xNTItLjE5IDEuOTc0LS4yMTMgMy44MTQtLjEzOGwuMDItMS45MDd6Ij48L3BhdGg+PC9zdmc+Cg=="},"displayName":"OpenRouter Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1315,"icon":"fa:table","name":"n8n-nodes-base.dataTable","codex":{"data":{"alias":["data","table","knowledge","data table","table","sheet","database","data base","mysql","postgres","postgresql","airtable","supabase","noco","notion"],"details":"Data table","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.datatable/"}]},"categories":["Core Nodes","Development"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\",\"transform\"]","defaults":{"name":"Data table"},"iconData":{"icon":"table","type":"icon"},"displayName":"Data table","typeVersion":1,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":33,"name":"Social Media"},{"id":51,"name":"Multimodal AI"}],"image":[]}}