Quick Overview
This workflow runs weekly to scan competitor ad copy from Meta, Google Ads, and LinkedIn via Adyntel, detects newly emerging terms, uses OpenAI to assess launch signals, and records results in Google Sheets while sending a Slack alert when a launch signal is detected.
How it works
- Runs every week on a schedule (Monday) to start the competitor monitoring cycle.
- Reads competitors marked as Pending from Google Sheets and processes them one by one.
- For each competitor domain, pulls current ads from Meta, Google Ads, and LinkedIn using Adyntel and combines the results.
- Extracts and deduplicates ad titles and body copy, then loads the competitor’s previously known terms from Google Sheets.
- Extracts candidate new terms from this week’s ad copy, filters for terms that recur across multiple ads, and decides whether there are meaningful new terms to analyze.
- If meaningful new terms exist, sends the context to OpenAI to classify the terms and determine whether a product launch signal is present, then appends the signal record and the newly classified terms to Google Sheets.
- If no meaningful new terms exist, appends baseline terms from this week’s ad titles to Google Sheets to prevent future false “new term” detections.
- Updates the competitor’s status to Done in Google Sheets and, when a signal is detected, formats a Slack alert message and continues to the next competitor.
Setup
- Connect Google Sheets OAuth credentials and update the spreadsheet ID/sheet tabs for competitors (with a status column), known_terms, and launch_signals.
- Add an Adyntel API credential and ensure each competitor row includes a valid domain value for ad lookups.
- Add an OpenAI API key for the OpenAI Chat Model used by the AI Agent.
- Configure a Slack notification step (this template formats a message but does not send it) by adding a Slack node/webhook and posting the formatted slack_message to your chosen channel.
- Confirm the schedule settings (weekly on Monday) and adjust term extraction thresholds in the code steps if you want different sensitivity.