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_listings with columns for the stored listing fields (for example app_id, title, version, price, sub_title, desc_head, desc_hash, screenshots, languages, rating, one_star, and checked_at).
- In the Settings node, paste your competitor App Store URLs, set
max_polls/max_explained as needed, and set the target slack_channel.
- Run the workflow once to seed the Data Table (the first run stores baselines and typically posts no change report).