Airtable + WordPress: publish posts with approvals
Publishing content shouldn’t feel like herding cats. But when drafts live in docs, approvals live in Slack, images live in Drive, and WordPress is the final “please don’t mess this up” step, things slip.
This Airtable WordPress approvals automation hits Content Managers hardest, because they own the calendar and the deadlines. SEO leads feel it too. And agency teams juggling multiple client blogs? They usually get the worst of it.
This workflow turns Airtable into your content command center, adds clear human review gates, then publishes to WordPress with backups so you can ship faster without losing control.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Airtable + WordPress: publish posts with approvals
flowchart LR
subgraph sg0["Create New Topic Flow"]
direction LR
n0@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check inputs", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser4", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Initial Research", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Limit To First Item", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Status & Confirmation", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Chapters"]
n7@{ icon: "mdi:cog", form: "rounded", label: "Wait To Delete Content Process", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Content Process IDs", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Content IDs", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Chapter Process IDs", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Chapters Process", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Chapters", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Chapter IDs", pos: "b", h: 48 }
n14@{ icon: "mdi:cog", form: "rounded", label: "Wait To Delete Chapters Proc..", pos: "b", h: 48 }
n15@{ icon: "mdi:cog", form: "rounded", label: "Wait To Delete Chapter", pos: "b", h: 48 }
n16@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update New Topic", pos: "b", h: 48 }
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Settings"]
n18["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Create New Topic"]
n19["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Confirm Topic"]
n20["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Get Topic"]
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out All Records", pos: "b", h: 48 }
n22@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Status", pos: "b", h: 48 }
n23@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n24@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Chapters", pos: "b", h: 48 }
n25@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Content", pos: "b", h: 48 }
n26@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Content Process", pos: "b", h: 48 }
n27@{ icon: "mdi:cog", form: "rounded", label: "Wait To Save Chapters", pos: "b", h: 48 }
n28["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Settings"]
n29["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Content - De.."]
n30["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Generate Content"]
n31["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Content"]
n32["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Generate Content - .."]
n33@{ icon: "mdi:cog", form: "rounded", label: "Wait To Delete Generate Cont..", pos: "b", h: 48 }
n34["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Chapters"]
n35["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Chapters - D.."]
n36["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Generate Chapters"]
n37["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Generate Chapters -.."]
n38["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Chapters - C.."]
n39@{ icon: "mdi:cog", form: "rounded", label: "Wait To Create Record", pos: "b", h: 48 }
n40@{ icon: "mdi:cog", form: "rounded", label: "Wait For AI APIs", pos: "b", h: 48 }
n41["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Finalize Post"]
n42@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Post IDs", pos: "b", h: 48 }
n43@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Records", pos: "b", h: 48 }
n44["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Finalize Post - Del.."]
n45@{ icon: "mdi:cog", form: "rounded", label: "Wait To Delete Post", pos: "b", h: 48 }
n46["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Create Topic - Upda.."]
n197@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Records1", pos: "b", h: 48 }
n198@{ icon: "mdi:cog", form: "rounded", label: "Wait To Delete Post1", pos: "b", h: 48 }
n199["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Chapter Image"]
n200@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Image IDs", pos: "b", h: 48 }
n201["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Chapter Image - Del.."]
n203@{ icon: "mdi:cog", form: "rounded", label: "Message a model in Perplexity", pos: "b", h: 48 }
n17 --> n0
n0 --> n2
n19 --> n16
n22 --> n4
n42 --> n43
n23 --> n6
n200 --> n197
n18 --> n20
n2 --> n40
n40 --> n24
n40 --> n38
n6 --> n27
n28 --> n17
n25 --> n32
n43 --> n44
n3 -.-> n2
n13 --> n12
n9 --> n25
n20 --> n21
n12 --> n37
n197 --> n201
n24 --> n23
n4 --> n5
n45 --> n43
n198 --> n197
n21 --> n22
n39 --> n46
n27 --> n23
n199 --> n200
n41 --> n42
n15 --> n12
n31 --> n8
n34 --> n10
n16 --> n28
n16 --> n41
n16 --> n30
n16 --> n31
n16 --> n34
n16 --> n36
n16 --> n199
n30 --> n9
n26 --> n29
n10 --> n11
n8 --> n26
n1 -.-> n2
n36 --> n13
n11 --> n35
n5 --> n19
n203 -.-> n2
n7 --> n26
n14 --> n11
n33 --> n25
n44 --> n45
n201 --> n198
n29 --> n7
n38 --> n39
n35 --> n14
n32 --> n33
n37 --> n15
end
subgraph sg1["Select Chapters Flow"]
direction LR
n47@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n48@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model4", pos: "b", h: 48 }
n49@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n50@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update Status", pos: "b", h: 48 }
n51@{ icon: "mdi:robot", form: "rounded", label: "Researcher", pos: "b", h: 48 }
n52@{ icon: "mdi:robot", form: "rounded", label: "Copywriter", pos: "b", h: 48 }
n53@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update Data", pos: "b", h: 48 }
n54@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Status And Confirmation", pos: "b", h: 48 }
n55@{ icon: "mdi:cog", form: "rounded", label: "Limit To First In Progress T..", pos: "b", h: 48 }
n56["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Chapters Upd.."]
n57@{ icon: "mdi:cog", form: "rounded", label: "Wait To Save Content", pos: "b", h: 48 }
n58["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Parse Chapters"]
n59["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Select Chapters Trigger"]
n60@{ icon: "mdi:cog", form: "rounded", label: "Limit Inbound Links", pos: "b", h: 48 }
n61["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Post Sitemap"]
n62@{ icon: "mdi:cog", form: "rounded", label: "Get XML File", pos: "b", h: 48 }
n63@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Links", pos: "b", h: 48 }
n64@{ icon: "mdi:cog", form: "rounded", label: "Aggregate internal links", pos: "b", h: 48 }
n65@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n66["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Chapters1"]
n67@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Chapters1", pos: "b", h: 48 }
n68@{ icon: "mdi:cog", form: "rounded", label: "Limit To First Item1", pos: "b", h: 48 }
n69["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Settings1"]
n70["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Settings1"]
n71["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Get Topic1"]
n72["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Chapters1"]
n73["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Content1"]
n74["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Generate Content1"]
n130@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch Deep Research", pos: "b", h: 48 }
n131@{ icon: "mdi:cog", form: "rounded", label: "Wait2", pos: "b", h: 48 }
n132@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser3", pos: "b", h: 48 }
n133@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model2", pos: "b", h: 48 }
n134@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model3", pos: "b", h: 48 }
n135@{ icon: "mdi:cog", form: "rounded", label: "Wait4", pos: "b", h: 48 }
n136@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n137@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Chapter", pos: "b", h: 48 }
n138@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Sub-Chapter", pos: "b", h: 48 }
n139@{ icon: "mdi:swap-vertical", form: "rounded", label: "Subchapters Output", pos: "b", h: 48 }
n140@{ icon: "mdi:robot", form: "rounded", label: "Subchapter Researcher", pos: "b", h: 48 }
n141@{ icon: "mdi:robot", form: "rounded", label: "Subchapter Copywriter", pos: "b", h: 48 }
n142@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Subchapters", pos: "b", h: 48 }
n143@{ icon: "mdi:swap-vertical", form: "rounded", label: "Get Title Chapter and Content", pos: "b", h: 48 }
n144@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out1", pos: "b", h: 48 }
n145@{ icon: "mdi:cog", form: "rounded", label: "Wait To Save Content1", pos: "b", h: 48 }
n146["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Generate Content2"]
n147["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code"]
n148@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update Data1", pos: "b", h: 48 }
n149["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Chapters Upd.."]
n150["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Content3"]
n151@{ icon: "mdi:cog", form: "rounded", label: "Aggregate1", pos: "b", h: 48 }
n204@{ icon: "mdi:cog", form: "rounded", label: "Message a model in Perplexity2", pos: "b", h: 48 }
n205@{ icon: "mdi:cog", form: "rounded", label: "Message a model in Perplexity1", pos: "b", h: 48 }
n147 --> n146
n131 --> n143
n135 --> n141
n136 --> n139
n69 --> n61
n49 --> n67
n151 --> n150
n52 --> n74
n51 --> n52
n144 --> n137
n62 --> n63
n58 --> n130
n63 --> n60
n61 --> n62
n137 --> n151
n137 --> n142
n66 --> n58
n70 --> n69
n65 -.-> n51
n133 -.-> n140
n134 -.-> n141
n48 -.-> n52
n139 --> n147
n71 --> n55
n60 --> n64
n67 --> n73
n67 --> n51
n53 --> n56
n68 --> n54
n130 --> n144
n130 --> n49
n57 --> n67
n148 --> n149
n138 --> n137
n138 --> n140
n142 --> n138
n141 --> n131
n140 --> n135
n145 --> n138
n50 --> n71
n59 --> n68
n64 --> n66
n73 --> n53
n150 --> n148
n47 -.-> n52
n72 --> n50
n132 -.-> n141
n74 --> n57
n146 --> n145
n54 --> n72
n143 --> n136
n205 -.-> n51
n204 -.-> n140
n55 --> n70
end
subgraph sg2["Airtable Select Content Flow"]
direction LR
n75@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update Airtable", pos: "b", h: 48 }
n76["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge3"]
n77["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>New Chapters"]
n78@{ icon: "mdi:robot", form: "rounded", label: "Blog Planner", pos: "b", h: 48 }
n79@{ icon: "mdi:swap-vertical", form: "rounded", label: "Get Planner Output", pos: "b", h: 48 }
n80@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Status And Confirmation", pos: "b", h: 48 }
n81["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Content Trig.."]
n82["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Generated Content"]
n83@{ icon: "mdi:cog", form: "rounded", label: "Upload featured image to Drive", pos: "b", h: 48 }
n84@{ icon: "mdi:cog", form: "rounded", label: "Resize featured image", pos: "b", h: 48 }
n85@{ icon: "mdi:cog", form: "rounded", label: "Wait To Upload Image", pos: "b", h: 48 }
n86["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Content - Up.."]
n87@{ icon: "mdi:cog", form: "rounded", label: "Wait To Save Post", pos: "b", h: 48 }
n88@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Empty Output", pos: "b", h: 48 }
n89@{ icon: "mdi:cog", form: "rounded", label: "Create Drive Folder", pos: "b", h: 48 }
n90@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out chapters", pos: "b", h: 48 }
n91@{ icon: "mdi:cog", form: "rounded", label: "Resize Chapter Image", pos: "b", h: 48 }
n92["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload Chapter Image"]
n93@{ icon: "mdi:cog", form: "rounded", label: "Upload Chapter Image To Drive", pos: "b", h: 48 }
n94["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge Chapter Image Data"]
n95["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Combine Into Article"]
n96@{ icon: "mdi:swap-vertical", form: "rounded", label: "Final Article In Markdown", pos: "b", h: 48 }
n97["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/markdown.dark.svg' width='40' height='40' /></div><br/>Markdown To HTML"]
n98@{ icon: "mdi:swap-vertical", form: "rounded", label: "FInal Article In HTML", pos: "b", h: 48 }
n99["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge Article And Feature Im.."]
n100["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload Featured Image"]
n101["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Update Featured Image Meta D.."]
n102@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n103@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model5", pos: "b", h: 48 }
n104["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Settings2"]
n105["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Get Topic2"]
n106["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Content2"]
n107["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Settings2"]
n108@{ icon: "mdi:cog", form: "rounded", label: "Limit To First In Progress T..", pos: "b", h: 48 }
n109["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Chapters2"]
n110@{ icon: "mdi:cog", form: "rounded", label: "Limit To First Item2", pos: "b", h: 48 }
n111@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Chapters2", pos: "b", h: 48 }
n112["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Finalize Post1"]
n127["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request Get Categories"]
n128@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields Categories", pos: "b", h: 48 }
n129@{ icon: "mdi:cog", form: "rounded", label: "Aggregate Categories", pos: "b", h: 48 }
n153["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Chapter Imag.."]
n154["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Update Chapter Image Meta Data"]
n189["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request Open AI Image "]
n190@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Chapter Image", pos: "b", h: 48 }
n191@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Chapter Image Data", pos: "b", h: 48 }
n192@{ icon: "mdi:cog", form: "rounded", label: "Convert Data To File", pos: "b", h: 48 }
n193@{ icon: "mdi:cog", form: "rounded", label: "Convert to File", pos: "b", h: 48 }
n194["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request Open AI Image 1"]
n195@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Feature Image", pos: "b", h: 48 }
n196@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Feature Image Data", pos: "b", h: 48 }
n76 --> n100
n104 --> n127
n78 --> n88
n77 --> n78
n193 --> n84
n193 --> n83
n97 --> n98
n87 --> n86
n107 --> n104
n88 --> n89
n88 --> n78
n79 --> n90
n79 --> n194
n103 -.-> n78
n90 --> n111
n105 --> n108
n89 --> n79
n111 --> n95
n111 --> n189
n129 --> n109
n95 --> n96
n192 --> n91
n192 --> n93
n110 --> n82
n91 --> n92
n92 --> n154
n85 --> n111
n98 --> n99
n84 --> n76
n100 --> n101
n128 --> n129
n112 --> n87
n190 --> n191
n195 --> n196
n75 --> n105
n106 --> n75
n94 --> n85
n109 --> n110
n191 --> n192
n196 --> n193
n96 --> n97
n102 -.-> n78
n82 --> n77
n127 --> n128
n189 --> n190
n194 --> n195
n80 --> n106
n93 --> n94
n154 --> n153
n83 --> n76
n153 --> n94
n81 --> n80
n99 --> n112
n101 --> n99
n108 --> n107
end
subgraph sg3["Airtable Select Chapters Image Flow"]
direction LR
n126["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request"]
n152["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Chapters Ima.."]
n155["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Chapter Images"]
n156@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out2", pos: "b", h: 48 }
n157@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n158@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Chapter Images", pos: "b", h: 48 }
n159@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Chapters3", pos: "b", h: 48 }
n160["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload Chapter Image1"]
n161@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Manual Image", pos: "b", h: 48 }
n162["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Settings4"]
n163["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Settings4"]
n164["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Combine Into Article1"]
n165@{ icon: "mdi:swap-vertical", form: "rounded", label: "Final Article In Markdown1", pos: "b", h: 48 }
n166["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/markdown.dark.svg' width='40' height='40' /></div><br/>Markdown To HTML1"]
n167@{ icon: "mdi:swap-vertical", form: "rounded", label: "FInal Article In HTML1", pos: "b", h: 48 }
n168["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>New Chapters1"]
n169["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Generated Content1"]
n170@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields1", pos: "b", h: 48 }
n171@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields2", pos: "b", h: 48 }
n172@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update Airtable1", pos: "b", h: 48 }
n173["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Content4"]
n174@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update Airtable2", pos: "b", h: 48 }
n175["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Finalize Post3"]
n176["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Finalize Post4"]
n177["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Chapter Images1"]
n178["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Chapter Images2"]
n179@{ icon: "mdi:cog", form: "rounded", label: "Wait1", pos: "b", h: 48 }
n180["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Chapter Images3"]
n181@{ icon: "mdi:cog", form: "rounded", label: "Wait3", pos: "b", h: 48 }
n182@{ icon: "mdi:cog", form: "rounded", label: "Wait5", pos: "b", h: 48 }
n183["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Chapter Images4"]
n184@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n202@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update Airtable3", pos: "b", h: 48 }
n157 --> n159
n184 --> n171
n179 --> n126
n181 --> n183
n182 --> n170
n162 --> n173
n156 --> n158
n170 --> n159
n171 --> n159
n126 --> n160
n168 --> n156
n161 --> n178
n161 --> n180
n166 --> n167
n163 --> n162
n159 --> n164
n159 --> n161
n164 --> n165
n158 --> n157
n160 --> n177
n167 --> n176
n155 --> n172
n175 --> n174
n177 --> n182
n178 --> n179
n180 --> n181
n183 --> n184
n173 --> n202
n172 --> n169
n174 --> n163
n202 --> n155
n165 --> n166
n169 --> n168
n152 --> n175
end
subgraph sg4["Airtable Finalize Post Flow"]
direction LR
n113["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Set featured image for post"]
n114["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Set excerpt"]
n115["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/wordpress.svg' width='40' height='40' /></div><br/>Post on Wordpress"]
n116@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Records", pos: "b", h: 48 }
n117@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Post Status And Confi..", pos: "b", h: 48 }
n118["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Finalize Post - Upd.."]
n119["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Backup Post"]
n120@{ icon: "mdi:cog", form: "rounded", label: "Wait To Backup Post", pos: "b", h: 48 }
n121["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Finalize Post2"]
n122@{ icon: "mdi:cog", form: "rounded", label: "Limit To First Item3", pos: "b", h: 48 }
n123["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Settings3"]
n124["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Settings3"]
n125["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Airtable Finalize Post Trigger"]
n185@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Manual Image1", pos: "b", h: 48 }
n186["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request1"]
n187["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload Featured Image1"]
n188["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Set featured image for post1"]
n206@{ icon: "mdi:swap-vertical", form: "rounded", label: "Generate Image", pos: "b", h: 48 }
n207@{ icon: "mdi:swap-vertical", form: "rounded", label: "Manual Image", pos: "b", h: 48 }
n208@{ icon: "mdi:swap-vertical", form: "rounded", label: "Feature Image", pos: "b", h: 48 }
n123 --> n121
n114 --> n208
n207 --> n114
n208 --> n119
n186 --> n187
n206 --> n114
n185 --> n186
n185 --> n113
n115 --> n185
n116 --> n117
n124 --> n123
n120 --> n118
n119 --> n120
n122 --> n115
n187 --> n188
n121 --> n116
n113 --> n206
n188 --> n207
n125 --> n124
n117 --> n122
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n18,n59,n81,n152,n125 trigger
class n1,n2,n47,n51,n52,n132,n140,n141,n78,n102 ai
class n3,n48,n65,n133,n134,n103 aiModel
class n0,n5,n22,n54,n130,n80,n88,n191,n196,n157,n158,n161,n117,n185 decision
class n6,n19,n20,n28,n29,n30,n31,n32,n34,n35,n36,n37,n38,n41,n44,n46,n199,n201,n56,n66,n70,n71,n72,n73,n74,n146,n149,n150,n82,n86,n105,n106,n107,n109,n112,n153,n155,n163,n169,n173,n175,n176,n177,n178,n180,n183,n118,n119,n121,n124 database
class n61,n92,n100,n101,n127,n154,n189,n194,n126,n160,n113,n114,n186,n187,n188 api
class n17,n58,n69,n147,n77,n95,n104,n162,n164,n168,n123 code
classDef customIcon fill:none,stroke:none
class n6,n17,n18,n19,n20,n28,n29,n30,n31,n32,n34,n35,n36,n37,n38,n41,n44,n46,n199,n201,n56,n58,n59,n61,n66,n69,n70,n71,n72,n73,n74,n146,n147,n149,n150,n76,n77,n81,n82,n86,n92,n94,n95,n97,n99,n100,n101,n104,n105,n106,n107,n109,n112,n127,n153,n154,n189,n194,n126,n152,n155,n160,n162,n163,n164,n166,n168,n169,n173,n175,n176,n177,n178,n180,n183,n113,n114,n115,n118,n119,n121,n123,n124,n125,n186,n187,n188 customIcon
The Problem: Publishing breaks when approvals are scattered
Most “content workflows” look organized on the whiteboard, then fall apart in real life. Someone updates a headline in one place but not another. A draft gets approved, but the featured image is still “placeholder-final-v7.jpg”. Then WordPress becomes the last-minute scramble zone where formatting, categories, tags, and SEO fields are patched together under pressure. It’s not just time. It’s the mental load of remembering what’s still missing, plus the real cost of publishing something slightly wrong and having to fix it later.
It adds up fast. Here’s where it usually breaks down.
- Approvals happen in chat threads, so nobody can quickly see what is ready to publish.
- Research and sources get lost, which means the draft feels thin or inaccurate.
- Images are inconsistent across posts because “good enough” wins when you’re rushing.
- Publishing is repetitive work in WordPress, and small errors sneak in when you do it manually every time.
The Solution: Airtable-driven publishing with human review gates
This workflow uses Airtable as the single place where topics become drafts, drafts become approved content, and approved content becomes WordPress posts. It starts when you create or update a record in Airtable (for example, a new topic or an “Approved” status). From there, the workflow pulls your global settings (voice, audience, language, structure rules), runs online research, and generates a chapter and subchapter outline you can review before any long-form writing happens. After you approve the structure, it researches and writes at the subchapter level for better depth, then assembles everything into a clean post with metadata, categories, tags, and images. Finally, it publishes to WordPress and logs a backup, including the live URL.
In practice, you guide the important decisions inside Airtable. n8n handles the heavy lifting in the background: research calls, draft writing, compiling content into HTML, image generation (with manual overrides), and WordPress publishing plus backup logging.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you publish 2 long-form posts a week. Manually, a typical cycle looks like about 1 hour collecting sources, about 2 hours drafting, then another hour for formatting, images, WordPress setup, categories/tags, and double-checking. That’s roughly 4 hours per post, not counting rewrites. With this workflow, you spend about 20 minutes approving the outline and another 30 minutes reviewing the assembled draft and images in Airtable, while the research, writing, compiling, and WordPress publishing happen automatically in the background. You usually get a couple hours back per post, and the “did we forget something?” stress drops a lot.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Airtable to manage topics, approvals, and assets
- WordPress to publish posts and upload media
- OpenAI API key (get it from your OpenAI dashboard)
- Perplexity API key (get it from your Perplexity account)
- Google Sheets to store backup metadata and URLs
Skill level: Intermediate. You won’t code, but you will connect credentials and carefully map Airtable fields without overwriting them.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Airtable status change triggers the right flow. When you create a topic or mark a record as ready for the next stage, n8n starts the matching process (outline, drafting, assembly, or publishing).
Research and drafting happen in smaller chunks. Instead of one big “write me an article” prompt, the workflow researches and writes at the subchapter level using Perplexity plus OpenAI, which usually produces more specific sections and fewer vague filler paragraphs.
Approvals are built in, not bolted on. You review suggested chapters, approve which ones get written, then approve chapter content and images (with a manual image override when you have brand assets you want to use).
Publishing and backup are automatic. Once finalized, the workflow assembles clean HTML, assigns WordPress categories and tags, uploads selected images, creates the post (typically as a draft first), then logs the URL and metadata in Google Sheets for safekeeping.
You can easily modify the approval statuses to match your existing process based on your needs. See the full implementation guide below for customization options.
Common Gotchas
- Airtable field mappings can get wiped when you connect your own base. If something suddenly writes blank data, check the Airtable node field mapping settings first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- WordPress Application Passwords can fail if the user role lacks media upload rights. When image uploads error out, confirm REST API access and permissions in WordPress before changing the workflow.
Frequently Asked Questions
Plan on about 60 to 90 minutes once your Airtable base is ready.
No. You’ll mainly connect accounts and verify Airtable field mappings in each node.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI and Perplexity API usage, which can vary a lot based on article length and how many research calls you run.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s one of the best uses of this template. Set your target language in the Airtable “Settings” table so the AI generates outlines, drafts, and metadata in that language. You can also adjust the number of chapters and subchapters per topic, which changes how deep the research goes. If you want region-specific wording (UK vs US, for example), tweak the writing style instructions in the AI prompt nodes so it stays consistent across every section.
Usually it’s credentials or permissions, but the sneaky issue is field changes. If you renamed fields or switched the base, n8n can keep the connection “valid” while the node mapping no longer matches, so records fail to update or write empty values. Reconnect Airtable, then open the Airtable nodes and confirm the Base, Table, and field mappings are still correct. Also check Airtable rate limits if you are triggering lots of runs back-to-back.
A few dozen posts a month is realistic on modest plans, and self-hosting scales further if your server can handle the AI calls and workflow runs.
For this workflow, n8n is usually the better fit because the logic gets complex fast: multi-stage approvals, branching based on Airtable statuses, and waiting between API calls to avoid rate limits. You also get self-hosting, which matters when you’re processing long articles and lots of steps without wanting per-task pricing surprises. Zapier or Make can still work if you only want “Airtable row equals WordPress draft” and nothing else. But if you want subchapter-level research, image handling, dynamic categorization, and a backup trail, you’ll appreciate the control. If you’re torn, Talk to an automation expert and we’ll sanity-check your use case.
You get a repeatable publishing system with real checkpoints, not a black box. Set it up once, then let Airtable approvals and n8n do the routine work while you focus on quality.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.