Mindket

Social post and blog writer with web research

Newversion 1 · updated

Overview

An n8n workflow that writes a social post or a blog draft from a request sent to a webhook. It searches the web with Tavily, reads recent Instagram posts through Apify, writes with OpenAI, and logs each piece with an image link in Google Sheets.

Social post and blog writer with web research 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 or your own server: import the file and publish it, so the webhook has a production address
  • A form, an app or a script: anything that can send a POST request with a message
  • Google Sheets: the rows are a content log for you or a team to review
  • A scheduler or social tool: copy rows from the sheet into whatever posts for you

Platform

Connects 4 apps

How it works

Trigger

Webhook request

It starts when something sends a POST request to the webhook with:

  • A message saying what to write, such as a post for one platform or a blog post

Actions

  1. GPT-4.1 mini turns your request into a search query, and Tavily finds an article for it
  2. The article is read and summarized, and Apify’s scraper reads recent posts from the Instagram accounts you list
  3. OpenAI merges both summaries and decides whether you want a blog post or a social post
  4. The piece is written, an image comes from your sub-workflow, and a row is added to Google Sheets

Result

A written post or blog draft with an image link, logged in your sheet and returned to the caller

Integrations

What you need before you start.

OpenAI

Writing and decisions

Writes the search query, the summaries, the plan and the finished post, and decides which kind of piece you asked for.

NeedsOpenAI API key

Tavily

Web search

Finds an article on your topic for the workflow to read.

NeedsTavily API key

Apify

Instagram scraping

Runs its Instagram post scraper for the accounts you list and returns their recent posts.

NeedsApify API token

Google Sheets

Content log

Receives one row for each finished piece, with its platform, title, caption, image link and date.

NeedsGoogle account connected with OAuth, and a sheet with five column headings

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
18 steps, starting when its webhook is called
AI
9 steps call an AI model: query gen, OpenAI, OpenAI1, Summarise, Is a blog post? and 4 more
Sign-ins
Signs in to: Google Sheets, OpenAI and Tavily
API keys
No API key is left in the file; 1 blank in it for your own key
Step types
Mindket’s checker reads all 8 of its step types

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

About

What it is

This n8n workflow writes a social post or a blog draft after doing some research. You send a request to a webhook. OpenAI turns it into a search query, Tavily finds an article, and the workflow reads that article and summarizes it. Apify’s Instagram scraper then reads recent posts from accounts you choose, and a second summary covers what they talk about. A third step merges both summaries and decides whether you asked for a blog post. A blog request goes through a planner and a writer. Anything else goes to an agent that writes a post for the platform you name. Either way an image comes from a sub-workflow of your own, and a row lands in Google Sheets.

  1. A webhook takes your request
  2. Tavily finds an article and Apify reads Instagram
  3. Two summaries are merged into one brief
  4. A blog or a social post is written
  5. The piece and its image link go into Google Sheets

Who it suits

Social media managers, small marketing teams and solo creators who need regular posts, plus the odd blog draft, shaped by what is being said in their niche this week. Nothing is published for you. The result is a row to review.

Who uses it, and how
IndustryWho uses itHow they use itExample
Marketing agenciesSocial media managersPoint the Instagram list at the accounts of a client’s niche and send one request per platformA manager asks for an Instagram post about composting at home and gets a caption, an image link and a sheet row.
Publishers and newslettersEditorsAsk for a blog draft built on a current article and on what a niche’s audience reacts toAn editor asks for a blog post on a trending topic and finds a written draft with a title in the sheet.
Small businessesOwners who post themselvesKeep a sheet of ready posts, one row each, and copy the ones they likeAn owner builds up a week of posts and picks from the sheet.
CreatorsSolo creatorsAim the research at the accounts they compete with and ask for a post that answers themA creator learns which topics drew comments and asks for a post on one of them.

Skip it if you do not want to build the image sub-workflow, because the file leaves that out. It also never posts anything.

Where to use it

Any n8n that can reach Tavily, Apify, OpenAI and Google, and that the caller can reach back.

  • n8n Cloud or your own server: import the file and publish it, so the webhook has a production address
  • A form, an app or a script: anything that can send a POST request with a message
  • Google Sheets: the rows are a content log for you or a team to review
  • A scheduler or social tool: copy rows from the sheet into whatever posts for you

Setup

Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Have these ready before you import it.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
OpenAIAn API key
TavilyAn API key
ApifyAn account and an API token
Google SheetsA sheet whose first row holds Platform, Title, Caption, Image and Date
An image workflowA sub-workflow of your own that takes a description and returns an image link
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add an OpenAI credential and select it in every OpenAI and chat model node.
  3. In HTTP Request, replace <YOUR_TAVILY_API_KEY> after Bearer with your Tavily key.
  4. In HTTP Request1, put your Apify token where the address says <YOUR_APIFY_TOKEN>, and the Instagram accounts you want to learn from in place of the four YOUR_INSTAGRAM_ACCOUNT names.
  5. Add a Google Sheets credential. In Google Sheets and Google Sheets1, put your spreadsheet ID where it says YOUR_SHEET_ID and pick the sheet.
  6. Build your image sub-workflow, then pick it in Image gen and Image gen1.
  7. Save, press Publish, and send the production address of Webhook a first request.

The sub-workflow is not in the file. Its two tool nodes pointed at a workflow in its author’s own n8n, so they arrive empty and marked red. Yours receives one field and returns the image’s address:

{
  "description": "<what the picture should show>"
}

How to use it

Send a POST request with a JSON body that holds a message. The caller waits for the whole run, which includes a synchronous Apify run, so give it a generous timeout.

Which path a request takes
Your messageWhat runsWhat lands in the sheet
Asks for a blog postPlanner, writer, then a step that picks a title and makes an imagePlatform Blog, the title, the image link, and the whole post in Caption
Anything elseAn agent makes the image first, then writes a caption with hashtags and a titleThe platform you named, the title, the caption, the image link and the date

Example

A request, sent from a terminal:

curl -X POST https://YOUR-N8N-ADDRESS/webhook/a31cdf97-0036-4129-8921-3e9a971f2d13 \
  -H "Content-Type: application/json" \
  -d '{"message": "I want an Instagram post about composting at home"}'

The request has no blog wording, so the agent path runs. It writes a caption with hashtags and a title, gets an image link from your sub-workflow, and adds a row whose Platform says Instagram. The same address answers with the agent’s result.

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. Notes on the canvas name the parts, such as Scraping google, Scraping Instagram, manipulating data, Generating blog post and Generating posts. Run it once from the webhook’s test address and read each node’s output in turn.

For experts. Most steps are OpenAI GPT-4.1 mini nodes with a short system message of their own, so each one can be tuned alone.

The part behind each step
StepPartWhat to know
Search querygpt-4.1-miniIt is given the current date and told to output only the query
ResearchTavily, then an HTTP fetch and a Markdown nodeTavily is asked for one result, and the workflow fetches that page without a key
InstagramApify instagram-post-scraper, run synchronouslyFour accounts and a results limit of 20. Captions, comment counts and first comments are kept
Blog checkgpt-4.1-miniIt must answer blog or not, and an If node tests for the exact word blog
Social postAn agent with the image tool and the Sheets toolIt makes the image, then writes, then logs

Good to know

Each request spends credit on several services, and its caller has to wait.

  • Open webhook: anyone who learns the address can start runs on your keys, so add authentication to the webhook node or keep the address private
  • Exact match: a blog request is routed by the word blog in lowercase, so any other answer from the check sends it down the social path
  • Thin research: one article and the Instagram posts of the accounts you list are all the research there is
  • Request wiring: Is a blog post?, Planning agent and AI Agent read $json.body.message, yet each runs right after an OpenAI node, whose output has no body. If a first run shows your request missing there, point them at $('Webhook').item.json.body.message
  • Scraping: Apify reads Instagram on your behalf, so check Apify’s and Instagram’s terms for the accounts you pick
  • Billing: OpenAI, Tavily, Apify and your image service each bill their own part
  • Rows pile up: each run appends a row and nothing checks for repeats
  • Your data: your request and the research reach OpenAI, Tavily and Apify, and the results reach Google Sheets

README and files

README

Social post and blog writer with web research

An n8n workflow. Send a request to its webhook and it researches the topic, then writes either a social post or a blog draft
and logs it in a Google Sheet with an image link.

What is inside

  • workflow.json: the workflow as n8n exports it, 28 nodes, five of them sticky notes that label the sections. It holds no credential.
  • README.md: these notes.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • An OpenAI API key.
  • A Tavily API key.
  • An Apify account and API token.
  • A Google account, and a spreadsheet whose first row holds five headings: Platform, Title, Caption, Image and Date.
  • An image workflow of your own, described below. The file does not include it.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Add an OpenAI credential and select it in every OpenAI node and every chat model node.
  3. Open HTTP Request. In its Authorization header, replace <YOUR_TAVILY_API_KEY> after Bearer with your Tavily key.
  4. Open HTTP Request1. In its address, put your Apify token where it says <YOUR_APIFY_TOKEN>. In its body, swap the four
    YOUR_INSTAGRAM_ACCOUNT names for the accounts you want to learn from.
  5. Add a Google Sheets credential. In Google Sheets and Google Sheets1, put your spreadsheet ID where it says
    YOUR_SHEET_ID and pick the sheet.
  6. Build your image workflow and pick it in Image gen and Image gen1.
  7. Save, run it once from the webhook's test address, then press Publish at the top of the canvas (or Shift+P).

The image workflow

Image gen and Image gen1 are tool nodes that call a sub-workflow. The original pointed at one in its author's own n8n, so
here they arrive empty. Your sub-workflow receives one field and returns the address of the picture it made:

{
  "description": "<what the picture should show>"
}

Any image service works. Make the sub-workflow end with a node that outputs the link, so the agent can write it into the sheet.

The request

Send a POST request to the webhook with a JSON body that holds a message:

{
  "message": "I want an Instagram post about composting at home"
}

The caller waits for the whole run, which includes a synchronous Apify run, so give it a generous timeout.

How a run goes

  1. query gen asks gpt-4.1-mini for one search query, given your message and the current date.
  2. HTTP Request sends that query to Tavily and asks for one result. HTTP Request3 fetches that page, Markdown turns it
    into text and OpenAI summarizes it.
  3. HTTP Request1 runs Apify's Instagram post scraper for your accounts, with a limit of 20 results. Aggregate keeps each
    caption, comment count and first comment, and OpenAI1 summarizes them.
  4. Summarise merges the two summaries into one brief.
  5. Is a blog post? answers blog or not, and If tests for the word blog.
  6. A blog goes to Planning agent, then Writing agent, then OpenAI4, which picks a title and an image prompt and can call
    the image tool and the sheet. A social post goes to AI Agent, which makes the image first, writes a caption with hashtags
    and a title, and adds a row to the sheet.
  7. Respond to Webhook or Respond to Webhook1 returns the result to the caller.

The sheet

Each run appends one row. For a social post, Platform is the platform you named. For a blog, Platform is Blog and Caption
holds the whole post.

| Column | Holds |
|---|---|
| Platform | The platform you named, or Blog |
| Title | The title the agent wrote |
| Caption | The caption with hashtags, or the whole blog post |
| Image | The link your image workflow returned |
| Date | The time of the run |

Change it

  • Voice and format: edit the system messages in AI Agent, Planning agent and Writing agent.
  • Research: change the accounts in HTTP Request1, or ask Tavily for more results in HTTP Request.
  • Models: every model node names gpt-4.1-mini, and any chat model can take its place.
  • Output: add a node after a Respond to Webhook node to send the piece to a scheduler or a draft folder.

Good to know

  • Each run costs money on OpenAI, Tavily, Apify and your image service.
  • Anyone who learns the webhook address can start a run on your keys. Add authentication to the webhook node or keep the address private.
  • The research is one article and the posts of the accounts you list.
  • Is a blog post?, Planning agent and AI Agent read $json.body.message, yet each runs right after an OpenAI node, whose output has no body. If a
    first run shows your request missing there, point them at $('Webhook').item.json.body.message.
  • If tests for the exact word blog in lowercase, so any other answer from the check sends the request down the social path.
  • Apify reads Instagram on your behalf, so check Apify's and Instagram's terms for the accounts you pick.
  • Nothing checks for repeats, so every run adds a row.
  • Your request and the research go to OpenAI, Tavily and Apify, and the results go to Google Sheets.
  • The original held its keys inside the nodes. They are placeholders here, and the Tavily key and the Apify token still sit in
    node parameters, so do not share the workflow after you fill them in.
Files
README.md  5 KB
workflow.json  28 KB

2 files, 33 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-03

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

Nanosaur2-670M

well9472 · Kit

Makes illustrations from text prompts with a small 670M-parameter diffusion model, run through ComfyUI. Built as a low-budget research model for people who wan…

New

Reads handwritten Arabic text from images and returns it as text. A fine-tuned PaddleOCR-VL model for people digitizing Arabic handwriting.

New

Makes video clips from a text prompt or an image plus text, at up to 720P and 24 frames per second, in the Diffusers format for a single consumer GPU.

New

Similar in Marketing & SEO

See all in Marketing & SEO

Flux.2-Klein-9B-MatchingPose

nhathoangfoto · Kit

A LoRA for FLUX.2 Klein 9B that puts a character into the pose shown by a mannequin reference while keeping the character's face and style. For artists and des…

New

Generates images from text on modest GPUs, using quantized Z-Image-Turbo files made for stable-diffusion.cpp. For people who run image models on their own comp…

New

HiDream-I1-Full

HiDream-ai · Kit

Generates images from text prompts with a 17B-parameter open model that scores at the top of the card's prompt-following tables. For designers, marketers and d…

New