π Track competitor App Store listing changes with Bright Data, GPT-5.6 and Slack
β‘ 1 views Β· π Market Research & Insights
π‘ Pro Tip β HTTP Request scraping tends to break when sites update their markup. If youβre scraping a major platform, check if ScraperNode covers it β it has maintained scrapers for LinkedIn, Instagram, TikTok, YouTube, and 20+ other platforms that return structured data.
Description
Quick overview
This workflow runs every Monday, scrapes a list of competitor iOS App Store listings via Bright Data, compares key fields to last weekβs snapshot stored in an n8n Data Table, uses OpenAI (GPT-5.6) to explain only the changes, and posts a weekly digest to Slack.
How it works
- Runs every Monday morning on a schedule trigger.
- Reads a configured list of App Store URLs and sends them to Bright Dataβs Web Scraper API to create a listing snapshot job.
- Polls Bright Data until the snapshot is ready (or the max poll limit is reached), then downloads the snapshot JSON.
- Normalizes each listing into a consistent set of fields (for example version, price, subtitle, description hash/head, screenshot count, languages, rating, and one-star share) and drops errored rows.
- Loads the previous runβs values from the n8n Data Table, compares each app to find meaningful changes, and upserts the current values back into the Data Table.
- If any apps changed, sends the change JSON for up to the configured maximum to OpenAI (GPT-5.6) to generate short, grounded explanations.
- Builds a single Slack-ready digest summarizing what moved and posts it to the configured Slack channel, or does nothing on a quiet week.
Setup
- Add a Bright Data HTTP Header Auth credential and ensure you have access to the App Store listing dataset used by the workflow.
- Add an OpenAI credential (model set to gpt-5.6-terra) and a Slack OAuth credential.
- Create an n8n Data Table named
app_listingswith columns for the stored listing fields (for exampleapp_id,title,version,price,sub_title,desc_head,desc_hash,screenshots,languages,rating,one_star, andchecked_at). - In the Settings node, paste your competitor App Store URLs, set
max_polls/max_explainedas needed, and set the targetslack_channel. - Run the workflow once to seed the Data Table (the first run stores baselines and typically posts no change report).
π Nodes Used
HTTP Request, Slack, Schedule Trigger, Basic LLM Chain, OpenAI Chat Model, Data table
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File