{
  "name": "04 - Social Media AI Content Publisher",
  "nodes": [
    {
      "id": "node-1",
      "name": "Airtable Trigger - New Content Brief",
      "type": "n8n-nodes-base.airtableTrigger",
      "typeVersion": 1,
      "position": [240, 300],
      "credentials": { "airtableTokenApi": { "id": "YOUR_AIRTABLE_CREDENTIAL_ID", "name": "Airtable account" } },
      "parameters": {
        "baseId": { "__rl": true, "value": "YOUR_AIRTABLE_BASE_ID", "mode": "id" },
        "tableId": { "__rl": true, "value": "Content_Briefs", "mode": "name" },
        "triggerField": "Created",
        "additionalFields": {}
      }
    },
    {
      "id": "node-2",
      "name": "OpenAI - Generate LinkedIn Post",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1.8,
      "position": [480, 140],
      "credentials": { "openAiApi": { "id": "YOUR_OPENAI_CREDENTIAL_ID", "name": "OpenAI account" } },
      "parameters": {
        "resource": "chat",
        "operation": "complete",
        "modelId": { "__rl": true, "value": "gpt-4o", "mode": "list", "cachedResultName": "gpt-4o" },
        "messages": {
          "values": [{ "role": "user", "content": "=Write a professional LinkedIn post (max 1300 chars) about: {{ $json.topic }}. Include 5 hashtags. Voice: {{ $json.brand_voice }}." }]
        },
        "options": { "temperature": 0.8 }
      }
    },
    {
      "id": "node-3",
      "name": "OpenAI - Generate Twitter Thread",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1.8,
      "position": [480, 300],
      "credentials": { "openAiApi": { "id": "YOUR_OPENAI_CREDENTIAL_ID", "name": "OpenAI account" } },
      "parameters": {
        "resource": "chat",
        "operation": "complete",
        "modelId": { "__rl": true, "value": "gpt-4o", "mode": "list", "cachedResultName": "gpt-4o" },
        "messages": {
          "values": [{ "role": "user", "content": "=Write a 5-tweet Twitter/X thread (each under 280 chars) about: {{ $json.topic }}. Number them 1/, 2/ etc." }]
        },
        "options": { "temperature": 0.9 }
      }
    },
    {
      "id": "node-4",
      "name": "OpenAI - Generate Instagram Caption",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1.8,
      "position": [480, 460],
      "credentials": { "openAiApi": { "id": "YOUR_OPENAI_CREDENTIAL_ID", "name": "OpenAI account" } },
      "parameters": {
        "resource": "chat",
        "operation": "complete",
        "modelId": { "__rl": true, "value": "gpt-4o", "mode": "list", "cachedResultName": "gpt-4o" },
        "messages": {
          "values": [{ "role": "user", "content": "=Write an Instagram caption with emojis and 10 hashtags about: {{ $json.topic }}." }]
        },
        "options": { "temperature": 0.9 }
      }
    },
    {
      "id": "node-5",
      "name": "OpenAI - Generate Image (DALL-E)",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1.8,
      "position": [720, 300],
      "credentials": { "openAiApi": { "id": "YOUR_OPENAI_CREDENTIAL_ID", "name": "OpenAI account" } },
      "parameters": {
        "resource": "image",
        "operation": "create",
        "modelId": { "__rl": true, "value": "dall-e-3", "mode": "list", "cachedResultName": "dall-e-3" },
        "prompt": "=Professional social media image for: {{ $('Airtable Trigger - New Content Brief').item.json.topic }}. Modern corporate style, clean, no text.",
        "size": "1024x1024",
        "quality": "standard",
        "n": 1
      }
    },
    {
      "id": "node-6",
      "name": "Code - Compile All Content",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [960, 300],
      "parameters": {
        "jsCode": "const brief = $('Airtable Trigger - New Content Brief').first().json;\nreturn [{ json: {\n  topic: brief.topic,\n  linkedin: $('OpenAI - Generate LinkedIn Post').first().json.message.content,\n  twitter: $('OpenAI - Generate Twitter Thread').first().json.message.content,\n  instagram: $('OpenAI - Generate Instagram Caption').first().json.message.content,\n  image_url: $('OpenAI - Generate Image (DALL-E)').first().json.data[0].url,\n  generated_at: new Date().toISOString()\n} }];"
      }
    },
    {
      "id": "node-7",
      "name": "Airtable - Save to Content Calendar",
      "type": "n8n-nodes-base.airtable",
      "typeVersion": 2.1,
      "position": [1200, 300],
      "credentials": { "airtableTokenApi": { "id": "YOUR_AIRTABLE_CREDENTIAL_ID", "name": "Airtable account" } },
      "parameters": {
        "resource": "record",
        "operation": "create",
        "baseId": { "__rl": true, "value": "YOUR_AIRTABLE_BASE_ID", "mode": "id" },
        "tableId": { "__rl": true, "value": "Content_Calendar", "mode": "name" },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Topic": "={{ $json.topic }}",
            "LinkedIn": "={{ $json.linkedin }}",
            "Twitter": "={{ $json.twitter }}",
            "Instagram": "={{ $json.instagram }}",
            "Image URL": "={{ $json.image_url }}",
            "Status": "Ready to Schedule",
            "Generated At": "={{ $json.generated_at }}"
          }
        }
      }
    },
    {
      "id": "node-8",
      "name": "Slack - Notify Content Team",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [1440, 300],
      "credentials": { "slackApi": { "id": "YOUR_SLACK_CREDENTIAL_ID", "name": "Slack account" } },
      "parameters": {
        "resource": "message",
        "operation": "send",
        "channel": { "__rl": true, "value": "#content-team", "mode": "name" },
        "text": "=✅ New social content generated!\n*Topic:* {{ $json.topic }}\n*Platforms:* LinkedIn, Twitter, Instagram\n*Image:* {{ $json.image_url }}\nContent saved to Airtable — ready for review!",
        "otherOptions": {}
      }
    }
  ],
  "connections": {
    "Airtable Trigger - New Content Brief": {
      "main": [[
        { "node": "OpenAI - Generate LinkedIn Post", "type": "main", "index": 0 },
        { "node": "OpenAI - Generate Twitter Thread", "type": "main", "index": 0 },
        { "node": "OpenAI - Generate Instagram Caption", "type": "main", "index": 0 }
      ]]
    },
    "OpenAI - Generate LinkedIn Post": { "main": [[{ "node": "OpenAI - Generate Image (DALL-E)", "type": "main", "index": 0 }]] },
    "OpenAI - Generate Twitter Thread": { "main": [[{ "node": "OpenAI - Generate Image (DALL-E)", "type": "main", "index": 0 }]] },
    "OpenAI - Generate Instagram Caption": { "main": [[{ "node": "OpenAI - Generate Image (DALL-E)", "type": "main", "index": 0 }]] },
    "OpenAI - Generate Image (DALL-E)": { "main": [[{ "node": "Code - Compile All Content", "type": "main", "index": 0 }]] },
    "Code - Compile All Content": { "main": [[{ "node": "Airtable - Save to Content Calendar", "type": "main", "index": 0 }]] },
    "Airtable - Save to Content Calendar": { "main": [[{ "node": "Slack - Notify Content Team", "type": "main", "index": 0 }]] }
  },
  "settings": { "executionOrder": "v1" },
  "active": false,
  "tags": [{ "name": "Portfolio" }, { "name": "Marketing" }, { "name": "AI" }]
}
