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
- Runs on a weekday morning schedule (or manually) and reads the list of X handles and thresholds from Settings.
- 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.
- 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).
- 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.
- If there are notable posts, sends the short list to OpenAI to produce one-sentence, plain-language summaries for each item.
- 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.
- 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
- Create a Bright Data Header Auth credential (HTTP Header Auth) named
Authorization with the value Bearer <YOUR_BRIGHT_DATA_API_KEY>.
- Add an OpenAI (Chat) credential for the OpenAI model used in the workflow.
- Add a Slack credential, set the digest channel in Settings, and ensure the error-alert channel (default
#alerts) exists or update it.
- 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.
- Create an n8n Data Table named
x_post_watch with text columns post_id, handle, and seen_on, then update Settings (handles, days_back, thresholds) to your needs.