Google Sheets + Slack: sentiment alerts you can trust
Manual social monitoring feels “fine” until it isn’t. One bad thread blows up overnight, someone screenshots it, and you find out way too late because the signal was buried under a hundred harmless mentions.
This is the kind of mess that hits social media managers first, but PR leads and marketing ops folks feel it too. With Sheets Slack alerts running in the background, you stop hunting for problems and start getting notified when sentiment actually matters.
This workflow monitors multiple platforms, runs AI sentiment analysis, logs everything to Google Sheets, and pings Slack when something looks critical (or when a wave of positivity is worth amplifying). You’ll see how it works, what you need, and how to customize it without turning it into a science project.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Sheets + Slack: sentiment alerts you can trust
flowchart LR
subgraph sg0["Social Media Monitor Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Social Media Monitor Trigger", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Manual Sentiment Check Webhook"]
n2@{ icon: "mdi:cog", form: "rounded", label: "Twitter Brand Mentions Scraper", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Reddit Brand Discussion Scra..", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "LinkedIn Professional Mentio..", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Advanced Sentiment Analysis .."]
n6@{ icon: "mdi:database", form: "rounded", label: "Google Sheets Sentiment Dash..", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Crisis & Priority Alert Filter", pos: "b", h: 48 }
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Slack Crisis & Priority Alert"]
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Positive Sentiment Filter", pos: "b", h: 48 }
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Slack Positive Mention Alert"]
n9 --> n10
n0 --> n2
n0 --> n3
n0 --> n4
n7 --> n8
n1 --> n2
n1 --> n3
n1 --> n4
n2 --> n5
n3 --> n5
n4 --> n5
n5 --> n6
n5 --> n7
n5 --> n9
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n7,n9 decision
class n6 database
class n1 api
class n5 code
classDef customIcon fill:none,stroke:none
class n1,n5,n8,n10 customIcon
The Problem: Sentiment shifts get noticed too late
Brand mentions don’t arrive in neat batches. They drip in all day across Twitter/X, Reddit threads, LinkedIn comments, and wherever else your customers like to argue. Checking each platform manually sounds manageable, until you realize you’re scanning the same noise repeatedly, trying to spot the one post that signals a brewing issue. And when you do catch something, you still have to copy the text into a spreadsheet, add context, and send it to the right person. Multiply that by a week and it’s a real time sink, plus a real risk.
It adds up fast. Here’s where it breaks down.
- You end up checking platforms “just in case,” which steals an hour here and there without producing a clear report.
- Mentions get lost because they were in a comment thread, not a tagged post.
- Hand-written notes in spreadsheets are inconsistent, so trends are hard to trust during weekly reporting.
- By the time a negative spike reaches the team, the conversation has already shaped public perception.
The Solution: Automated monitoring, AI scoring, and Slack alerts
This n8n workflow runs on a schedule (and can also be triggered on demand) to pull fresh brand mentions from multiple social sources, then uses an AI-driven sentiment engine to score what it finds. Each mention gets structured fields like timestamp, platform, username, the full text content, a sentiment score and label, detected emotion, topics, and basic reach/engagement estimates. That data is written into Google Sheets so your dashboard stays current without anyone copying and pasting. Finally, the workflow checks the analysis against alert rules. If it looks like a crisis, Slack gets a high-priority message quickly. If it’s unusually positive, Slack still gets a note, just routed through a different filter.
The workflow starts when the schedule trigger runs (or when you hit the webhook for an on-demand sweep). ScrapeGraphAI pulls relevant posts from Twitter, Reddit, and LinkedIn, then the sentiment logic classifies them and updates Google Sheets. Slack messages only fire when the “critical” or “positive” conditions are met, so you aren’t drowning in alerts.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you check three platforms twice a day. If you spend about 10 minutes per platform each time (open, search, scan, capture notes), that’s roughly an hour a day just to “stay on top of it.” With this workflow, the scheduled run does the collection and analysis for you, then writes everything into Google Sheets. You might spend 5 minutes skimming the sheet and only jump into Slack when a critical alert fires. That’s a big chunk of focus back, without losing coverage.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for the sentiment dashboard and log.
- Slack to notify your team when rules match.
- ScrapeGraphAI API key (get it from your ScrapeGraphAI dashboard).
- OpenAI API key (get it from the OpenAI API settings page).
Skill level: Intermediate. You’ll connect credentials, paste API keys, and adjust a few filters and prompts, but you won’t be writing a full app.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A scheduled run (or an on-demand webhook) kicks things off. You can run it every 15 minutes during business hours, hourly, or whatever fits your volume and platform limits.
Mentions are collected from social sources. The workflow uses ScrapeGraphAI extractors for Twitter/X, Reddit discussions, and LinkedIn mentions, pulling in the actual text you care about rather than a messy screenshot-only workflow.
Sentiment is analyzed and normalized. The sentiment engine assigns a score and label, detects the dominant emotion, and tags topics so you can group mentions later (product issues, pricing, shipping delays, feature requests, and so on).
Google Sheets is updated and Slack is notified selectively. Every record goes into the sheet with the same columns, then two filters decide if a “crisis” alert should post to Slack or if a positive note should be shared.
You can easily modify the platforms being monitored to focus on different channels based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
Set up the automated schedule and optional webhook trigger that kick off the social monitoring runs.
- Open Scheduled Social Watch and set the schedule rule to run every 4 hours by configuring the interval to hours with
hoursInterval: 4. - Open On-Demand Sentiment Hook and confirm HTTP Method is
GETand Path issentiment-webhookfor manual runs. - Note the execution flow: Scheduled Social Watch outputs to Twitter Mention Extractor, Reddit Discussion Extractor, and LinkedIn Mention Extractor in parallel.
- Also verify that On-Demand Sentiment Hook outputs to Twitter Mention Extractor, Reddit Discussion Extractor, and LinkedIn Mention Extractor in parallel.
Step 2: Connect Social Data Sources
Configure each ScrapeGraphAI extractor to pull brand mentions from Twitter, Reddit, and LinkedIn.
- Open Twitter Mention Extractor and set Website URL to
https://twitter.com/search?q=%22YourBrand%22%20OR%20%22YourCompany%22&src=typed_query&f=live. - In Twitter Mention Extractor, set User Prompt to the provided schema prompt that includes
"platform": "Twitter"and the posts array. - Open Reddit Discussion Extractor and set Website URL to
https://www.reddit.com/search/?q=%22YourBrand%22&type=comment&sort=new. - In Reddit Discussion Extractor, set User Prompt to the schema prompt with
"platform": "Reddit"and the posts array. - Open LinkedIn Mention Extractor and set Website URL to
https://www.linkedin.com/search/results/content/?keywords=%22YourBrand%22&origin=GLOBAL_SEARCH_HEADER&sid=123. - In LinkedIn Mention Extractor, set User Prompt to the schema prompt with
"platform": "LinkedIn"and the posts array. - Credential Required: Connect your scrapegraphAIApi credentials in Twitter Mention Extractor, Reddit Discussion Extractor, and LinkedIn Mention Extractor.
YourBrand, you will collect irrelevant data. Replace those tokens before enabling the workflow.Step 3: Set Up Sentiment Processing
Use the custom code node to analyze sentiment, classify influencers, and compute priority levels for alerts.
- Open Sentiment Intelligence Engine and keep the full JavaScript block as provided to process posts from all platforms.
- Review and customize the brand keywords inside the code, especially
sentimentConfig.brandKeywords.your_brandand competitor lists, to match your real entities. - Confirm the execution flow: Twitter Mention Extractor, Reddit Discussion Extractor, and LinkedIn Mention Extractor all output to Sentiment Intelligence Engine.
- Note that Sentiment Intelligence Engine outputs to Update Sentiment Sheet, Critical Alert Filter, and Positive Tone Filter in parallel.
Step 4: Connect Google Sheets Logging
Append or update each processed post into a structured Google Sheets dashboard.
- Open Update Sentiment Sheet and set Operation to
appendOrUpdate. - Set Authentication to
serviceAccountto match the existing configuration. - Set Document to
[YOUR_ID]and Sheet Name toSentiment Data(gid0), or select your own spreadsheet. - Leave Mapping Mode as
autoMapInputDataand ensure Matching Columns includespost_id. - Credential Required: Connect your googleSheetsOAuth2Api credentials in Update Sentiment Sheet.
Step 5: Configure Alert Logic and Slack Notifications
Route critical or positive sentiment posts to dedicated Slack channels with formatted alerts.
- Open Critical Alert Filter and verify the three conditions are using expressions:
{{ $json.crisis_potential }},{{ $json.priority_level }}equalsCritical, and{{ $json.mentions_your_brand && ($json.sentiment === 'negative' || $json.sentiment === 'very_negative') }}. - Open Positive Tone Filter and verify the conditions check
{{ $json.sentiment }}equalspositiveorvery_positive. - Open Post Crisis Slack Alert and set the Channel to your alert destination; keep the Text field as the full template to include sentiment and engagement metrics.
- Open Send Positive Slack Note and set the Channel for positive mentions; keep the Text field as the template with the content preview and engagement stats.
- Credential Required: Connect your slackOAuth2Api credentials in Post Crisis Slack Alert and Send Positive Slack Note.
Step 6: Test and Activate Your Workflow
Run a manual test, verify outputs, and then enable the workflow for scheduled monitoring.
- Click Execute Workflow and use On-Demand Sentiment Hook to trigger a manual run via the webhook URL.
- Confirm that items appear in Update Sentiment Sheet and that Post Crisis Slack Alert or Send Positive Slack Note post messages when conditions match.
- Check that Sentiment Intelligence Engine outputs fields like
priority_level,sentiment, andcrisis_potentialfor each post. - When satisfied, toggle the workflow to Active to enable scheduled execution from Scheduled Social Watch.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check the Google connection inside n8n Credentials and confirm the spreadsheet is still shared to the same account.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- ScrapeGraphAI and OpenAI prompts default to generic outputs, honestly. Add your brand voice, your “what counts as critical,” and a few examples early, or you’ll be editing alert messages forever.
Frequently Asked Questions
About 20–25 minutes if your accounts and keys are ready.
No. You’ll mostly connect accounts, paste API keys, and tweak thresholds and prompts.
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 OpenAI API usage (often just a few dollars a month for moderate monitoring) and your ScrapeGraphAI plan.
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.
Yes, and it’s the normal way to use it. You can add another source by duplicating an extractor (like the Twitter or Reddit extractor) and pointing it at a new URL or query, then feeding it into the same Sentiment Intelligence Engine. Most customizations are just changing the Critical Alert Filter logic, adjusting the Positive Tone Filter, and editing the sentiment prompt so “critical” reflects your real risk (pricing outrage, outage reports, legal issues, impersonation, and so on).
Usually it’s an OAuth permission problem or an expired authorization. Reconnect your Google Sheets credentials in n8n, then confirm the spreadsheet and tab name match what the workflow expects (for example, “Sentiment Analysis”). If the workflow can read Sheets but can’t write, check that the connected Google account still has edit access. Also make sure you didn’t move the sheet into a Drive location with stricter sharing settings.
On most setups, it can handle hundreds of mentions per day as long as you keep your schedule reasonable and respect platform limits.
Often, yes, because this workflow benefits from branching logic, code-based sentiment handling, and flexible triggers. Zapier and Make can do alerts, but multi-step enrichment and filtering usually gets expensive or awkward as you add platforms and rules. n8n also gives you the self-hosting option, which can matter when monitoring volume grows. The tradeoff is setup: you’re configuring more pieces upfront, including API keys and prompts. If you want someone to sanity-check your approach, Talk to an automation expert.
Once this is running, you stop “checking social” and start responding to real signals. The workflow handles the repetitive monitoring and logging so you can spend your attention where it actually counts.
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.