# templates

name: Forex & Gold Trading Signal Handler for MT5 using Webhooks (telegram/discord)
author_name: Cj Elijah Garay
author_username: elijahbuilds-ai
categories: []
created_at: 2025-12-02T19:35:29.788Z
updated_at: 2025-12-02T19:35:29.788Z
url: https://n8n.io/workflows/11439
scraped_at: 2025-12-24 13:02:41
description:
  MT5 Trading Signal Handler
  Metatrader5 and N8N Integration for Forex and Gold Trading via Webhooks for discord and telegram

  This n8n template demonstrates a workflow that bridges AI workflows which can be used to communicate directly to a trading platform/broker like metatrader 5

  Use cases are many:

  Try automating TradingView alerts into live MT5 trades, building a custom trading bot that sends trade execution signals to MT5 via webhooks, or creating a centralized signal management system for multiple trading strategies these features are just the beggining!

  Good to know

  Always test on demo accounts first** - start with 1-2% risk before considering any live deployment
  This workflow uses unauthenticated webhook endpoints by default - you must add authentication (API keys, OAuth) before any production use
  Signals are stored in n8n's in-memory static data - they will be lost if n8n restarts unless you implement persistent storage
  MT5 WebRequest whitelist required** - you must add all webhook URLs to MT5's allowed URLs list (Tools → Options → Expert Advisors)
  The workflow requires a custom MT5 Expert Advisor (EA) that polls the GET endpoint every 5 seconds to fetch pending signals
  This is designed for local machine or private VPS deployment only - not suitable for public cloud without significant security hardening
  No automatic signal expiration** - old signals will accumulate without manual cleanup or additional workflow logic
  Compatible with standard MT5 brokers that support automated trading and WebRequest functionality

  How it works

  Signal Reception**: The "Receive Signal (POST)" webhook accepts trading signals containing asset, entry price, stop loss, take profit, and risk percentage, then passes them to the "Store Signal" Code node
  Signal Storage**: The Code node creates a unique signal ID with timestamp, stores it in n8n's workflow static data with "pending" status, and returns a success response with the signal ID
  Queue Polling**: The "Get Pending Signals (GET)" webhook is polled every 5 seconds by your MT5 Expert Advisor to check for new signals
  Signal Retrieval**: The "Fetch Pending Signals" Code node filters all stored signals to return only those with "pending" status as a JSON array
  Market Orders**: The "Market Order (POST)" webhook accepts instant-execution orders with direction (BUY/SELL), risk percentage, and stop loss in pips, calculating SL/TP prices automatically
  Limit Orders**: The "Limit Order (POST)" webhook handles pending orders with specific entry prices, converting pip-based SL/TP into actual price levels for both standard and JPY pairs
  Trade Confirmation**: After the MT5 EA executes a trade, it sends the signal ID to the "Confirm Signal Processed (POST)" webhook, which marks the signal as "processed" and removes it from the pending queue
  Emergency Cleanup**: The "Clear all signals (POST)" webhook provides a reset function to remove all signals from the queue, useful for testing or when signals get stuck

  How to use

  Import this workflow into your n8n instance and activate it by toggling the switch in the top-right corner
  Copy all webhook URLs from each Webhook node (click the node to view the production URL)
  Configure your MT5 Expert Advisor with the correct webhook URLs (SIGNAL_URL for GET requests, CONFIRM_URL for POST confirmations)
  Add all webhook URLs to MT5's WebRequest whitelist (Tools → Options → Expert Advisors → "Allow WebRequest for listed URL")
  Restart MT5 after adding URLs to the whitelist to ensure they're loaded properly
  Test the workflow by sending a test signal using curl or Postman: curl -X POST http://127.0.0.1:5678/webhook/mt5-signal -H "Content-Type: application/json" -d "{\"asset\": \"EURUSD\", \"risk\": 2, \"entry\": 1.0850, \"sl\": 1.0830, \"tp\": 1.0900}"
  Verify the signal appears when checking the GET endpoint: curl http://127.0.0.1:5678/webhook/mt5-signals
  Attach the MT5 EA to any chart (the symbol doesn't matter - it monitors all symbols) and enable Auto Trading in MT5
  Monitor the MT5 Experts log to confirm the EA is polling every 5 seconds and executing trades correctly

  Requirements

  n8n instance** running locally or on a private VPS (version 1.x recommended)
  MetaTrader 5 terminal** installed with a demo or live account logged in
  Custom MT5 Expert Advisor** compiled and loaded (MQL5 code that polls the webhook and executes trades)
  Auto Trading enabled** in MT5 (Tools → Options → Expert Advisors → "Allow Algorithmic Trading")
  WebRequest permissions** configured in MT5 for all webhook URLs
  Basic understanding of REST APIs, webhooks, and trading concepts (orders, SL/TP, position sizing)

  Customising this workflow

  Add authentication middleware to all webhook endpoints using HTTP Authentication or custom API keys for security
  Implement persistent storage by replacing static data with a database node (PostgreSQL, MySQL) or external storage service
  Create an automatic signal cleanup workflow that runs on a schedule to delete processed signals older than 24 hours
  Add notification nodes (Telegram, Discord, Email) to alert you when trades are executed or errors occur
  Implement position size validation in the Code nodes to cap maximum lot sizes or risk percentages
  Create an asset whitelist by adding validation logic to only accept signals for approved trading instruments
  Add duplicate signal detection to prevent the same signal from being processed multiple times
  Build a signal analytics dashboard by logging all signals to a database and visualizing execution metrics
  Try a popular use-case such as connecting this to a TradingView webhook to automate Pine Script strategy alerts directly into MT5 trades!
  Add tags for certain setups and or magic numbers for easier journaling later on

  Purchasing this N8N workflow comes with the AI trading assistant workflow too so it is sold together and vice versa as well along with the MQL code for the ExpertAdvisor listener all for the price of 120 usd total

  Questions?

  If you have questions or need help with this workflow, feel free to reach out:

  elijahmamuri@gmail.com
  elijahfxtrading@gmail.com

  Important Disclaimer: This workflow is provided for educational purposes and demo account testing only. It demonstrates technical concepts for signal routing and automation architecture. Always test thoroughly on demo accounts, implement proper security measures, and understand that automated trading involves substantial risk. No warranties, financial advice, or guarantees are provided. See the full disclaimer in the workflow sticky notes for complete terms.

nodes_used:
  ["n8n-nodes-base.webhook","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","n8n-nodes-base.webhook","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","n8n-nodes-base.webhook","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","n8n-nodes-base.code","n8n-nodes-base.webhook","n8n-nodes-base.webhook","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","n8n-nodes-base.webhook","n8n-nodes-base.code","n8n-nodes-base.respondToWebhook","n8n-nodes-base.respondToWebhook","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  H4sIAAAAAAAAE7VY224bNxD9FUFPKeAJeL/4tWiDAm0TNEH6EORhSA4TIdYqkLaXwPC/d1ZSIsWirPUafbNM7uGZ4Zkbb+dL6nF+fTtfdJseu0y/lPn1nFIkMipVqjpbGaUyVSSSVqbqMFV0BY01spJCh7lGnZQ0UmPxGp1187urebcqtJlfv2PoAdI56WNUBkrxCoypBFhNhVCFDVEoKZKc81e4JN79B2Va/E2z14sPHd7Mnr16+frND7zcf/k8LHehgy0+JNzQ838ofVytPvH659Vm0S9WHZ8LUoUrrd5fzffLW8uWvYXNFhTWuzOGr3DNx/a0Zr63d7tT3vKvLZC8u9qbkMkkq1UEHZwAI6KDUHyEbGMpMVoRoz+Y8Lpfrb8acJZ55j+/px3djvSDnNQ3Th6lcilZcFYjmOwSRBIJbHY5Km9kzOnYrZvPq67M+tVs8OhZWuvdvjerP1ue1UqM4HjwWypKS4wZtDDM0RkL7EcHJadqQlFJBXfg+IL62SvqyqL7sPfeZvbsxU+Trl/51v1/oH6vgc34yx8UiiUFIIyejciW9WsFKA6FKHWqPoeDET9Tnz/eN+NxKthxHymDzGqk7DSzs4WlKRW7mJWalE2BvHM11WMZ9H+tu4u0LqtgBMeDB4tPhoKV4KIfwkcViNU7iCkaDKIkocSB44+rri7Wy68Z4NV6lWmzoTI9F1gVGmLIu3PGC8HrKi2WCGUIO3a1gegTgq1VRR2FSfrI1b/h+tMMNwf+jxPBjvNIEUg0ypFASA4DS9RWzgWFgy2hU5H/KV04dfAuJ2zoCTIYwfJIBoKisEKzDAQHkpIEqbgKLmCOggTXl3JgmW8I1zO8uZltpgSRVNGNd6DwWqrKmSkHJmSy0oDBaIgy11KSNCHbIwfepzZdmnuax9pMRJ647AJVjGBkUhC8kyCDl1la42PBS6JVzw9uV0Vn1JEBsmLZamMgUC3AFbvmlEUsVXwvW87DL9eF1tPNCkL8z1Y58qXkmtkqTQMeX5bWEkTU2aQsS0Z1sGq5s2q1tWqvl0eIaWfOSC3Visg5zoAly0VP5wLIDRBwQGruIzRX6tgszIcomxqOI3jK5+Yb05iKFfzNkIg5bQy3kyT3aN6z9hOFVLw5MP11sVw8WRhSmPvKGHLxzYAN2+uBo4/HiiEjRR2EA6+IXR5ygGhTgZAC1xnuXq3VB0O2h03Wwt6CkWLgUpxKtix24n7RFGsg5VhB16IKC9hZDE0xHHn7CYIYQ/ZYEV4hSVc1yBQ4RScu18HlDE44K6pLsuJRrthX0G9ZELnt3abtB4rdCM4jMvfh6mMRoeqYwFjuKAyPFMxYFm6CKvHUUSvnvuPWfJE/fZn9vupJnqW42W4a9twTcAjiCpy5T27wQ09dz0jzB7oHES33wgSZW7YhDSM3QczWqkRW8JKi3CT6eJ7KPIGn1FSdlRm8tOxQqyOnL5IQlOLgoohRxCZPNY2oFxOJKhWKxZTAk+a6VioHParAoNJ5k6hoYZtE/TSiMp60vOOI8ojoODFZIDPoNBdOTNxsgNDaqcxl0QrfJBomElXyJIDGMa1YNIXioBbkUR2RIEbOqJaMVMKWKo+z1RHTOI2pMSft4zii2QnueVmVTrM+TeXRh6cgAuFyckHmwk5tR72YxjS6kzw6MpyCSVVy98WOZJUa4m6gKgcKs0Chhin+TH56fIJyT4n7FCSJLHhooMoqJRMAuS0G1N7YJDmeSlulehLPR1897+b1jvIAst3+3TsL/17iYkB/d7t9gXro0WO782q+6Ar9O78Wd+/f83knbcEFyGaFbiKfjoIt6PNjWRP0dD5qgY4q0U3805b5gj9O2tcmbKOLbOGe79HOevj+1NKCfWAOaOK2X3Pajmi/rDRh24+cLdj2W2IT9OxU2tTF+em6CX7+ba6FfuERrE3/wrNP65wH3lgaZ9zd/QcR6fi69RYAAA==


name: Create and Send Tech News Digests with RSS, Gemini AI and Gmail
author_name: Paolo Ronco
author_username: paoloronco
categories: []
created_at: 2025-12-03T14:53:00.431Z
updated_at: 2025-12-03T14:53:00.431Z
url: https://n8n.io/workflows/11466
scraped_at: 2025-12-24 13:02:41
description:
  This workflow automates the entire lifecycle of collecting, filtering, summarizing, and delivering the most important daily news in technology, artificial intelligence, cybersecurity, and the digital industry.
  It functions as a fully autonomous editorial engine, combining dozens of RSS feeds, structured data processing, and an LLM (Google Gemini) to transform a large volume of raw articles into a concise, high–value daily briefing delivered straight to your inbox.

  Read: Full setup Guide

  ✅ 1. Scheduled Automation

  The workflow begins with a Schedule Trigger, which runs at predefined intervals.
  Every execution generates a fresh briefing that reflects the most relevant news from the past 24 hours.

  ✅ 2. Massive Multi-Source RSS Collection

  The workflow gathers content from over 25 curated RSS feeds covering:

  🔐 Cybersecurity

  (The Hacker News, Krebs on Security, SANS, CVE feeds, Google Cloud Threat Intelligence, Cisco Talos, etc.)

  🤖 Artificial Intelligence

  (Google Research, MIT News, AI News, OpenAI News)

  💻 Technology & Digital Industry

  (Il Sole 24 Ore, Cybersecurity360, Graham Cluley, and more)

  ⚙️ Nvidia Ecosystem

  (Nvidia Newsroom, Nvidia Developer Blog, Nvidia Blog)

  Each RSS feed is handled by a dedicated node, which ensures:

  source isolation
  easier debugging
  no single point of failure

  The feeds are grouped using category-specific Merge nodes (Cyber1/2/3, AI, Nvidia), enabling modular scalability.

  ✅ 3. Unified Feed Aggregation

  All category merges feed into the Merge_All node, creating a single combined dataset of articles from every source.

  ✅ 4. Intelligent Filtering (last 24 hours only)

  The Filter node removes:

  articles older than 24 hours (based on isoDate)
  invalid items
  duplicated or redundant entries

  This keeps the briefing strictly relevant to the current day.

  ✅ 5. Chronological Sorting

  The Sort – Articles by Date node orders all remaining items in descending date order.
  More recent or time-sensitive news is therefore prioritized.

  ✅ 6. Data Normalization (JavaScript Code)

  A dedicated Code node transforms all incoming items into one clean JSON object:

  {
    "articles": [
      {
        "title": "...",
        "content": "...",
        "link": "...",
        "isoDate": "..."
      }
    ]
  }

  This standardized structure becomes the input for the LLM summarization stage.

  ✅ 7. AI Editorial Processing – Google Gemini

  The node LLM – News Summarizer is the workflow’s editorial brain.

  A complex prompt instructs Gemini to behave like the editor-in-chief of a major tech newspaper, enforcing strict rules:

  Selection rules:

  choose only 8–10 truly important stories
  ignore low-value content (minor product releases, clickbait, rumors…)

  Relevance criteria:

  AI research & foundation models
  Big Tech developments
  cybersecurity incidents
  regulation and digital policy
  semiconductors, cloud, and infrastructure
  digital rights, governance, sovereignty

  Deduplication:

  If multiple feeds report the same story, only one version is kept.

  Output format:

  Gemini must output a valid JSON object containing:

  subject: the email subject line
  html: a fully structured HTML body grouped into categories

  Each news item ends with a clickable HTML source link, NEVER plaintext URLs.

  This step condenses dozens of articles into a polished, editorial-grade briefing.

  ✅ 8. HTML Newsletter Assembly (Code Node)

  The Build Final Newsletter HTML node:

  safely parses the JSON from the LLM
  cleans any validates subject and html fields
  embeds the content into a modern, responsive HTML email template

  The output is a single item containing:

  the final email subject
  the final HTML body
    Ready to be sent.

  ✅ 9. Automatic Email Delivery

  The Send Final Digest Email (Gmail node):

  uses the generated subject
  sends the curated HTML newsletter
  delivers it to the configured recipient(s)
  uses a custom sender name (“n8n News”)

  The result is a fully automated Tech & AI Daily Briefing delivered with zero manual effort.

  In Summary: What This Workflow Achieves

  ✔ Collects news from 25+ high-quality RSS sources
  ✔ Normalizes, filters, and sorts all items automatically
  ✔ Uses Google Gemini to select only the stories that truly matter
  ✔ Generates a coherent, readable, professional-looking HTML newsletter
  ✔ Sends the result via email every day

  Perfect for:

  daily executive briefings
  technology and cybersecurity monitoring
  automated newsletter production
  internal knowledge distribution
  competitive intelligence workflows

nodes_used:
  ["n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.stickyNote","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.stickyNote","n8n-nodes-base.filter","n8n-nodes-base.sort","n8n-nodes-base.code","n8n-nodes-base.gmail","n8n-nodes-base.code","@n8n/n8n-nodes-langchain.googleGemini","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.stickyNote","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.merge","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.rssFeedRead","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 11940 characters]


name: Automated AI Voice Cloning 🤖🎤 from YouTube videos to ElevenLabs & Google Sheets
author_name: Davide
author_username: n3witalia
categories: []
created_at: 2025-12-05T13:48:19.398Z
updated_at: 2025-12-05T13:48:19.398Z
url: https://n8n.io/workflows/11532
scraped_at: 2025-12-24 13:02:41
description:
  This workflow automates the process of creating cloned voices in ElevenLabs using audio extracted from YouTube videos. It processes a list of video URLs from Google Sheets, converts them to audio, submits them to ElevenLabs for voice cloning*, and records the generated voice IDs back to the spreadsheet.

  *ONLY FOR STARTER, CREATOR, PRO PLAN



  Important Considerations for Best Results:

  For optimal voice cloning quality with ElevenLabs, carefully select your source YouTube videos:
  Duration**: Choose videos that are sufficiently long (preferably 1-5 minutes of clear speech) to provide enough audio data for accurate voice modeling.
  Audio Quality**: Select videos with high-quality audio, minimal background noise, and clear vocal recording.
  Single Speaker: Use videos featuring only **one primary speaker. Multiple voices in the same audio will confuse the cloning algorithm and produce poor results.
  Consistent Voice**: Ensure the speaker maintains a consistent tone and speaking style throughout the clip for the most faithful reproduction.

  Key Features

  1. ✅ Fully Automated Voice Creation Workflow

  No manual downloading, converting, or uploading is required.
  Just paste the YouTube link and voice name into the sheet—everything else happens automatically.

  2. ✅ Seamless Audio Extraction

  Using RapidAPI ensures:

  High success rate in extracting audio
  Support for virtually any YouTube video
  Consistent output format required by ElevenLabs

  3. ✅  Hands-Off ElevenLabs Voice Creation

  The workflow handles all the steps required by the ElevenLabs API, including:

  Uploading binary audio
  Naming voices
  Capturing and storing the resulting voice ID

  This is much faster than the manual method inside the ElevenLabs dashboard.

  4. ✅ Centralized, Reusable Setup

  Once the API keys are added:

  The same workflow can be reused indefinitely
  Users don’t need technical skills
  Updating only requires editing the sheet

  How it works:

  Data Retrieval: The workflow starts by fetching data from a Google Sheets spreadsheet that contains YouTube video URLs in the "YOUTUBE VIDEO" column and desired voice names in the "VOICE NAME" column. It specifically targets rows where the "ELEVENLABS VOICE ID" field is empty, ensuring only unprocessed videos are handled.

  Video Processing Pipeline:
     Video ID Extraction: Each YouTube URL is parsed to extract the unique video identifier using a regular expression.
     Audio Conversion: The video ID is sent to the RapidAPI "YouTube MP3 2025" service, which converts the YouTube video to an audio file (M4A format).
     Audio Download: The resulting audio file is downloaded locally for processing.

  Voice Creation: The downloaded audio file is submitted to ElevenLabs API via a POST request to the /v1/voices/add endpoint. This creates a new voice clone based on the audio sample. The voice name is currently hardcoded as "Teresa Mannino" in the workflow but should be dynamically configured to use the value from the "VOICE NAME" spreadsheet column.

  Data Update: The workflow captures the voice_id returned by ElevenLabs and writes it back to the corresponding row in the Google Sheets spreadsheet in the "ELEVENLABS VOICE ID" column, completing the processing cycle for that video.

  Set up steps:

  Prepare the Data Sheet: Duplicate the provided Google Sheets template. Fill in the "YOUTUBE VIDEO" column with YouTube URLs and the "VOICE NAME" column with your desired names for the cloned voices. Ensure your videos meet the quality criteria mentioned above.

  Configure APIs:
     RapidAPI: Sign up for a free trial API key from the "YouTube MP3 2025" service on RapidAPI. Enter this key into the x-rapidapi-key header field in the "From video to audio" node.
     ElevenLabs: Generate an API key from your ElevenLabs account. Configure the "Create voice" node's HTTP Header Authentication with the name xi-api-key and your ElevenLabs API key as the value.

  Optional Customization: Modify the "Create voice" node to use the dynamic voice name from your spreadsheet instead of the hardcoded "Teresa Mannino" value for more flexible operation.

  Execute: Run the workflow. It will automatically process each qualifying row, create voices in ElevenLabs, and populate the spreadsheet with the new Voice IDs. Monitor the workflow execution to ensure successful processing of each video.
  Need help customizing?  
  Contact me for consulting and support or add me on Linkedin. 

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.splitInBatches","n8n-nodes-base.googleSheets","n8n-nodes-base.googleSheets","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  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


name: Aggregate News Articles from NewsAPI, Mediastack & CurrentsAPI into Database
author_name: Joel Gamble
author_username: joelgamble
categories: []
created_at: 2025-12-07T00:20:50.319Z
updated_at: 2025-12-07T00:20:50.319Z
url: https://n8n.io/workflows/11572
scraped_at: 2025-12-24 13:02:41
description:
  This workflow pulls news articles from NewsAPI, Mediastack, and CurrentsAPI on a scheduled basis.  

  Each provider’s results are normalized into a consistent schema, then written into your database (NocoDB by default).  
  Use case: automated aggregation of categorized news for content pipelines, research agents, or editorial queues.

  What You Must Update Before Running
  1. API Keys
  Replace all placeholder keys:
  call newsapi.org - Top Headlines → update API_KEY in URL  
  call newsapi.org - categories → update API_KEY  
  call mediastack → update "ACCESS_KEY" in JSON  
  call currentsapi → update "API_KEY" param

  2. Database Connection
  Workflow uses NocoDB to store results.

  You must:
  Update the NocoDB API Token credential to your own  
  Ensure your table includes the fields used in the create operations  
    (source_category, title, summary, author, sources, content, images, publisher_date, etc.)

  If you prefer Google Sheets, Airtable, or another DB:
  Replace each NocoDB node with your equivalent “create row” operation  
  The Set nodes already provide all normalized fields you need

  3. Scheduling
  All schedulers are disabled by default.  
  Enable the following so the workflow runs automatically:
  NewsAPI – Top Headlines**
  NewsAPI – Categories**
  Mediastack**
  CurrentsAPI**

  You may change the run times, but all four must be scheduled for the workflow to function as designed.

  What You Can Configure
  1. Categories
  Defined in:
  newsapi.org categories
  mediastack categories

  Edit these arrays to pull only the categories you care about or to match your API plan limits.

  2. Article Limits
  Adjust article_limit in:
  newsapi.org categories
  mediastack categories
  currentsapi config

nodes_used:
  ["n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.splitOut","n8n-nodes-base.set","n8n-nodes-base.nocoDb","n8n-nodes-base.nocoDb","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.splitOut","n8n-nodes-base.nocoDb","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.scheduleTrigger","n8n-nodes-base.wait","n8n-nodes-base.wait","n8n-nodes-base.splitInBatches","n8n-nodes-base.splitInBatches","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.nocoDb","n8n-nodes-base.stickyNote"]

workflow_json_compressed:
  [encoded data, 7260 characters]


name: Automate Data Extraction with Zyte AI (Products, Jobs, Articles & More)
author_name: Zyte
author_username: zyte
categories: []
created_at: 2025-12-09T19:28:29.465Z
updated_at: 2025-12-09T19:28:29.465Z
url: https://n8n.io/workflows/11637
scraped_at: 2025-12-24 13:02:41
description:
  Automated AI Web Scraper

  This workflow uses the Zyte API to automatically detect and extract structured data from E-commerce sites, Articles, Job Boards, and Search Engine Results (SERP) - no custom CSS selectors required.

  It features a robust "Two-Phase Architecture" (Crawler + Scraper) that handles pagination loops, error retries, and data aggregation automatically, ensuring you get a clean CSV export even for large sites with thousands of pages.

  If you prefer to use your own parsing logic and just need raw data, it provides a "Manual Mode" for that capability as well.

  Supported Modes
  E-commerce / Product:** Extract prices, images, SKUs, and availability.
  Articles / News / Forums:** Extract headlines, body text, authors, and dates.
  Job Boards / Postings:** Extract salaries, locations, and descriptions.
  SERP (Search Engine Results)**: Extract search rankings, organic results, and snippets.
  General Scraping:** Get raw BrowserHtml, HTTP Response codes, Network API traffic, or Screenshots to parse yourself.

  How it works
  Input:** You enter a URL and choose a goal (e.g., "Scrape all pages") via a user-friendly form.
  Smart Routing:** A logic engine automatically configures the correct extraction model for the target website.
  Two-Phase Extraction:** (Active only for "Scrape all pages") Phase 1 maps out all available URLs (Crawling), and Phase 2 extracts the rich data (Scraping), filtering out errors before saving to CSV.

  Set up steps
  Get your API Key: You need a free Zyte API key to run the AI extraction. Get it here.
  Run: Open the Form view, paste your key, select your target website, and hit Submit.
  Export: The workflow will process the data and output a downloadable CSV file.

  Resources
  Zyte API Documentation
  Get Help (with API errors & extraction logic)

nodes_used:
  ["n8n-nodes-base.formTrigger","n8n-nodes-base.switch","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.splitOut","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.set","n8n-nodes-base.code","n8n-nodes-base.splitInBatches","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.switch","n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.merge","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.if","n8n-nodes-base.code","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.httpRequest","n8n-nodes-base.convertToFile","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.httpRequest","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.convertToFile","n8n-nodes-base.stickyNote","n8n-nodes-base.switch","n8n-nodes-base.form","n8n-nodes-base.form"]

workflow_json_compressed:
  [encoded data, 14832 characters]


name: Generate Ideal Customer Profiles & Find Lookalike Companies in Germany
author_name: as311
author_username: implisense
categories: []
created_at: 2025-12-11T15:07:10.467Z
updated_at: 2025-12-11T15:07:10.467Z
url: https://n8n.io/workflows/11709
scraped_at: 2025-12-24 13:02:41
description:
  This workflow generates a data driven  Ideal Customer Profile (ICP) and retrieves lookalike companies in Germany from the official data source (Handelsregister). It starts by ingesting a set of base company IDs, serializes them, and sends a recommendation request to the Implisense API to fetch similar companies. When explanation mode is enabled, the workflow extracts and processes term features to create a structured keyword digest and uses an LLM to generate an ICP narrative. The pipeline outputs both a clean list of lookalike companies, enriched with CRM-ready fields, and a detailed ICP report derived from Implisense feature statistics.

  How it works
  Input → Serialization → Lookalikes → Lists/Report

  Setup steps

  1. Data Source
  ☐ Replace "Mock ICP Companies" with matched companies from the Implisense database
  ☐ Ensure output has: id

  2. Configure Credentials: Set up RapidAPI API credentials
     Get your API key here: https://implisense.com/de/contact
     Insert your API Token in get_lookalikes (Basic auth)

  3. Configure ICP Filters
  ☐ Edit "Build Recommendation Request" node
  ☐ Set locationsFilter (e.g., de-be, de-by, de-nw)
  ☐ Set industriesFilter (NACE codes, e.g., J62 for IT)
  ☐ Set sizesFilter (MICRO, SMALL, MEDIUM, LARGE)

  4. Tune Results
  ☐ Adjust THRESHOLD in "Filter & Normalize Results" (default: 0.5)
  ☐ Adjust MIN_BASE_COMPANIES in "Collect Base Companies" (default: 3)
  ☐ Adjust size parameter in "Configuration" URL (default: 100)

  5. CRM Integration
  ☐ Map fields in "list_of_companies" to match your CRM schema
  ☐ Add CRM upsert node after "list_of_companies"
  ☐ Use implisense-ID or domain as unique identifier

  Additional advice

  Strengthen Base Company Quality
  Use only highly representative base companies located in Germany that strongly match the intended ICP segment. Templates with dozens of mixed or heterogeneous IDs dilute the statistical signal in the /recommend endpoint and reduce relevance.

  Refine Filters Aggressively
  Limit recommendations by state, region, NACE code, or size class. Implisense returns cleaner results when the recommendation space is constrained. Removing unnecessary geography broadens noise.

  Increase the Size Parameter
  Raise the size parameter when building the request to give the ranking model more candidates. This materially improves downstream sorting and selection.

nodes_used:
  ["n8n-nodes-base.manualTrigger","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.function","n8n-nodes-base.function","n8n-nodes-base.function","n8n-nodes-base.merge","n8n-nodes-base.stickyNote","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.stickyNote","n8n-nodes-base.function","n8n-nodes-base.set","n8n-nodes-base.httpRequest","n8n-nodes-base.switch","n8n-nodes-base.splitOut","n8n-nodes-base.function","n8n-nodes-base.function","n8n-nodes-base.function","n8n-nodes-base.function","@n8n/n8n-nodes-langchain.openAi","n8n-nodes-base.set","n8n-nodes-base.set","n8n-nodes-base.stickyNote","n8n-nodes-base.code"]

workflow_json_compressed:
  [encoded data, 7564 characters]


