by Tony Paul
How it works ++Download the google sheet here++ and replace this with the googles sheet node: Google sheet , upload to google sheets and replace in the google sheets node. Scheduled trigger: Runs once a day at 8 AM (server time). Fetch product list: Reads your “master” sheet (product_url + last known price) from Google Sheets. Loop with delay: Iterates over each row (product) one at a time, inserting a short pause (20 s) between HTTP requests to avoid blocking. Scrape current price: Loads each product_url, extracts the current price via a simple CSS selector. Compare & normalize: Compares the newly scraped price against the “last_price” from your sheet, calculates percentage change, and tags items where price_changed == true. On price change: Send alert: Formats a Telegram message (“Price Drop” or “Price Hike”) and pushes it to your configured chat. Log history: Appends a new row to a separate “price_tracking” tab with timestamp, old price, new price, and % change. Update master sheet: After a 1 min pause, writes the updated current_price back to your “master” sheet so future runs use it as the new baseline. Set up step Google Sheets credentials (~5 min) Create a Google Sheets OAuth credential in n8n. Copy your sheet’s ID and ensure you have two tabs: product_data (columns: product_url, price) price_tracking (columns: timestamp, product_url, last_price, current_price, price_diff_pct, price_changed) Paste the sheet ID into both Google Sheets nodes (“Read” and “Append/Update”). Telegram credentials (~5 min) Create a Telegram Bot token via BotFather. Copy your chat_id (for your target group or personal chat). Add those credentials to n8n and drop them into the “Telegram” node. Workflow parameters (~5 min) Verify the schedule in the Schedule Trigger node is set to 08:00 (or adjust to your preferred run time). In the Loop Over Items node, confirm “Batch Size” is 1 (to process one URL at a time). Adjust the Delay to avoid Request Blocking node if your site requires a longer pause (default is 20 s). In the Parse Data From The HTML Page node, double-check the CSS selector matches how prices appear on your target site. Once credentials are in place and your sheet tabs match the expected column names, the flow should be ready to activate. Total setup time is under 15 minutes—detailed notes are embedded as sticky comments throughout the workflow to help you tweak selectors, change timeouts, or adjust sheet names without digging into code.
by Davide
This workflow automates the generation of AI-enhanced, contextualized images using FLUX Kontext, based on prompts stored in a Google Sheet. The generated images are then saved to Google Drive, and their URLs are written back to the spreadsheet for easy access. Example Image: Prompt: The girl is lying on the bed and sleeping Result: Perfect for E-commerce and Social Media This workflow is especially useful for e-commerce businesses: Generate product images with dynamic backgrounds based on the use-case or season. Create contextual marketing visuals for ads, newsletters, or product pages. Scale visual content creation without the need for manual design work. How It Works Trigger**: The workflow can be started manually (via "Test workflow") or scheduled at regular intervals (e.g., every 5 minutes) using the "Schedule Trigger" node. Data Fetch**: The "Get new image" node retrieves a row from a Google Sheet where the "RESULT" column is empty. It extracts the prompt, image URL, output format, and aspect ratio for processing. Image Generation**: The "Create Image" node sends a request to the FLUX Kontext API (fal.run) with the provided parameters to generate a new AI-contextualized image. Status Check**: The workflow waits 60 seconds ("Wait 60 sec." node) before checking the status of the image generation request via the "Get status" node. If the status is "COMPLETED," it proceeds; otherwise, it loops back to wait. Result Handling**: Once completed, the "Get Image Url" node fetches the generated image URL, which is then downloaded ("Get Image File"), uploaded to Google Drive ("Upload Image"), and the Google Sheet is updated with the result ("Update result"). Set Up Steps To configure this workflow, follow these steps: Google Sheet Setup: Create a Google Sheet with columns for PROMPT, IMAGE URL, ASPECT RATIO, OUTPUT FORMAT, and RESULT (leave this empty). Link the sheet in the "Get new image" and "Update result" nodes. API Key Configuration: Sign up at fal.ai to obtain an API key. In the "Create Image" node, set the Header Auth with: Name: Authorization Value: Key YOURAPIKEY Google Drive Setup: Specify the target folder ID in the "Upload Image" node where generated images will be saved. Schedule Trigger (Optional): Adjust the "Schedule Trigger" node to run the workflow at desired intervals (e.g., every 5 minutes). Test Execution: Run the workflow manually via the "Test workflow" node to verify all steps function correctly. Once configured, the workflow will automatically process pending prompts, generate images, and update the Google Sheet with results. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by vinci-king-01
How it works Turn Amazon into your personal competitive intelligence goldmine! This AI-powered workflow automatically monitors Amazon markets 24/7, delivering deep competitor insights and pricing intelligence that would take you 10+ hours of manual research weekly. Key Steps Daily Market Scan - Runs automatically at 6:00 AM UTC to capture fresh competitive data AI-Powered Analysis - Uses ScrapeGraphAI to intelligently extract pricing, product details, and market positioning Competitive Intelligence - Analyzes competitor strategies, pricing gaps, and market opportunities Keyword Goldmine - Identifies high-value keyword opportunities your competitors are missing Strategic Insights - Generates actionable recommendations for pricing and positioning Automated Reporting - Delivers comprehensive market reports directly to Google Docs Set up steps Setup time: 15-20 minutes Configure ScrapeGraphAI credentials - Add your ScrapeGraphAI API key for intelligent web scraping Set up Google Docs integration - Connect Google OAuth2 for automated report generation Customize Amazon search URL - Target your specific product category or market niche Configure IP rotation - Set up proxy rotation if needed for large-scale monitoring Test with sample products - Start with a small product set to validate data accuracy Set competitive alerts - Define thresholds for price changes and market opportunities Save 10+ hours weekly while staying ahead of your competition with real-time market intelligence!
by Cristian Baño Belchí
How it works: Accesses a target website, searches for new PDFs, and downloads them automatically. Extracts content from each PDF and sends it to an AI for summarization. Delivers the AI-generated summary directly to a Discord channel. Marks processed URLs in Google Sheets to avoid duplicates. Set up steps: Configure the website URL in the HTTP Request node. Connect to Google Cloud API (enable Drive & Sheets) and link your spreadsheet. Set up an OpenRouter API key and choose your preferred AI model. Create a Discord webhook for notifications.
by David Levesque
Here's the corrected English text: Dropbox Folder Monitoring Workflow As we don't have (yet?) a Dropbox node "Watching new files" or "Watching folder", I created this central workflow to do it. How it works Triggered by Dropbox webhook I respond immediately to Dropbox to avoid webhook disabling Then I add/duplicate one branch per monitored folder, according to my needs In my case, I need to monitor several folders, like "vocal notes to process", "transcriptions to LinkedIn posts" or "quotes to add". This workflow shows 2 types of folder monitoring: Way #1: Each file in the monitored folder calls a sub-workflow Way #2: We get all files from the monitored folder and compare them to a database. If the file is not listed in DB, i supposed it's new one. Way #1 - We get all files from the monitored folder I set a variable folder_to_watch to indicate which folder to monitor. This step is here just to be homogeneous and allow setting the folder path only once in this branch. I list the folder files We keep only files (exclude folders) Then I call the specialized sub-workflow Way #2 - We want only new files from the monitored folder I set a variable folder_to_watch to indicate which folder to monitor I list the folder files and keep only files Meanwhile, I query my DB to get known files about this folder (I send the query to NocoDB (folder_to_watch,eq,{{ $json.folder_to_watch }})) Now I can exclude old files and keep only new ones by merging (I compare from Dropbox file id - as the file could be renamed by the user) I add the new file in DB to be sure to recognize it next time - I save the JSON Dropbox data: { "id":"{{ $json.id }}", "name":"{{ $json.name }}", "lastModifiedClient": "{{ $json.lastModifiedClient }}", "lastModifiedServer": "{{ $json.lastModifiedServer }}", "rev": "{{ $json.rev }}", "contentSize": {{ $json.contentSize }}, "type": "{{ $json.type }}", "contentHash": "{{ $json.contentHash }}", "pathLower": "{{ $json.pathLower }}", "pathDisplay": "{{ $json.pathDisplay }}", "isDownloadable": {{ $json.isDownloadable }} } And now I can call my sub-workflow :) My DB Columns details: folder_to_watch data (json/text) timestamp file_id (Dropbox file ID, to ease future searches) My vision: I have only one workflow in my n8n that monitors Dropbox folders/files This workflow calls the required sub-workflow specialized for the tasks required I will have as many branches as I have folders to monitor (if I have 5 different folders to watch, I will get 5 branches and 5 sub-workflows)
by David Ashby
🛠️ Demio Tool MCP Server Complete MCP server exposing all Demio Tool operations to AI agents. Zero configuration needed - all 4 operations pre-built. ⚡ Quick Setup Need help? Want access to more workflows and even live Q&A sessions with a top verified n8n creator.. All 100% free? Join the community Import this workflow into your n8n instance Activate the workflow to start your MCP server Copy the webhook URL from the MCP trigger node Connect AI agents using the MCP URL 🔧 How it Works • MCP Trigger: Serves as your server endpoint for AI agent requests • Tool Nodes: Pre-configured for every Demio Tool operation • AI Expressions: Automatically populate parameters via $fromAI() placeholders • Native Integration: Uses official n8n Demio Tool tool with full error handling 📋 Available Operations (4 total) Every possible Demio Tool operation is included: 📅 Event (3 operations) • Get an event • Get many events • Register an event 🔧 Report (1 operations) • Get a report 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: • Resource IDs and identifiers • Search queries and filters • Content and data payloads • Configuration options Response Format: Native Demio Tool API responses with full data structure Error Handling: Built-in n8n error management and retry logic 💡 Usage Examples Connect this MCP server to any AI agent or workflow: • Claude Desktop: Add MCP server URL to configuration • Custom AI Apps: Use MCP URL as tool endpoint • Other n8n Workflows: Call MCP tools from any workflow • API Integration: Direct HTTP calls to MCP endpoints ✨ Benefits • Complete Coverage: Every Demio Tool operation available • Zero Setup: No parameter mapping or configuration needed • AI-Ready: Built-in $fromAI() expressions for all parameters • Production Ready: Native n8n error handling and logging • Extensible: Easily modify or add custom logic > 🆓 Free for community use! Ready to deploy in under 2 minutes.
by Adam Bertram
LintGuardian: Automated PR Linting with n8n & AI What It Does LintGuardian is an n8n workflow template that automates code quality enforcement for GitHub repositories. When a pull request is created, the workflow automatically analyzes the changed files, identifies linting issues, fixes them, and submits a new PR with corrections. This eliminates manual code style reviews, reduces back-and-forth comments, and lets your team focus on functionality rather than formatting. How It Works The workflow is triggered by a GitHub webhook when a PR is created. It fetches all changed files from the PR using the GitHub API, processes them through an AI-powered linting service (Google Gemini), and automatically generates fixes. The AI agent then creates a new branch with the corrected files and submits a "linting fixes" PR against the original branch. Developers can review and merge these fixes with a single click, keeping code consistently formatted with minimal effort. Prerequisites To use this template, you'll need: n8n instance: Either self-hosted or using n8n.cloud GitHub repository: Where you want to enforce linting standards GitHub Personal Access Token: With permissions for repo access (repo, workflow, admin:repo_hook) Google AI API Key: For the Gemini language model that powers the linting analysis GitHub webhook: Configured to send PR creation events to your n8n instance Setup Instructions Import the template into your n8n instance Configure credentials: Add your GitHub Personal Access Token under Credentials → GitHub API Add your Google AI API key under Credentials → Google Gemini API Update repository information: Locate the "Set Common Fields" code node at the beginning of the workflow Change the gitHubRepoName and gitHubOrgName values to match your repository const commonFields = { 'gitHubRepoName': 'your-repo-name', 'gitHubOrgName': 'your-org-name' } Configure the webhook: Create a file named .github/workflows/lint-guardian.yml in your repository replacing the Trigger n8n Workflow step with your webhook: name: Lint Guardian on: pull_request: types: [opened, synchronize] jobs: trigger-linting: runs-on: ubuntu-latest steps: name: Trigger n8n Workflow uses: fjogeleit/http-request-action@v1 with: url: 'https://your-n8n-instance.com/webhook/1da5a6e1-9453-4a65-bbac-a1fed633f6ad' method: 'POST' contentType: 'application/json' data: | { "pull_request_number": ${{ github.event.pull_request.number }}, "repository": "${{ github.repository }}", "branch": "${{ github.event.pull_request.head.ref }}", "base_branch": "${{ github.event.pull_request.base.ref }}" } preventFailureOnNoResponse: true Customize linting rules (optional): Modify the AI Agent's system message to specify your team's linting preferences Adjust file handling if you have specific file types to focus on or ignore Security Considerations When creating your GitHub Personal Access Token, remember to: Choose the minimal permissions needed (repo, workflow, admin:repo_hook) Set an appropriate expiration date Treat your token like a password and store it securely Consider using GitHub's fine-grained personal access tokens for more limited scope As GitHub documentation notes: "Personal access tokens are like passwords, and they share the same inherent security risks." Extending the Template You can enhance this workflow by: Adding Slack notifications when linting fixes are submitted Creating custom linting rules specific to your team's needs Expanding it to handle different types of code quality checks Adding approval steps for more controlled environments This template provides an excellent starting point that you can customize to fit your team's exact workflow and code style requirements.
by Naveen Choudhary
This workflow automatically enriches company domain lists with comprehensive business information scraped from ZoomInfo, organizing the data in Google Sheets for sales teams and researchers. Who's it for Sales teams** building prospect databases with accurate company information Marketing professionals** researching target companies for outreach campaigns Business development teams** qualifying leads with revenue and employee data Researchers** collecting structured company data for market analysis Lead generation specialists** enriching domain lists with contact details How it works The workflow processes unprocessed domains from a Google Sheet, searches for their ZoomInfo profiles using Serper API, scrapes the company pages through Oxylabs proxy service, and extracts structured business data. Each domain is marked as processed to prevent duplicates, and the workflow includes proper rate limiting to respect API limits. What it does Loads unprocessed domains from your Google Sheets database Searches ZoomInfo using targeted queries via Serper API for each domain Validates search results and extracts relevant ZoomInfo profile URLs Scrapes company pages using Oxylabs to bypass anti-scraping protection Extracts structured data including company details, address, revenue, and employee count Updates Google Sheets with enriched company information Tracks processing status to prevent reprocessing the same domains Requirements Serper API account** with search credits (Get API key) Oxylabs subscription** for web scraping proxy service (Sign up here) Google Sheets API access** with OAuth2 authentication Google Sheets template** - Make a copy of this template sheet with pre-configured columns How to set up Make a copy of the Google Sheets template - Click here to copy the template to your Google Drive Configure API credentials in the respective HTTP Request nodes: Add Serper API key in the search node Set up Oxylabs username/password in the scraping node Set up Google Sheets authentication using OAuth2 Update the Google Sheets document ID in all Google Sheets nodes to point to your copied template Add your domain list to the sheet with 'processed' column empty or false Run the workflow using the manual trigger How to customize the workflow Search query modification**: Update the search query in the Serper node for different geographic focus (currently set for Czech Republic) Data extraction fields**: Modify the Google Sheets column mapping to include/exclude specific company data points Rate limiting**: Adjust wait times between requests to match your API rate limits Batch processing**: Configure the split batch size for processing domains in smaller groups Error handling**: Customize the continue-on-error settings based on your data quality requirements Scheduling**: Replace Manual Trigger with Schedule Trigger for automated daily/weekly runs Output data includes Complete company name and official address Phone numbers and contact information Revenue figures and employee headcount Industry classifications and business categories LinkedIn company profile URLs Geographic location details (city, state, country, postal code) Processing status tracking for workflow management Note: This workflow includes comprehensive error handling to ensure domains are always marked as processed, preventing infinite loops while maintaining data integrity. Rate limiting is built-in to respect API quotas and avoid service interruptions.
by inderjeet Bhambra
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Who is this for? IT teams and support organizations looking to automate Level 1 support with AI-powered assistance while maintaining proper ticket management workflows. What problem does this solve? Eliminates repetitive manual support tasks by providing instant, context-aware assistance that references organizational knowledge and creates structured tickets when needed. What this workflow does RAG Pipeline**: Processes PDF/CSV documents into searchable vector database Intelligent Slack Bot**: This AI-helpdesk assistant handles support requests with thread-aware conversations Vector Knowledge Search**: Searches embedded knowledge base articles and historical case data JIRA Integration**: Creates, searches, and manages support tickets automatically Emoji Reactions**: Users can trigger actions (create tickets, escalate) via emoji reactions Requirements Required Accounts: n8n Cloud or self-hosted instance Slack workspace with admin access Supabase account (vector database) JIRA Cloud instance OpenAI API key Technical Prerequisites: Basic n8n workflow knowledge Slack app creation experience Understanding of vector databases Setup Steps 1. Slack App Configuration Create new Slack app with Bot Token Scopes: app_mentions:read, channels:history, channels:read, groups:history, groups:read, im:history, im:read, mpim:history, mpim:read, users:read Configure Event Subscriptions: app_mention, message.channels, message.groups, reaction_added Set Request URL to your n8n Slack Trigger webhook 2. Supabase Vector Database Setup Create new Supabase project Enable pgvector extension Create documents table with vector column (1536 dimensions for OpenAI embeddings) Configure RLS policies for secure access 3. JIRA Configuration Generate API token from JIRA Cloud Create helpdesk project with appropriate issue types Note project ID and issue type IDs for workflow configuration 4. n8n Workflow Configuration Import workflow and configure credentials Update Slack channel IDs in trigger nodes Set OpenAI API key in all OpenAI nodes Configure Supabase connection in vector store nodes Update JIRA project settings in MCP server nodes 5. Knowledge Base Data Format Supported file formats: PDF, CSV CSV Structure: Structure your data with columns, but not limited to, Ticket#, Issue Description, Issue Summary, Resolution Provided, Case Status, Contact User PDF Content: Technical documentation, troubleshooting guides, policy documents Upload documents via the form trigger to automatically embed in vector database. Customization Options AI Agent Behavior Modify system prompt in AIHelpdesk Agent node Adjust conversation memory window (default: 20 messages) Change AI model (GPT-4o, GPT-3.5-turbo, etc.) Reaction Mappings Customize emoji-to-action mappings in Reaction Handler code Add new reaction types for department-specific workflows Configure escalation rules and priority levels JIRA Integration Customize ticket templates and fields Add auto-assignment rules based on issue type Configure SLA and priority mappings Vector Search Adjust similarity thresholds for knowledge retrieval Modify search result limits and relevance scoring Add metadata filtering for departmental knowledge bases Advanced Features Thread-aware conversation memory Automatic bot loop prevention Context-preserving ticket creation Multi-modal file processing (PDF + CSV) Scalable MCP architecture for tool integration Use Cases Level 1 IT Support**: Automate common troubleshooting workflows Employee Onboarding**: Answer policy and procedure questions Internal Help Desk**: Route and track internal service requests Knowledge Management**: Make organizational knowledge searchable and actionable Template includes Complete Slack integration with thread support RAG pipeline for document processing Vector similarity search implementation JIRA ticket lifecycle management Emoji reaction-based user interactions Comprehensive error handling and validation
by Elegant Biztech
Automated QuickBooks Invoice to Custom PDF & Email Tired of the standard, boring invoices from QuickBooks Online? This workflow completely automates the process of creating beautiful, custom-branded PDF invoices and emailing them directly to your clients, saving you time and elevating your brand's professionalism. The moment you create an invoice in QuickBooks, this workflow triggers, fetches all the necessary data, and generates a lavish, multi-page-aware PDF invoice complete with your company logo and signature. Key Features Fully Automated:** Runs instantly when a new invoice is created in QuickBooks. Custom Branding:** Automatically fetches your company logo and signature from a URL to place on the invoice. Modern & Professional Design:** Uses a premium, multi-column HTML template that is clean, easy to read, and far superior to the default QBO templates. Multi-Page Ready:** If an invoice has many line items, the template will intelligently create multiple pages and add a "Page X of Y" footer automatically. Smart Layout:** The totals and summary block are designed to never break across pages, ensuring a professional look no matter the length. Automatic Emailing:** The final PDF is attached to a beautifully formatted email and sent directly to the customer's email address on file. Prerequisites Before you start, you will need a few things: A running n8n instance. A QuickBooks Online account with API access. A running Gotenberg instance. This is a powerful, open-source tool for converting HTML to PDF. This workflow is designed to connect to its API. You can learn more about it here. Publicly accessible URLs for your company logo and signature image (e.g., hosted on your website or a service like Imgur). Setup Guide Follow these steps carefully to configure the workflow for your own use. Nodes that need your attention are marked with a [!!] prefix. Step 1: Configure the QuickBooks Webhook The workflow starts with a webhook. You need to tell QuickBooks to send information to this webhook. Open the [!!] Listen for New QuickBooks Invoice node. You will see a Webhook URL. Copy the Production URL. Go to your QuickBooks Developer dashboard, select your app, and navigate to the Webhooks section. Paste the n8n URL into the Endpoint URL field and select the Invoice event to subscribe to. Step 2: Connect Your QuickBooks Account Open the [!!] Get Invoice Data from QuickBooks node. In the "Credentials" field, select your existing QuickBooks Online credentials or create a new set. Step 3: Add Your Branding Open the [!!] Fetch Company Logo Image node. In the URL field, replace the placeholder with the public URL of your company's logo. Open the [!!] Fetch Company Signature Image node. In the URL field, replace the placeholder with the public URL of your signature image. Step 4: Update the PDF Generation Service Open the [!!] Generate PDF via Gotenberg node. In the URL field, replace the placeholder http://YourGotenBergInstanceURL/... with the real URL of your running Gotenberg instance. Step 5: Configure Your Email Open the [!!] Email PDF Invoice to Customer node. In the "Credentials" field, select your SMTP or email service credentials. Customize the From Email and Subject fields. You can also edit the beautiful HTML email body to match your company's tone of voice. Step 6: Activate Your Workflow You're all set! Save the workflow and activate it using the toggle at the top-right of the screen. Now, when you create a new invoice in QuickBooks, this automation will handle the rest. A Note from the Creator Thank you for using this workflow! I believe that professional and automated invoicing is a cornerstone of a great business. This tool was designed to save you time and help you put your best foot forward with every client interaction. If you have any questions or need assistance, feel free to reach out. Website:** https://www.elegantbiztech.com/ Email:** sales@elegantbiztech.com
by Lucía Maio Brioso
🧑💼 Who is this for? This workflow is for anyone with two YouTube channels who wants to copy playlists from one to the other — no technical skills required. Whether you're a content creator, hobbyist, educator, or just someone managing multiple channels, this workflow helps you save time and avoid the manual work of recreating playlists video by video. 🧠 What problem is this workflow solving? YouTube doesn't provide an option to transfer or duplicate playlists between accounts or channels. That means if you want the same playlists in two places, you're stuck: Creating new playlists manually Searching for each video again Copy-pasting links one by one This workflow automates the entire process for you — accurately, quickly, and with no manual work. ⚙️ What this workflow does Retrieves all playlists from a source YouTube channel (excluding private ones) For each playlist: Gets all its videos Filters out private or unavailable videos Creates a new playlist in the target channel with the same title Adds the videos to the new playlist Continues smoothly even if some videos fail to copy (e.g., if they’re restricted or deleted) 🛠️ Setup Create two YouTube OAuth2 credentials in n8n: One for your source channel One for your target channel Assign the credentials to the correct nodes as indicated in the sticky notes: Source nodes → source credentials Target nodes → target credentials Click “Test workflow” to run it. > ⚠️ Note: If you have many playlists or videos, you may hit YouTube’s API quota. You can request a quota increase in your Google Cloud Console if needed. 🧩 How to customize this workflow to your needs ✂️ Copy only specific playlists Use a Filter node after the playlist fetch to include only certain titles or IDs. 📝 Change the title of the copied playlists Modify the title in the Create playlist node (e.g., add “(Copy)” or a prefix). 🔄 Automate it regularly Replace the Manual Trigger with a Cron node if you want to run this periodically. 🧪 Test safely If you're unsure, use a secondary channel as your test target before applying changes to your main account.
by Ranjan Dailata
Who this is for The Crunchbase B2B Lead Discovery Pipeline is designed for sales teams, B2B marketers, business analysts, and data operations teams who need a reliable way to extract, structure, and summarize company information from Crunchbase to fuel lead generation and market intelligence. This workflow is ideal for: Sales Development Reps (SDRs) - Needing structured leads from Crunchbase Marketing Analysts - Generating segmented outreach lists Growth Teams - Identifying trending B2B startups RevOps Teams - Automating company research pipelines Data Teams - Consolidating insights into Google Sheets for dashboards What problem is this workflow solving? Manual extraction of company data from Crunchbase is time-consuming, inconsistent, and often lacks the contextual summary required for sales enablement or growth targeting. This workflow automates the extraction, transformation, summarization, and delivery of Crunchbase company data into structured formats, making it instantly usable for B2B targeting and analysis. It solves: The difficulty of scaling lead discovery from Crunchbase The need to summarize raw textual content for quick insights The lack of integration between web scraping, LLM processing, and storage What this workflow does Markdown to Textual Data Extractor**: Takes raw scraped markdown from Crunchbase and converts it into readable plain text using a basic LLM chain Structured Data Extraction**: Applies a parsing model (OpenAI) to extract structured fields such as company name, funding rounds, industry tags, location, and founding year Summarization Chain**: Generates an executive summary from the raw Crunchbase text using a summarization prompt template Send to Google Sheets**: Adds the structured data and summary into a Google Sheet for team access and further processing Persist to Disk**: Saves both raw and structured data files locally for archiving or further use Webhook Notification**: Sends a structured payload to a webhook endpoint (e.g., Slack, CRM, internal tools) with lead insights Pre-conditions You need to have a Bright Data account and do the necessary setup as mentioned in the "Setup" section below. You need to have an OpenAI Account. Setup Sign up at Bright Data. Navigate to Proxies & Scraping and create a new Web Unlocker zone by selecting Web Unlocker API under Scraping Solutions. In n8n, configure the Header Auth account under Credentials (Generic Auth Type: Header Authentication). The Value field should be set with the Bearer XXXXXXXXXXXXXX. The XXXXXXXXXXXXXX should be replaced by the Web Unlocker Token. In n8n, Configure the Google Sheet Credentials with your own account. Follow this documentation - Set Google Sheet Credential In n8n, configure the OpenAi account credentials. Ensure the URL and Bright Data zone name are correctly set in the Set URL, Filename and Bright Data Zone node. Set the desired local path in the Write a file to disk node to save the responses. How to customize this workflow to your needs LLM Prompt Customization : Modify the extraction prompt to include additional fields like revenue, social links, leadership team Adjust summarization tone (e.g., executive summary, sales-focused snapshot or marketing digest) File Persistence Store raw markdown, extracted JSON, and summary text separately for audit/debug Webhook Notification Connect to CRM (e.g., HubSpot, Salesforce) via webhook to automatically create leads Send Slack notifications to alert sales reps when a new high-potential company is discovered