Skip to main content

AI-generated LinkedIn posts with OpenAI, Google Sheets & email approval workflow

Workflow preview

Workflow preview
100%
AI-generated LinkedIn posts with OpenAI, Google Sheets & email approval workflow preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

How it works This workflow automates the process of creating, approving, and optionally posting LinkedIn content from a Google Sheet. Here's a high level overview: 1. Scheduled Trigger : Runs autom...

Best for

  • Content Creation automation workflows
  • Multimodal AI automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.httprequest, n8n-nodes-base.scheduletrigger, @n8n/n8n-nodes-langchain.lmchatopenai, n8n-nodes-base.googlesheets, @n8n/n8n-nodes-langchain.chainllm, n8n-nodes-base.set, n8n-nodes-base.gmail, n8n-nodes-base.switch

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Aryan Shinde.

Original n8n.io source

1.1 Workflow description

Title
AI-generated LinkedIn posts with OpenAI, Google Sheets & email approval workflow
Workflow name
AI-generated LinkedIn posts with OpenAI, Google Sheets & email approval workflow

How it works

This workflow automates the process of creating, approving, and optionally posting LinkedIn content from a Google Sheet. Here's a high-level overview:

  1. Scheduled Trigger: Runs automatically based on your defined time interval (daily, weekly, etc.).
  2. Fetch Data from Google Sheets: Pulls the first row from your sheet where Status is marked as Pending.
  3. Generate LinkedIn Post Content: Uses OpenAI to create a professional LinkedIn post using the Post Description and Instructions from the sheet.
  4. Format & Prepare Data: Formats the generated content along with the original instruction and post description for email.
  5. Send for Approval: Sends an email to a predefined user (e.g., marketing team) with a custom form for approval, including a dropdown to accept/reject and an optional field for edits.
  6. (Optional) Image Fetch: Downloads an image from a URL (if provided in the sheet) for future use in post visuals.

Set up steps

You’ll need the following before you start:

  • A Google Sheet with the following columns: Post Description, Instructions, Image (URL), Status
  • Access to an OpenAI API key
  • A connected Gmail account for sending approval emails
  • Your own Google Sheets and Gmail credentials added in n8n

Steps:

  1. Google Sheet Preparation: Create a new Google Sheet with the mentioned columns (Post Description, Instructions, Image, Status, Output, Post Link). Add a row with test data and set Status to Pending.

  2. Credentials: In n8n, create OAuth2 credentials for: a. Google Sheets b. Gmail c. OpenAI (API Key) Assign these credentials to the respective nodes in the JSON.

  3. OpenAI Model: Choose a model like gpt-4o-mini (used here) or any other available in your plan. Adjust the prompt in the "Generate Post Content" node if needed.

  4. Email Configuration: In the Gmail node, set the recipient email to your own or your team’s address. Customize the email message template if necessary.

  5. Schedule the Workflow: Set the trigger interval (e.g., every morning at 9 AM).

  6. Testing: Run the workflow manually first to confirm everything works. Check Gmail for the approval form, respond, and verify the results.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Get Image

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 2 - Schedule Trigger

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.2

Block 3 - OpenAI Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatOpenAi - lmChatOpenAi
Config choices
Version 1.2

Block 4 - Get Data from Sheets

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.5

Block 5 - Generate Post Content

Type / Role
@n8n/n8n-nodes-langchain.chainLlm - chainLlm
Config choices
Version 1.6

Block 6 - Data Formatting 1

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 7 - Send Content Confirmation

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 8 - Content Confirmation Logic

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3.2

Block 9 - Regenerate Post Content

Type / Role
@n8n/n8n-nodes-langchain.chainLlm - chainLlm
Config choices
Version 1.6

Block 10 - If Image Provided

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 11 - Post With Image

Type / Role
n8n-nodes-base.linkedIn - linkedIn
Config choices
Version 1

Block 12 - Post Without Image

Type / Role
n8n-nodes-base.linkedIn - linkedIn
Config choices
Version 1

Block 13 - Update Google Sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.5

Block 14 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 15 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 16 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 17 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 18 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow AI-generated LinkedIn posts with OpenAI, Google Sheets & email approval workflow
Complexity advanced
Nodes 18
Categories Content Creation, Multimodal AI
Author Aryan Shinde
Published 12 May 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/4005/4005.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does AI-generated LinkedIn posts with OpenAI, Google Sheets & email approval workflow do?

How it works This workflow automates the process of creating, approving, and optionally posting LinkedIn content from a Google Sheet. Here's a high level overview: 1. Scheduled Trigger : Runs autom...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Content Creation, Multimodal AI use case.