This n8n workflow checks daily ad spend totals from a Google Sheet and sends a Slack alert if spend exceeds $100. It can be scheduled to run automatically or manually triggered for testing. This is perfect for marketing teams who want to monitor budget spikes in near real-time.
β
Key Features
- π₯ Google Sheets Integration : Pulls raw spend data from a shared spreadsheet.
- π Scheduled or Manual Execution : Can run daily on a schedule or manually for testing.
- π Aggregates Spend : Summarizes daily totals from raw data.
- π§ Logic Check : Alerts only when spend exceeds a certain threshold.
- π Slack Alerts : Sends instant notification to a specified channel.
π§° What You'll Need
- Google Cloud Project with Sheets API enabled
- OAuth2 Credential for Google Sheets
- Slack Bot Token with permission to post to your workspace
- Your Google Sheet link and tab name
π Copy this Sample Google Sheet to Use:
Marketing Data Sheet - Copy Me
π§ Step-by-Step Setup
1οΈβ£ Schedule or Manual Trigger
- Node :
Schedule Workflow or Test Workflow
- Purpose : Either run daily via a cron-like rule or manually trigger the flow.
2οΈβ£ Get Google Sheet Data
- Node :
Get Data
- What it does : Fetches all rows from your connected sheet.
- Setup :
- Go to Google Cloud Console
- Create a new project
- Enable Google Sheets API
- Create OAuth2 credentials for a desktop or web application
- Connect your Google account in n8n via OAuth2
- Grant access to the sheet you want to read (ensure it's shared with your OAuth email)
- Use the copied sheet's link when connecting in n8n
3οΈβ£ Summarize Spend by Day
- Node :
Sum spend by Day
- What it does : Groups the dataset by
Date and sums the Spend ($) column
- Requirements :
- Your sheet must have a header row with
Date and Spend ($) as columns
4οΈβ£ Sort by Most Recent Date
-
Node : Sort Dates Descending
-
What it does : Sorts all entries by the Date field so that the most recent day is first
-
Custom JavaScript :
const items = $input.all();
items.sort((a, b) => new Date(b.json.Date) - new Date(a.json.Date));
return items;
5οΈβ£ Select Top Result
- Node :
Keep only Last Day
- What it does : Captures the top row (most recent day) for evaluation
- Fields : Sets only
Date and sum_Spend_($) to keep things clean
6οΈβ£ Check Spend Threshold
7οΈβ£ Send Slack Notification
-
Node : Send Slack Message
-
What it does : Sends a message to a Slack channel if the threshold is exceeded
-
Setup :
- Go to Slack API
- Create a new app
- Enable chat:write and channels:read scopes under OAuth & Permissions
- Install the app to your workspace
- Copy the OAuth Token into your Slack credentials in n8n
- Select your target channel from the dropdown (must be public or the bot must be invited)
-
Message :
The spend for the most recent day is over $100
8οΈβ£ No Action if Under Budget
- Node :
Do Nothing. Under 100
- Purpose : This path simply ends the flow with no action if spend is below the threshold
π€ Created By
Robert Breen
Automation Consultant | AI Workflow Designer | n8n Expert
π§ [email protected]
π ynteractive.com
π LinkedIn
π·οΈ Tags
slack marketing automation budget alert daily schedule google sheets threshold logic n8n spend tracking data summarization