AutomationFlowsAI & RAG › Analyze Google Ads Search Terms with AI and Send Alerts

Analyze Google Ads Search Terms with AI and Send Alerts

Original n8n title: Analyze Google Ads Search Terms with AI and Send Wastage Alerts

BySpaGreen Creative @spagreen on n8n.io

This workflow is designed for Google Ads advertisers, PPC managers, and marketing teams who want to automatically monitor and optimize their search term performance. It's particularly valuable for those running brand campaigns who need to identify and eliminate wasteful ad spend…

Cron / scheduled trigger★★★★★ complexityAI-powered30 nodesSlackHTTP RequestAgentGoogle Ads ToolLm Chat Deep SeekOpenAI ChatLm Chat Xai GrokAnthropic Chat
AI & RAG Trigger: Cron / scheduled Nodes: 30 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #14449 — we link there as the canonical source.

This workflow follows the Agent → Discord recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "Yk53wefmTNP96u4t",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automated Google Ads Search Term Analysis & Alerts",
  "tags": [],
  "nodes": [
    {
      "id": "6b1dc428-e551-4d5d-94ee-54528f7a654f",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        304,
        512
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "ec5f1b53-96f8-4ed9-8a03-acfd2e44ab3c",
      "name": "Filtering For A Specific Search Google Campaign",
      "type": "n8n-nodes-base.if",
      "position": [
        -848,
        320
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "4da42e43-3698-45f0-a415-5afeda2095b8",
      "name": "Extracting Search Terms In The Past 14 Days",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -624,
        304
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "1aa7b514-8665-4779-8733-c7de35afe946",
      "name": "Code (Google Ads Data Cleaner & Metrics Calculator)",
      "type": "n8n-nodes-base.code",
      "position": [
        -1504,
        592
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "bc764c06-efde-4d79-b707-7a932df84465",
      "name": "Code (Google Ads Metrics Aggregator)",
      "type": "n8n-nodes-base.code",
      "position": [
        -1056,
        592
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "7a6d2b7a-7fba-452b-bc7f-af76c419b2e7",
      "name": "Filter (Filtering Out Brand and Excluded Terms)",
      "type": "n8n-nodes-base.filter",
      "position": [
        -1280,
        592
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "a9244dfd-36b7-4680-8c0d-941d57c7b48a",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -336,
        592
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "abe04951-4d19-4c0e-b1de-ae00af2cb22b",
      "name": "Get a campaign in Google Ads",
      "type": "n8n-nodes-base.googleAdsTool",
      "position": [
        -240,
        816
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0f626220-9817-4cf4-8607-ab6189151f68",
      "name": "DeepSeek Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
      "position": [
        -624,
        848
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5b5cebd9-91ef-448f-bb59-e675167ad2bc",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -592,
        1008
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "b2e49dee-050b-4d71-821a-bc5d9de6142c",
      "name": "xAI Grok Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatXAiGrok",
      "position": [
        -464,
        960
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "19e18458-0c03-4107-a094-bfcb106e0e6b",
      "name": "Anthropic Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        -336,
        992
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "1b023c79-b145-4ea7-a9d6-0c90fcfea386",
      "name": "Create message",
      "type": "n8n-nodes-base.microsoftTeams",
      "position": [
        304,
        672
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "b218ed96-eae3-4d04-a5eb-3eb03cdb8e8e",
      "name": "Rapiwa",
      "type": "n8n-nodes-rapiwa.rapiwa",
      "position": [
        304,
        832
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4376c83c-53ab-4e85-b4bd-91aa3a5b2d5a",
      "name": "Send a message1",
      "type": "n8n-nodes-base.discord",
      "position": [
        304,
        352
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "b57f2901-d52a-40d6-9c9c-63ad66e474ed",
      "name": "Prepare Data for LLM",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -832,
        592
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "61a14f30-fc33-42a2-a01f-e89045c0ef66",
      "name": "Split HTTP Response",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -400,
        304
      ],
      "parameters": {},
      "executeOnce": false,
      "typeVersion": 1
    },
    {
      "id": "8e5f4f06-02ab-49ea-8409-934d4db6b085",
      "name": "Get Only 'Enabled/Active' Campaigns",
      "type": "n8n-nodes-base.filter",
      "position": [
        -1056,
        320
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "a917d776-13cd-445b-9876-25fe1dff6fe1",
      "name": "Fetch Google Campaigns",
      "type": "n8n-nodes-base.googleAds",
      "position": [
        -1280,
        320
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "ad110e2d-a92f-485a-b453-7d40cf9b7a3c",
      "name": "Schedule Trigger (Start Everyday at 8AM)",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1504,
        320
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "3605965e-8957-4b39-b163-157217da5de4",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2016,
        256
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "a4089e0e-cb06-4670-8335-eca1af3dd27e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1552,
        256
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "327cbfdd-11c0-4b21-9a18-f88126a6405c",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -896,
        256
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "604eb653-993a-43be-b8f3-320623e9f753",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1552,
        544
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "5ab73fd3-cb46-4d4b-af23-c9c19f674268",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        544
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "46cefc06-b6cf-4598-a331-4d19dfbdfb5b",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        304
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "4672fe1b-e0e4-4e3b-9cc3-e1d5d660a1bc",
      "name": "Brand Details (Purpose: Adds context about your brand for AI analysis)",
      "type": "n8n-nodes-base.set",
      "position": [
        -608,
        592
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "a21d1b6e-5503-4638-8bdb-742a374692bb",
      "name": "Model Selector (Chooses which AI model to use for analysis)",
      "type": "@n8n/n8n-nodes-langchain.modelSelector",
      "position": [
        -512,
        800
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4fefbb93-82cb-4c47-b422-e69b744babb7",
      "name": "Ensures AI output follows specific JSON format",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -192,
        992
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "f8c2790a-ce96-489a-abee-7c0c603cfba0",
      "name": "Code (Converts AI analysis into formatted reports)",
      "type": "n8n-nodes-base.code",
      "position": [
        32,
        592
      ],
      "parameters": {},
      "typeVersion": 2
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "28ab44e2-c8fa-4c9e-ae8e-87e5f956de90",
  "connections": {
    "AI Agent": {
      "main": [
        [
          {
            "node": "Code (Converts AI analysis into formatted reports)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Model Selector (Chooses which AI model to use for analysis)",
            "type": "ai_languageModel",
            "index": 1
          }
        ]
      ]
    },
    "DeepSeek Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Model Selector (Chooses which AI model to use for analysis)",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Split HTTP Response": {
      "main": [
        [
          {
            "node": "Code (Google Ads Data Cleaner & Metrics Calculator)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "xAI Grok Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Model Selector (Chooses which AI model to use for analysis)",
            "type": "ai_languageModel",
            "index": 2
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Model Selector (Chooses which AI model to use for analysis)",
            "type": "ai_languageModel",
            "index": 3
          }
        ]
      ]
    },
    "Prepare Data for LLM": {
      "main": [
        [
          {
            "node": "Brand Details (Purpose: Adds context about your brand for AI analysis)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Google Campaigns": {
      "main": [
        [
          {
            "node": "Get Only 'Enabled/Active' Campaigns",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get a campaign in Google Ads": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Only 'Enabled/Active' Campaigns": {
      "main": [
        [
          {
            "node": "Filtering For A Specific Search Google Campaign",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code (Google Ads Metrics Aggregator)": {
      "main": [
        [
          {
            "node": "Prepare Data for LLM",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger (Start Everyday at 8AM)": {
      "main": [
        [
          {
            "node": "Fetch Google Campaigns",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extracting Search Terms In The Past 14 Days": {
      "main": [
        [
          {
            "node": "Split HTTP Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ensures AI output follows specific JSON format": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Filter (Filtering Out Brand and Excluded Terms)": {
      "main": [
        [
          {
            "node": "Code (Google Ads Metrics Aggregator)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filtering For A Specific Search Google Campaign": {
      "main": [
        [
          {
            "node": "Extracting Search Terms In The Past 14 Days",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code (Converts AI analysis into formatted reports)": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create message",
            "type": "main",
            "index": 0
          },
          {
            "node": "Rapiwa",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send a message1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code (Google Ads Data Cleaner & Metrics Calculator)": {
      "main": [
        [
          {
            "node": "Filter (Filtering Out Brand and Excluded Terms)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Model Selector (Chooses which AI model to use for analysis)": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Brand Details (Purpose: Adds context about your brand for AI analysis)": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow is designed for Google Ads advertisers, PPC managers, and marketing teams who want to automatically monitor and optimize their search term performance. It's particularly valuable for those running brand campaigns who need to identify and eliminate wasteful ad spend…

Source: https://n8n.io/workflows/14449/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow is for beauty salons who want consistent, high‑quality social media content without writing every post manually. It also suits agencies and automation builders who manage multiple beauty

Telegram, Google Sheets Trigger, Agent +26
AI & RAG

Who Is This For?

Telegram, Google Sheets Trigger, Lm Chat Mistral Cloud +17
AI & RAG

This workflow automates the complete blog publishing process. It removes manual work from content creation, image generation, category management, and WordPress publishing by using AI and n8n. It help

Google Gemini Chat, Output Parser Structured, Lm Chat Deep Seek +5
AI & RAG

This n8n workflow is designed for content creators, digital marketers, and social media managers who want to automate their entire content creation and publishing process across multiple platforms. It

Google Sheets, WordPress, Edit Image +13
AI & RAG

**Content engine that ships fresh, SEO-ready articles every single day. **

Google Sheets, Slack, Webflow +7