Track competitor X announcements with Bright Data, OpenAI, Sheets and Slack
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
Nodes used (14)
- Schedule Trigger
n8n-nodes-base.scheduleTrigger - Manual Trigger
n8n-nodes-base.manualTrigger - Edit Fields (Set)
n8n-nodes-base.set - Data table
n8n-nodes-base.dataTable - Code
n8n-nodes-base.code - HTTP Request
n8n-nodes-base.httpRequest - Wait
n8n-nodes-base.wait - If
n8n-nodes-base.if - OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi - Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm - Split Out
n8n-nodes-base.splitOut - Google Sheets
n8n-nodes-base.googleSheets - Slack
n8n-nodes-base.slack - Error Trigger
n8n-nodes-base.errorTrigger
What it does
Quick Overview This workflow runs each weekday morning to crawl selected X (Twitter) accounts via Bright Data, score posts against each account’s normal engagement, summarize notable announcements with OpenAI, log all posts to Google Sheets, and send a digest (or “quiet day” notice) to Slack. How it works 1. Runs on a weekday morning schedule (or manually) and reads the list of X handles and thresholds from Settings. 2. Loads previously seen post IDs from an n8n Data Table and sends them to Bright Data so already-processed posts are skipped during the crawl. 3. Triggers a Bright Data X posts dataset crawl for each profile URL, then polls Bright Data until the snapshot is ready (or fails/times out). 4. Downloads the posts, computes an engagement baseline per account (median of recent non-repost posts), tags each post (launch/pricing/funding/hiring/incident/event/general), and selects the most notable items. 5. If there are notable posts, sends the short list to OpenAI to produce one-sentence, plain-language summaries for each item. 6. Builds a Slack digest, appends every crawled post (notable or not) as rows in Google Sheets, and upserts each post ID into the Data Table to avoid re-crawling it next run. 7. Posts either the digest or a “quiet day” message to Slack, and if the workflow errors it posts a failure alert to a separate Slack channel. Setup 1. Create a Bright Data Header Auth credential (HTTP Header Auth) named Authorization with the value Bearer <YOURBRIGHTDATAAPIKEY. 2. Add an OpenAI (Chat) credential for the OpenAI model used in the workflow. 3. Add a Slack credential, set the digest channel in Settings, and ensure the error-alert channel (default alerts) exists or update it. 4. Add a Google Sheets credential, replace the spreadsheet URL/ID, and ensure a sheet tab named “Competitor posts” exists with columns that match the appended fields. 5. Create an n8n Data Table named xpostwatch with text columns postid, handle, and seenon, then update Settings (handles, daysback, thresholds) to your needs.