AutomationFlowsAI & RAG › Create Comedic Marketing Reels with Sora2 & OpenAI

Create Comedic Marketing Reels with Sora2 & OpenAI

Original n8n title: Create Comedic Marketing Reels with Sora2, Openai & Auto-post to Social Media

ByAutomate With Marc @marconi on n8n.io

Create funny, ultra-realistic marketing reels on autopilot using n8n, Sora2, Blotato, and OpenAI. This beginner-friendly template generates a comedic video prompt, creates a 12-second Sora2 video, writes a caption, and auto-posts to Instagram/TikTok — all on a schedule.

Cron / scheduled trigger★★★★☆ complexityAI-powered20 nodesAgentOpenAI ChatMemory Buffer WindowData TableHTTP Request@Blotato/N8N Nodes BlotatoOpenAI
AI & RAG Trigger: Cron / scheduled Nodes: 20 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → Datatable 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": "R3YzGYGRE9MM0P9n",
  "name": "Comedic Marketing Reel & Autopost",
  "tags": [],
  "nodes": [
    {
      "id": "158e33d0-3d6c-4d07-9148-cc0952478134",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -224,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 19
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f1dc41ad-c448-4b5e-85ff-35d37de0255c",
      "name": "Video Prompt Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        112,
        0
      ],
      "parameters": {
        "text": "Generate an effective video prompt for a comedy reel promoting Sally's Coffee",
        "options": {
          "systemMessage": "=You are a Text-to-Video Prompt Generator Agent that creates ultra-realistic, short 12-second video prompts for OpenAI Sora2.\nEach video must feel like a cinematic short film or viral reel, with humor that feels natural, situational, and modern \u2014 not slapstick.\nThe purpose of each video is to promote \u201cSally\u2019s Coffee\u201d, a local, friendly coffee shop known for unique drinks like its Nutella Cinnamon Latte.\n\n\ud83c\udfaf Your Objective\n\nGenerate one vivid, self-contained text-to-video prompt that:\n\nDescribes the scene, setting, lighting, tone, and camera style\n\nIncludes realistic human dialogue with funny, relatable moments\n\nEnds with a short spoken or written caption promoting Sally\u2019s Coffee\n\nIs short enough for a 12-second reel (tight pacing)\n\nLooks as real as possible (avoid cartoonish or surreal scenes)\n\n\u2699\ufe0f Rules\n\nOutput only the final text-to-video prompt.\n\nDo not include explanations, annotations, or formatting.\n\nAvoid brand slogans that sound forced \u2014 keep humor subtle and human.\n\nAlways integrate the brand naturally in dialogue or visuals.\n\nEnsure video looks like a real camera-recorded scene (handheld, cinematic, or bodycam if relevant).\n\n\ud83d\udca1 Example Output\n\nUltra-realistic 12-second short film, police bodycam footage style, daytime suburban street.\nA police officer walks up to a car window, camera shakes slightly.\nOfficer (serious tone): \u201cYou know why I pulled you over?\u201d\nDriver (a little confused): \"No officer\"\nOfficer: \u201cYou look like you need a cup of Sally\u2019s Nutella Cinnamon Latte. Just head down Lincoln, it\u2019s right on the corner \u2014 you can thank me later.\u201d\nBig title /commercial to end off on screen: \u201cYou gotta start your day with Sally\u2019s.\u201d"
        },
        "promptType": "define"
      },
      "typeVersion": 3
    },
    {
      "id": "3d342bb4-7ca2-4ae4-b790-ef7d100d19a3",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        80,
        208
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5",
          "cachedResultName": "gpt-5"
        },
        "options": {
          "timeout": 6000000
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "75024a29-704b-40b7-aa7f-358bac3eea52",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        224,
        208
      ],
      "parameters": {
        "sessionKey": "={{ $execution.id }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "145c2a6e-92ed-4498-bbf9-5f2fb9ecfb64",
      "name": "Insert row",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        560,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "Video_Prompt": "={{ $json.output }}"
          },
          "schema": [
            {
              "id": "Video_Prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Video_Prompt",
              "defaultMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Video_Prompt"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "WllAiOHjO4I5b1IH",
          "cachedResultUrl": "/projects/IeB6bpnkXkUlj9NH/datatables/WllAiOHjO4I5b1IH",
          "cachedResultName": "Demo Sally's Coffee"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a552731a-002b-4177-bb29-f8549c1fcef3",
      "name": "Sora2 POST Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        768,
        0
      ],
      "parameters": {
        "url": "https://api.wavespeed.ai/api/v3/openai/sora-2/text-to-video",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "duration",
              "value": "12"
            },
            {
              "name": "prompt",
              "value": "={{ $json.Video_Prompt }}"
            },
            {
              "name": "size",
              "value": "720*1280"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.3
    },
    {
      "id": "bbba0cd9-ec56-48bc-8dd3-b315f5a3f6dd",
      "name": "Wait 30 Secs",
      "type": "n8n-nodes-base.wait",
      "position": [
        976,
        0
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "d0fdfbd2-6d6c-4c82-9824-b7ac60e571b2",
      "name": "GET Sora2 Result",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1184,
        0
      ],
      "parameters": {
        "url": "=https://api.wavespeed.ai/api/v3/predictions/{{ $json.data.id }}/result",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.3
    },
    {
      "id": "21ec9866-1ecd-41cc-8696-211cfb69404e",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        1392,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "0bf58770-7c0b-42c0-9e9c-05e150e46c7b",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.data.status }}",
              "rightValue": "completed"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "12871eb5-c334-4b4a-97a9-a2d20bed1975",
      "name": "Wait Another 30 Secs",
      "type": "n8n-nodes-base.wait",
      "position": [
        1328,
        240
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "10c63d69-d3de-4195-b71e-3d495666f183",
      "name": "Upload media",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1600,
        -96
      ],
      "parameters": {
        "mediaUrl": "={{ $json.data.outputs[0] }}",
        "resource": "media"
      },
      "typeVersion": 2
    },
    {
      "id": "2dd919f1-ff88-4988-bd2b-5cf5228d93b2",
      "name": "Create post",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        2160,
        -96
      ],
      "parameters": {
        "options": {},
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "7680",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/7680",
          "cachedResultName": "automatewithmarc"
        },
        "postContentText": "={{ $json.output[0].content[0].text }}",
        "postContentMediaUrls": "={{ $('Upload media').item.json.url }}"
      },
      "typeVersion": 2
    },
    {
      "id": "bbbb41cd-1305-442d-bb67-da6ea9c93915",
      "name": "Caption Generator",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1808,
        -96
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4",
          "cachedResultName": "GPT-4"
        },
        "options": {},
        "responses": {
          "values": [
            {
              "content": "Generate an Instagram/Tik Tok Caption for Sally's Coffee"
            },
            {
              "role": "system",
              "content": "You're an Instagram Caption Writer Agent. Your job is to create effective Instagram or Tik Tok captions for Sally's Coffee, a local neighborhood brand. Include relevant hastags."
            }
          ]
        },
        "builtInTools": {}
      },
      "typeVersion": 2
    },
    {
      "id": "209468ed-cc8b-436a-bdef-f9edaad4b1e4",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -384,
        -240
      ],
      "parameters": {
        "color": 2,
        "width": 368,
        "height": 896,
        "content": "Schdeule Trigger"
      },
      "typeVersion": 1
    },
    {
      "id": "b5dc7759-ff94-4598-90d6-42261b5c4bb8",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -240
      ],
      "parameters": {
        "color": 4,
        "width": 496,
        "height": 896,
        "content": "Video Generation"
      },
      "typeVersion": 1
    },
    {
      "id": "4df214af-e42d-410e-b065-abe8b1058fb2",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        -240
      ],
      "parameters": {
        "width": 208,
        "height": 896,
        "content": "Logging"
      },
      "typeVersion": 1
    },
    {
      "id": "f82cb2d3-0813-4db1-bad1-99164784956b",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        -240
      ],
      "parameters": {
        "color": 5,
        "width": 816,
        "height": 896,
        "content": "POST and GET from Sora2"
      },
      "typeVersion": 1
    },
    {
      "id": "82ca2f23-0049-4138-ae7a-5d5e0b3e54b3",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1568,
        -240
      ],
      "parameters": {
        "color": 3,
        "width": 816,
        "height": 896,
        "content": "Upload to Bloatato (Instagram & Tik Tok)"
      },
      "typeVersion": 1
    },
    {
      "id": "1e9cc0ec-cd70-4fb0-acab-5d51219fc9b5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1376,
        -176
      ],
      "parameters": {
        "width": 944,
        "height": 800,
        "content": "Funny Marketing Reels Autopilot with Sora2 and Blotato\n\nTurn one n8n workflow into your always-on, funny short-form marketing machine. This template automatically generates a comedic video idea, turns it into a Sora2 video, writes a social caption, and auto-posts to your chosen social account via Blotato \u2013 all on a schedule you control.\n\nWatch Step by Step Tutorial of this build: https://www.youtube.com/watch?v=lKZknEzhivo\n\nWhat this template does\n\nTriggers on a schedule (e.g. every day at 7pm) to create a new short comedic reel.\nUses an AI \u201cVideo Prompt Agent\u201d to generate an ultra-realistic 12-second text-to-video prompt designed to promote a coffee shop (you can adapt this to your own brand).\nSends the prompt to Sora2 (via Wavespeed) to generate a 720\u00d71280 vertical video.\nWaits and polls the Sora2 prediction endpoint until the video is ready.\nUploads the generated video file to Blotato.\nGenerates a platform-ready Instagram/TikTok caption with hashtags using an AI Caption Generator.\nCreates and schedules/publishes a post via Blotato using the new video + caption.\nLogs each generated video prompt into an n8n Data Table for tracking and reuse.\n\nTypical use cases\nLocal cafes, stores, or service businesses that want consistent, funny reels promoting daily specials or signature products.\nCreators and agencies who want to prototype \u201cAI-first\u201d social content pipelines for clients.\nMarketing teams testing comedic content formats without manually scripting, editing, and posting every day.\n\nKey tools and integrations\n\nSchedule Trigger (n8n) \u2013 runs the workflow at your preferred time.\nOpenAI Chat / LangChain Agent \u2013 generates vivid, cinematic Sora2 prompts with natural dialogue.\nWavespeed + Sora2 \u2013 creates short vertical videos from the AI prompt.\nn8n Data Table \u2013 logs each video prompt for audit and inspiration.\nOpenAI (caption model) \u2013 writes social-friendly, hashtag-ready captions.\nBlotato \u2013 uploads media and auto-posts to Instagram, TikTok, or other connected accounts.\n\nBefore you start\nAdd or configure your OpenAI API credentials in n8n.\nAdd or configure your Wavespeed/Sora2 credentials and base URL.\nSet up Blotato, connect your social accounts, and add your Blotato API credentials.\n(Optional) Update the Data Table ID to your own table for logging prompts.\nReview all AI prompts in the nodes to align with your brand voice and content policies.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5e52c235-11d4-42dc-90cf-6d8d5d29a43f",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -976,
        -544
      ],
      "parameters": {
        "width": 528,
        "height": 336,
        "content": "@[youtube](lKZknEzhivo)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "6dbd6c71-3f6b-4ffb-a06e-ce951c1352cd",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Upload media",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait Another 30 Secs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Insert row": {
      "main": [
        [
          {
            "node": "Sora2 POST Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload media": {
      "main": [
        [
          {
            "node": "Caption Generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 30 Secs": {
      "main": [
        [
          {
            "node": "GET Sora2 Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Video Prompt Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "GET Sora2 Result": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Video Prompt Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Caption Generator": {
      "main": [
        []
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Video Prompt Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Sora2 POST Request": {
      "main": [
        [
          {
            "node": "Wait 30 Secs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Video Prompt Agent": {
      "main": [
        [
          {
            "node": "Insert row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Another 30 Secs": {
      "main": [
        [
          {
            "node": "GET Sora2 Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

Create funny, ultra-realistic marketing reels on autopilot using n8n, Sora2, Blotato, and OpenAI. This beginner-friendly template generates a comedic video prompt, creates a 12-second Sora2 video, writes a caption, and auto-posts to Instagram/TikTok — all on a schedule.

Source: https://n8n.io/workflows/10786/ — 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 workflow is designed for: Content creators and marketers E-commerce and product-based businesses Agencies producing social media visuals and videos Automation builders looking for AI-powered crea

HTTP Request, Edit Image, Google Drive +7
AI & RAG

This workflow is for beauty salons who want consistent, high‑quality social media content without writing every post manually. It also suits agencies and automation builders who manage multiple beauty

Telegram, Google Sheets Trigger, Agent +26
AI & RAG

Content marketers and SEO specialists who need to generate multiple SEO-optimized articles targeting keyword variations. Ideal for affiliate sites, niche blogs, or service-based businesses creating lo

Agent, Memory Buffer Window, OpenAI Chat +7
AI & RAG

This workflow automates end-to-end sustainability lifecycle management for corporate sustainability teams, ESG governance officers, and circular economy programme leads. It addresses the challenge of

Form Trigger, Agent, OpenAI Chat +11
AI & RAG

Template Name: AI Personal Assistant - Task & Email Management Price: $27 Category: Productivity & Automation Difficulty: Intermediate Use Case: Personal productivity automation for busy professionals

Telegram, HTTP Request, OpenAI +8