Detect competitor product launches from ads with Google Sheets and OpenAI
Quick Overview This scheduled workflow scans competitor ads via Adyntel (Meta, Google, and LinkedIn), extracts newly appearing terms from ad copy, and uses OpenAI to classify potential launch signals, then logs results and updates baselines in Google Sheets.
How it works Runs on a schedule and reads competitor domains marked as Pending from a Google Sheets spreadsheet. For each competitor, fetches active ads from Meta, Google Ads, and LinkedIn Ads using Adyntel and combines the results. Extracts and deduplicates ad headlines and body text, then compiles a single text corpus for the current week. Loads previously known terms for the competitor from Google Sheets and deterministically extracts new terms from this week’s ads by comparing against the baseline. If no qualifying new terms are found, writes baseline terms derived from this week’s ad titles to the known_terms sheet, marks the competitor as Done, and continues to the next competitor. If new terms are found, sends the terms and ad-copy context to OpenAI to classify each term and decide whether the pattern indicates a product launch. When a launch signal is detected, appends a record to the launch_signals sheet, adds the newly discovered terms (with categories) to known_terms, updates the competitor status to Done, and formats a Slack-ready alert message.
Setup Create a Google Sheets spreadsheet with three tabs named competitors, known_terms, and launch_signals, and ensure the expected columns exist (at minimum: competitors.domain and competitors.status, known_terms.domain and known_terms.term, and the launch_signals columns used for logging). Connect Google Sheets OAuth2 credentials in n8n and update the spreadsheet ID/sheet selectors if you are not using the provided document. Add an Adyntel API credential so the workflow can query Meta, Google Ads, and LinkedIn Ads by company domain. Add an OpenAI API credential (Chat Model) and select the model you want to use for term classification and launch-signal detection. Populate the competitors sheet with competitor_name, domain, and set status to Pending for rows you want processed, then adjust the schedule interval to your preferred scan frequency.
Related Templates
Restore your workflows from GitHub
This workflow restores all n8n instance workflows from GitHub backups using the n8n API node. It complements the Backup ...
Build a Restaurant Voice Assistant with VAPI and PostgreSQL for Bookings & Orders
This n8n template demonstrates how to create a comprehensive voice-powered restaurant assistant that handles table reser...
Extract Named Entities from Web Pages with Google Natural Language API
Who is this for? Content strategists analyzing web page semantic content SEO professionals conducting entity-based anal...
🔒 Please log in to import templates to n8n and favorite templates
Workflow Visualization
Loading...
Preparing workflow renderer
Comments (0)
Login to post comments