Mindket

Instagram caption writer for an Airtable editorial plan

Newversion 1 · updated

Overview

An n8n workflow that watches an Airtable editorial plan for new rows. A minute later an OpenAI agent reads the briefing and your background notes, writes an Instagram caption and saves it in the same row.

Instagram caption writer for an Airtable editorial plan is an n8n workflow in the Marketing & SEO category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file and steps
  • Airtable: the caption lands in the SoMe_Text_KI field of the row
  • Your posting tool: add a node after Post Caption into Airtable Record to send the caption on

Platform

Connects 2 apps

How it works

Trigger

New Airtable row

It starts when a new row appears in your editorial table, which the trigger checks every minute:

  • A new row with a created_at time
  • Its Briefing text, which the agent reads after a one-minute wait

Actions

  1. The workflow waits one minute, then reads the whole row again
  2. An OpenAI agent takes the row’s Briefing as its message
  3. The agent looks up one background record about your target group and tone
  4. gpt-4o writes an Instagram caption with a call to action
  5. The caption is saved in the row’s SoMe_Text_KI field

Result

An Instagram caption inside the editorial plan row, ready for a person to read and edit

Integrations

What you need before you start.

Airtable

Editorial plan and background notes

Fires on each new row, reads it, gives the agent one background record and takes the finished caption back into the row.

NeedsAirtable personal access token, in an Airtable credential

OpenAI

Language model

Runs gpt-4o as the agent that writes the caption.

NeedsOpenAI API key

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
6 steps, starting on an Airtable event
AI
1 step calls an AI model: AI Agent
Sign-ins
Signs in to: Airtable and OpenAI
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 5 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow writes an Instagram caption for each new row in an Airtable editorial plan. It checks the table every minute, then waits one more so whoever made the row can finish its briefing. An OpenAI agent running gpt-4o reads the briefing and looks up one record of background notes in a second table, such as the target group and the tone. The caption goes back into the same row. Nine nodes do the work, beside one sticky note.

Who it suits

Social media managers and small marketing teams who plan their posts in Airtable and want a first draft waiting in the row before an editor looks at it. Skip it if captions must go out with no human check. The workflow only fills a text field and posts nothing.

Who uses it, and how
IndustryWho uses itHow they use itExample
Travel and tourismSocial media managersAdd a row for each planned post, with a short briefing about the trip or the offerA travel team adds a row about a spring city break and finds a caption in it a few minutes later.
Retail and ecommerceBrand marketersKeep the brand’s tone and audience in the background table so every caption sounds alikeA homeware shop writes its tone down once and gets matching captions for the week’s product posts.
AgenciesContent plannersRun one base for each client, with that client’s audience notesAn agency plans a month of posts for a client and edits the first drafts in one sitting.
Local servicesOwners who plan their own postsType two lines of briefing and edit the draftA bakery owner briefs a post about a new sourdough and tidies the caption before posting.

You need some n8n and some Airtable: an access token, a base with two tables and a few field names that must match.

Where to use it

Any n8n that can reach Airtable and OpenAI will run it, as long as the workflow is switched on, because the trigger only polls then.

  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file and steps
  • Airtable: the caption lands in the SoMe_Text_KI field of the row
  • Your posting tool: add a node after Post Caption into Airtable Record to send the caption on

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Build the two tables before you import it.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
OpenAIAn API key that can use gpt-4o
AirtableA personal access token that can read and write your base
The editorial tableThe fields created_at (created time), Briefing, SoMe_Text_KI, Posten and Werbeanzeige
The background tableOne record that describes your readers and your wording
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add an Airtable credential with your token. Select it in Airtable Trigger: New Record, Get Airtable Record Data, Background Info and Post Caption into Airtable Record.
  3. Add an OpenAI credential and select it in OpenAI Chat Model.
  4. In those four nodes, replace YOUR_BASE_ID with your base’s ID, the part of its address that starts with app.
  5. Replace YOUR_TABLE_ID with the editorial table’s ID, which starts with tbl, in the trigger, Get Airtable Record Data and Post Caption into Airtable Record.
  6. In Background Info, replace YOUR_BACKGROUND_TABLE_ID with the other table’s ID and YOUR_RECORD_ID with the ID of the record that holds your notes. A record’s ID starts with rec.
  7. Save and press Publish. Add a row with a short briefing and wait a couple of minutes.

How to use it

Add a row to the editorial table and fill in Briefing within about a minute. The workflow reads the row after waiting, so a briefing typed later is missed. The caption appears in SoMe_Text_KI. Read it and edit it before the post goes anywhere.

What to change for a different result
To changeWhere
The caption’s rulesThe system message of AI Agent, which names Instagram
What the agent knows about your readersThe record that Background Info reads
The modelgpt-4o in OpenAI Chat Model
The waitThe amount in Wait 1 Minute
The field namesBriefing in AI Agent, and the three fields in Post Caption into Airtable Record

Example

A travel team adds a row with the briefing “Spring weekend in Lisbon, three nights, family hotel, offer ends 30 April”. The background record says the readers are parents aged 30 to 45 and the tone is friendly and light.

The agent reads both and answers with a single caption: an opening line, a few sentences on the trip and a call to action such as an invitation to comment. It arrives as plain text with nothing around it. Check the dates and the offer yourself, because the model only knows what the briefing says.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This one runs in a straight line from the trigger to the save. The agent sits to one side with its model, its memory and its one tool. Start with a single test row.

For experts. The memory key is the record’s ID and the window is five exchanges, kept in the n8n process only.

Where to look closer
NodeWhat it doesWhat to know
Airtable Trigger: New RecordPolls every minute on the created_at fieldThe field must be a created-time field
Wait 1 MinutePauses before the row is readThe file sets minutes and 1, so no default applies
Background InfoAn Airtable tool that reads one record by its IDThe ID is fixed in the node, so the agent always gets the same record
Post Caption into Airtable RecordUpdates the row by its IDIt also writes unticked into Posten and Werbeanzeige

Good to know

The caption goes into the row and nowhere else. Two field names in the original copy need a look.

  • Models: OpenAI’s deprecations page, read on 12 November 2026, lists the dated gpt-4o versions for shutdown on 14 January 2027, with gpt-6-luna as the replacement. It does not list the bare name gpt-4o, which Mindket’s copy keeps
  • Field names: the agent’s prompt reads Briefing in two places and Briefing/Notizen in a third. Unless your field has that second name, the third comes out empty
  • Tables: in the original copy the read node pointed at a different table than the trigger and the save. Mindket’s copy gives all three the same placeholder, so they must be one table
  • Overwrites: every run writes unticked into Posten and Werbeanzeige, which clears a box you ticked on that row. Your table needs both fields, or remove them from the node
  • Timing: the trigger polls once a minute and the workflow then waits another one
  • Billing: OpenAI bills a model call for every step the agent takes, at least one a run
  • Open table: anyone who can add a row starts a run on your OpenAI key
  • Your data: the briefing and the background record go to OpenAI
  • Memory: n8n drops it after an hour without use, and a restart clears it
  • Credentials: the JSON holds none

README and files

README

Instagram caption writer for an Airtable editorial plan

An n8n workflow that watches an Airtable editorial plan for new rows. A minute after a row appears, an OpenAI agent
reads its briefing, looks up your target group and wording notes in a second table, writes an Instagram caption and
saves it in the same row.

What is inside

  • workflow.json: the workflow as n8n exports it, 9 nodes and one sticky note. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • Every Airtable base, table and record address is now a placeholder: YOUR_BASE_ID, YOUR_TABLE_ID,
    YOUR_BACKGROUND_TABLE_ID and YOUR_RECORD_ID. The original copy's Get Airtable Record Data pointed at a different
    table than the trigger and the save did. All three nodes now share YOUR_TABLE_ID, so they must be one table.
  • The field list inside Post Caption into Airtable Record shrank to the four fields the node writes. The original copy
    held the full field list of its author's own table.
  • The sticky note is rewritten and holds no personal links.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • An Airtable personal access token that can read and write your base.
  • An OpenAI API key that can use gpt-4o.
  • An Airtable base with two tables, described below.

The Airtable base

The editorial table is where you plan posts. It needs these fields:

| Field | Type | Used for |
|---|---|---|
| created_at | Created time | The trigger watches it for new rows |
| Briefing | Long text | What the post is about, read by the agent |
| SoMe_Text_KI | Long text | Where the caption is saved |
| Posten | Checkbox | Set to unticked by every run |
| Werbeanzeige | Checkbox | Set to unticked by every run |

The background table holds one record that describes your audience and wording: who the readers are, what tone to use,
which words you like or avoid. Its fields are free. The agent reads whatever the record holds.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Add an Airtable credential with your access token. Select it in Airtable Trigger: New Record,
    Get Airtable Record Data, Background Info and Post Caption into Airtable Record.
  3. Add an OpenAI credential and select it in OpenAI Chat Model.
  4. In those four nodes, replace YOUR_BASE_ID with your base's ID. It is the part of the base's web address that starts
    with app.
  5. Replace YOUR_TABLE_ID with the editorial table's ID, the part that starts with tbl, in the trigger,
    Get Airtable Record Data and Post Caption into Airtable Record.
  6. In Background Info, replace YOUR_BACKGROUND_TABLE_ID with the background table's ID, and YOUR_RECORD_ID with the
    ID of the record that holds your notes. A record's ID starts with rec.
  7. Save, then press Publish. The trigger only polls while the workflow is switched on.
  8. Add a row with a short briefing and wait a couple of minutes.

How a run goes

  1. Airtable Trigger: New Record checks the editorial table every minute and fires on a row whose created_at is new.
  2. Wait 1 Minute pauses for one minute, so whoever made the row can finish writing the briefing.
  3. Get Airtable Record Data reads the row again by its ID.
  4. AI Agent gets the row's Briefing as its message. Its system message asks for an Instagram caption with a clear
    call to action and nothing else around it.
  5. The agent can call Background Info, which reads one record from the background table. OpenAI Chat Model runs
    gpt-4o, and Window Buffer Memory keeps the last five exchanges under the row's ID.
  6. Format Fields puts the agent's answer in a field named SoMe Text.
  7. Post Caption into Airtable Record updates the row by its ID. It writes the caption into SoMe_Text_KI and sets
    Posten and Werbeanzeige to unticked.

Change the look

  • The caption's rules: the system message of AI Agent. It is written in capitals and names Instagram, so change that
    line for another network.
  • What the agent knows about your readers: the record Background Info reads, or its table.
  • The model: gpt-4o in OpenAI Chat Model.
  • The wait: the amount in Wait 1 Minute. A longer wait gives a slower writer more time.
  • The fields: Briefing in AI Agent, and SoMe_Text_KI, Posten and Werbeanzeige in
    Post Caption into Airtable Record.

Good to know

  • OpenAI's deprecations page, read on 12 November 2026, lists the dated gpt-4o versions for shutdown on 14 January
    2027, with gpt-6-luna as the replacement. It does not list the bare name gpt-4o, which this copy keeps.
  • The agent's prompt reads Briefing in two places and Briefing/Notizen in a third. Unless your field has that second
    name, the third comes out empty.
  • Every run writes unticked to Posten and Werbeanzeige, so a box you ticked on that row is cleared. Your table needs
    both fields. Otherwise Airtable refuses the update, and you can remove them from the node.
  • The trigger polls once a minute and the workflow waits another minute, so a briefing typed later than that is missed.
  • Background Info reads one fixed record. The agent never picks a different one.
  • OpenAI bills a model call for every step the agent takes, at least one a run, and the briefing and the background
    record both go to OpenAI.
  • Anyone who can add a row to the table starts a run that spends your OpenAI key.
  • The caption is only saved in the row. Nothing is posted to Instagram.
  • Window Buffer Memory keeps its history in the n8n process. n8n drops a history after an hour without use, and a
    restart clears it.
Files
NOTICE.md  649 B
README.md  6 KB
workflow.json  11 KB

3 files, 17 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Marketing & SEO

See all in Marketing & SEO

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

Licon MSR for LTX-2.5

LiconStudio · Kit

Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…

New