Create Instagram, TikTok and LinkedIn carousels with OpenAI and PostWire

Go to Workflow
0 views
Built by PostWire PostWire
Created on October 02, 2026

Description

Quick Overview
This workflow collects a carousel topic via an n8n form, uses OpenAI to plan slide copy and generate images, uploads the slides to PostWire, and publishes them as Instagram, TikTok, and LinkedIn multi-image posts, logging results to Google Sheets and emailing failures via Gmail.

How it works
Receives a submission from an n8n form with the topic, audience, number of slides, and target networks.
Uses OpenAI (gpt-5-mini) to generate a JSON plan containing per-slide headlines, image prompts, alt text, and platform-specific captions.
For each planned slide, requests an upload URL from PostWire, generates a square image with OpenAI GPT Image (gpt-image-1-mini), uploads the PNG to PostWire, and finalizes it to get a hosted media URL.
Aggregates all slide media URLs, sorts them into the original slide order, and publishes a multi-image post to the selected platforms via PostWire using an idempotency key based on the form submission.
If all platforms publish successfully, appends a “posted” record with slide headlines and post links to Google Sheets.
If any platform fails, logs the error details to Google Sheets and sends a Gmail message with the platform-specific fixes and any successfully published links.

Setup
Create a PostWire account, connect Instagram/TikTok/LinkedIn, and add an HTTP Header Auth credential in n8n with Authorization: Bearer for the PostWire HTTP Request steps.
Add an OpenAI credential with access to gpt-5-mini and gpt-image-1-mini.
Connect Google Sheets OAuth credentials and select the target spreadsheet and sheet in both Google Sheets append steps.
Connect Gmail credentials and replace [email protected] with your recipient address.
Use the form URL from the form trigger to submit a test topic and confirm posting permissions for the selected networks.

Nodes Used (4)

Gmail
n8n-nodes-base.gmail
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest
OpenAI
@n8n/n8n-nodes-langchain.openAi