Quick overview This workflow checks a list of competitor web pages every six hours, detects content changes by hashing cleaned page text, and posts a diff-style alert to a Discord or Slack channel via an incoming webhook. How it works Runs every 6 hours on a schedule. Loads a configured list of target competitor page URLs and the destination Discord/Slack webhook URL. Fetches each target page over HTTP with browser-like headers and continues even if a request fails. Converts the fetched HTML into cleaned plain text, stores a baseline on first run, and compares the latest hash against the previously saved version. When a change (or fetch error) is detected, generates a message including the URL and a small list of added/removed lines. Sends the alert message to your Discord or Slack webhook endpoint. Setup Create an incoming webhook in Discord or Slack and paste its URL into the workflow configuration. Update the target list with the competitor page names and URLs you want to monitor. Ensure n8n can persist workflow static data between runs (so change history is retained) and that your instance can reach the target sites over HTTP. Requirements n8n version 1.60+.
Tags
Related workflows
See all General Automation→Upload CSV test cases to Qase and send completion alerts to Slack
Quick overview This workflow upload test cases from a CSV file into Qase App and sends a confirmation message to your Slack channel. How it works Receives a form submission containing a public CSV URL and a selected Qase project option. Downloads the CSV file from the provided URL and extracts its rows into individual test-case items. Maps each row into the JSON payload Qase expects (including project code, fields like severity/priority/type, and optional parsed steps). Creates the test cases in Qase by sending a POST request per item to the Qase Cases API for the mapped project. Aggregates the upload responses into a single result. Sends a Slack incoming-webhook message confirming the test case upload is complete. Setup Create a Qase API token and add it to the Qase HTTP Header Auth credentials used for the Qase API request. Create a Slack Incoming Webhook, paste the webhook URL into the Slack notification HTTP request node, and customize the message text if needed. Ensure the uploaded CSV is publicly accessible via URL and uses the expected columns (for example: title, description, preconditions, postconditions, severity, priority, type, layer, behavior, automation, and optional
Create real estate listing video ads with OpenAI and Videotok
Quick Overview This workflow takes a real estate listing, uses OpenAI to generate ad copy and a video generation prompt, then sends it to the Videotok API to create a 9:16 vertical listing video ad with a caption and compliance notes. How it works Starts manually to test the workflow with a sample property listing. Builds a listing record containing the address, listing details, and image URLs (replace this with your real listing source). Sends the listing data to OpenAI to generate structured JSON for a video ad, including a script, generation prompt, caption, and compliance notes. Parses the OpenAI output and maps it into a Videotok generation payload with brand kit, reference images, quality, duration, and an idempotency key. Calls the Videotok Generations API to create the vertical video ad using the generated prompt and listing images. Setup Add environment variables for OPENAI_API_KEY, VIDEOTOK_API_KEY, and VIDEOTOK_BRAND_KIT_ID. Replace the sample listing step with your own source (CRM, Airtable, Google Sheets, MLS export, or scraper) and ensure it outputs address, listing_details, and listing_image_urls. Confirm the Videotok template slug (viral-video-ads) and adjust the vi
Poll and download received invoice PDFs with KSeF Gateway to disk storage
Quick overview This workflow runs every 20 minutes to poll a self-hosted KSeF Gateway for newly received KSeF invoices, maintains a cursor checkpoint in n8n static data, downloads each new invoice PDF via the gateway API, and saves the files to local disk. How it works Runs every 20 minutes on a schedule. Reads the last successful polling checkpoint from the workflow’s static data and calls the KSeF Gateway /ksef/invoices/received/new endpoint with the since cursor. If the gateway response is unsuccessful, records the error details for alerting and leaves the checkpoint unchanged so the next run retries the same window. If the response is successful, stores the returned nextSince value as the new checkpoint. If new invoices are returned, processes each invoice summary individually. Downloads each invoice PDF from the KSeF Gateway /ksef/invoice/{ksefNumber}/pdf endpoint and saves it to the configured local folder. Outputs invoice metadata (number, seller, amount, and saved file path) as a placeholder where you can plug in notifications (Slack, email, or Discord). Setup Deploy and configure a self-hosted KSeF Gateway (https://github.com/jurczykpawel/ksef-gateway) with a token or cert