Create daily AI news LinkedIn posts using OpenAI, NewsAPI, Gmail and Google Sheets

Go to Workflow
0 views
Built by Bhaskar Gorati Bhaskar Gorati
Created on August 16, 2026

Description

Quick overview
This workflow runs nightly, pulls AI news from NewsAPI, uses OpenAI to summarize and select a top story, generates a LinkedIn post and image, and emails you for approval before publishing to LinkedIn and logging the result to Google Sheets.

How it works
Runs every night at 8 PM using a schedule trigger.
Fetches the last day’s AI-related articles from NewsAPI, splits them into items, and keeps the top five most recent.
Uses OpenAI (gpt-4o-mini) to generate a strict two-sentence summary for each article and compiles a digest of the summarized articles.
Uses OpenAI (gpt-4o-mini) to choose the single best article for LinkedIn engagement from the digest and produce a post draft based on the selected story.
Uses OpenAI image generation (gpt-image-1-mini) to create a news-style square image to accompany the post, then emails a preview and sends an approval email that waits for your Approve/Reject response in Gmail.
If approved, publishes the post to LinkedIn, appends the approved content to a Google Sheets tab, and emails a success notification.
If rejected, appends the rejected content to a separate Google Sheets tab and emails a rejection notification.

Setup
Add a NewsAPI.org API key as an HTTP Query Auth credential and ensure it’s used by the NewsAPI request.
Add an OpenAI API credential with access to gpt-4o-mini (text) and gpt-image-1-mini (image).
Connect Gmail via OAuth2 and replace the recipient email address in the Gmail nodes with your own.
Connect LinkedIn via OAuth2 and set the correct LinkedIn person identifier for posting.
Connect Google Sheets, set the target spreadsheet and ensure it contains Approved and Rejected tabs with the columns Date, Title, Summary, LinkedIn Post, and Status.

Nodes Used (6)

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