Quick Overview
This workflow collects a content brief via an n8n form, uses OpenAI to generate a LinkedIn post or WordPress blog plus a matching thumbnail, saves the draft to Google Sheets and Google Drive, then publishes on approval to LinkedIn or creates a WordPress draft via the WordPress REST API.
How it works
- Receives a content request from an n8n form with the chosen format, categories, tone, topic source, and thumbnail preferences.
- Uses OpenAI (gpt-4o-mini) to generate the title, HTML body, plain-text copy, hashtags/keywords, and an image prompt as structured JSON.
- Uses OpenAI (gpt-image-1) to generate a thumbnail image, converts it to base64 for display, and uploads the image to Google Drive.
- Appends the draft content metadata (including a unique contentId, status, and Drive file ID) to a Google Sheets table for tracking.
- Shows a styled preview page that embeds the thumbnail and content and includes a publish button that calls a webhook with the draft ID.
- When the publish webhook is clicked, looks up the draft in Google Sheets and stops with an “already processed/invalid” response if its status is not READY.
- Downloads the thumbnail from Google Drive and either publishes the post to LinkedIn with the image or uploads the image to WordPress and creates a blog post as a draft with the uploaded media set as the featured image.
- Marks the draft as PROCESSED in Google Sheets and returns an HTML confirmation response.
Setup
- Add an OpenAI API credential for the text generation (gpt-4o-mini) and image generation (gpt-image-1) steps.
- Add Google Sheets and Google Drive OAuth credentials, create a sheet with the expected columns (contentId, format, title, bodyPlain, bodyHtml, hashtags, driveFileId, status, createdAt), and set the spreadsheet ID, sheet name, and Drive folder ID in the configuration fields.
- Add a LinkedIn OAuth credential and set your LinkedIn person ID in the LinkedIn publishing step.
- Add WordPress credentials for the HTTP Request nodes and set your WordPress site base URL in the publish configuration.
- Copy the production URL of the publish webhook and paste it into the publishWebhookUrl field used to build the preview page button link.