🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets + Slack: approve LinkedIn drafts fast

Lisa Granqvist Partner Workflow Automation Expert

LinkedIn content review breaks down in the boring places. Drafts get lost in DMs, someone “approves” a version that isn’t the latest, and posting day turns into a last-minute scramble.

This hits marketing leads first, but founders and client-facing agency owners feel it too. With this Sheets Slack approval automation, drafts land in one place and the right people get pinged to review them. Faster approvals. Fewer mistakes.

Below, you’ll see how the workflow generates drafts, logs them to Google Sheets, alerts reviewers in Slack, and can publish to LinkedIn (and X) once you’re ready.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets + Slack: approve LinkedIn drafts fast

The Problem: LinkedIn drafts get reviewed too late

Draft approvals should be quick. In reality, you write a post, paste it into Slack, wait, then rewrite it again because feedback came back out of context. If you’re pulling inspiration from high-performing posts, that’s another tab, another copy-paste, another “which version are we using?” moment. And once you start posting consistently, the mental load ramps up. You’re not just writing. You’re tracking status, chasing approvals, and trying not to publish the wrong copy from last Tuesday.

The friction compounds. Here’s where it breaks down most often.

  • Reviewers comment in Slack, but the draft lives somewhere else, so edits get missed or applied to the wrong version.
  • High-performing post research is manual, which means you either skip it or waste about an hour when you finally do it.
  • Publishing gets delayed because “approval” is a vague message, not a clear status you can trust.
  • You can’t scale output when every post needs hand-holding from idea to publish.

The Solution: Generate drafts, log them, and notify reviewers automatically

This workflow turns your LinkedIn draft process into a simple pipeline. It can start from a scheduled run that pulls strong LinkedIn posts for inspiration, or from a manual topic submission via a form. From there, AI (Google Gemini or OpenAI) generates draft copy in a consistent structure, then the workflow cleans and formats the response so it’s easy to review. Next, it logs the draft into Google Sheets, which becomes your single source of truth. Finally, Slack notifies the reviewer that new drafts are ready, so approvals happen where your team already lives.

In practice, it’s a loop you can rely on. Ideas come in, drafts come out, and each one is stored and trackable. When you decide to publish, the same workflow can post directly to LinkedIn and X, then merge the results into a success confirmation.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you publish 5 LinkedIn posts a week, and each one needs review. Manually, you might spend 20 minutes generating a draft, 10 minutes formatting it, then another 15 minutes chasing feedback across Slack threads, so roughly 45 minutes per post (about 4 hours a week). With this workflow, you submit a topic in about 2 minutes, wait a few minutes for AI to generate and structure the draft, and reviewers get notified automatically. You still review and polish, but you’re no longer spending hours on coordination.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for draft logging and status tracking
  • Slack to notify reviewers when drafts are ready
  • Gemini or OpenAI API key (get it from Google AI Studio or OpenAI dashboard)

Skill level: Intermediate. You will connect accounts, paste API keys, and tweak prompts/fields to match your review process.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A topic or schedule kicks things off. You can trigger the workflow by submitting a post topic in a form, or let the schedule run to pull recent LinkedIn posts for inspiration.

Content inspiration is gathered and filtered. n8n retrieves LinkedIn posts via an HTTP request, then a small filtering step keeps only the ones with real engagement so your idea list isn’t junk.

AI drafts are generated and cleaned up. Gemini or OpenAI produces the draft, and the workflow structures the response into predictable fields (hook, body, CTA, hashtags), which makes review easier and faster.

Drafts get logged and reviewers get pinged. Google Sheets stores the draft and any metadata, then Slack alerts the reviewer that something is ready to approve. If you’re auto-publishing, the workflow can also post to LinkedIn and X and then merge the publish results into one success message.

You can easily modify the review status fields in Google Sheets to match your process (for example, “Needs edits” vs. “Approved”). See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

Set up the form submission that captures a post topic and starts the AI drafting flow.

  1. Add and open Capture Post Topic.
  2. Set Form Title to post and Form Description to post.
  3. Under Form Fields, ensure the field label is post title.
  4. Set Authentication to basicAuth and configure the basic auth users in n8n.
  5. Keep the connection from Capture Post Topic to Compose AI Drafts.

Step 2: Configure the Schedule Trigger and LinkedIn Fetch

Schedule a periodic fetch of LinkedIn posts and filter them for engagement.

  1. Open Scheduled Launch Trigger and set your desired schedule under Rule.
  2. Open Retrieve LinkedIn Posts and set URL to https://api.apify.com/v2/actor-tasks/your-task-[CONFIGURE_YOUR_API_KEY]/runs/last/dataset/items?token=[CONFIGURE_YOUR_TOKEN].
  3. Enable JSON Parameters in Retrieve LinkedIn Posts.
  4. Open Filter Engaged Posts and set Function Code to return items.filter(item => item.json.engagement && item.json.engagement.likes > 10);.

⚠️ Common Pitfall: The Apify URL in Retrieve LinkedIn Posts contains placeholders. Replace [CONFIGURE_YOUR_API_KEY] and [CONFIGURE_YOUR_TOKEN] before testing.

Step 3: Set Up AI Drafting and Parsing

Configure the AI generation pipeline that drafts separate posts for LinkedIn and X and structures the output.

  1. Open Gemini Chat Engine and keep Model Name set to models/gemini-2.0-flash.
  2. In Compose AI Drafts, set Text to = write min 50 word about this topic '{{ $json["post title"] }}' for Linkedin and X platform separately.
  3. Confirm Prompt Type is define and Has Output Parser is enabled in Compose AI Drafts.
  4. Open Structure AI Response and keep Schema Type set to manual, with the provided JSON schema.
  5. Ensure Structure AI Response is connected as the output parser for Compose AI Drafts, and Gemini Chat Engine is connected as the language model.

Credential Required: Connect your Google Gemini credentials in Gemini Chat Engine.

Credential Required: For AI tool nodes like Structure AI Response, add credentials to the parent Compose AI Drafts connection (the language model is provided by Gemini Chat Engine).

Step 4: Configure Publishing Outputs

Publish generated posts to X and LinkedIn in parallel, then show a completion message to the form user.

  1. Open Publish to X Network and set Text to ={{ $json.output.platform_posts.Twitter.post }}.
  2. Open Publish to LinkedIn and set Text to ={{ $json.output.platform_posts.LinkedIn.post }} and Person to [YOUR_ID].
  3. Note the parallel execution: Compose AI Drafts outputs to both Publish to X Network and Publish to LinkedIn in parallel.
  4. Open Combine Publish Results and keep Mode set to combine and Combine By set to combineAll.
  5. Open Display Success Notice and set Completion Title to Your post has been successfully shared and Completion Message to =🔗 View your posts: X (Twitter): [https://x.com/x/status/{{ $json.id }}] LinkedIn: [https://www.linkedin.com/feed/update/{{ $json.urn }}].

Credential Required: Connect your X (Twitter) credentials in Publish to X Network.

Credential Required: Connect your LinkedIn credentials in Publish to LinkedIn.

Step 5: Configure Idea Suggestions, Logging, and Reviewer Alerts

Generate new ideas from engaged LinkedIn posts, log them in Google Sheets, and notify a reviewer in Slack.

  1. Open Generate Idea Suggestions and set Model to gpt-4o-mini.
  2. Open Log Drafts in Sheets and set Operation to append, Sheet ID to [YOUR_ID], and Range to Sheet1!A:B.
  3. Open Alert Reviewer in Slack and set Channel to [YOUR_ID] and Text to New LinkedIn post ideas are ready for review: {{$json["choices"][0].message.content}}.
  4. Verify the flow: Filter Engaged PostsGenerate Idea SuggestionsLog Drafts in SheetsAlert Reviewer in Slack.

Credential Required: Connect your OpenAI credentials in Generate Idea Suggestions.

Credential Required: Connect your Google Sheets credentials in Log Drafts in Sheets.

Credential Required: Connect your Slack credentials in Alert Reviewer in Slack.

Step 6: Test and Activate Your Workflow

Validate both the form-driven publishing path and the scheduled idea-generation path before turning the workflow on.

  1. Use Execute Workflow and submit a test value via Capture Post Topic to generate drafts and publish posts.
  2. Confirm successful publishing when Display Success Notice renders links using {{ $json.id }} and {{ $json.urn }}.
  3. Manually trigger Scheduled Launch Trigger to test the LinkedIn fetch, filtering, idea generation, Google Sheets logging, and Slack alert.
  4. When both paths succeed, toggle Active to enable production runs.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets credentials can expire or need specific permissions. If things break, check the connected Google account access and the sheet sharing settings first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this Sheets Slack approval automation?

About 30 minutes if your accounts and API keys are ready.

Do I need coding skills to automate Sheets Slack approval?

No. You’ll connect your accounts and paste API keys into n8n. The only “technical” part is mapping a few fields into your Google Sheet columns.

Is n8n free to use for this Sheets Slack approval workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Gemini or OpenAI API usage, which is usually low per draft.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Sheets Slack approval workflow for LinkedIn-only posting (no X)?

Yes, and it’s a common tweak. You can disable the “Publish to X Network” step and keep “Publish to LinkedIn” active, then update the merge step so it doesn’t expect results from X. Many teams also add an “Approved?” column in Google Sheets and only publish when that cell is set to “Yes.”

Why is my Google Sheets connection failing in this workflow?

Usually it’s permissions. Make sure the connected Google account can access the exact spreadsheet and worksheet tab, then re-authenticate the Google Sheets credential in n8n if it still fails. Also double-check that the sheet columns you’re writing to still exist, because renaming headers can break field mapping.

How many drafts can this Sheets Slack approval automation handle?

Plenty for a typical small team.

Is this Sheets Slack approval automation better than using Zapier or Make?

It depends on how far you want to take it. Zapier or Make can absolutely move a draft into Sheets and send a Slack message, and they may feel simpler for a two-step setup. But this workflow also includes “pull inspiration, filter posts, generate drafts, structure outputs, then publish,” which is where n8n tends to shine because you can add branching logic without paying extra for every path. If you self-host, you also avoid execution limits that can get expensive when you start generating lots of drafts. And frankly, when something breaks, n8n’s visibility into each run makes it easier to troubleshoot. Talk to an automation expert if you want help choosing.

Once drafts reliably flow into Sheets and reviewers get nudged in Slack, the whole content machine feels calmer. Set it up once, then spend your time on better ideas and sharper edits.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal