Back to Blog
Automation Workflows

Build a Google Ads Budget Alert Workflow with n8n and Slack

n8n
n8n Resources Team
March 31, 2026

Manually checking Google Ads dashboards to prevent overspend is a time-consuming and reactive process. A single busy day can lead to a campaign blowing past its daily or monthly budget, wasting money and skewing performance data. For agencies and marketing teams managing multiple accounts, this risk multiplies.

The solution is to build a proactive monitoring system. This guide will walk you through creating an automated n8n workflow that fetches your campaign spend directly from the Google Ads API, compares it against a set budget, and sends an instant alert to a designated Slack channel when a threshold is breached.

This workflow empowers you to take immediate action, providing peace of mind and ensuring your ad spend stays precisely on track without constant manual oversight.

What You'll Build

This workflow will:

  • Run on a schedule (e.g., every hour).

  • Connect to the Google Ads API to retrieve the current cost of a specific campaign.

  • Compare the current spend against a predefined budget limit.

  • If the spend exceeds the limit, it will send a formatted, actionable alert to a Slack channel.

Prerequisites

Before you start, you’ll need a few things in place:

  • An active n8n instance. (n8n Cloud is the fastest way to get started).

  • A Google Ads account with administrator access.

  • Google Ads API credentials. This includes a developer token and OAuth 2.0 client credentials. You can follow the official Google Ads API guide to set this up.

  • A Slack workspace where you have permission to add integrations.

The Workflow Logic Explained

The logic for our budget alert system is straightforward and follows a simple, five-step process:

  1. Trigger: A Schedule node kicks off the workflow at a regular interval you define, such as every hour.

  2. Fetch Data: The Google Ads node queries your account to get the latest spend data for a specific campaign.

  3. Set Budget: A Set node defines the maximum budget for the period you are checking.

  4. Compare: An IF node acts as our decision-maker, checking if the current spend is greater than our defined budget.

  5. Alert: If the condition is true, a Slack node sends a message to your team. If false, the workflow simply ends until the next scheduled run.

Step 1: Set Up the Schedule Trigger

Every workflow starts with a trigger. Since we want to check our ad spend periodically, the Schedule node is the perfect choice.

In your n8n canvas, add a Schedule node. Configure it to run at an interval that makes sense for your campaigns. For fast-moving campaigns, you might choose every hour. For others, every 3 or 6 hours might suffice.

Step 2: Get Campaign Spend with the Google Ads Node

This is where we retrieve our data. Add a Google Ads node and connect it to the Schedule node.

First, you'll need to configure your credentials. Select Create New under Credential for Google Ads API and enter the developer token, Client ID, and Client Secret you generated from the Google Cloud Console. You will also need your Customer ID from the Google Ads interface (without hyphens).

Once authenticated, configure the node as follows:

  • Resource: Campaign
  • Operation: Get
  • Customer ID: Enter the ID of the Google Ads account you want to query.
  • Campaign ID: Enter the specific ID of the campaign you want to monitor.
  • Return All: Keep this disabled.
  • Fields To Return (under Additional Fields): In this field, add metrics.cost_micros. This is crucial, as it tells the API to return the spend data. Note that the API returns cost in

Enjoyed this article?

Share it with others who might find it useful