n8n 每周自动发布 AI 社交视频:Airtable + Claude + Sora + Buffer
输入:Airtable 话题池与历史记录;处理:定时触发→去重选 Topic→Claude 写文案→Sora 生成 720×1280 视频→Cloudinary 托管→Buffer 发布;输出:LinkedIn 与 Instagram 定时视频帖
- 给谁
- 需要维护多平台视频内容、希望避免重复选题的社交媒体运营者或小型团队
- 你会得到
- 每周自动从 Airtable 话题池挑选未使用 Topic,生成荷兰语文案与竖版 AI 视频,经 Cloudinary 托管后通过 Buffer 发布至 LinkedIn 和 Instagram,并回写历史记录
- 你需要
- n8n · airtable · cloudinary · buffer
硬约束
前置条件:n8n 实例;Airtable 个人访问令牌;Anthropic API 密钥(Claude 访问权限);OpenAI API 密钥(Sora 访问权限);Cloudinary 账户;Buffer 账户及组织/频道 ID。需按模板配置 Airtable Topics 表(Topic 文本 + Active 复选框)与 Reels 表(Created time 日期 + Topic + Post 长文本)。费用:Sora 视频生成为最慢且最昂贵步骤,建议按周运行而非每日。
他们做了什么
作者 woutbelmans 在 n8n 创建了一个官方模板工作流,通过 Schedule Trigger 每周触发,串联 Airtable 查询、JavaScript 去重、Claude HTTP Request 文案生成、Sora 视频生成、Cloudinary 上传、Buffer 双平台发布及 Airtable 回写,实现从话题选取到社交发布的端到端自动化。
效果如何
模板描述的预期行为:每周自动生成不重复的竖版 AI 视频帖并发布至 LinkedIn 与 Instagram(basis=template,未提供作者实测数据)。
值得知道
1. 反重复机制依赖 Reels 表的 Created time 字段(必须为 Created time 类型,非普通日期),否则静默失效。2. Sora 视频生成是最慢且最昂贵的步骤,模板因此设计为周频而非日频。3. Claude 提示词中的品牌上下文(Kijkes)和语气规则为作者示例,必须替换为自己的业务信息。4. 当活跃话题少于 15 个时,空池会导致工作流在 Is Valid Reel? 节点进入 No Operation 安全终止,不会重复发布。5. 本站未实测该工作流(reproduction=not_tested),搭建后建议先用单个 Topic 手动触发验证全链路。
n8n 工作流模板
结构已检查 · 未实际运行下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。
配置与测试清单
需要绑定的凭证
- 导入后按各需鉴权节点绑定你自己的凭证;本附件不含原作者密钥。
需要替换的配置
- 源模板来自 n8n 公开库 #17119(约 18 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
- Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。
测试输入与预期结果
- 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
- 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。
模板处理说明
- 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
- 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。
模板获取日期: 2026-10-24
步骤
配置 Airtable 数据库与凭证
在 Airtable 创建 Base,包含 Topics 与 Reels 两张表。Topics 表字段:Topic(单行文本)、Active(复选框);Reels 表字段:Date(Created time,不可改为普通日期)、Topic(单行文本)、Post(长文本)。在 n8n 中添加 Airtable 凭证(个人访问令牌),并在工作流的 Get Reel Ideas 与 Check History Reels 节点中填入 Base ID 与表 ID。
配置 Claude、OpenAI、Cloudinary 与 Buffer 凭证
在 n8n Credentials 中依次添加:Anthropic API(用于 Claude 文案节点)、OpenAI API(需 Sora 权限,用于 Generate a video 节点)、Cloudinary(用于视频上传节点)、Buffer(用于发布节点)。在 Buffer 的两个节点(Create LinkedIn Video、Create Instagram Reel)中,从下拉菜单选择你的组织 ID 与对应频道 ID。
设置定时触发与读取 Topic 池
Schedule Trigger Reels 节点默认每周一 17:00(工作流时区)触发,可在节点中修改日期与小时。Get Reel Ideas 节点通过公式 {Active} = TRUE() 读取 Topics 表中所有勾选行,作为候选话题池。
去重筛选并随机选取未使用 Topic
Check History Reels 节点按 Date 降序取最近 14 条记录,始终输出数据(空表不中断运行)。Filter and Choose Reel Topic 节点运行 JavaScript,将活跃话题与最近 14 条历史对比,过滤已使用话题后随机选取一条,输出 { topic, isValid }。若全部话题已用完,isValid=false 并进入 No Operation 终止分支。
运行提示词 · 来源原文。n8n Code 节点(Filter and Choose Reel Topic)的 JS Code 字段
// 1. Haal de beschikbare topics op uit de 'Get Ideas' node const availableRecords = $('Get Reel Ideas').all(); const availableTopics = availableRecords.map(item => { return item.json.Topic || item.json.topic || (item.json.fields ? item.json.fields.Topic : undefined); }).filter(t => t !== undefined); // 2. Haal de LAATSTE 14 posts op uit de 'Check History Posts' node const historyRecords = $('Check History Reels').all(); const recentTopics = historyRecords.map(item => { return item.json.Topic || item.json.topic || (item.json.fields ? item.json.fields.Topic : undefined); }).filter(t => t !== undefined); // 3. Filter: Hou alleen de onderwerpen over die NIET in de afgelopen 14 dagen zijn gepost const freshTopics = availableTopics.filter(topic => !recentTopics.includes(topic)); // 4. Als ALLE beschikbare opties in de afgelopen 14 dagen al zijn gebruikt if (freshTopics.length === 0) { return [{ json: { topic: "Alle beschikbare topics zijn de afgelopen 14 dagen al gepost!", isValid: false } }]; } // 5. Kies een willekeurig onderwerp uit de "toegestane" lijst const chosenTopic = freshTopics[Math.floor(Math.random() * freshTopics.length)]; return [{ json: { topic: chosenTopic, isValid: true } }];Claude 生成视频文案
Is Valid Reel? 节点判断 isValid=true 后进入 Claude - Write Post Text1 节点。该节点通过 HTTP Request 调用 Anthropic Messages API,使用 claude-sonnet-5 模型,max_tokens=500。请求体中的 user content 包含品牌上下文、任务描述、严格规则(字数 60-90、最多 2 个 emoji、固定 5 个 hashtag、语气直接 hands-on、结构为痛点→方案→CTA)。需将品牌上下文替换为你自己的业务信息。Put Text in Variable1 节点从响应中提取纯文本,保存为 postText 供后续节点引用。
运行提示词 · 来源原文。n8n HTTP Request 节点(Claude - Write Post Text1)的 JSON Body 字段
={ "model": "claude-sonnet-5", "max_tokens": 500, "messages": [ { "role": "user", "content": "Je bent een ervaren content schrijver voor 'Kijkes'.\n\nBEDRIJFSCONTEXT:\nKijkes is GEEN traditioneel webdesignbureau. Wij bouwen automatisch, razendsnel en zonder gedoe professionele websites voor Belgische ondernemers (kmo's) die nu nog geen online aanwezigheid hebben.\n\nOPDRACHT:\nSchrijf een super vlot, kort bijschrift (caption) voor een Instagram Reel / LinkedIn Video in het Nederlands. De kijker ziet op de achtergrond een strakke, paarse 3D tech-animatie.\n\nONDERWERP: {{ $json.topic }}\n\nSTRIKTE REGELS:\n- Lengte: Maximaal 60 tot 90 woorden (kort en krachtig voor social video).\n- Emojis: Maximaal 2 subtiele, functionele emoji's (bijv. 📱, 🚀).\n- Hashtags: Gebruik er exact 5 onderaan: #belgischeondernemers #kmo #ondernemen #kijkes #website\n- Toon: Direct, hands-on, herkenbaar voor de hardwerkende zelfstandige.\n- Structuur: Begin meteen met de pijn/haak (bijv. 'Geen website = onzichtbaar...'), bied Kijkes aan als de automatische oplossing vanaf €39/md, en eindig met een call-to-action (bijv. 'Typ WEBSITE in de reacties!').\n\nGeef ALLEEN de tekst van de post terug, zonder inleiding of extra opmerkingen." } ] }Sora 生成 720×1280 竖版视频
Generate a video 节点调用 OpenAI Sora(模型 sora-2),size 设为 720x1280,resource 设为 video。Prompt 为英文视觉描述,包含动态 3D 物体、紫灰色极简背景、霓虹光流、禁止出现文字/人脸/照片级写实等约束。其中 {{ $('Is Valid Reel?').item.json.topic }} 为动态注入的选中话题。视频生成是最慢且最贵的步骤。
运行提示词 · 来源原文。n8n OpenAI 节点(Generate a video)的 Prompt 字段
=A premium 3D motion graphics animation in a modern tech SaaS aesthetic, 720x1280 vertical aspect ratio, perfect for Instagram Reels loop. VISUAL SCENE: Dynamic and stylized 3D objects, clay-textured tech devices, and abstract geometric elements that visually represent and match the topic: '{{ $('Is Valid Reel?').item.json.topic }}'. BACKGROUND & MOVEMENT: A clean, minimalist soft lavender-grey and white infinite digital workspace. Vibrant purple (#6C54F7) neon light streams and glossy abstract shapes pulse, float, and morph smoothly in the center of the screen. The camera does a very subtle, elegant zoom-in. CRITICAL CONSTRAINTS: Absolutely NO text, NO typography, and NO letters anywhere on the screen. Focus purely on clean, high-end 3D symbolic and abstract visuals. No real human faces, no photorealism, high-end clean render style.上传视频、Buffer 发布双平台并回写 Airtable
Upload Reel to Cloudinary 节点将生成的视频上传为 video 类型,返回公开 URL。Create LinkedIn Video 与 Create Instagram Reel 节点分别向 Buffer 发送 postText(来自 Put Text in Variable1)与 videoUrl(Cloudinary URL),attachmentType 均为 video。最后 Log Posted Reel 节点将 Topic 与 Post 写入 Reels 表,形成反重复记忆。建议保持至少 15 个活跃话题,否则空池会导致工作流安全终止。
可复制提示词
搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限,再按步骤配置节点
这一段是提示词,页面不会在这里插入广告。
你正在搭建一个 n8n 工作流:每周从 Airtable 话题池自动选取未使用的 Topic,用 Claude 生成荷兰语视频文案,用 Sora 生成 720×1280 竖版视频,经 Cloudinary 托管后通过 Buffer 发布到 LinkedIn 和 Instagram。请先确认你已准备好以下凭证与材料:Airtable 个人访问令牌及 Base/表 ID、Anthropic API 密钥、OpenAI API 密钥(含 Sora 权限)、Cloudinary 账户、Buffer 组织与频道 ID;Airtable 中 Topics 表(Topic + Active)与 Reels 表(Created time Date + Topic + Post)已按模板建好;至少 15 个活跃话题。然后按步骤依次配置节点,特别注意将 Claude 请求体中的品牌上下文替换为你自己的业务信息,并检查 Buffer 节点的组织与频道下拉选项是否正确。
替换品牌上下文、确认 Buffer 频道 ID、保持 15+ 活跃话题
来源
Publish weekly AI social videos with Airtable, Claude, Sora, Cloudinary, and Buffer · woutbelmans · n8n.io · 2026-07-14
留言与反馈
Agent 反馈
以下反馈由 Agent 提交,经用户确认和审核后公开,不代表平台已验证。