Airtable to WordPress, human reviewed posts published
Your content process probably looks organized on paper. In reality, it’s tabs, half-finished drafts, missing SEO fields, and last-minute “can you just publish this?” messages.
This Airtable WordPress automation hits hardest for marketing managers juggling calendars and approvals. But agency leads and SEO specialists feel it too, because inconsistency is what kills scale.
This workflow turns Airtable into your control center so you can plan, draft with AI, review like a human, and publish to WordPress with a clean backup trail. You’ll see how it works, what you need, and where teams usually get stuck.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Airtable to WordPress, human reviewed posts published
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@{ icon: "mdi:wrench", form: "rounded", label: "Research Tool", pos: "b", h: 48 }
n47["<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.."]
n17 --> n0
n0 --> n2
n19 --> n16
n22 --> n4
n46 -.-> n2
n42 --> n43
n23 --> n6
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
n24 --> n23
n4 --> n5
n45 --> n43
n21 --> n22
n39 --> n47
n27 --> n23
n41 --> n42
n15 --> n12
n31 --> n8
n34 --> n10
n16 --> n31
n16 --> n30
n16 --> n34
n16 --> n36
n16 --> n28
n16 --> n41
n30 --> n9
n26 --> n29
n10 --> n11
n8 --> n26
n1 -.-> n2
n36 --> n13
n11 --> n35
n5 --> n19
n7 --> n26
n14 --> n11
n33 --> n25
n44 --> n45
n29 --> n7
n38 --> n39
n35 --> n14
n32 --> n33
n37 --> n15
end
subgraph sg1["Airtable Select Content Flow"]
direction LR
n77@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update Airtable", pos: "b", h: 48 }
n78["<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"]
n79["<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"]
n80@{ icon: "mdi:robot", form: "rounded", label: "Blog Planner", pos: "b", h: 48 }
n81@{ icon: "mdi:swap-vertical", form: "rounded", label: "Get Planner Output", pos: "b", h: 48 }
n82@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Status And Confirmation", pos: "b", h: 48 }
n83["<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.."]
n84["<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"]
n85@{ icon: "mdi:cog", form: "rounded", label: "Upload featured image to Drive", pos: "b", h: 48 }
n86@{ icon: "mdi:cog", form: "rounded", label: "Resize featured image", pos: "b", h: 48 }
n87@{ icon: "mdi:cog", form: "rounded", label: "Wait To Upload Image", pos: "b", h: 48 }
n88["<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.."]
n89@{ icon: "mdi:robot", form: "rounded", label: "Generate featured image", pos: "b", h: 48 }
n90@{ icon: "mdi:cog", form: "rounded", label: "Wait To Save Post", pos: "b", h: 48 }
n91["<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 Feature Image Meta Data"]
n92@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Empty Output", pos: "b", h: 48 }
n93@{ icon: "mdi:cog", form: "rounded", label: "Create Drive Folder", pos: "b", h: 48 }
n94@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out chapters", pos: "b", h: 48 }
n95@{ icon: "mdi:robot", form: "rounded", label: "Generate Chapter Image", pos: "b", h: 48 }
n96@{ icon: "mdi:cog", form: "rounded", label: "Resize Chapter Image", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload Chapter Image"]
n98@{ icon: "mdi:cog", form: "rounded", label: "Upload Chapter Image To Drive", 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 Chapter Image Data"]
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/code.svg' width='40' height='40' /></div><br/>Combine Into Article"]
n101@{ icon: "mdi:swap-vertical", form: "rounded", label: "Final Article In Markdown", pos: "b", h: 48 }
n102["<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"]
n103@{ icon: "mdi:swap-vertical", form: "rounded", label: "FInal Article In HTML", 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/merge.svg' width='40' height='40' /></div><br/>Merge Article And Feature Im.."]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload Featured Image"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Update Featured Image Meta D.."]
n107@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser1", pos: "b", h: 48 }
n108@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model5", 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/code.svg' width='40' height='40' /></div><br/>Settings2"]
n110["<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"]
n111["<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"]
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 Settings2"]
n113@{ icon: "mdi:cog", form: "rounded", label: "Limit To First In Progress T..", pos: "b", h: 48 }
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/airtable.svg' width='40' height='40' /></div><br/>Airtable Select Chapters2"]
n115@{ icon: "mdi:cog", form: "rounded", label: "Limit To First Item2", pos: "b", h: 48 }
n116@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Chapters2", pos: "b", h: 48 }
n117["<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"]
n78 --> n104
n109 --> n114
n80 --> n92
n79 --> n80
n102 --> n103
n90 --> n88
n112 --> n109
n92 --> n93
n92 --> n80
n81 --> n94
n81 --> n89
n108 -.-> n80
n94 --> n116
n110 --> n113
n93 --> n81
n116 --> n100
n116 --> n95
n100 --> n101
n115 --> n84
n96 --> n97
n97 --> n91
n87 --> n116
n103 --> n104
n86 --> n78
n105 --> n106
n95 --> n96
n95 --> n98
n117 --> n90
n89 --> n86
n89 --> n85
n77 --> n110
n111 --> n77
n99 --> n87
n114 --> n115
n101 --> n102
n107 -.-> n80
n84 --> n79
n82 --> n111
n98 --> n99
n91 --> n99
n85 --> n78
n83 --> n82
n104 --> n105
n106 --> n117
n113 --> n112
end
subgraph sg2["Select Chapters Flow"]
direction LR
n48@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n49@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model4", pos: "b", h: 48 }
n50@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n51@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update Status", pos: "b", h: 48 }
n52@{ icon: "mdi:robot", form: "rounded", label: "Researcher", pos: "b", h: 48 }
n53@{ icon: "mdi:robot", form: "rounded", label: "Copywriter", pos: "b", h: 48 }
n54@{ icon: "mdi:cog", form: "rounded", label: "Wait To Update Data", pos: "b", h: 48 }
n55@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Status And Confirmation", pos: "b", h: 48 }
n56@{ icon: "mdi:cog", form: "rounded", label: "Limit To First In Progress T..", pos: "b", h: 48 }
n57["<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.."]
n58@{ icon: "mdi:cog", form: "rounded", label: "Wait To Save Content", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>Parse Chapters"]
n60["<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"]
n61@{ icon: "mdi:cog", form: "rounded", label: "Limit Inbound Links", pos: "b", h: 48 }
n62["<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"]
n63@{ icon: "mdi:cog", form: "rounded", label: "Get XML File", pos: "b", h: 48 }
n64@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Links", pos: "b", h: 48 }
n65@{ icon: "mdi:cog", form: "rounded", label: "Aggregate internal links", pos: "b", h: 48 }
n66@{ icon: "mdi:wrench", form: "rounded", label: "Research Tool1", pos: "b", h: 48 }
n67@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n68["<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"]
n69@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Chapters1", pos: "b", h: 48 }
n70@{ icon: "mdi:cog", form: "rounded", label: "Limit To First Item1", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>Settings1"]
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 Settings1"]
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 Get Topic1"]
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 Select Chapters1"]
n75["<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"]
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/airtable.svg' width='40' height='40' /></div><br/>Airtable Generate Content1"]
n71 --> n62
n50 --> n69
n53 --> n76
n52 --> n53
n63 --> n64
n59 --> n50
n66 -.-> n52
n64 --> n61
n62 --> n63
n68 --> n59
n72 --> n71
n67 -.-> n52
n49 -.-> n53
n73 --> n56
n61 --> n65
n69 --> n75
n69 --> n52
n54 --> n57
n70 --> n55
n58 --> n69
n51 --> n73
n60 --> n70
n65 --> n68
n75 --> n54
n48 -.-> n53
n74 --> n51
n76 --> n58
n55 --> n74
n56 --> n72
end
subgraph sg3["Airtable Finalize Post Flow"]
direction LR
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Set featured image for post"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Set excerpt"]
n120["<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"]
n121@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Records", pos: "b", h: 48 }
n122@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Post Status And Confi..", 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/airtable.svg' width='40' height='40' /></div><br/>Airtable Finalize Post - Upd.."]
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 Backup Post"]
n125@{ icon: "mdi:cog", form: "rounded", label: "Wait To Backup Post", pos: "b", h: 48 }
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/airtable.svg' width='40' height='40' /></div><br/>Airtable Finalize Post2"]
n127@{ icon: "mdi:cog", form: "rounded", label: "Limit To First Item3", pos: "b", h: 48 }
n128["<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"]
n129["<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"]
n134["<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"]
n128 --> n126
n119 --> n124
n120 --> n118
n121 --> n122
n129 --> n128
n125 --> n123
n124 --> n125
n127 --> n120
n126 --> n121
n118 --> n119
n134 --> n129
n122 --> n127
end
subgraph sg4["Execute Workflow Flow"]
direction LR
n130@{ icon: "mdi:play-circle", form: "rounded", label: "Execute Workflow Trigger", pos: "b", h: 48 }
n131["<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/>PerplexityAI API"]
n132@{ icon: "mdi:swap-vertical", form: "rounded", label: "Get Research Content", pos: "b", h: 48 }
n133@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n133 --> n131
n131 --> n132
n130 --> n133
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,n83,n60,n134,n130 trigger
class n1,n2,n80,n89,n95,n107,n48,n52,n53 ai
class n3,n108,n49,n67 aiModel
class n46,n66 ai
class n0,n5,n22,n82,n92,n55,n122 decision
class n6,n19,n20,n28,n29,n30,n31,n32,n34,n35,n36,n37,n38,n41,n44,n47,n84,n88,n110,n111,n112,n114,n117,n57,n68,n72,n73,n74,n75,n76,n123,n124,n126,n129 database
class n91,n97,n105,n106,n62,n118,n119,n131 api
class n17,n79,n100,n109,n59,n71,n128 code
class n130 disabled
class n131 disabled
class n132 disabled
class n133 disabled
classDef customIcon fill:none,stroke:none
class n6,n17,n18,n19,n20,n28,n29,n30,n31,n32,n34,n35,n36,n37,n38,n41,n44,n47,n78,n79,n83,n84,n88,n91,n97,n99,n100,n102,n104,n105,n106,n109,n110,n111,n112,n114,n117,n57,n59,n60,n62,n68,n71,n72,n73,n74,n75,n76,n118,n119,n120,n123,n124,n126,n128,n129,n134,n131 customIcon
Why This Matters: Blog publishing breaks at the handoff points
Most teams don’t struggle with writing a single post. They struggle with running a repeatable system. One person researches in a doc, another drafts in a different place, someone else edits in Airtable (maybe), and WordPress becomes the final messy copy-paste step where headings break, images go missing, and SEO fields get forgotten. Then you publish and realize internal links were never added, tags are inconsistent, and there’s no reliable “what changed, who approved it” trail. It’s not dramatic. It’s just draining, week after week.
It adds up fast. Here’s where it breaks down.
- Approvals happen in Slack or email, so the “final” draft is never truly final.
- SEO metadata gets added late, which means titles and descriptions don’t match the actual article intent.
- Copy-pasting into WordPress introduces formatting issues and quiet mistakes that you only notice after publishing.
- Without a backup record, you lose the research, prompts, and source context that made the post good in the first place.
What You’ll Build: Airtable-managed, human-approved publishing to WordPress
This workflow creates a structured content pipeline where Airtable is the interface your team actually uses day-to-day. You start by adding a topic in Airtable, then trigger the automation with a simple status change and checkbox. The workflow pulls your saved “global settings” (voice, audience, category IDs, site details), runs fresh online research through an external tool, and generates chapter ideas for you to approve. Once you pick the chapters, it drafts each section with research and internal links, then pauses again for human editing inside Airtable. After approval, the workflow assembles the full post, generates SEO metadata and images, and finally publishes to WordPress using the REST API (with an application password). At the end, it writes a backup record so you can track what went live and when.
The flow begins in Airtable with a “To Do” status and an “Execute Flow” tick. AI handles the heavy lifting in batches (research, outline, draft, SEO, images), while Airtable checkpoints force review before anything gets published. WordPress receives a formatted post with media and metadata, then Airtable stores the published URL for your records.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say your team ships 3 posts a week. Manually, a typical flow might be about 45 minutes of research collection, about 2 hours drafting, then another 45 minutes moving everything into WordPress, adding images, and fixing formatting. That’s roughly 3 to 4 hours per post. With this workflow, the AI drafting and assembly run in the background, so your human time becomes review and editing: usually about 30 minutes per post, plus a quick final publish check in Airtable. Most teams get back about 8 to 10 hours per week while improving consistency.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Airtable for the content database and approvals
- WordPress to publish posts and upload media
- OpenAI API key (get it from the OpenAI API dashboard)
Skill level: Intermediate. You’ll mostly configure credentials and match Airtable table/field names, but you should be comfortable testing nodes and reading execution logs.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
Airtable status change triggers the run. You set a record to “To Do” and tick an “Execute Flow” checkbox in the right table. That single action is how you control each phase without chasing people.
Research and outlining happen first. n8n pulls your defaults from the Airtable Settings table, then uses HTTP Request steps to gather fresh research from your chosen provider. AI turns that into chapter options, which are written back into Airtable for review.
Drafting runs per approved chapter. You select which chapters to write, the workflow researches each one, drafts the content, and includes internal links by referencing your website data (often via sitemap parsing). Then it pauses again so you can edit directly in Airtable.
Assembly, images, and publishing come last. Once approved, the workflow merges the sections, generates title + SEO metadata, creates a featured image and chapter images, and publishes to WordPress through the REST API. A final Airtable record stores the live URL and acts as your archive.
You can easily modify the research provider or the image generator based on your needs. See the full implementation guide below for customization options.
Troubleshooting Tips
- Airtable credentials can expire or need specific permissions. If things break, check your Airtable personal access token scopes and the base access 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 publishing often fails because of the Application Password setup. Confirm the user has permission to upload media, and make sure the REST API isn’t blocked by a security plugin.
Quick Answers
Plan on about 60–90 minutes if your Airtable base and WordPress access are ready.
No. You will connect accounts, map fields, and adjust a few prompts.
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 research API usage, which can be a few dollars per post depending on model and depth.
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, pretty easily. Teams usually swap the research step (the HTTP Request + research sub-workflow) for a different provider, change the AI prompts used for chapter creation and drafting, and tweak the WordPress publishing node to publish as “draft” instead of “published.” You can also remove image generation if you already have a design process, or route final outputs to Google Drive as an extra archive.
Usually it’s a permissions issue on the token or the base. Confirm your Airtable personal access token can read/write the base, then verify the table and field names match exactly what the workflow expects. If you duplicated the base template and renamed fields “to make it cleaner,” that’s often the culprit.
If you self-host, volume mostly depends on your server and API rate limits.
Often, yes, because this is not a simple “Airtable row → WordPress post” zap. You have multiple approval gates, branching logic, and several AI-heavy stages (research, chapter ideation, per-chapter drafting, final assembly, image generation, media upload, backup). n8n handles that kind of multi-step workflow cleanly, and self-hosting means you’re not paying per tiny action. Zapier and Make can work, but the scenario count climbs fast, and debugging long chains is honestly not fun. If you want a quick recommendation based on your volume and team, Talk to an automation expert.
You get the speed of AI without giving up control. Set the checkpoints once in Airtable, and publishing to WordPress becomes a repeatable habit instead of a weekly scramble.
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.