by Dean Pike
Convert any website into a searchable vector database for AI chatbots. Submit a URL, choose scraping scope, and this workflow handles everything: scraping, cleaning, chunking, embedding, and storing in Supabase. What it does Scrapes websites using Apify (3 modes: full site unlimited, full site limited, single URL) Cleans content (removes navigation, footer, ads, cookie banners, etc) Chunks text (800 chars, markdown-aware) Generates embeddings (Google Gemini, 768 dimensions) Stores in Supabase vector database Requirements Apify account + API token Supabase database with pgvector extension Google Gemini API key Setup Create Supabase documents table with embedding column (vector 768). Run this SQL query in your Supabase project to enable the vector store setup Add your Apify API token to all three "Run Apify Scraper" nodes Add Supabase and Gemini credentials Test with small site (5-10 pages) or single page/URL first Next steps Connect your vector store to an AI chatbot for RAG-powered Q&A, or build semantic search features into your apps. Tip: Start with page limits to test content quality before full-site scraping. Review chunks in Supabase and adjust Apify filters if needed for better vector embeddings. Sample Outputs Apify actor "runs" in Apify Dashboard from this workflow Supabase docuemnts table with scraped website content ingested in chunks with vector embeddings
by Shun Nakayama
Auto-Audit SEO Traffic Drops with AI & GSC Automatically monitor your Google Search Console data to catch SEO performance drops before they become critical. This workflow identifies pages losing rankings and clicks, scrapes the live content, and uses AI to analyze the gap between "Search Queries" (User Intent) and "Page Content" (Reality). It then delivers actionable fixes—including specific Title rewrites and missing H2 headings—directly to Slack. Ideal for SEO managers, content marketers, and site owners who want a pro-level SEO consultant running 24/7 on autopilot. How it works Compare & Detect: Compares last month's GSC performance with the previous month to identify pages with declining traffic. Deep Dive: For each struggling page, it fetches the top search queries and scrapes the actual Title and H2 tags from your live website. AI Analysis: An AI Agent analyzes why the page is failing by comparing user intent vs. actual content. Report: Sends a "Consultant-style" report to Slack with quantitative data and specific improvement tasks (e.g., "Add this H2 heading"). Set up steps Configure: Open the 📝 Edit Me: Config node and enter your GSC Property URL (e.g., sc-domain:example.com). Connect Credentials: Google Search Console: To fetch performance data. OpenAI: To analyze content and generate ideas. Slack: To receive the weekly reports. Activate: Turn on the workflow to receive your SEO audit every Monday morning.
by Oneclick AI Squad
This n8n workflow automates task creation and scheduled reminders for users via a Telegram bot, ensuring timely notifications across multiple channels like email and Slack. It streamlines task management by validating inputs, storing tasks securely, and delivering reminders while updating statuses for seamless follow-up. Key Features Enables users to create tasks directly in chat via webhook integration. Triggers periodic checks for due tasks and processes them individually for accurate reminders. Routes reminders to preferred channels (Telegram, email, or Slack) based on user settings. Validates inputs, handles errors gracefully, and logs task data for persistence and auditing. Workflow Process The Webhook Entry Point node receives task creation requests from users via chat (e.g., Telegram bot), including details like user ID, task description, and channel preferences. The Input Validation node checks for required fields (e.g., user ID, task description); if validation fails, it routes to the Error Response node. The Save to Database node stores validated task data securely in a database (e.g., PostgreSQL, MongoDB, or MySQL) for persistence. The Success Response node (part of Response Handlers) returns a confirmation message to the user in JSON format. The Schedule Trigger node runs every 3 minutes to check for pending reminders (with a 5-minute buffer for every hour to avoid duplicates). The Fetch Due Tasks node queries the database for tasks due within the check window (e.g., reminders set for within 3 minutes). The Tasks Check node verifies if fetched tasks exist and are eligible for processing. The Split Items node processes each due task individually to handle them in parallel without conflicts. The Channel Router node directs reminders to the appropriate channel based on task settings (e.g., email, Slack, or Telegram). The Email Sender node sends HTML-formatted reminder emails with task details and setup instructions. The Slack Sender node delivers Slack messages using webhooks, including task formatting and user mentions. The Telegram Sender node sends Telegram messages via bot API, including task ID, bot setup, and conversation starters. The Update Task Status node marks the task as reminded in the database (e.g., updating status to "sent" with timestamp). The Workflow Complete! node finalizes the process, logging completion and preparing for the next cycle. Setup Instructions Import the workflow into n8n and configure the Webhook Entry Point with your Telegram bot's webhook URL and authentication. Set up database credentials in the Save to Database and Fetch Due Tasks nodes (e.g., connect to PostgreSQL or MongoDB). Configure channel-specific credentials: Telegram bot token for Telegram Sender, email SMTP for Email Sender, and Slack webhook for Slack Sender. Adjust the Schedule Trigger interval (e.g., every 3 minutes) and add any custom due-time logic in Fetch Due Tasks. Test the workflow by sending a sample task creation request via the webhook and simulating due tasks to verify reminders and status updates. Monitor executions in n8n dashboard and tweak validation rules or response formats as needed for your use case. Prerequisites Telegram bot setup with webhook integration for task creation and messaging. Database service (e.g., PostgreSQL, MongoDB, or MySQL) for task storage and querying. Email service (e.g., SMTP provider) and Slack workspace for multi-channel reminders. n8n instance with webhook and scheduling enabled. Basic API knowledge for bot configuration and channel routing. Modification Options Customize the Input Validation node to add fields like priority levels or recurring task flags. Extend the Channel Router to include additional channels (e.g., Microsoft Teams or SMS via Twilio). Modify the Schedule Trigger to use dynamic intervals based on task urgency or user preferences. Enhance the Update Task Status node to trigger follow-up actions, like archiving completed tasks. Adjust the Telegram Sender node for richer interactions, such as inline keyboards for task rescheduling. Explore More AI Workflows: Get in touch with us for custom n8n automation!
by vinci-king-01
Breaking News Aggregator with SendGrid and PostgreSQL ⚠️ COMMUNITY TEMPLATE DISCLAIMER: This is a community-contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the ScrapeGraphAI community node installed in your n8n instance before using this template. This workflow automatically scrapes multiple government and regulatory websites, extracts the latest policy or compliance-related news, stores the data in PostgreSQL, and instantly emails daily summaries to your team through SendGrid. It is ideal for compliance professionals and industry analysts who need near real-time awareness of regulatory changes impacting their sector. Pre-conditions/Requirements Prerequisites n8n instance (self-hosted or n8n.cloud) ScrapeGraphAI community node installed Operational SendGrid account PostgreSQL database accessible from n8n Basic knowledge of SQL for table creation Required Credentials ScrapeGraphAI API Key** – Enables web scraping and parsing SendGrid API Key** – Sends email notifications PostgreSQL Credentials** – Host, port, database, user, and password Specific Setup Requirements | Resource | Requirement | Example Value | |----------------|------------------------------------------------------------------|------------------------------| | PostgreSQL | Table with columns: id, title, url, source, published_at| news_updates | | Allowed Hosts | Outbound HTTPS access from n8n to target sites & SendGrid endpoint| https://*.gov, https://api.sendgrid.com | | Keywords List | Comma-separated compliance terms to filter results | GDPR, AML, cybersecurity | How it works This workflow automatically scrapes multiple government and regulatory websites, extracts the latest policy or compliance-related news, stores the data in PostgreSQL, and instantly emails daily summaries to your team through SendGrid. It is ideal for compliance professionals and industry analysts who need near real-time awareness of regulatory changes impacting their sector. Key Steps: Schedule Trigger**: Runs once daily (or at any chosen interval). ScrapeGraphAI**: Crawls predefined regulatory URLs and returns structured article data. Code (JS)**: Filters results by keywords and formats them. SplitInBatches**: Processes articles in manageable chunks to avoid timeouts. If Node**: Checks whether each article already exists in the database. PostgreSQL**: Inserts only new articles into the news_updates table. Set Node**: Generates an email-friendly HTML summary. SendGrid**: Dispatches the compiled summary to compliance stakeholders. Set up steps Setup Time: 15-20 minutes Install ScrapeGraphAI Node: From n8n, go to “Settings → Community Nodes → Install”, search “ScrapeGraphAI”, and install. Create PostgreSQL Table: CREATE TABLE news_updates ( id SERIAL PRIMARY KEY, title TEXT, url TEXT UNIQUE, source TEXT, published_at TIMESTAMP ); Add Credentials: Navigate to “Credentials”, add ScrapeGraphAI, SendGrid, and PostgreSQL credentials. Import Workflow: Copy the JSON workflow, paste into “Import from Clipboard”. Configure Environment Variables (optional): REG_NEWS_KEYWORDS, SEND_TO_EMAILS, DB_TABLE_NAME. Set Schedule: Open the Schedule Trigger node and define your preferred cron expression. Activate Workflow: Toggle “Active”, then click “Execute Workflow” once to validate all connections. Node Descriptions Core Workflow Nodes: Schedule Trigger** – Initiates the workflow at the defined interval. ScrapeGraphAI** – Scrapes and parses news listings into JSON. Code** – Filters articles by keywords and normalizes timestamps. SplitInBatches** – Prevents database overload by batching inserts. If** – Determines whether an article is already stored. PostgreSQL** – Executes parameterized INSERT statements. Set** – Builds the HTML email body. SendGrid** – Sends the daily digest email. Data Flow: Schedule Trigger → ScrapeGraphAI → Code → SplitInBatches → If → PostgreSQL → Set → SendGrid Customization Examples Change Keyword Filtering // Code Node snippet const keywords = ['GDPR','AML','SOX']; // Add or remove terms item.filtered = keywords.some(k => item.title.includes(k)); return item; Switch to Weekly Digest { "trigger": { "cronExpression": "0 9 * * 1" // Every Monday at 09:00 } } Data Output Format The workflow outputs structured JSON data: { "title": "Data Privacy Act Amendment Passed", "url": "https://regulator.gov/news/1234", "source": "regulator.gov", "published_at": "2024-06-12T14:30:00Z" } Troubleshooting Common Issues ScrapeGraphAI node not found – Install the community node and restart n8n. Duplicate key error in PostgreSQL – Ensure the url column is marked UNIQUE to prevent duplicates. Emails not sending – Verify SendGrid API key and check account’s daily limit. Performance Tips Limit initial scrape URLs to fewer than 20 to reduce run time. Increase SplitInBatches size only if your database can handle larger inserts. Pro Tips: Use environment variables to manage sensitive credentials securely. Add an Error Trigger node to catch and log failures for auditing purposes. Combine with Slack or Microsoft Teams nodes to push instant alerts alongside email digests.
by Daniel
Transform any website into a structured knowledge repository with this intelligent crawler that extracts hyperlinks from the homepage, intelligently filters images and content pages, and aggregates full Markdown-formatted content—perfect for fueling AI agents or building comprehensive company dossiers without manual effort. 📋 What This Template Does This advanced workflow acts as a lightweight web crawler: it scrapes the homepage to discover all internal links (mimicking a sitemap extraction), deduplicates and validates them, separates image assets from textual pages, then fetches and converts non-image page content to clean Markdown. Results are seamlessly appended to Google Sheets for easy analysis, export, or integration into vector databases. Automatically discovers and processes subpage links from the homepage Filters out duplicates and non-HTTP links for efficient crawling Converts scraped content to Markdown for AI-ready formatting Categorizes and stores images, links, and full content in a single sheet row per site 🔧 Prerequisites Google account with Sheets access for data storage n8n instance (cloud or self-hosted) Basic understanding of URLs and web links 🔑 Required Credentials Google Sheets OAuth2 API Setup Go to console.cloud.google.com → APIs & Services → Credentials Click "Create Credentials" → Select "OAuth client ID" → Choose "Web application" Add authorized redirect URIs: https://your-n8n-instance.com/rest/oauth2-credential/callback (replace with your n8n URL) Download the client ID and secret, then add to n8n as "Google Sheets OAuth2 API" credential type During setup, grant access to Google Sheets scopes (e.g., spreadsheets) and test the connection by listing a sheet ⚙️ Configuration Steps Import the workflow JSON into your n8n instance In the "Set Website" node, update the website_url value to your target site (e.g., https://example.com) Assign your Google Sheets credential to the three "Add ... to Sheet" nodes Update the documentId and sheetName in those nodes to your target spreadsheet ID and sheet name/ID Ensure your sheet has columns: "Website", "Links", "Scraped Content", "Images" Activate the workflow and trigger manually to test scraping 🎯 Use Cases Knowledge base creation: Crawl a company's site to aggregate all content into Sheets, then export to Notion or a vector DB for internal wikis AI agent training: Extract structured Markdown from industry sites to fine-tune LLMs on domain-specific data like legal docs or tech blogs Competitor intelligence: Build dossiers by crawling rival websites, separating assets and text for SEO audits or market analysis Content archiving: Preserve dynamic sites (e.g., news portals) as static knowledge dumps for compliance or historical research ⚠️ Troubleshooting No links extracted: Verify the homepage has tags; test with a simple site like example.com and check HTTP response in executions Sheet update fails: Confirm column names match exactly (case-sensitive) and credential has edit permissions; try a new blank sheet Content truncated: Google Sheets limits cells to ~50k chars—adjust the .slice(0, 50000) in "Add Scraped Content to Sheet" or split into multiple rows Rate limiting errors: Add a "Wait" node after "Scrape Links" with 1-2s delay if the site blocks rapid requests
by Cheng Siong Chin
How It Works This workflow automates personalized customer journeys by analyzing CRM data, purchase history, chat interactions, and performance metrics to intelligently route customer actions through multiple channels (email, SMS, retargeting) via AI-optimized schemas. A webhook trigger initiates the process by fetching CRM customer data, which is then merged with historical records and interactions. OpenAI builds comprehensive customer state profiles, enabling intelligent routing to appropriate channels using optimized journey logic. The system aggregates performance metrics in real-time and updates the database to maintain synchronized customer information across all systems. Setup Steps Connect CRM credentials (source system) Add OpenAI API key for state builder Configure Gmail/SMS provider credentials Add Google Sheets connection for performance tracking Set Touchpoint Event Webhook URL Map database connection for customer state persistence Prerequisites OpenAI API key, CRM access, Gmail/SMS provider accounts, Google Sheets, database (PostgreSQL/MySQL), n8n instance with webhook enabled. Use Cases E-commerce personalization, SaaS customer retention, multi-touch marketing automation Customization Modify journey schemas in Journey Optimizer AI, adjust routing rules in Action Type Router Benefits Reduces manual campaign management 80%, improves conversion via AI personalization
by Firecrawl
What this does Receives a URL via webhook, uses Firecrawl to scrape the page into clean markdown, and stores it as vector embeddings in Pinecone. A visual, self-hosted ingestion pipeline for RAG knowledge bases. Adding a new source is as simple as sending a URL. The second part of the workflow exposes a chat interface where an AI Agent queries the stored knowledge base to answer questions, with Cohere reranking for better retrieval quality. How it works Part 1: Ingestion Pipeline Webhook receives a POST request with a url field Verify URL validates and normalizes the domain, returning a 422 error if invalid Firecrawl /scrape fetches the page and converts it to clean markdown Embeddings OpenAI generates 1536-dimensional vector embeddings from the scraped content Default Data Loader attaches the source URL as metadata Pinecone Vector Store inserts the content and embeddings into the index Respond to Webhook confirms how many items were added Part 2: RAG Chat Agent Chat trigger receives a user question AI Agent (OpenRouter / Claude Sonnet) queries the Pinecone vector store Cohere Reranker improves retrieval quality before the agent responds Agent answers based solely on the ingested knowledge base 🔥 Firecrawl 🌲 Pinecone 🧠 OpenAI Embeddings 🤖 OpenRouter (Claude Sonnet) 🎯 Cohere Reranker Webhook usage Send a POST request to the webhook URL: curl -X POST https://your-n8n-instance/webhook/your-id \ -H "Content-Type: application/json" \ -d '{"url": "firecrawl.dev"}' Pinecone setup Your Pinecone index must be configured with 1536 dimensions to match the OpenAI text-embedding-3-small model output. See the sticky note inside the workflow for the exact index settings. Requirements Firecrawl API key OpenAI API key (for embeddings) OpenRouter API key (for the chat agent) Cohere API key (for reranking) Pinecone account with a properly configured index
by Masaki Go
About This Template This workflow creates high-quality, text-rich advertising banners from simple LINE messages. It combines Google Gemini (for marketing-focused prompt engineering) and Nano Banana Pro (accessed via Kie.ai API) to generate images with superior text rendering capabilities. It also handles the asynchronous API polling required for high-quality image generation. How It Works Input: Users send a banner concept via LINE (e.g., "Coffee brand, morning vibe"). Prompt Engineering: Gemini optimizes the request into a detailed prompt, specifying lighting, composition, and Japanese catch-copy placement. Async Generation: The workflow submits a job to Nano Banana Pro (Kie API) and intelligently waits/polls until the image is ready. Hosting: The final image is downloaded and uploaded to a public AWS S3 bucket. Delivery: The image is pushed back to the user on LINE. Who It’s For Marketing teams creating A/B test assets. Japanese market advertisers needing accurate text rendering. Developers looking for an example of Async API Polling patterns in n8n. Requirements n8n** (Cloud or Self-hosted). Kie.ai API Key** (for Nano Banana Pro model). Google Gemini API Key**. AWS S3 Bucket** (Public access enabled). LINE Official Account** (Messaging API). Setup Steps Credentials: Configure the "Header Auth" credential for the Kie.ai nodes (Header: Authorization, Value: Bearer YOUR_API_KEY). AWS: Ensure your S3 bucket allows public read access so LINE can display the image. Webhook: Add the production webhook URL to your LINE Developers console.
by plemeo
Who’s it for Growth hackers, community builders, and marketers who want to keep their Twitter (X) accounts active by liking posts from selected profiles automatically. How it works / What it does Schedule Trigger fires hourly. Profile Post Extractor fetches up to 20 tweets for each profile in your CSV. Select Cookie rotates Twitter session-cookies. Get Random Post checks against twitter_posts_already_liked.csv. Builds twitter_posts_to_like.csv, uploads to SharePoint. Phantombuster Autolike Agent likes the tweet. Logs the liked URL to avoid duplicates. How to set up Add Phantombuster + SharePoint credentials. In SharePoint “Phantombuster” folder: • twitter_session_cookies.txt • twitter_posts_already_liked.csv (header postUrl) • profiles_twitter.csv (list of profiles). Profile CSV format Your profiles_twitter.csv must contain a header profileUrl and direct links to the Twitter profiles. Example: profileUrl https://twitter.com/elonmusk https://twitter.com/openai
by Eugen
👥 Who the Automation is for This automation is perfect for bloggers, solopreneurs, business owners, and marketing teams who want to scale SEO content creation. Instead of spending hours on research and drafting, you can go from a single keyword idea to a ready-to-edit WordPress draft in minutes. ⚙️ How the Automation Works Collect keywords in a Google Sheet and mark the ones you want as “prioritized.” Click “Prepare Content” → your keyword(s) are sent to n8n. n8n pulls the top 10 Google SERP results. AI analyzes competitors (tone, content type, gaps) and creates a content brief. Another AI generates a blog draft based on the brief. The draft is automatically uploaded to WordPress and your sheet updates. 👉 In short: Keyword → SERP → Brief → Draft → WordPress. 🛠 How to Set Up Full Setup Guide Copy the Google Sheets Template. Import the workflow into n8n. Add your API keys: Google Custom Search, Claude AI, and WordPress credentials. Test the webhook connection from Google Sheets. 🎉 Done — you now have a one-click pipeline from keyword idea to WordPress draft.
by isaWOW
An intelligent n8n workflow that automates your entire blog content pipeline—from keyword research to WordPress publishing. Using Google Gemini, DeepSeek, and Perplexity, this workflow generates SEO-optimized blog posts and publishes them automatically while tracking everything in Google Sheets. What this workflow does This automation handles your complete blog creation process: Scheduled content research:** Fetches approved topics from Google Sheets and conducts deep SEO research using Perplexity AI-powered writing:** Uses DeepSeek for competitor analysis and Google Gemini to write 800-1000 word SEO-optimized articles with FAQs Automated publishing:** Publishes directly to WordPress via REST API and updates tracking in Google Sheets Smart scheduling:** Runs daily at 7 AM, respects weekly frequency settings, and processes multiple clients in batches Setup requirements Tools you'll need: Active n8n instance (self-hosted or n8n Cloud) Google Sheets with OAuth access WordPress site with REST API enabled API keys: Google Gemini, DeepSeek, Perplexity (optional) Estimated setup time: 20-25 minutes Step-by-step setup 1. Prepare your Google Sheets Create two sheets: Client projects sheet: Columns: Client ID | Website URL | Blog API | GMB Name | Weekly Frequency | On Page Sheet Example: CLIENT001 | https://example.com | xxxx xxxx xxxx | Example Co | Mon,Wed,Fri | Sheet URL Content topics sheet (one per client, named "Content Requirement & Posting"): Columns: S.No. | Focus Keyword | Content Topic | Internal Linking URLs | Words | Topic Approval | Content Approval | Publish URLs | Weekly Frequency Example: 1 | best investment tips | Top 10 Investment Tips | https://example.com/page | 1000 | Approved | Approved | (empty) | Mon,Wed 2. Connect Google Sheets In n8n: Credentials → Add credential → Google Sheets OAuth2 API Complete OAuth authentication Open "Load Active Client Projects" node → Select your client sheet URL and credential Open "Get Approved Blog Topics from Sheet" node → Select credential (document URL is dynamic) 3. Add AI API credentials Google Gemini: Get API key: https://makersuite.google.com/app/apikey Add credential in n8n: Google PaLM API Select in "Gemini - Content Writing Model" node DeepSeek: Get API key: https://platform.deepseek.com/ Add credential in n8n: DeepSeek API Select in "DeepSeek - Research Model" node Perplexity (optional): Get API key: https://www.perplexity.ai/settings/api Add credential in n8n: Perplexity API Select in "Perplexity - Web Search Tool" node 4. Set up WordPress WordPress admin → Users → Profile → Application Passwords Create new application password (format: xxxx xxxx xxxx xxxx xxxx xxxx) Add to your Google Sheet: Blog API column: Paste application password Website URL column: Enter full URL (e.g., https://example.com) 5. Configure schedule Open "Daily Blog Publishing Schedule" node Set time (recommended: 7:00 AM) Choose timezone Save settings 6. Test and activate Add one test row in your sheets with today's day in Weekly Frequency Click "Daily Blog Publishing Schedule" → Execute node Verify: Blog published in WordPress, URL updated in Google Sheet Toggle workflow Active at the top How it works 1. Schedule & filtering (7 AM daily) Loads client projects from Google Sheets Filters clients by Weekly Frequency (e.g., only those publishing today) 2. Content fetching Loops through each client Fetches approved topics (Topic Approval = "Approved", Publish URLs = empty) Selects first pending topic 3. AI content creation Research phase:** DeepSeek + Perplexity analyze competitors, search intent, content gaps, LSI keywords Writing phase:** Google Gemini writes 800-1000 word article with FAQs in conversational English 4. Publishing Extracts title and body content Publishes to WordPress via REST API Updates Google Sheet with publish URL Continues to next topic/client Key features ✅ Automated research: Deep competitor analysis and SEO insights with Perplexity ✅ Dual AI models: DeepSeek for research, Gemini for writing ✅ SEO optimized: Natural keyword integration, LSI keywords, FAQs ✅ Batch processing: Handles multiple clients and topics in one run ✅ Smart scheduling: Publishes only on specified weekdays ✅ Complete tracking: End-to-end visibility in Google Sheets ✅ WordPress ready: Direct publishing with proper HTML formatting Troubleshooting Google Sheets not connecting: Re-authenticate OAuth credentials Verify sheet URLs and column names match exactly (case-sensitive) Check sharing permissions on sheets AI API errors: Verify API keys are active and have credits Check rate limits on API dashboards Reduce token usage if hitting limits WordPress publishing fails: Test REST API: Visit https://yoursite.com/wp-json/wp/v2/posts Verify application password is correct (with spaces) Ensure user has Author/Editor role Check Website URL includes https:// No topics being processed: Verify Topic Approval = "Approved" and Content Approval = "Approved" Ensure Publish URLs column is empty Check today's day matches Weekly Frequency setting Confirm sheet name is exactly "Content Requirement & Posting" Use cases Marketing agencies: Manage 10+ client blogs, scale without hiring writers SEO teams: Execute keyword strategies at scale with consistent quality Solo bloggers: Save 5-10 hours/week, maintain regular publishing schedule Content teams: Run company blog on autopilot with oversight and tracking Publishers: Operate multiple niche blogs, reduce costs by 70-80% Expected results Time savings:** 5-10 hours per week per client Output:** 10-20 SEO-optimized posts per week SEO impact:** Improved rankings within 2-3 months Cost efficiency:** 70-80% reduction vs. hiring writers Reliability:** Never miss a publishing deadline Workflow Customization & Next Steps This workflow (Part 1) focuses on content research and writing. To complete the full automation, you will need Part 2, which you will get in the next post. Please ensure you set it up as well, as it manages WordPress publishing along with featured images. Resources n8n documentation Google Gemini API DeepSeek API docs WordPress REST API Support Need help or custom development? 📧 Email: info@isawow.com 🌐 Website: https://isawow.com/
by Edson Encinas
🐟 Phishing URL Reputation Checker with VirusTotal This n8n template helps you automatically analyze URLs for phishing and malicious activity using VirusTotal’s multi-engine threat intelligence platform. It validates incoming URLs, submits them for scanning, polls for results, classifies risk, and logs verdicts for monitoring and incident response workflows. Use cases include security automation, SOC alerting, phishing triage pipelines, chatbot URL validation, and email security enrichment. This template is ideal for blue teams, security engineers, and automation builders who want real-time URL reputation checks without building a full security pipeline from scratch. 💡 Good to know VirusTotal enforces API rate limits. For high-volume environments, consider increasing polling intervals or rotating API keys. The workflow defangs suspicious and malicious URLs to prevent accidental clicks during investigation. This template uses asynchronous polling because VirusTotal scans are not always immediately available. ⚙️ How it works A webhook receives a URL from an API, form, chatbot, or automation trigger. The URL is normalized and validated to ensure proper formatting. Valid URLs are submitted to VirusTotal for reputation scanning. The workflow polls VirusTotal until the analysis is completed or retries are exhausted. Detection statistics are extracted and evaluated using threshold-based phishing logic. URLs classified as suspicious or phishing are defanged for safe handling. Results are returned and optionally logged to Google Sheets for auditing and tracking. 🧑💻 How to use Trigger the workflow using the webhook and send JSON like: { "url": "example.com" } Replace the webhook with other triggers such as email ingestion, Slack bots, or security tooling. Review the phishing verdict and risk level in the webhook response or Google Sheets log. 📋 Requirements VirusTotal API key (configured using HTTP Header Auth credentials) Google Sheets account for logging scan results 🧩 Customizing this workflow Send Slack, Microsoft Teams, or email alerts when the verdict is not SAFE. Extend the workflow with additional threat intelligence sources for stronger detection. Store scan results in databases like Airtable, PostgreSQL, or MySQL instead of Google Sheets for scalable logging and analytics.