AutomationFlowsAI & RAG › Transform Long-form Content Into Social Snippets with Gpt-4o-mini and Meta…

Transform Long-form Content Into Social Snippets with Gpt-4o-mini and Meta…

Original n8n title: Transform Long-form Content Into Social Snippets with Gpt-4o-mini and Meta Auto-publishing

ByRahul Joshi @rahul08 on n8n.io

Automate your content repurposing workflow by transforming long-form articles, blogs, and newsletters into short, high-signal, AI-ready social media snippets. ✍️🤖 This workflow fetches pending content from Airtable, generates 30-word snippets, data points, and quote-style…

Cron / scheduled trigger★★★★☆ complexityAI-powered26 nodesAirtableOpenAI ChatMemory Buffer WindowOutput Parser StructuredAgentSlackFacebook Graph ApiError Trigger
AI & RAG Trigger: Cron / scheduled Nodes: 26 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #11079 — we link there as the canonical source.

This workflow follows the Agent → Airtable recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "5XIqGyWg2dvEh235",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Generate AI-ready social snippets from Airtable content to Airtable and Meta (Facebook)",
  "tags": [],
  "nodes": [
    {
      "id": "da74df87-92b8-4a4c-8886-b6fd8c91cd83",
      "name": "Fetch Pending Content",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -1616,
        528
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appadCQdMQkDFd6Rh",
          "cachedResultUrl": "https://airtable.com/appadCQdMQkDFd6Rh",
          "cachedResultName": "N8n Content "
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblpcW1qthqHO1vik",
          "cachedResultUrl": "https://airtable.com/appadCQdMQkDFd6Rh/tblpcW1qthqHO1vik",
          "cachedResultName": "Content"
        },
        "options": {},
        "operation": "search",
        "filterByFormula": "({status}='pending')"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5198d2cf-2e8a-47d3-93f7-1cec5fff580f",
      "name": "Split Content In Batches",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -1392,
        528
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "6588f408-e983-42bf-9647-3e81a6852d17",
      "name": "Prepare Content Update",
      "type": "n8n-nodes-base.set",
      "position": [
        -704,
        400
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "snippet-30-word",
              "name": "fields.ai_snippets_30_word",
              "type": "string",
              "value": "={{ $json.output.snippets_30_word }}"
            },
            {
              "id": "data-points",
              "name": "fields.ai_snippets_data_points",
              "type": "string",
              "value": "={{ $json.output.data_points }}"
            },
            {
              "id": "quotes",
              "name": "fields.ai_snippets_quotes",
              "type": "string",
              "value": "={{ $json.output.quotes_insights }}"
            },
            {
              "id": "best-snippet",
              "name": "fields.ai_best_snippet",
              "type": "string",
              "value": "={{ $json.output.recommended_primary_snippet }}"
            },
            {
              "id": "last-run",
              "name": "fields.ai_last_run_at",
              "type": "string",
              "value": "={{ $now }}"
            },
            {
              "id": "status",
              "name": "fields.status",
              "type": "string",
              "value": "processed"
            },
            {
              "id": "record-id",
              "name": "id",
              "type": "string",
              "value": "={{ $('Fetch Pending Content').item.json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "97e41a2e-a4e8-4b0a-b7fc-1cda31cf1591",
      "name": "Update Content Record",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -480,
        400
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appadCQdMQkDFd6Rh",
          "cachedResultUrl": "https://airtable.com/appadCQdMQkDFd6Rh",
          "cachedResultName": "N8n Content "
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblpcW1qthqHO1vik",
          "cachedResultUrl": "https://airtable.com/appadCQdMQkDFd6Rh/tblpcW1qthqHO1vik",
          "cachedResultName": "Content"
        },
        "columns": {
          "value": {
            "id": "={{ $json.id }}",
            "status": "processed",
            "AI_Quotes": "={{ $json.fields.ai_snippets_quotes }}",
            "AI_data_points": "={{ $json.fields.ai_snippets_data_points }}",
            "ai_last_run_at": "={{ $json.fields.ai_last_run_at }}",
            "Ai_best_Snippets": "={{ $json.fields.ai_best_snippet }}",
            "Ai_snippets_30_words": "={{ $json.fields.ai_snippets_30_word }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "source_type",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "blog",
                  "value": "blog"
                },
                {
                  "name": "newsletter",
                  "value": "newsletter"
                },
                {
                  "name": "thread",
                  "value": "thread"
                },
                {
                  "name": "case_study",
                  "value": "case_study"
                },
                {
                  "name": "landing_page",
                  "value": "landing_page"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "source_type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "long_content",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "long_content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "primary_url",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "primary_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "brand",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "brand",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "target_platforms",
              "type": "array",
              "display": true,
              "options": [
                {
                  "name": "linkedin",
                  "value": "linkedin"
                },
                {
                  "name": "twitter",
                  "value": "twitter"
                },
                {
                  "name": "facebook",
                  "value": "facebook"
                },
                {
                  "name": "instagram",
                  "value": "instagram"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "target_platforms",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "buffer_profile_ids",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "buffer_profile_ids",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "pending",
                  "value": "pending"
                },
                {
                  "name": "processed",
                  "value": "processed"
                },
                {
                  "name": "posted",
                  "value": "posted"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ai_last_run_at",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "ai_last_run_at",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "last_social_post_status",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "last_social_post_status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "last_social_post_response",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "last_social_post_response",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ai_snippets_30_words",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Ai_snippets_30_words",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI_data_points",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "AI_data_points",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI_Quotes",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "AI_Quotes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ai_best_Snippets",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Ai_best_Snippets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "a146ef3b-e281-4851-b17b-de6f052a023e",
      "name": "Should Auto-Post?",
      "type": "n8n-nodes-base.if",
      "position": [
        -256,
        400
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "7ed7525a-6279-4524-b175-6f0774d2e685",
              "operator": {
                "type": "array",
                "operation": "contains",
                "rightType": "any"
              },
              "leftValue": "={{ $json.fields.target_platforms }}",
              "rightValue": "facebook"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5e0f66b8-161f-46d8-b347-e3bc47bca050",
      "name": "Prepare Post Result",
      "type": "n8n-nodes-base.set",
      "position": [
        416,
        400
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "post-status",
              "name": "fields.last_social_post_status",
              "type": "string",
              "value": "posted"
            },
            {
              "id": "post-response",
              "name": "fields.last_social_post_response",
              "type": "string",
              "value": "={{ $json.id }}"
            },
            {
              "id": "record-id",
              "name": "id",
              "type": "string",
              "value": "={{ $('Should Auto-Post?').item.json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "285d9b57-adf8-4a1a-9c78-892cf738ee95",
      "name": "Update Post Status",
      "type": "n8n-nodes-base.airtable",
      "position": [
        640,
        624
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appadCQdMQkDFd6Rh",
          "cachedResultUrl": "https://airtable.com/appadCQdMQkDFd6Rh",
          "cachedResultName": "N8n Content "
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblpcW1qthqHO1vik",
          "cachedResultUrl": "https://airtable.com/appadCQdMQkDFd6Rh/tblpcW1qthqHO1vik",
          "cachedResultName": "Content"
        },
        "columns": {
          "value": {
            "id": "={{ $json.id }}",
            "status": "posted",
            "last_social_post_status": "={{ $json.fields.last_social_post_status }}",
            "last_social_post_response": "={{ $json.fields.last_social_post_response }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "source_type",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "blog",
                  "value": "blog"
                },
                {
                  "name": "newsletter",
                  "value": "newsletter"
                },
                {
                  "name": "thread",
                  "value": "thread"
                },
                {
                  "name": "case_study",
                  "value": "case_study"
                },
                {
                  "name": "landing_page",
                  "value": "landing_page"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "source_type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "long_content",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "long_content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "primary_url",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "primary_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "brand",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "brand",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "target_platforms",
              "type": "array",
              "display": true,
              "options": [
                {
                  "name": "linkedin",
                  "value": "linkedin"
                },
                {
                  "name": "twitter",
                  "value": "twitter"
                },
                {
                  "name": "facebook",
                  "value": "facebook"
                },
                {
                  "name": "instagram",
                  "value": "instagram"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "target_platforms",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "buffer_profile_ids",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "buffer_profile_ids",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "pending",
                  "value": "pending"
                },
                {
                  "name": "processed",
                  "value": "processed"
                },
                {
                  "name": "posted",
                  "value": "posted"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ai_last_run_at",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "ai_last_run_at",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "last_social_post_status",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "last_social_post_status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "last_social_post_response",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "last_social_post_response",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ai_snippets_30_words",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Ai_snippets_30_words",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI_data_points",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI_data_points",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "AI_Quotes",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "AI_Quotes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ai_best_Snippets",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Ai_best_Snippets",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "bdd2b4a6-1b92-4114-8e14-2db2231e211e",
      "name": "OpenAI Chat Model - GPT-4o-mini",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1168,
        624
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "92884a35-b47b-419d-a6e9-6f3ef28e5293",
      "name": "Memory - Conversation Buffer",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -1040,
        624
      ],
      "parameters": {
        "sessionKey": "\"GEO Classify\"",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "b1424470-864d-4d65-a688-5c2a9515e877",
      "name": "Output Parser - Structured JSON",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -912,
        624
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"snippets_30_word\": [\n    \"November brought product improvements, customer insights, and roadmap clarity. Key focus: better onboarding, expanded integrations, and improved performance for scaling teams.\",\n    \"This month\u2019s update highlights new features, refined user workflows, and data-driven decisions helping BrandX customers succeed in real-world growth environments.\",\n    \"BrandX is doubling down on seamless integrations and smarter automation to prepare teams for 2026 workflows and beyond.\"\n  ],\n  \"data_points\": [\n    \"3 new integrations added this month\",\n    \"Onboarding speed improved by 22%\",\n    \"User retention uplift observed across self-serve teams\"\n  ],\n  \"quotes_insights\": [\n    \"Growth isn\u2019t about more features; it\u2019s about better experiences.\",\n    \"We build based on real customer behavior, not assumptions.\",\n    \"Integrations don\u2019t add value unless they remove friction.\"\n  ],\n  \"recommended_primary_snippet\": \"November brought product improvements, customer insights, and roadmap clarity. Key focus: better onboarding, expanded integrations, and improved performance for scaling teams.\"\n}\n"
      },
      "typeVersion": 1.3
    },
    {
      "id": "fa169b4a-7a9c-44a1-b877-13e3697e6613",
      "name": "AI Agent - Generate Snippets",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1120,
        400
      ],
      "parameters": {
        "text": "=Repurpose this content into highly re-usable, AI-ready social snippets that can be quoted by LinkedIn, Facebook, and AI search systems.\n\nBrand: {{$json[\"brand\"] || \"Unknown Brand\"}}\nTitle: {{$json[\"title\"] || \"Untitled\"}}\nSource Type: {{$json[\"source_type\"]}}\nOriginal URL (for context only): {{$json[\"primary_url\"]}}\n\nFull Content:\n{{$json[\"long_content\"]}}\n\nCreate:\n\n1. \"snippets_30_word\": 3\u20135 short, high-signal statements, EACH must be 30 words or less, and able to stand alone.\n2. \"data_points\": 3\u20135 bullets containing specific metrics, contrasts, or insights (infer where needed based on context).\n3. \"quotes_insights\": 3\u20135 short insights written in quote form \u2014 strong enough to post as inspirational or expert lines.\n4. \"recommended_primary_snippet\": Choose one of the 30-word snippets suitable as a social caption for LinkedIn or Facebook.\n\nStrict Rules:\n- Do NOT use emojis or hashtags.\n- Do NOT refer to the content as \u201cthis newsletter\u201d or \u201cthis article.\u201d\n- Do NOT include markdown format.\n- ONLY respond using VALID JSON that matches the schema exactly.\n",
        "options": {
          "systemMessage": "=You are a senior content strategist who repurposes long-form content into short, high-signal snippets optimized for:\n1. Social media distribution\n2. LLM search engines and AI overview systems\n\nYou always:\n- Focus on clarity, specificity, and usefulness\n- Avoid clickbait, filler, vague statements, or hype\n- Return snippets that stand alone as quotable insights\n- NEVER exceed 30 words for short snippets\n- ALWAYS return valid JSON only (no markdown, no commentary)\n\nFormat Requirements:\nReturn JSON in this EXACT structure:\n\n{\n  \"snippets_30_word\": [\n    \"string\",\n    \"string\",\n    \"string\"\n  ],\n  \"data_points\": [\n    \"string\",\n    \"string\",\n    \"string\"\n  ],\n  \"quotes_insights\": [\n    \"string\",\n    \"string\",\n    \"string\"\n  ],\n  \"recommended_primary_snippet\": \"string\"\n}\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.1
    },
    {
      "id": "52d30d92-814b-471c-8d56-4f65b00aafba",
      "name": "Notify Success in Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        640,
        352
      ],
      "parameters": {
        "text": "=\u2705 Post successfully published to Meta!\n\nAirtable ID:{{ $json.id }}\nPost ID:{{ $json.fields.last_social_post_response }}\nCaption:{{ $('Update Content Record').item.json.fields.title }} \nContent:{{ $('Update Content Record').item.json.fields.long_content }}\n",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C09GNB90TED",
          "cachedResultName": "general-information"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "a1db7337-574b-46a5-92b0-34d1f982af10",
      "name": "Prepare Post Data Facebook",
      "type": "n8n-nodes-base.set",
      "position": [
        -32,
        400
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "caption-field",
              "name": "caption",
              "type": "string",
              "value": "={{ $json.fields.Ai_snippets_30_words }}"
            }
          ]
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "0b425d85-f309-4022-beab-9aa7137ddafb",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1840,
        528
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a1fce549-25a1-4748-872f-65b171a2e588",
      "name": "Publish Article to Meta (Facebook Graph API)",
      "type": "n8n-nodes-base.facebookGraphApi",
      "position": [
        192,
        400
      ],
      "parameters": {
        "edge": "feed",
        "node": "me",
        "options": {
          "queryParameters": {
            "parameter": [
              {
                "name": "message",
                "value": "={{ $json.caption }}"
              },
              {
                "name": "access_token",
                "value": "="
              }
            ]
          }
        },
        "graphApiVersion": "v23.0",
        "httpRequestMethod": "POST"
      },
      "credentials": {
        "facebookGraphApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "52a46455-dd1c-4d1e-b585-b4ba9eb6d815",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1904,
        -400
      ],
      "parameters": {
        "width": 464,
        "height": 768,
        "content": "## AI-Ready Snippet Generator & Auto-Publisher \u2013 Overview\n\nThis workflow turns long-form content into short, high-signal social snippets using AI, updates the Airtable record, automatically posts the selected snippet to Meta (Facebook), and sends a success report to Slack. It helps content and marketing teams streamline social publishing with minimal manual effort.\n\n### How it works\n1. A daily schedule trigger loads all Airtable records marked as \u201cpending.\u201d\n2. Each item is processed in batches to avoid API limits.\n3. An AI Agent generates 30-word snippets, data points, quotes, and a recommended snippet.\n4. The structured output parser ensures the AI returns valid JSON only.\n5. The workflow updates Airtable with all generated snippet fields and marks the item as processed.\n6. If Facebook is selected as a target platform, the best snippet is posted automatically using the Meta Graph API.\n7. After posting, the workflow updates Airtable again with post results and sends a confirmation message to Slack.\n\n### Setup steps\n- Connect Airtable, Facebook Graph API, Slack, and OpenAI credentials.\n- Ensure Airtable fields match the workflow (snippets, status, timestamps).\n- Run a sample execution to verify content flow.\n\n### Customization\nAdjust snippet style, posting rules, scheduling frequency, or AI tone.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ed2758e2-0ce0-4f06-9630-96490ede42ad",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1920,
        416
      ],
      "parameters": {
        "color": 2,
        "width": 416,
        "height": 272,
        "content": "## Trigger & Fetch Items\nRuns every 15 minutes and loads all pending social posts from Airtable.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a7d31bfb-07e9-44a3-ba2a-a03d7d3679df",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1472,
        400
      ],
      "parameters": {
        "color": 2,
        "height": 304,
        "content": "## Process Each Item\nLoops through each pending post and prepares data for AI generation.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e4956df3-e4cc-4ba9-a71e-0a078a97a204",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1216,
        304
      ],
      "parameters": {
        "color": 2,
        "width": 416,
        "height": 464,
        "content": "## AI Snippet Generation\nCreates short, optimized social snippets using GPT-4o-mini.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6fc52ac8-8f3e-4ae0-827c-7c28913e4643",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -784,
        224
      ],
      "parameters": {
        "color": 2,
        "height": 336,
        "content": "## Format AI Output\nCleans and transforms AI text into Airtable-ready fields.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f52d1f3e-31bc-4083-90d4-55680dce8eaf",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -512,
        224
      ],
      "parameters": {
        "color": 2,
        "width": 208,
        "height": 336,
        "content": "## Update Airtable\nSaves all generated snippets, timestamps, and marks the record as processed.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "52051807-dd90-488b-bb22-e86e2d83d3d8",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -288,
        224
      ],
      "parameters": {
        "color": 2,
        "width": 592,
        "height": 336,
        "content": "## Auto-Post to Meta\nPosts the recommended snippet to Facebook when the target platform includes \"facebook.\"\n"
      },
      "typeVersion": 1
    },
    {
      "id": "00dd08c6-cd44-43c1-8dde-59c5d817e842",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        272
      ],
      "parameters": {
        "color": 2,
        "width": 432,
        "height": 512,
        "content": "## Post-Publish Actions\nUpdates Airtable with post results and sends a Slack success message.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "802e3a58-2e97-4e99-bc75-39ee0e7a45e5",
      "name": "Error Handling",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1920,
        1056
      ],
      "parameters": {
        "color": 2,
        "width": 584,
        "height": 276,
        "content": "## Error Handling\nCaptures workflow failures and sends details to Slack for quick debugging.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e7238de0-8d44-4a48-a5b0-434a0d84d4db",
      "name": "Error Handler Trigger",
      "type": "n8n-nodes-base.errorTrigger",
      "position": [
        -1776,
        1168
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "09c0c264-b682-4558-9b8a-7c0a2e19e019",
      "name": "Slack: Send Error Alert",
      "type": "n8n-nodes-base.slack",
      "position": [
        -1568,
        1168
      ],
      "parameters": {
        "text": "=\u26a0\ufe0f *Error in API Error Catalog Workflow*\n*Node:* {{ $json.node.name }}\n*Message:* {{ $json.error.message }}\n*Time:* {{ $json.timestamp }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9292d27a-611b-441b-8c49-d9fc0509d3b5",
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Fetch Pending Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Should Auto-Post?": {
      "main": [
        [
          {
            "node": "Prepare Post Data Facebook",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Update Post Status": {
      "main": [
        [
          {
            "node": "Split Content In Batches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Post Result": {
      "main": [
        [
          {
            "node": "Update Post Status",
            "type": "main",
            "index": 0
          },
          {
            "node": "Notify Success in Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Error Handler Trigger": {
      "main": [
        [
          {
            "node": "Slack: Send Error Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Pending Content": {
      "main": [
        [
          {
            "node": "Split Content In Batches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Content Record": {
      "main": [
        [
          {
            "node": "Should Auto-Post?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Content Update": {
      "main": [
        [
          {
            "node": "Update Content Record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify Success in Slack": {
      "main": [
        []
      ]
    },
    "Split Content In Batches": {
      "main": [
        [],
        [
          {
            "node": "AI Agent - Generate Snippets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Post Data Facebook": {
      "main": [
        [
          {
            "node": "Publish Article to Meta (Facebook Graph API)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Generate Snippets": {
      "main": [
        [
          {
            "node": "Prepare Content Update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Memory - Conversation Buffer": {
      "ai_memory": [
        [
          {
            "node": "AI Agent - Generate Snippets",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model - GPT-4o-mini": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Generate Snippets",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Output Parser - Structured JSON": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent - Generate Snippets",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Publish Article to Meta (Facebook Graph API)": {
      "main": [
        [
          {
            "node": "Prepare Post Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Automate your content repurposing workflow by transforming long-form articles, blogs, and newsletters into short, high-signal, AI-ready social media snippets. ✍️🤖 This workflow fetches pending content from Airtable, generates 30-word snippets, data points, and quote-style…

Source: https://n8n.io/workflows/11079/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This n8n-powered workflow automates the entire lifecycle of real estate lead intake, qualification, routing, assignment, and reporting across multiple channels. It brings WhatsApp inquiries and websit

Gmail, Typeform Trigger, WhatsApp Trigger +8
AI & RAG

Monitor daily brand visibility and reputation with an automated AI-powered mention tracker. 🔍🤖 This workflow checks Hacker News every morning for new stories matching your brand keyword, classifies ea

HTTP Request, Slack, OpenAI Chat +4
AI & RAG

Streamline management decision-making by automatically evaluating high-priority tenders, generating AI-powered executive summaries, and routing them for approval inside Slack. 🤖📩 This workflow pulls p

Output Parser Structured, OpenAI Chat, Memory Buffer Window +5
AI & RAG

Ensure suppliers never miss a follow-up by automating overdue purchase order tracking and scheduling. 📦⏰ This workflow checks Airtable every weekday morning for open POs older than seven days without

Airtable, Slack, Google Calendar +6
AI & RAG

Agent Nodes. Uses lmChatOpenAi, slack, stopAndError, errorTrigger. Event-driven trigger; 72 nodes.

OpenAI Chat, Slack, Stop And Error +12