by WeblineIndia
IPA Size Tracker with Trend Alerts – Automated iOS Apps Size Monitoring This workflow runs on a daily schedule and monitors IPA file sizes from configured URLs. It stores historical size data in Google Sheets, compares current vs. previous builds and sends email alerts only when significant size changes occur (default: ±10%). A DRY_RUN toggle allows safe testing before real notifications go out. Who’s it for iOS developers tracking app binary size growth over time. DevOps teams monitoring build artifacts and deployment sizes. Product managers ensuring app size budgets remain acceptable. QA teams detecting unexpected size changes in release builds. Mobile app teams optimizing user experience by keeping apps lightweight. How it works Schedule Trigger (daily at 09:00 UTC) kicks off the workflow. Configuration: Define monitored apps with {name, version, build, ipa_url}. HTTP Request downloads the IPA file from its URL. Size Calculation: Compute file sizes in bytes, KB, MB and attach timestamp metadata. Google Sheets: Append size data to the IPA Size History sheet. Trend Analysis: Compare current vs. previous build sizes. Alert Logic: Evaluate thresholds (>10% increase or >10% decrease). Email Notification: Send formatted alerts with comparisons and trend indicators. Rate Limit: Space out notifications to avoid spamming recipients. How to set up 1. Spreadsheet Create a Google Sheet with a tab named IPA Size History containing: Date, Timestamp, App_Name, Version, Build_Number, Size_Bytes, Size_KB, Size_MB, IPA_URL 2. Credentials Google Sheets (OAuth)** → for reading/writing size history. Gmail** → for sending alert emails (use App Password if 2FA is enabled). 3. Open “Set: Configuration” node Define your workflow variables: APP_CONFIGS = array of monitored apps ({name, version, build, ipa_url}) SPREADSHEET_ID = Google Sheet ID SHEET_NAME = IPA Size History SMTP_FROM = sender email (e.g., devops@company.com) ALERT_RECIPIENTS = comma-separated emails SIZE_INCREASE_THRESHOLD = 0.10 (10%) SIZE_DECREASE_THRESHOLD = 0.10 (10%) LARGE_APP_WARNING = 300 (MB) SCHEDULE_TIME = 09:00 TIMEZONE = UTC DRY_RUN = false (set true to test without sending emails) 4. File Hosting Host IPA files on Google Drive, Dropbox or a web server. Ensure direct download URLs are used (not preview links). 5. Activate the workflow Once configured, it will run automatically at the scheduled time. Requirements Google Sheet with the IPA Size History tab. Accessible IPA file URLs. SMTP / gmail account (Gmail recommended). n8n (cloud or self-hosted) with Google Sheets + Email nodes. Sufficient local storage for IPA file downloads. How to customize the workflow Multiple apps**: Add more configs to APP_CONFIGS. Thresholds**: Adjust SIZE_INCREASE_THRESHOLD / SIZE_DECREASE_THRESHOLD. Notification templates**: Customize subject/body with variables: {{app_name}}, {{current_size}}, {{previous_size}}, {{change_percent}}, {{trend_status}}. Schedule**: Change Cron from daily to hourly, weekly, etc. Large app warnings**: Adjust LARGE_APP_WARNING. Trend analysis**: Extend beyond one build (7-day, 30-day averages). Storage backend**: Swap Google Sheets for CSV, DB or S3. Add-ons to level up Slack Notifications**: Add Slack webhook alerts with emojis & formatting. Size History Charts**: Generate trend graphs with Chart.js or Google Charts API. Environment separation**: Monitor dev/staging/prod builds separately. Regression detection**: Statistical anomaly checks. Build metadata**: Log bundle ID, SDK versions, architectures. Archive management**: Auto-clean old records to save space. Dashboards**: Connect to Grafana, DataDog or custom BI. CI/CD triggers**: Integrate with pipelines via webhook trigger. Common Troubleshooting No size data** → check URLs return binary IPA (not HTML error). Download failures** → confirm hosting permissions & direct links. Missing alerts** → ensure thresholds & prior history exist. Google Sheets errors** → check sheet/tab names & OAuth credentials. Email issues** → validate SMTP credentials, spam folder, sender reputation. Large file timeouts** → raise HTTP timeout for >100MB files. Trend errors** → make sure at least 2 builds exist. No runs** → confirm workflow is active and timezone is correct. Need Help? If you’d like this to customize this workflow to suit your app development process, then simply reach out to us here and we’ll help you customize the template to your exact use case.
by Kevin Meneses
What this workflow does This workflow automatically audits web pages for SEO issues and generates an executive-friendly SEO report using AI. It is designed for marketers, founders, and SEO teams who want fast, actionable insights without manually reviewing HTML, meta tags, or SERP data. The workflow: Reads URLs from Google Sheets Scrapes page content using Decodo (reliable scraping, even on protected sites) Extracts key SEO elements (title, meta description, canonical, H1/H2, visible text) Uses an AI Agent to analyze the page and generate: Overall SEO status Top issues Quick wins Title & meta description recommendations Saves results to Google Sheets Sends a formatted HTML executive report by email (Gmail) Who this workflow is for This template is ideal for: SEO consultants and agencies SaaS marketing teams Founders monitoring their landing pages Content teams doing SEO quality control It focuses on on-page SEO fundamentals, not backlink analysis or technical crawling. Setup (step by step) 1. Google Sheets Create an input sheet with one URL per row Create an output sheet to store SEO results 2. Decodo Add your Decodo API credentials The URL is automatically taken from the input sheet 👉 Decodo – Web Scraper for n8n 3. AI Agent Connect your LLM credentials (OpenAI, Gemini, etc.) The prompt is already optimized for non-technical SEO summaries 4. Gmail Connect your Gmail account Set the recipient email address Emails are sent in clean HTML format Notes & disclaimer This is a community template Results depend on page accessibility and content structure It focuses on on-page SEO, not backlinks or rankings
by vinci-king-01
Property Listing Aggregator with Mailchimp and Notion ⚠️ 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 scrapes multiple commercial-real-estate websites, consolidates new property listings into Notion, and emails weekly availability updates or immediate space alerts to a Mailchimp audience. It automates the end-to-end process so business owners can stay on top of the latest spaces without manual searching. Pre-conditions/Requirements Prerequisites n8n instance (self-hosted or n8n.cloud) ScrapeGraphAI community node installed Active Notion workspace with permission to create/read databases Mailchimp account with at least one Audience list Basic understanding of JSON; ability to add API credentials in n8n Required Credentials ScrapeGraphAI API Key** – Enables web scraping functionality Notion OAuth2 / Integration Token** – Writes data into Notion database Mailchimp API Key** – Sends campaigns and individual emails (Optional) Proxy credentials – If target real-estate sites block your IP Specific Setup Requirements | Resource | Requirement | Example | |----------|-------------|---------| | Notion | Database with property fields (Address, Price, SqFt, URL, Availability) | Database ID: abcd1234efgh | | Mailchimp | Audience list where alerts are sent | Audience ID: f3a2b6c7d8 | | ScrapeGraphAI | YAML/JSON config per site | Stored inside the ScrapeGraphAI node | How it works This workflow scrapes multiple commercial-real-estate websites, consolidates new property listings into Notion, and emails weekly availability updates or immediate space alerts to a Mailchimp audience. It automates the end-to-end process so business owners can stay on top of the latest spaces without manual searching. Key Steps: Manual Trigger / CRON**: Starts the workflow weekly or on-demand. Code (Site List Builder)**: Generates an array of target URLs for ScrapeGraphAI. Split In Batches**: Processes URLs in manageable groups to avoid rate limits. ScrapeGraphAI**: Extracts property details from each site. IF (New vs Existing)**: Checks whether the listing already exists in Notion. Notion**: Inserts new listings or updates existing records. Set**: Formats email content (HTML & plaintext). Mailchimp**: Sends a campaign or automated alert to subscribers. Sticky Notes**: Provide documentation and future-enhancement pointers. Set up steps Setup Time: 15-25 minutes Install Community Node Navigate to Settings → Community Nodes and install “ScrapeGraphAI”. Create Notion Integration Go to Notion Settings → Integrations → Develop your own integration. Copy the integration token and share your target database with the integration. Add Mailchimp API Key In Mailchimp: Account → Extras → API keys. Copy an existing key or create a new one, then add it to n8n credentials. Build Scrape Config In the ScrapeGraphAI node, paste a YAML/JSON selector config for each website (address, price, sqft, url, availability). Configure the URL List Open the first Code node. Replace the placeholder array with your target listing URLs. Map Notion Fields Open the Notion node and map scraped fields to your database properties. Save. Design Email Template In the Set node, tweak the HTML and plaintext blocks to match your brand. Test the Workflow Trigger manually, check that Notion rows are created and Mailchimp sends the message. Schedule Add a CRON node (weekly) or leave the Manual Trigger for ad-hoc runs. Node Descriptions Core Workflow Nodes: Manual Trigger / CRON** – Kicks off the workflow either on demand or on a schedule. Code (Site List Builder)** – Holds an array of commercial real-estate URLs and outputs one item per URL. Split In Batches** – Prevents hitting anti-bot limits by processing URLs in groups (default: 5). ScrapeGraphAI** – Crawls each URL, parses DOM with CSS/XPath selectors, returns structured JSON. IF (New Listing?)** – Compares scraped listing IDs against existing Notion database rows. Notion** – Creates or updates pages representing property listings. Set (Email Composer)** – Builds dynamic email subject, body, and merge tags for Mailchimp. Mailchimp* – Uses the *Send Campaign endpoint to email your audience. Sticky Note** – Contains inline documentation and customization reminders. Data Flow: Manual Trigger/CRON → Code (URLs) → Split In Batches → ScrapeGraphAI → IF (New?) True path → Notion (Create) → Set (Email) → Mailchimp False path → (skip) Customization Examples Filter Listings by Maximum Budget // Inside the IF node (custom expression) {{$json["price"] <= 3500}} Change Email Frequency to Daily Digests { "nodes": [ { "name": "Daily CRON", "type": "n8n-nodes-base.cron", "parameters": { "triggerTimes": [ { "hour": 8, "minute": 0 } ] } } ] } Data Output Format The workflow outputs structured JSON data: { "address": "123 Market St, Suite 400", "price": 3200, "sqft": 950, "url": "https://examplebroker.com/listing/123", "availability": "Immediate", "new": true } Troubleshooting Common Issues Scraper returns empty objects – Verify selectors in ScrapeGraphAI config; inspect the site’s HTML for changes. Duplicate entries in Notion – Ensure the “IF” node checks a unique ID (e.g., listing URL) before creating a page. Performance Tips Reduce batch size or add delays in ScrapeGraphAI to avoid site blocking. Cache previously scraped URLs in an external file or database for faster runs. Pro Tips: Rotate proxies in ScrapeGraphAI for heavily protected sites. Use Notion rollups to calculate total available square footage automatically. Leverage Mailchimp merge tags (|FNAME|) in the Set node for personalized alerts.
by Shayan Ali Bakhsh
About this Workflow This workflow helps you repurpose your YouTube videos across multiple social media platforms with zero manual effort. It’s designed for creators, businesses, and marketers who want to maximize reach without spending hours re-uploading content everywhere. How It Works Trigger from YouTube The workflow checks your YouTube channel every 10 minutes via RSS feed. It compares the latest video ID with the last saved one to detect if a new video was uploaded. Tutorial: How to get YouTube Channel RSS Feed Generate Descriptions with AI Uses Gemini 2.5 Flash to automatically generate fresh, engaging descriptions for your posts. Create Images with ContentDrips ContentDrips offers multiple templates (carousel, single image, branding templates, etc.). The workflow generates a custom promotional image using your video description and thumbnail. Install node: npm install n8n-nodes-contentdrips Docs: ContentDrips Blog Tutorial Publish Across Social Platforms with SocialBu Instead of manually connecting each social media API, this workflow uses SocialBu. From a single connection, you can post to: Facebook, Instagram, TikTok, YouTube, Twitter (X), LinkedIn, Threads, Pinterest, and more. Website: SocialBu Get Real-Time Notifications via Discord After each run, the workflow sends updates to your Discord channel. You’ll know if the upload was successful, or if an error occurred (e.g., API limits). Setup guide: Discord OAuth Credentials Why Use This Workflow? Saves time by automating the entire repurposing process. Ensures consistent branding and visuals across platforms. Works around platform restrictions by leveraging SocialBu’s integrations. Keeps you updated with Discord notifications—no guessing if something failed. Requirements YouTube channel RSS feed link ContentDrips API key, template ID, and branding setup SocialBu account with connected social media platforms Discord credentials (for webhook updates) Need Help? Message me on LinkedIn: Shayan Ali Bakhsh Happy Automation 🚀
by PhilanthropEAK Automation
Who's it for Marketing teams, social media managers, content creators, and small businesses looking to maintain consistent social media presence across multiple platforms. Perfect for organizations that want to automate content creation while maintaining quality and brand consistency. How it works This workflow creates a complete social media automation system that generates platform-specific content using AI and schedules posts across Twitter, LinkedIn, and Instagram based on your content calendar in Google Sheets. The system runs daily at 9 AM, reading your content calendar to identify scheduled topics for the day. It uses OpenAI's GPT-4 to generate platform-optimized content that follows each platform's best practices - concise engaging posts for Twitter, professional thought leadership for LinkedIn, and visual storytelling for Instagram. DALL-E creates accompanying images that match your brand style and topic themes. Each piece of content is automatically formatted for optimal engagement, including appropriate hashtags, character limits, and platform-specific calls-to-action. The workflow then schedules posts through Buffer's API at optimal times and updates your spreadsheet with posting status, content previews, and generated image URLs for tracking and approval workflows. How to set up Prerequisites: Google account with Sheets access OpenAI API key with GPT-4 and DALL-E access Buffer account with connected social media profiles Slack workspace (optional for notifications) Setup steps: Create your content calendar: Copy the provided Google Sheets template Set up columns: Date, Topic, Platforms, Content Type, Keywords, Status, Generated Content, Image URL Fill in your content schedule with topics and target platforms Configure credentials in n8n: Add OpenAI API credential with your API key Set up Google Sheets OAuth2 for spreadsheet access Add Buffer API token from your Buffer dashboard Add Slack API credential for success notifications (optional) Update Configuration Variables: Set your Google Sheet ID from the spreadsheet URL Define your brand voice and company messaging Specify target audience for content personalization Set image style preferences for consistent visuals Configure Buffer integration: Connect your social media accounts to Buffer Get profile IDs for Twitter, LinkedIn, and Instagram Update the Schedule Post node with your specific profile IDs Set optimal posting times in Buffer settings Test the workflow: Add test content to tomorrow's date in your calendar Run the workflow manually to verify content generation Check that posts appear in Buffer's queue correctly Verify spreadsheet updates and Slack notifications work Requirements Google Sheets with template structure and editing permissions OpenAI API key with GPT-4 and DALL-E access (estimated cost: $0.10-0.30 per day for content generation) Buffer account (free plan supports up to 3 social accounts, paid plans for more) Social media accounts connected through Buffer (Twitter, LinkedIn, Instagram) n8n instance (cloud subscription or self-hosted) How to customize the workflow Adjust content generation: Modify AI prompts in the OpenAI node to match your industry tone and style Add custom content types (promotional, educational, behind-the-scenes, user-generated) Include seasonal or event-based content variations in your prompts Customize hashtag strategies per platform and content type Enhance scheduling logic: Add time zone considerations for global audiences Implement different posting schedules for weekdays vs weekends Create urgency-based posting for time-sensitive content Add approval workflows before scheduling sensitive content Expand platform support: Add Facebook, TikTok, or YouTube Shorts using their respective APIs Integrate with Hootsuite or Later as alternative scheduling platforms Include Pinterest for visual content with optimized descriptions Add LinkedIn Company Page posting alongside personal profiles Improve content intelligence: Integrate trending hashtag research using social media APIs Add competitor content analysis for inspiration and differentiation Include sentiment analysis to adjust tone based on current events Implement A/B testing for different content variations Advanced automation features: Add engagement monitoring and response workflows Create monthly performance reports sent via email Implement content recycling for evergreen topics Build user-generated content curation from brand mentions Add crisis communication protocols for sensitive topics Integration enhancements: Connect with your CRM to include customer success stories Link to email marketing for cross-channel content consistency Integrate with project management tools for campaign coordination Add analytics dashboards for content performance tracking
by Omer Fayyaz
Automatically discover and extract article URLs from any website using AI to identify valid content links while filtering out navigation, category pages, and irrelevant content—perfect for building content pipelines, news aggregators, and research databases. What Makes This Different: AI-Powered Intelligence** - Uses GPT-5-mini to understand webpage context and identify actual articles vs navigation pages, eliminating false positives Browser Spoofing** - Includes realistic User-Agent headers and request patterns to avoid bot detection on publisher sites Smart URL Normalization* - Automatically strips tracking parameters (utm_, fbclid, etc.), removes duplicates, and standardizes URLs Source Categorization** - AI assigns logical source names based on domain and content type for easy filtering Rate Limiting Built-In** - Configurable delays between requests prevent IP blocking and respect website resources Deduplication on Save** - Google Sheets append-or-update pattern ensures no duplicate URLs in your database Key Benefits of AI-Powered Content Discovery: Save 10+ Hours Weekly** - Automate manual link hunting across dozens of publisher sites Higher Quality Results** - AI filters out 95%+ of junk links (nav pages, categories, footers) that rule-based scrapers miss Scale Effortlessly** - Add new seed URLs to your sheet and the same workflow handles any website structure Industry Agnostic** - Works for news, blogs, research papers, product pages—any content type Always Up-to-Date** - Schedule daily runs to catch new content as it's published Full Audit Trail** - Track discovered URLs with timestamps and sources in Google Sheets Who's it for This template is designed for content marketers, SEO professionals, researchers, media monitors, and anyone who needs to aggregate content from multiple sources. It's perfect for organizations that need to track competitor blogs, curate industry news, build research databases, monitor brand mentions, or aggregate content for newsletters without manually checking dozens of websites daily or writing complex scraping rules for each source. How it works / What it does This workflow creates an intelligent content discovery pipeline that automatically finds and extracts article URLs from any webpage. The system: Reads Seed URLs - Pulls a list of webpages to crawl from your Google Sheets (blog indexes, news feeds, publication homepages) Fetches with Stealth - Downloads each webpage's HTML using browser-like headers to avoid bot detection Converts for AI - Transforms messy HTML into clean Markdown that the AI can easily process AI Extraction - GPT-5-mini analyzes the content and identifies valid article URLs while filtering out navigation, categories, and junk links Normalizes & Saves - Cleans URLs (removes tracking params), deduplicates, and saves to Google Sheets with source tracking Key Innovation: Context-Aware Link Filtering - Unlike traditional scrapers that rely on CSS selectors or URL patterns (which break when sites update), the AI understands the semantic difference between an article link and a navigation link. It reads the page like a human would, identifying content worth following regardless of the website's structure. How to set up 1. Create Your Google Sheets Database Create a new Google Spreadsheet with two sheets: "Seed URLs" - Add column URL with webpages to crawl (blog homepages, news feeds, etc.) "Discovered URLs" - Add columns: URL, Source, Status, Discovered At Add 3-5 seed URLs to start (e.g., https://abc.com/, https://news.xyz.com/) 2. Connect Your Credentials Google Sheets**: Click the "Read Seed URLs" and "Save Discovered URLs" nodes → Select your Google Sheets account OpenAI**: Click the "OpenAI GPT-5-mini" node → Add your OpenAI API key Select your spreadsheet and sheet names in both Google Sheets nodes 3. Customize the AI Prompt (Optional) Open the "AI URL Extractor" node Modify the system message to add industry-specific rules: // Example: Add to system message for tech blogs For tech sites, also extract: Tutorial and guide URLs Product announcement pages Changelog and release notes Adjust source naming conventions to match your taxonomy 4. Test Your Configuration Click "Test Workflow" or use the Manual Trigger Check the execution to verify: Seed URLs are being read correctly HTML is fetched successfully (check for 200 status) AI returns valid JSON array of URLs URLs are saved to your output sheet Review the "Discovered URLs" sheet for results 5. Schedule and Monitor Adjust the Schedule Trigger (default: daily at 6 AM) Enable the workflow to run automatically Monitor execution logs for errors: Rate limiting: Increase wait time if sites block you Empty results: Check if seed URLs have changed structure AI errors: Review AI output in execution data Set up error notifications via email or Slack (add nodes after Completion Summary) Requirements Google Sheets Account** - OAuth2 connection for reading seed URLs and saving results OpenAI API Key** - For GPT-5-mini (or swap for any LangChain-compatible LLM)
by WeblineIndia
Automated Failed Login Detection with Jira Security Tasks, Slack Notifications Webhook: Failed Login Attempts → Jira Security Case → Slack Warnings This n8n workflow monitors failed login attempts from any application, normalizes incoming data, detects repeated attempts within a configurable time window and automatically: Sends detailed alerts to Slack, Creates Jira security tasks (single or grouped based on repetition), Logs all failed login attempts into a Notion database. It ensures fast, structured and automated responses to potential account compromise or brute-force attempts while maintaining persistent records. Quick Implementation Steps Import this JSON workflow into n8n. Connect your application to the failed-login webhook endpoint. Add Jira Cloud API credentials. Add Slack API credentials. Add Notion API credentials and configure the database for storing login attempts. Enable the workflow — done! What It Does Receives Failed Login Data Accepts POST requests containing failed login information. Normalizes the data, ensuring consistent fields: username, ip, timestamp and error. Validates Input Checks for missing username or IP. Sends a Slack alert if any required field is missing. Detects Multiple Attempts Uses a sliding time window (default: 5 minutes) to detect multiple failed login attempts from the same username + IP. Single attempts → standard Jira task + Slack notification. Multiple attempts → grouped Jira task + detailed Slack notification. Logs Attempts in Notion Records all failed login events into a Notion database with fields: Username, IP, Total Attempts, Attempt List, Attempt Type. Formats Slack Alerts Single attempt → lightweight notification. Multiple attempts → summary including timestamps, errors, total attempts, and Jira ticket link. Who’s It For This workflow is ideal for: Security teams monitoring authentication logs. DevOps/SRE teams maintaining infrastructure access logs. SaaS platform teams with high login traffic. Organizations aiming to automate breach detection. Teams using Jira + Slack + Notion + n8n for incident workflows. Requirements n8n (Self-Hosted or Cloud). Your application must POST failed login data to the webhook. Jira Software Cloud credentials (Email, API Token, Domain). Slack Bot Token with message-posting permissions. Notion API credentials with access to a database. Basic understanding of your login event sources. How It Works Webhook Trigger: Workflow starts when a failed-login event is sent to the failed-login webhook. Normalization: Converts single objects or arrays into a uniform format. Ensures username, IP, timestamp and error are present. Prepares a logMessage for Slack and Jira nodes. Validation: IF node checks whether username and IP exist. If missing → Slack alert for missing information. Multiple Attempt Detection: Function node detects repeated login attempts within a 5-minute sliding window. Flags attempts as multiple: true or false. Branching: Multiple attempts → build summary, create Jira ticket, format Slack message, store in Notion. Single attempts → create Jira ticket, format Slack message, store in Notion. Slack Alerts: Single attempt → concise message Multiple attempts → detailed summary with timestamps and Jira ticket link Notion Logging: Stores username, IP, total attempts, attempt list, attempt type in a dedicated database for recordkeeping. How To Set Up Import Workflow → Workflows → Import from File in n8n. Webhook Setup → copy the URL from Faield Login Trigger node and integrate with your application. Jira Credentials → connect your Jira account to both Jira nodes and configure project/issue type. Slack Credentials → connect your Slack Bot and select the alert channel. Notion Credentials → connect your Notion account and select the database for storing login attempts. Test the Workflow → send sample events: missing fields, single attempts, multiple attempts. Enable Workflow → turn on workflow once testing passes. Logic Overview | Step Node | Description | |---------------------------------|-----------------------------------------------| | Normalize input | Normalize Login Event — Ensures each event has required fields and prepares a logMessage. | | Validate fields | Check Username & IP present — IF node → alerts Slack if data is incomplete. | | Detect repeats | Detect Multiple Attempts — Finds multiple attempts within a 5-minute window; sets multiple flag. | | Multiple attempts | IF - Multiple Attempts + Build Multi-Attempt Summary — Prepares grouped summary for Slack & Jira. | | Single attempt | Create Ticket - Single Attempt — Creates Jira task & Slack alert for one-off events. | | Multiple attempt ticket | Create Ticket - Multiple Attempts — Creates detailed Jira task. | | Slack alert formatting | Format Fields For Single/Multiple Attempt — Prepares structured message for Slack. | | Slack alert delivery | Slack Alert - Single/Multiple Attempts — Posts alert in selected Slack channel. | | Notion logging | Login Attempts Data Store in DB — Stores structured attempt data in Notion database. | Customization Options Webhook Node** → adjust endpoint path for your application. Normalization Function** → add fields such as device, OS, location or user-agent. Multiple Attempt Logic** → change the sliding window duration or repetition threshold. Jira Nodes** → modify issue type, labels or project. Slack Nodes** → adjust markdown formatting, channel routing or severity-based channels. Notion Node** → add or modify database fields to store additional context. Optional Enhancements: Geo-IP lookup for country/city info. Automatic IP blocking via firewall or WAF. User notification for suspicious login attempts. Database logging in MySQL/Postgres/MongoDB. Threat intelligence enrichment (e.g., AbuseIPDB). Use Case Examples Detect brute-force attacks targeting user accounts. Identify credential stuffing across multiple users. Monitor admin portal access failures with Jira task creation. Alert security teams instantly when login attempts originate from unusual locations. Centralize failed login monitoring across multiple applications with Notion logging. Troubleshooting Guide | Issue | Possible Cause | Solution | |-------------------------------|---------------------------------------------------|-------------------------------------------------------------| | Workflow not receiving data | Webhook misconfigured | Verify webhook URL & POST payload format | | Jira ticket creation fails | Invalid credentials or insufficient permissions | Update Jira API token and project access | | Slack alert not sent | Incorrect channel ID or missing bot scopes | Fix Slack credentials and permissions | | Multiple attempts not detected| Sliding window logic misaligned | Adjust Detect Multiple Attempts node code | | Notion logging fails | Incorrect database ID or missing credentials | Update Notion node credentials and database configuration | | Errors in normalization | Payload format mismatch | Update Normalize Login Event function code | Need Help? If you need help setting up, customizing or extending this workflow, WeblineIndia can assist with full n8n development, workflow automation, security event processing and custom integrations.
by Khairul Muhtadin
Automate your B2B lead generation by scraping Google Maps, generating AI business summaries, and extracting hidden contact emails from websites, all triggered via Telegram. Why Use This Workflow? Time Savings: Reduces lead research time from 4 hours of manual searching to 5 minutes of automated execution per 50 leads. Cost Reduction: Replaces expensive monthly lead database subscriptions with a pay-as-you-go model using Apify and OpenAI. Error Prevention: Uses AI to deduplicate results and ensure company summaries are professional and consistent for your CRM. Scalability: Allows you to trigger massive scraping tasks from your mobile phone via Telegram while the backend handles the heavy lifting. Ideal For Sales Development Reps (SDRs):** Rapidly building targeted lists of local businesses for cold outreach or door-knocking campaigns. Marketing Agencies:** Identifying new businesses in specific sectors (e.g., "Dentists in Paris") to offer SEO or advertising services. Real Estate Investors:** Finding specific commercial properties or business types in a geographic area to identify investment opportunities. How It Works Trigger: The workflow starts when you send a message to your Telegram bot in the format: Sector; Limit; MapsURL. Data Collection: n8n parses these parameters and triggers an Apify Actor to scrape Google Maps for business details. Processing: The workflow retrieves the results, removes duplicate entries, and begins a loop to process each business. Intelligence Layer (Summary): OpenAI analyzes the business data to create a natural, human-like summary of the company. Enrichment (Email Hunting): If the business has a website, Jina AI fetches the page content, and OpenAI extracts the most authoritative contact email. Output & Delivery: Core data is upserted into Google Sheets, and the email is updated once found. A "DONE" notification is sent to Telegram upon completion. Setup Guide Prerequisites | Requirement | Type | Purpose | |-------------|------|---------| | n8n instance | Essential | Workflow execution and logic | | Apify Account | Essential | Scrapes Google Maps data | | OpenAI API Key | Essential | Generates summaries and extracts emails | | Google Sheets | Essential | Data storage and lead management | | Telegram Bot | Essential | User interface for triggering searches | | Jina AI Key | Essential | Converts websites to LLM-friendly Markdown | Installation Steps Import the JSON file into your n8n instance. Configure credentials: Telegram: Create a bot via @BotFather and add your token to the Telegram nodes. Apify: Provide your API token to the "Run Maps Scraper" and "Fetch Dataset" nodes. OpenAI: Add your API key to the enrichment nodes. Google Sheets: Connect your Google account and select your target Spreadsheet ID. Set up the Sheet: Ensure your Google Sheet has headers matching the "Upsert" node (Title, Email, Category, Website, etc.). Test execution: Send a message like Coffee Shops; 5; https://www.google.com/maps/search/coffee+shops+london to your bot. Technical Details Core Nodes | Node | Purpose | Key Configuration | |------|---------|-------------------| | Telegram Trigger | Captures user input | Listens for /message updates | | Apify Node | Executes Maps Scraper | Uses nwua9Gu5YrADL7ZDj actor ID | | OpenAI Node | AI Analysis | Configured for JSON output (Summary) and extraction (Email) | | Jina AI | Web Scraping | Converts HTML to Markdown for AI readability | | Google Sheets | Database | Uses Append or Update based on the business Title | Workflow Logic The workflow utilizes a Split In Batches loop to ensure stability. It first performs a "shallow" save of business details (name, phone, address) and then attempts a "deep" enrichment only if a website URL is detected. This two-stage approach ensures you don't lose data if a website crawl fails. Customization Options Basic Adjustments: Rate Limit:** Adjust the "Wait" node duration (default 2s) to comply with Google Sheets or API limits. Language:** Modify the OpenAI prompt to generate summaries in your preferred language (e.g., English, French, Spanish). Advanced Enhancements: CRM Integration:** Replace Google Sheets with HubSpot or Pipedrive for direct lead injection. Slack Notifications:** Send the final lead list or business summary directly to a sales channel. Auto-Emailer:** Add a Gmail/Outlook node to automatically send an introductory email once a lead is found. Troubleshooting Common Issues: | Problem | Cause | Solution | |---------|-------|----------| | Empty Email column | Website protected by bot-blockers | Try a different scraper or use a proxy in Jina AI | | Apify Timeout | Scraping limit set too high | Lower the "limit" parameter in your Telegram message | | 429 Errors | Google Sheets rate limits | Increase the duration in the "Wait Rate Limit" node | Use Case Examples Scenario 1: Local SEO Agency Challenge: Finding local contractors with poor reviews but high revenue potential. Solution: Use the workflow to scrape "Plumbers" in a city, use AI to summarize their online presence, and collect emails. Result: A curated list of 100 leads with contact info and a "Pitch" summary generated in minutes. Scenario 2: SaaS Cold Outreach Challenge: Getting the direct email of a business owner for a new booking software. Solution: Trigger the scraper via Telegram while in the field. The workflow extracts the "authoritative" email (manager/owner) from their site. Result: Accurate, high-intent lead data delivered directly to a master spreadsheet for the sales team. Created by: Khaisa Studio Category: Marketing | Tags: Lead Gen, AI, Google Maps, Telegram Need custom workflows? Contact us Connect with the creator: Portfolio • Workflows • LinkedIn • Medium • Threads
by Davide
This workflow automates the full pipeline for extending short Viral UGC-style videos using AI, merging them, and finally publishing the output to cloud storage or social media platforms (TikTok, Instagram, Facebook, Linkedin, X, and YouTube). It integrates multiple external APIs (Fal.ai, Runpod/Kling 2.1, Postiz, Upload-Post, Google Sheets, Google Drive) to create a smooth end-to-end video-generation system. Key Advantages 1. ✅ Full End-to-End Automation The workflow covers the entire process: Read inputs Generate extended clips Merge them Save outputs Publish on social platforms No manual intervention required after starting the workflow. 2. ✅ AI-Powered Video Extension (Kling 2.1 or other models like Veo 3.1 or Sora 2) The system uses Kling 2.1 (Kling 2.1 or other models like Veo 3.1 or Sora 2) to extend short videos realistically, enabling: Longer UGC clips Consistent cinematic style Smooth transitions based on extracted frames Ideal for viral social media content. 3. ✅ Smart Integration with Google Sheets The spreadsheet becomes a control panel: Add new videos to extend Control merging Automatically store URLs and results This makes the system user-friendly even for non-technical operators. 4. ✅ Robust Asynchronous Job Handling Every external API includes: Status checks Waiting loops Error prevention steps This ensures reliability when working with long-running AI processes. 5. ✅ Automatic Merging and Publishing Once videos are generated, the workflow: Merges them in the correct order Uploads them to Google Drive Posts them automatically to selected social platforms This drastically reduces time required for content production and distribution. 6. ✅ Highly Scalable and Customizable Because it is built in n8n: You can add more APIs You can add editing steps You can connect custom triggers (e.g., Airtable, webhooks, Shopify, etc.) You can fully automate your video-production pipeline How It Works This workflow automates the process of extending and merging videos using AI-generated content, then publishing the final result to social media platforms. The process consists of five main stages: Data Input & Frame Extraction** The workflow starts by reading video and prompt data from a Google Sheet. It extracts the last frame from the input video using Fal.ai’s FFmpeg API. AI Video Generation** The extracted frame is sent to RunPod’s Kling 2.1 AI model to generate a new video clip based on the provided prompt and desired duration. Video Merging** Once the AI-generated clip is ready, it is merged with the original video using Fal.ai’s FFmpeg merge functionality to create a seamless extended video. Storage & Publishing** The final merged video is uploaded to Google Drive and simultaneously distributed to social media platforms via: YouTube (via Upload-Post) TikTok, Instagram, Facebook, X, and YouTube (via Postiz) Progress Tracking** Throughout the process, the Google Sheet is updated with the status, video URLs, and completion markers to keep track of each step. Set Up Steps To configure this workflow, follow these steps: Prepare the Google Sheet Use the provided template or clone this sheet. Fill in the START (video URL), PROMPT (AI prompt), and DURATION (in seconds) columns. Configure Fal.ai API for Frame Extraction & Merging Create an account at fal.ai. Obtain your API key. In the nodes “Extract last frame”, “Merge Videos”, and related status nodes, set up HTTP Header Authentication with: Name: Authorization Value: Key YOUR_API_KEY Set Up RunPod API for AI Video Generation Sign up at RunPod and get your API key. In the “Generate clip” node, configure HTTP Bearer Authentication with: Value: Bearer YOUR_RUNPOD_API_KEY Configure Social Media Publishing For YouTube: Create a free account at Upload-Post and set your YOUR_USERNAME and TITLE in the “Upload to Youtube” node. For Multi-Platform Posting: Sign up at Postiz and configure your Channel_ID and TITLE in the “Upload to Social” node. Connect Google Services Set up Google Sheets and Google Drive OAuth2 credentials in their respective nodes to allow reading from and writing to the sheet and uploading videos to Drive. Execute the Workflow Once all credentials are set, trigger the workflow manually via the “When clicking ‘Execute workflow’” node. The process will run autonomously, updating the sheet and publishing the final video upon completion. 👉 Subscribe to my new YouTube channel. Here I’ll share videos and Shorts with practical tutorials and FREE templates for n8n. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by ConnectSafely
Send AI-personalized LinkedIn connection requests from Google Sheets using ConnectSafely.AI API Who's it for This workflow is built for sales professionals, recruiters, founders, and growth marketers who want to scale their LinkedIn outreach without sacrificing personalization. Perfect for anyone tired of sending generic connection requests that get ignored, or manually crafting individual messages for hundreds of prospects. If you're running ABM campaigns, building a sales pipeline, recruiting talent, or expanding your professional network, this automation handles the heavy lifting while keeping your outreach authentic and human. How it works The workflow automates personalized LinkedIn connection requests by combining Google Sheets prospect tracking with AI-powered message generation through ConnectSafely.ai's API. The process flow: Reads pending prospects from your Google Sheet Immediately marks them "IN PROGRESS" to prevent duplicate sends Fetches complete LinkedIn profile data via ConnectSafely.ai API Generates a personalized, authentic message using Google Gemini AI Sends the connection request with your custom message Updates your sheet with "DONE" status and stores the message sent Random delays between requests mimic human behavior and maintain LinkedIn compliance. Watch the complete step-by-step implementation guide: Setup steps Step 1: Prepare Your Google Sheet Structure your Google Sheet with the following columns: | Column Name | Description | Required | |------------|-------------|----------| | First Name | Contact's first name | Optional | | LinkedIn Url | LinkedIn profile URL or username | Yes | | Tagline | Contact's headline/title | Optional | | Status | Processing status (PENDING/IN PROGRESS/DONE) | Yes | | Message | Stores the AI-generated message sent | Yes | Sample Data Format: First Name: John LinkedIn Url: https://www.linkedin.com/in/johndoe Tagline: VP of Sales at TechCorp Status: PENDING Message: (left empty - will be filled by workflow) Pro Tip: Use LinkedIn Sales Navigator export or a prospecting tool to populate your sheet with qualified leads. Step 2: Configure ConnectSafely.ai API Credentials Obtain API Key Log into ConnectSafely.ai Dashboard Navigate to Settings → API Keys Generate a new API key Add Bearer Auth Credential in n8n Go to Credentials in n8n Click Add Credential → Header Auth or Bearer Auth Paste your ConnectSafely.ai API key Save the credential This credential is used by both the "Fetch LinkedIn Profile" and "Send Connection Request" HTTP nodes. Step 3: Configure Google Sheets Integration 3.1 Connect Google Sheets Account Go to Credentials → Add Credential → Google Sheets OAuth2 Follow the OAuth flow to connect your Google account Grant access to Google Sheets 3.2 Configure "Get Pending Prospect" Node Open the Get Pending Prospect node Select your Google Sheets credential Enter your Document ID (from the sheet URL) Select the Sheet Name Add a filter: Lookup Column: Status Lookup Value: PENDING Enable Return First Match Only under Options 3.3 Configure "Mark as In Progress" Node Open the Mark as In Progress node Select the same document and sheet Configure column mapping: Matching Column: row_number Status: IN PROGRESS 3.4 Configure "Mark as Complete" Node Open the Mark as Complete node Select the same document and sheet Configure column mapping: Matching Column: row_number Status: DONE Message: {{ $('Generate Personalized Message').item.json.message }} Step 4: Configure Google Gemini AI Get Gemini API Key Go to Google AI Studio Create or select a project Generate an API key Add Gemini Credential in n8n Go to Credentials → Add Credential → Google Gemini (PaLM) API Paste your API key Save the credential Connect to Google Gemini Node Open the Google Gemini node Select your Gemini credential Step 5: Customize the AI Prompt The Generate Personalized Message node contains the system prompt that controls how messages are written. Customize it for your personal brand: Open the Generate Personalized Message node Find the System Message in Options Replace the placeholder text: MY CONTEXT: [CUSTOMIZE THIS: Add your name, role, and what you're looking for in connections] With your actual information, for example: MY CONTEXT: I'm Sarah, founder of a B2B SaaS startup. I'm interested in connecting with other founders, VCs, and sales leaders to exchange ideas and explore potential partnerships. Update the sign-off instruction from "- [YOUR NAME]" to your actual name Step 6: Test the Workflow Add a test prospect to your Google Sheet with Status: PENDING Click the Manual Trigger (for testing) node Click Test Workflow Verify: Profile data is fetched correctly AI generates an appropriate message Connection request is sent Sheet updates to DONE with the message stored Customization Message Personalization Edit the system prompt in the Generate Personalized Message node to adjust: Tone**: Formal, casual, or industry-specific language Length**: Modify character limits (LinkedIn allows up to 300 characters) Focus**: Emphasize mutual connections, shared interests, or achievements Sign-off**: Change the signature format to match your brand Timing Adjustments Schedule Trigger: Currently set to run every minute. Adjust the interval in the **Run Every Minute node Random Delay: The **Random Delay (1-5 min) node adds 1-5 minutes of random wait time. Modify the formula {{ Math.floor(Math.random() * 4) + 1 }} to change the range Rate Limiting Best Practices Start with 10-20 connection requests per day Gradually increase over 2-3 weeks Never exceed 100 requests per day Consider pausing on weekends Use Cases Sales Prospecting**: Connect with decision-makers at target accounts with personalized outreach Recruiting**: Reach out to passive candidates with messages that reference their specific experience Founder Networking**: Build relationships with fellow entrepreneurs, investors, and advisors Event Follow-up**: Send personalized connection requests to conference attendees and speakers Partnership Development**: Connect with potential partners by referencing their company achievements Troubleshooting Common Issues & Solutions Issue: AI generating messages over 300 characters Solution**: Add explicit character count requirement in the system prompt; the current prompt specifies 200-250 characters Issue: "Profile not found" errors from ConnectSafely.ai Solution**: Ensure LinkedIn URLs are complete (include https://www.linkedin.com/in/) Issue: Generic-sounding AI messages Solution**: Enhance the system prompt with more specific context about your background and goals Issue: Duplicate connection requests sent Solution**: Verify "Mark as In Progress" node runs before "Fetch LinkedIn Profile"; check that row_number column exists in your sheet Issue: Google Sheets not updating Solution**: Confirm row_number column exists and the matching column is correctly configured Issue: Bearer Auth errors Solution**: Verify your ConnectSafely.ai API key is valid and has proper permissions Documentation & Resources Official Documentation ConnectSafely.ai Docs**: https://connectsafely.ai/docs API Reference**: Available in ConnectSafely.ai dashboard Google Gemini API**: https://ai.google.dev/docs Support Channels Email Support**: support@connectsafely.ai Documentation**: https://connectsafely.ai/docs Custom Workflows**: Contact us for custom automation Connect With Us Stay updated with the latest automation tips, LinkedIn strategies, and platform updates: LinkedIn**: linkedin.com/company/connectsafelyai YouTube**: youtube.com/@ConnectSafelyAI-v2x Instagram**: instagram.com/connectsafely.ai Facebook**: facebook.com/connectsafelyai X (Twitter)**: x.com/AiConnectsafely Bluesky**: connectsafelyai.bsky.social Mastodon**: mastodon.social/@connectsafely Need Custom Workflows? Looking to build sophisticated LinkedIn automation workflows tailored to your business needs? Contact our team for custom automation development, strategy consulting, and enterprise solutions. We specialize in: Multi-channel engagement workflows AI-powered personalization at scale Lead scoring and qualification automation CRM integration and data synchronization Custom reporting and analytics pipelines
by Victor Manuel Lagunas Franco
Turn any topic into a ready-to-study Anki deck. This workflow generates vocabulary flashcards with AI images and native pronunciation, then sends the .apkg file straight to your inbox. What it does You fill out a simple form (topic, languages, difficulty) GPT-4 creates vocabulary with translations, readings, and example sentences DALL-E 3 generates a unique image for each word ElevenLabs adds native pronunciation audio (word + example) Everything gets packaged into a real .apkg file The deck lands in your email, ready to import into Anki A backup copy saves to Google Sheets Why I built this I was spending hours making flashcards by hand for language learning. Finding images, recording audio, formatting everything for Anki... it took forever. This workflow does all of that in about 3 minutes. Setup (~15 min) Install npm packages: jszip and sql.js Add OpenAI credentials (for GPT-4 + DALL-E) Add ElevenLabs credentials Connect Gmail and Google Sheets via OAuth Update OPENAI_API_KEY in the DALL-E code node Update the Spreadsheet ID in the Sheets node Features 20 languages supported 7 image styles (minimal icons, kawaii, realistic, watercolor, pixel art...) 6 difficulty levels (A1 to C2) Optional reverse cards (target→native AND native→target) Works on Anki desktop and mobile
by Nguyen Thieu Toan
📖 Overview A comprehensive flight price monitoring and AI assistant solution built entirely in n8n. Combines automated price tracking with intelligent conversational flight search via Telegram. Perfect for: ✈️ Tracking flight prices to favorite destinations 💰 Getting alerts when prices drop below threshold 🗓️ Planning trips with AI-powered flight searches 🌍 Finding best deals across airlines 📱 Managing travel plans through Telegram chat Requirements: n8n v1.123.0+ or v2.0.0+ SerpAPI key (500 free/month), Google Gemini API, Telegram bot token ⚡ What's in the Box Two Powerful Workflows | Workflow | Function | Trigger | |----------|----------|---------| | 🔔 Automated Monitoring | Tracks specific routes, alerts on price drops | Schedule (every 7 days) | | 💬 AI Flight Assistant | Interactive search with natural language | Telegram messages | Key Capabilities: 🎯 Set price thresholds and get instant alerts 🤖 Ask questions in natural language (Vietnamese/English) 🧠 AI remembers conversation context 📊 Compares prices across airlines ⚡ Real-time search results from Google Flights 🎯 Key Features 📅 Scheduled Price Checks**: Automatic monitoring every 7 days (customizable) 💡 Smart AI Assistant**: Understands "find cheapest flight to Bangkok next weekend" 🔔 Instant Alerts**: Telegram notifications when prices drop 🧠 Context-Aware**: AI remembers your preferences and previous searches 🌐 Multi-Language**: Handles Vietnamese and English seamlessly 📱 Mobile-Ready**: Full control via Telegram chat interface Technical Highlights: SerpAPI integration for real-time prices, Google Gemini Flash for AI responses, session-based conversation memory, Telegram HTML formatting, automatic date calculations (+5 days for returns) 🏗️ How It Works Workflow 1: Automated Monitoring Schedule Trigger → Configure Route → Search Flights → Extract Best Price ↓ Price < Threshold? → Send Alert Workflow 2: AI Assistant Telegram Message → AI Agent → Flight Search Tools → Format Response ↓ ↓ ↓ Understand Round-trip/One-way Telegram HTML Context Auto +5 days return Send to user 🛠️ Setup Guide Step 1: API Credentials Get SerpAPI key (https://serpapi.com), Google Gemini API (https://aistudio.google.com/app/apikey), Telegram bot token (@BotFather) Step 2: Configure Monitoring Edit Fields node: Set departure/arrival codes, price threshold, Telegram ID Step 3: AI Assistant Setup Link Gemini model to AI Agent, connect flight search tools, activate memory Step 4: Activate & Test Enable workflow, send test message to bot, verify alerts 💡 Usage Examples Automated Alert: ✈️ CHEAPEST TICKET Price: 2,450,000 VND Airline: Vietjet Air Time: 06:00 → 08:00 AI Chat: "Find round-trip tickets Hanoi to Bangkok tomorrow" "What's the cheapest flight to Nha Trang next weekend?" "Search one-way Da Nang to Singapore on March 15" 👤 About the Author Nguyen Thieu Toan (Nguyễn Thiệu Toàn / Jay Nguyen) AI Automation Specialist | n8n Workflow Expert Contact: 🌐 nguyenthieutoan.com 📘 Facebook 💼 LinkedIn 📧 Email: me@nguyenthieutoan.com More Nguyen Thieu Toan's n8n Template GenStaff Company: genstaff.net 📄 License Free for commercial/personal use. Keep author attribution when sharing.** Ready to never miss a flight deal again? Import this workflow and start tracking prices today! 🚀