Skip to content
FlowHubFluxonLab
C
Google Sheetsfree

Monitor ad campaign health daily with Spendict, Google Sheets, and Slack

by Spendictadapted from n8n official workflow galleryUpdated Aug 2026
RequiresCCodeGoogle SheetsGoogle SheetsHTTP RequestHTTP Request
Share Post Share
ScEvery morningGoogle Sheets: read campaignsGoogle Sheets: …CoBuild diagnosis payloadBuild diagnosis…HRSpendict: analyze_campaign_performanceSpendict: analy…SwRoute on healthCoRow: healthy / no dataRow: healthy / …CoRow: needs attentionRow: needs atte…HRSlack: alertGoogle Sheets: health logGoogle Sheets: …1234567891011
1/5
STEPS · 11
Runs on a schedule

Quick overview This workflow runs every morning to read ad campaign metrics from Google Sheets, send each campaign to Spendict for performance diagnosis against benchmarks, log the verdicts back to Google Sheets, and post Slack alerts when a campaign needs attention. How it works Runs daily at 08:00 on a schedule trigger. Reads campaign metric rows from a Google Sheets spreadsheet. Builds a Spendict request per campaign by normalizing platform/objective fields and including only numeric metrics present in each row. Sends each campaign’s metrics to the Spendict analyze-performance API to get a verdict, score, bottleneck, and diagnosis. Routes results by verdict so healthy or insufficient-data campaigns are only logged, while fix_first and kill_or_rebuild campaigns are also prepared for alerting. Appends a dated health-check row for every campaign to a Google Sheets “health log” sheet. Posts a Slack Incoming Webhook message for fix_first and kill_or_rebuild campaigns including the score, primary bottleneck, and diagnosis. Setup Add Google Sheets credentials and select the document and sheet for both reading campaign metrics and appending to the health log.

Tags

n8nreference-onlygoogle-sheets
Connects
CCodesheetsGoogle SheetsWHTTP Request
CategoryGoogle Sheets
Triggermanual
Complexitycomplex
Nodes9
AddedJul 14, 2026

Related workflows

See all Google Sheets
CsheetsW
free

Monitor negative customer reviews with an HTTP API, Google Sheets and Slack

Quick Overview This workflow polls your review API every 6 hours, filters for reviews rated 3 stars or lower, and posts an alert to a Slack channel for each negative review. How it works Runs every 6 hours on a schedule. Fetches the latest reviews from a configured HTTP endpoint. Filters the returned items to keep only reviews with a rating of 3 or below. Checks whether any negative reviews were found and stops if none exist. Posts each negative review to a selected Slack channel with the rating, author, and review text. Setup Provide a reviews API endpoint (and any required authentication) in the HTTP Request node. Connect Slack using an OAuth2 credential. Select the target Slack channel and adjust the rating threshold in the filter logic if you want a stricter or looser definition of “negative”.

by Redowan Ahmed Farhan
CsheetsW
free

Enrich Google Maps business leads with Apify and Google Sheets

Quick overview This workflow runs on demand to scrape Google Maps business leads with Apify, optionally fetches each business website to extract an email address, and appends the enriched lead data to a Google Sheets spreadsheet. How it works Starts manually and loads the Apify API key, Google Maps search query, max results, and target Google Sheets spreadsheet ID. Launches the Apify Google Places scraper run for the provided search query and stores the returned run ID and dataset ID. Polls Apify until the actor run status is SUCCEEDED, waiting and retrying until results are ready. Downloads the scraped business items from the Apify dataset and processes them one business at a time. If a business has a website, requests the site HTML and extracts the first valid email address found; otherwise it keeps the email blank. Appends each enriched lead (name, email, phone, rating, address, review count, and website) as a new row in Google Sheets. Setup Add your Apify API token and replace the placeholder value in the configuration step. Connect Google Sheets credentials in n8n and set the target spreadsheet ID (and sheet name if not Sheet1). Update the Google Maps search query and max resu

by Igor
CsheetsW
free

Log Strava zone 2 and 5K test runs to Google Sheets

Quick overview This scheduled workflow pulls your latest running activities from Strava, classifies them as Zone 2 runs or 5K tests based on pace and distance, and writes the formatted results into specific cells in a Google Sheets training log while tracking processed activity IDs. How it works Runs on a daily schedule. Fetches recent activities from the Strava API for the authenticated athlete. Processes each activity to calculate pace (min/km) and routes it into “Zone 2” or “Test Run” based on sport type, duration, pace, and distance rules. Formats the selected activities into sheet-ready fields (date, pace string, moving time, and distance) and labels them as ZONA 2 or TEST 5KM. Reads the target Google Sheets range to find the next available slots and checks an “IDs Registrados” list to avoid reprocessing activities. Updates Google Sheets with the activity details in the appropriate cycle columns and appends new Strava activity IDs to the “IDs Registrados” cell. Setup Connect your Strava OAuth2 credentials and ensure the athlete has permission to read activities. Connect your Google Sheets OAuth2 credentials and update the spreadsheet URL/ID and sheet (tab) selection used for r

by Facundo Witt