by Oneclick AI Squad
This automated n8n workflow checks daily travel itineraries, syncs upcoming trips to Google Calendar, and sends reminder notifications to travelers via email or SMS. Perfect for travel agencies, tour operators, and organizations managing group trips to keep travelers informed about their schedules and bookings. What This Workflow Does Automatically checks travel itineraries every day Identifies today's trips and upcoming departures Syncs trip information to Google Calendar Sends personalized reminders to assigned travelers Tracks reminder delivery status and logs activities Handles both email and SMS notification preferences Provides pre-travel checklists and booking confirmations Manages multi-day trip schedules and activities Main Components Daily Travel Check** - Triggers daily to check travel itineraries Read Travel Itinerary** - Retrieves today's trips and bookings from database/Excel Filter Today's Trips** - Identifies trips departing today and upcoming activities Has Trips Today?** - Checks if there are any trips scheduled Read Traveler Contacts** - Gets traveler contact information for assigned trips Sync to Google Calendar** - Creates/updates trip events in Google Calendar Create Traveler Reminders** - Generates personalized reminder messages with travel details Split Into Batches** - Processes reminders in manageable batches Email or SMS?** - Routes based on traveler communication preferences Prepare Email Reminders** - Creates detailed email reminder content with checklists Prepare SMS Reminders** - Creates SMS reminder content optimized for text Read Reminder Log** - Checks previous reminder history Update Reminder Log** - Records sent reminders with timestamps Save Reminder Log** - Saves updated log data for audit trail Essential Prerequisites Travel itinerary database/Excel file with trip assignments Traveler contact database with email and phone numbers Google Calendar API access and credentials SMTP server for email notifications SMS service provider (Twilio, Nexmo, etc.) for text reminders Reminder log file for tracking sent notifications Booking confirmation system (flight, hotel, transport) Required Data Files trip_itinerary.xlsx: Trip ID | Trip Name | Date | Departure Time | Duration Departure Location | Destination | Hotel | Flight Number Assigned Travelers | Status | Booking Reference | Cost traveler_contacts.xlsx: Traveler ID | First Name | Last Name | Email | Phone Preferred Contact | Assigned Trips | Passport Number | Emergency Contact reminder_log.xlsx: Log ID | Date | Traveler ID | Trip ID | Contact Method Status | Sent Time | Message Preview | Confirmation Key Features ⏰ Daily Automation: Runs automatically every day at scheduled times 📅 Calendar Sync: Syncs trips to Google Calendar for easy viewing 📧 Smart Reminders: Sends email or SMS based on traveler preference 👥 Batch Processing: Handles multiple travelers efficiently 📊 Activity Logging: Tracks all reminder activities and delivery status 🔄 Duplicate Prevention: Avoids sending multiple reminders 📱 Multi-Channel: Supports both email and SMS notifications ✈️ Travel-Specific: Includes flight numbers, locations, accommodation details 📋 Pre-Travel Checklist: Provides comprehensive packing and document reminders 🌍 Multi-Destination: Manages complex multi-stop itineraries Quick Setup Import workflow JSON into n8n Configure daily trigger schedule (recommended: 6 AM and 6 PM) Set up trip itinerary and traveler contact files Connect Google Calendar API credentials Configure SMTP server for emails Set up SMS service provider (Twilio, Nexmo, or similar) Map Excel sheet columns to workflow variables Test with sample trip data Activate workflow Parameters to Configure schedule_file_path: Path to trip itinerary file contacts_file_path: Path to traveler contacts file reminder_hours: Hours before departure to send reminder (default: 24) google_calendar_id: Google Calendar ID for syncing trips google_api_credentials: Google Calendar API credentials smtp_host: Email server settings smtp_user: Email username smtp_password: Email password sms_api_key: SMS service API key sms_phone_number: SMS sender phone number reminder_log_path: Path to reminder log file Sample Reminder Messages Email Subject: "✈️ Travel Reminder: [Trip Name] Today at [Time]" Email Body: Hello [Traveler Name], Your trip is happening today! Here are your travel details: Trip: [Trip Name] Departure: [Departure Time] From: [Departure Location] To: [Destination] Flight/Transport: [Flight Number] Hotel: [Hotel Name] Duration: [X] days Pre-Travel Checklist: ☑ Passport and travel documents ☑ Travel insurance documents ☑ Hotel confirmations ☑ Medications and toiletries ☑ Weather-appropriate clothing ☑ Phone charger and adapters ⚠️ Please arrive at the departure point 2 hours early! Have a wonderful trip! SMS: "✈️ Travel Reminder: '[Trip Name]' departs at [Time] today from [Location]. Arrive 2 hours early! Flight: [Number]" Tomorrow Evening Preview (SMS): "📅 Tomorrow: '[Trip Name]' departs at [Time] from [Location]. Pack tonight! ([X] days)" Use Cases Daily trip departure reminders for travelers Last-minute itinerary change notifications Flight cancellation and delay alerts Hotel check-in and checkout reminders Travel document expiration warnings Group tour activity scheduling Adventure/hiking trip departure alerts Business travel itinerary updates Family vacation coordination Study abroad program notifications Multi-city tour route confirmations Transport connection reminders Advanced Features Reminder Escalation 24-hour reminder: Full details with checklist 6-hour reminder: Quick confirmation with transport details 2-hour reminder: Urgent departure notification Conditional Logic Different messages for single-day vs. multi-day trips Domestic vs. international travel variations Group size-based messaging Weather-based travel advisories Integration Capabilities Connect to airline APIs for real-time flight status Link to hotel management systems for check-in info Integrate weather services for destination forecasts Sync with payment systems for booking confirmations Troubleshooting | Issue | Solution | |-------|----------| | Reminders not sending | Check email/SMS credentials and service quotas | | Calendar sync failing | Verify Google Calendar API permissions | | Duplicate reminders | Check for overlapping reminder time windows | | Missing traveler data | Verify contact file formatting and column mapping | | Batch processing slow | Reduce batch size in Split Into Batches node | Security Considerations Store API credentials in n8n environment variables Use OAuth2 for Google Calendar authentication Encrypt sensitive data in reminder logs Implement role-based access to trip data Audit log all reminder activities Comply with GDPR/privacy regulations for traveler data Performance Metrics Processing Time**: ~2-5 seconds per 50 travelers Success Rate**: >99% for delivery logging Calendar Sync**: Real-time updates Batch Limit**: 10 travelers per batch (configurable) Support & Maintenance Review reminder logs weekly for delivery issues Update traveler contacts as needed Monitor email/SMS service quotas Test workflow after system updates Archive old reminder logs monthly
by NodeAlchemy
🧾 Short Description An AI-powered customer support workflow that automatically triages, summarizes, classifies, and routes tickets to the right Slack and CRM queues. It sends personalized auto-replies, logs results to Google Sheets, and uses a DLQ for failed cases. ⚙️ How It Works Trigger: Captures messages from email or form submissions. AI Triage: Summarizes and classifies issues, scores urgency, and suggests next steps. Routing: Directs to Slack or CRM queue based on type and priority. Logging: Records summaries, urgency, and responses in Google Sheets. Auto-Reply: Sends an acknowledgment email with ticket ID and SLA timeframe. Error Handling: Failed triage or delivery attempts are logged in a DLQ. 🧩 How to Use Configure triggers (email or webhook) and connect credentials for OpenAI, Slack, Gmail, and Google Sheets. In Workflow Configuration, set: Slack Channel IDs CRM Type (HubSpot, Salesforce, or custom) Google Sheet URL SLA thresholds (e.g., 2h, 6h, 24h) Test with a sample ticket and verify routing and summaries in Slack and Sheets. 🔑 Requirements OpenAI API key (GPT-4o-mini or newer) Slack OAuth credentials Google Sheets API access Gmail/SMTP credentials CRM API (HubSpot, Salesforce, or custom endpoint) 💡 Customization Ideas Add sentiment detection for customer tone. Localize responses for multilingual support. Extend DLQ logging to Notion or Airtable. Add escalation alerts for SLA breaches.
by Marth
Okay, here are the "How It Works" and "Setup Steps" for your "Automated Social Media Content Distribution System," presented clearly in Markdown. How It Works (Workflow Stages) ⚙️ This system transforms manual, repetitive tasks into a smooth, automated content distribution pipeline: Content Submission & Trigger: You add a new row to your designated Google Sheet with all the content details (Title, URL, Short_Description, Image_URL, Hashtags, and boolean flags for which platforms to post to). The Google Sheets Trigger node immediately detects this new entry, initiating the workflow. Content Preparation: The Set node takes the raw data from your Google Sheet and formats it into a cohesive text string (social_media_text_core) that is suitable for posting across different social media platforms. Conditional Social Media Posting: A series of If nodes (Check Facebook Post, Check Twitter Post, Check LinkedIn Post) sequentially check your preferences (based on the Post_to_Facebook, Post_to_Twitter, Post_to_LinkedIn columns in your sheet). If a platform is marked TRUE, the corresponding social media node (Facebook, Twitter, LinkedIn) is activated to publish your content. If FALSE, that platform is skipped, and the workflow moves to the next check. Status Update & Notification: After attempting to post to all selected platforms, the Google Sheets (Update) node updates the Publication_Status column of your original row to "Published." This prevents re-posting and provides a clear record. Finally, the Slack (Notification) node sends an alert to your chosen Slack channel, confirming that the content has been successfully distributed. Setup Steps 🛠️ (Build It Yourself!) Follow these detailed steps to build and implement this workflow in your n8n instance: Prepare Your Google Sheet: Create a new Google Sheet (e.g., named "Social Media Posts"). Set up the following exact column headers in the first row: Title, URL, Short_Description, Image_URL, Hashtags, Post_to_Facebook, Post_to_Twitter, Post_to_LinkedIn, Publication_Status Fill in a test row with some sample data, ensuring TRUE/FALSE values for the posting flags. Gather Your API Keys & Credentials: Google Sheets Credential: You'll need an OAuth2 credential for Google Sheets in n8n to allow read/write access to your sheet. Facebook Credential: An OAuth2 credential for Facebook with permissions to post to your selected Page. Twitter Credential: A Twitter API credential (API Key, API Secret, Access Token, Access Token Secret) from your Twitter Developer App. LinkedIn Credential: An OAuth2 credential for LinkedIn with permissions to share updates to your profile or organization page. Slack Credential: A Slack API token (Bot User OAuth Token) for sending messages to your channel. Build the n8n Workflow Manually (10 Nodes): Start a new workflow in n8n. Drag and drop each of the following nodes onto the canvas and connect them as described below: Google Sheets Trigger Name: Google Sheets Trigger Parameters: Authentication: Select your Google Sheets credential. Spreadsheet ID: [Copy the ID from your Google Sheet's URL] Sheet Name: [Your Sheet Name, e.g., 'Sheet1' or 'Content'] Watch For: Rows Events: Added Connections: Output to Set Content Parameters. Set Name: Set Content Parameters Parameters: Values to Set: Add a new value: Type: String Name: social_media_text_core Value: ={{ $json.Title }} - {{ $json.Short_Description }}\nRead more: {{ $json.URL }}\n{{ $json.Hashtags }} Connections: Output to Check Facebook Post. If Name: Check Facebook Post Parameters: Value 1: ={{ $json.Post_to_Facebook }} Operation: is true Connections: True output to Post Facebook Message. False output to Check Twitter Post. Facebook Name: Post Facebook Message Parameters: Authentication: Select your Facebook credential. Page ID: [YOUR_FACEBOOK_PAGE_ID] Message: ={{ $json.social_media_text_core }} Link: ={{ $json.URL }} Picture: ={{ $json.Image_URL }} Options: Published (checked) Connections: Output to Check Twitter Post. If Name: Check Twitter Post Parameters: Value 1: ={{ $json.Post_to_Twitter }} Operation: is true Connections: True output to Create Tweet. False output to Check LinkedIn Post. Twitter Name: Create Tweet Parameters: Authentication: Select your Twitter credential. Tweet: ={{ $json.social_media_text_core }} Image URL: ={{ $json.Image_URL }} Connections: Output to Check LinkedIn Post. If Name: Check LinkedIn Post Parameters: Value 1: ={{ $json.Post_to_LinkedIn }} Operation: is true Connections: True output to Share LinkedIn Update. False output to Update Publication Status. LinkedIn Name: Share LinkedIn Update Parameters: Authentication: Select your LinkedIn credential. Resource: Share Update Type: Organization or Personal (Choose as appropriate) Organization ID: [YOUR_LINKEDIN_ORG_ID] (If Organization type selected) Content: ={{ $json.social_media_text_core }} Content URL: ={{ $json.URL }} Image URL: ={{ $json.Image_URL }} Connections: Output to Update Publication Status. Google Sheets Name: Update Publication Status Parameters: Authentication: Select your Google Sheets credential. Spreadsheet ID: [YOUR_GOOGLE_SHEET_CONTENT_ID] Sheet Name: [Your Sheet Name, e.g., 'Sheet1' or 'Content'] Operation: Update Row Key Column: URL Key Value: ={{ $json.URL }} Values: Add a new value: Column: Publication_Status Value: Published Connections: Receives connections from both Share LinkedIn Update and the False branch of Check LinkedIn Post. Slack Name: Send Slack Notification Parameters: Authentication: Select your Slack credential. Chat ID: [YOUR_SLACK_CHANNEL_ID] Text: New content "{{ $json.Title }}" successfully published to social media! 🎉 Check: {{ $json.URL }} Connections: Output to Update Publication Status. Final Steps & Activation: Test the Workflow: Before activating, manually add a new row to your Google Sheet or use n8n's "Execute Workflow" button (if available for triggers). Observe the flow through each node to ensure it behaves as expected and posts to your social media accounts. Activate Workflow: Once you are confident it's working correctly, turn the workflow "Active" in the top right corner of your n8n canvas.
by Samir Saci
Tags: Image Compression, Tinify API, TinyPNG, SEO Optimisation, E-commerce, Marketing Context Hi! I’m Samir — Supply Chain Engineer, Data Scientist based in Paris, and founder of LogiGreen. I built this workflow for an agency specialising in e-commerce to automate the daily compression of their images stored in a Google Drive folder. This is particularly useful when managing large libraries of product photos, website assets or marketing visuals that need to stay lightweight for SEO, website performance or storage optimisation. > Test this workflow with the free tier of the API! 📬 For business inquiries, you can find me on LinkedIn Who is this template for? This template is designed for: E-commerce managers** who need to keep product images optimised Marketing teams** handling large volumes of visuals Website owners** wanting automatic image compression for SEO Anyone using Google Drive** to store images that gradually become too heavy What does this workflow do? This workflow acts as an automated image compressor and reporting system using Tinify, Google Drive, and Gmail. Runs every day at 08:00 using a Schedule Trigger Fetches all images from the Google Drive Input folder Downloads each file and sends it to the Tinify API for compression Downloads the optimised image and saves it to the Compressed folder Moves the original file to the Original Images archive Logs: fileName, originalSize, compressedSize, imageId, outputUrl and processingId into a Data Table After processing, it retrieves all logs for the current batch Generates a clean HTML report summarising the compression results Sends the report via Gmail, including total space saved Here is an example from my personal folder: Here is the report generated for these images: P.S.: You can customise the report to match your company branding or visual identity. 🎥 Tutorial A complete tutorial (with explanations of every node) is available on YouTube: Next Steps Before running the workflow, follow the sticky notes and configure the following: Get your Tinify API key for the free tier here: Get your key Replace Google Drive folder IDs in: Input, Compressed, and Original Images Replace the Data Table reference with your own (fields required: fileName, originalSize, compressedSize, imageId, outputUrl, processingId) Add your Tinify API key in the HTTP Basic Auth credentials Set up your Gmail credentials and recipient email (Optional) Customise the HTML report in the Generate Report Code node (Optional) Adjust the daily schedule to your preferred time Submitted: 18 November 2025 Template designed with n8n version 1.116.2
by Jitesh Dugar
Who’s it for This template is designed for anyone who wants to use Telegram as a personal AI assistant hub. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolidates everything into one seamless AI-powered agent. What it does Jarvis listens to your Telegram messages (text or audio) and processes them with OpenAI. Based on your request, it can: ✅ Manage tasks (create, complete, or delete) 📅 Handle calendar events (schedule, reschedule, or check availability) 📧 Send, draft, or fetch emails with Gmail 👥 Retrieve Google Contacts 💵 Log and track expenses All responses are returned directly to Telegram, giving you a unified command center. How to set up Clone this template into your n8n workspace. Connect your accounts (Telegram, Gmail, Google Calendar, Contacts, etc.). Add your OpenAI API key in the Credentials section. Test by sending a Telegram message like “Create a meeting tomorrow at 3pm” or “Add expense $50 for lunch.” or "Draft a reply with a project proposal to that email from Steve" Requirements n8n instance (cloud or self-hosted) Telegram Bot API credentials Gmail, Google Calendar, and Google Contacts credentials (optional, if using those features) OpenAI API key ElevenLabs API Key (optional, if you need audio note support) How to customize Swap Gmail with another email provider by replacing the Gmail MCP node. Add additional MCP integrations (e.g., Notion, Slack, CRM tools). Adjust memory length to control how much context Jarvis remembers. With this template, you can transform Telegram into your all-in-one AI assistant, simplifying workflows and saving hours every week.
by Onur
🔍 Extract Competitor SERP Rankings from Google Search to Sheets with Scrape.do This template requires a self-hosted n8n instance to run. A complete n8n automation that extracts competitor data from Google search results for specific keywords and target countries using Scrape.do SERP API, and saves structured results into Google Sheets for SEO, competitive analysis, and market research. 📋 Overview This workflow provides a lightweight competitor analysis solution that identifies ranking websites for chosen keywords across different countries. Ideal for SEO specialists, content strategists, and digital marketers who need structured SERP insights without manual effort. Who is this for? SEO professionals tracking keyword competitors Digital marketers conducting market analysis Content strategists planning based on SERP insights Business analysts researching competitor positioning Agencies automating SEO reporting What problem does this workflow solve? Eliminates manual SERP scraping Processes multiple keywords across countries Extracts structured data (position, title, URL, description) Automates saving results into Google Sheets Ensures repeatable & consistent methodology ⚙️ What this workflow does Manual Trigger → Starts the workflow manually Get Keywords from Sheet → Reads keywords + target countries from a Google Sheet URL Encode Keywords → Converts keywords into URL-safe format Process Keywords in Batches → Handles multiple keywords sequentially to avoid rate limits Fetch Google Search Results → Calls Scrape.do SERP API to retrieve raw HTML of Google SERPs Extract Competitor Data from HTML → Parses HTML into structured competitor data (top 10 results) Append Results to Sheet → Writes structured SERP results into a Google Sheet 📊 Output Data Points | Field | Description | Example | |--------------------|------------------------------------------|-------------------------------------------| | Keyword | Original search term | digital marketing services | | Target Country | 2-letter ISO code of target region | US | | position | Ranking position in search results | 1 | | websiteTitle | Page title from SERP result | Digital Marketing Software & Tools | | websiteUrl | Extracted website URL | https://www.hubspot.com/marketing | | websiteDescription | Snippet/description from search results | Grow your business with HubSpot’s tools… | ⚙️ Setup Prerequisites n8n instance (self-hosted) Google account with Sheets access Scrape.do* account with *SERP API token** Google Sheet Structure This workflow uses one Google Sheet with two tabs: Input Tab: "Keywords" | Column | Type | Description | Example | |----------|------|-------------|---------| | Keyword | Text | Search query | digital marketing | | Target Country | Text | 2-letter ISO code | US | Output Tab: "Results" | Column | Type | Description | Example | |--------------------|-------|-------------|---------| | Keyword | Text | Original search term | digital marketing | | position | Number| SERP ranking | 1 | | websiteTitle | Text | Title of the page | Digital Marketing Software & Tools | | websiteUrl | URL | Website/page URL | https://www.hubspot.com/marketing | | websiteDescription | Text | Snippet text | Grow your business with HubSpot’s tools | 🛠 Step-by-Step Setup Import Workflow: Copy the JSON → n8n → Workflows → + Add → Import from JSON Configure **Scrape.do API**: Endpoint: https://api.scrape.do/ Parameter: token=YOUR_SCRAPEDO_TOKEN Add render=true for full HTML rendering Configure Google Sheets: Create a sheet with two tabs: Keywords (input), Results (output) Set up Google Sheets OAuth2 credentials in n8n Replace placeholders: YOUR_GOOGLE_SHEET_ID and YOUR_GOOGLE_SHEETS_CREDENTIAL_ID Run & Test: Add test data in Keywords tab Execute workflow → Check results in Results tab 🧰 How to Customize Add more fields**: Extend HTML parsing logic in the “Extract Competitor Data” node to capture extra data (e.g., domain, sitelinks). Filtering**: Exclude domains or results with custom rules. Batch Size**: Adjust “Process Keywords in Batches” for speed vs. rate-limits. Rate Limiting: Insert a **Wait node (e.g., 10–30 seconds) if API rate limits apply. Multi-Sheet Output**: Save per-country or per-keyword results into separate tabs. 📊 Use Cases SEO Competitor Analysis**: Identify top-ranking sites for target keywords Market Research**: See how SERPs differ by region Content Strategy**: Analyze titles & descriptions of competitor pages Agency Reporting**: Automate competitor SERP snapshots for clients 📈 Performance & Limits Single Keyword: ~10–20 seconds (depends on **Scrape.do response) Batch of 10**: 3–5 minutes typical Large Sets (50+)**: 20–40 minutes depending on API credits & batching API Calls: 1 **Scrape.do request per keyword Reliability**: 95%+ extraction success, 98%+ data accuracy 🧩 Troubleshooting API error** → Check YOUR_SCRAPEDO_TOKEN and API credits No keywords loaded** → Verify Google Sheet ID & tab name = Keywords Permission denied** → Re-authenticate Google Sheets OAuth2 in n8n Empty results** → Check parsing logic and verify search term validity Workflow stops early** → Ensure batching loop (SplitInBatches) is properly connected 🤝 Support & Community n8n Forum: https://community.n8n.io n8n Docs: https://docs.n8n.io Scrape.do Dashboard: https://dashboard.scrape.do 🎯 Final Notes This workflow provides a repeatable foundation for extracting competitor SERP rankings with Scrape.do and saving them to Google Sheets. You can extend it with filtering, richer parsing, or integration with reporting dashboards to create a fully automated SEO intelligence pipeline.
by Fabian Herhold
Who's it for Sales teams, BDRs, account managers, and customer success professionals who want to show up prepared for every meeting. Perfect for anyone using Calendly who wants to automate prospect research and never walk into a call blind again. Watch the full tutorial here: What it does This workflow automatically researches your meeting attendees the moment they book through Calendly. It combines multiple AI agents to gather comprehensive intelligence: Company Research**: Uses Perplexity AI to validate company details, recent news, funding, leadership changes, and business signals LinkedIn Analysis**: Leverages RapidAPI to analyze the person's profile, recent posts, comments, and engagement patterns from the last 60-90 days Signal Detection**: Identifies hiring signals, growth indicators, and potential risks with confidence scoring Meeting Prep**: Synthesizes everything into personalized talking points, conversation starters, and strategic recommendations The final research brief gets delivered directly to your Slack, saving 30-45 minutes of manual research per meeting. How it works Someone books a meeting via your Calendly (must include LinkedIn URL in booking form) Main AI Agent extracts company domain from email and coordinates three specialist research agents Company Agent researches business intel via Perplexity Person Agent analyzes LinkedIn activity using 4 different RapidAPI endpoints Signal Agent identifies business opportunities and risks Comprehensive meeting brief gets sent to your Slack channel Requirements API Credentials needed: Calendly API (for webhook trigger) OpenAI API key (GPT-4 recommended for orchestration) Perplexity API key (for web research) RapidAPI subscription (for LinkedIn data endpoints) Slack bot token (for output delivery) Important: Your Calendly booking form must include a LinkedIn URL field to get optimal results. How to set up Configure Calendly: Add the Calendly trigger node with your API credentials Update Slack destination: Modify the final Slack node with your user ID or channel Add API keys: Configure all the API credentials in their respective nodes Test the workflow: Book a test meeting through Calendly to verify the complete flow Customize prompts: Adjust the AI agent prompts based on your specific industry or use case The workflow uses structured JSON output with confidence scoring and source citation for reliable, actionable intelligence. How to customize the workflow Change output destination**: Replace Slack with email, Teams, or CRM integration Modify research depth**: Adjust the AI prompts to focus on specific industries or company types Add more signals**: Extend the Signal Research Agent to detect additional business indicators Integrate with CRM**: Add nodes to automatically update contact records in your sales system Schedule follow-ups**: Connect to calendar tools to automatically schedule research updates The modular design makes it easy to adapt for different sales processes and research requirements.
by Jimmy Gay
Automate your B2B prospecting by finding local businesses and sending AI-personalized outreach emails to qualified contacts. What This Workflow Does This workflow acts as a powerful AI Sales Assistant, automating your entire B2B lead generation process for local businesses. It saves you countless hours of manual research and outreach by intelligently finding prospects, enriching their data, and drafting personalized emails tailored to their specific business. Stop prospecting manually and start scaling your outreach efforts effectively. How It Works The process is designed to be both smart and efficient: Find Businesses: It starts by searching for local businesses based on your criteria (e.g., "engineering in London"). Qualify & Enrich: It filters out businesses without a website. For the valid ones, it scrapes the website's title and description to understand what they do. Identify Contacts: Using Hunter.io, it finds professional email contacts associated with the company and verifies their validity to ensure high-quality leads. Generate AI-Personalized Emails: For each valid contact, it uses OpenAI to write a unique, short, and professional outreach email. The AI uses the scraped website information to create a personalized hook, showing you've done your research. Send & Organize: The final email is sent automatically via your Gmail account. If a business has no website, a follow-up task is created in your Google Tasks for manual review. Key Benefits Save Time: Automate a time-consuming prospecting process from start to finish. Increase Reply Rates: Engage prospects with personalized emails, not generic templates. Scale Your Outreach: Generate and contact dozens of qualified leads effortlessly. Stay Organized: Never lose a lead, thanks to the integrated task management for manual follow-ups.
by Davide
This workflow automates analyzing Gmail threads and drafting AI-powered replies with the new model Anthropic Sonnet 4.5. This workflow automates the process of analyzing incoming emails and generating context-aware draft replies by examining the entire email thread. Key Advantages ✅ Time-Saving – Automates repetitive email replies, reducing manual workload. ✅ Context-Aware Responses – Replies are generated using the entire email thread, not just the latest message. ✅ Smart Filtering – The classifier prevents unnecessary drafts for spam or promotional emails. ✅ Human-in-the-Loop – Drafts are created instead of being sent immediately, allowing manual review and corrections. ✅ Scalable & Flexible – Can be adapted to different accounts, reply styles, or workflows. ✅ Seamless Gmail Integration – Directly interacts with Gmail threads and drafts via OAuth. How it Works This workflow automates the process of analyzing incoming emails and generating context-aware draft replies by examining the entire email thread. Trigger & Initial Filtering: The workflow is automatically triggered every minute by the Gmail Trigger node, which detects new emails. For each new email, it immediately performs a crucial first step: it uses an AI Email Classifier to analyze the email snippet. The AI determines if the email is a legitimate message that warrants a reply (categorized as "ok") or if it's spam, a newsletter, or an advertisement. This prevents the system from generating replies for unwanted emails. Context Aggregation: If an email is classified as "ok," the workflow fetches the entire conversation thread from Gmail using the threadId. A Code Node then processes all the messages in the thread, structuring them into a consistent format that the AI can easily understand. AI-Powered Draft Generation: The structured conversation history is passed to the Replying email Agent with Sonnet 4.5. This agent, powered by a language model, analyzes the entire thread to understand the context and the latest inquiry. It then drafts a relevant and coherent HTML email reply. The system prompt instructs the AI not to invent information and to use placeholders for any missing details. Draft Creation: The final step takes the AI-generated reply and the original email's metadata (subject, recipient, threadId) and uses them to create a new draft email in Gmail. This draft is automatically placed in the correct email thread, ready for the user to review and send. Set up Steps To implement this automated email reply system, you need to configure the following: Configure Gmail & OpenAI Credentials: Ensure the following credentials are set up in your n8n instance: Gmail OAuth2 Credentials: The workflow uses the same Gmail account for the trigger, fetching threads, and creating drafts. Configure this in the "Gmail Trigger," "Get a thread," and "Create a draft" nodes. OpenAI API Credentials: Required for both the "Email Classifier". Provide your API key in the respective OpenAI Chat Model nodes. Anthropic API Credentials: Required for the main "Replying email Agent." Provide your API key in the respective Antrhopic Chat Model nodes. Review AI Classification & Prompting: Email Filtering: Check the categories in the Email Classifier node. The current setup marks only non-advertising, non-newsletter emails as "ok." You can modify these categories to fit your specific needs and reduce false positives. Reply Agent Instructions: Review the system message in the Replying email Agent. You can customize the AI's persona, tone, and instructions (e.g., making it more formal, or instructing it to sign with a specific name) to better align with your communication style. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Oneclick AI Squad
This automated n8n workflow streamlines real estate marketing by combining voice campaigns and email outreach with AI-powered lead generation. The system monitors real estate offers, generates personalized promotional content using AI, creates targeted email campaigns, and manages lead follow-up through automated voice calls and CRM integration. Good to Know Integrates voice campaign automation with email marketing for multi-channel outreach Uses Llama 3.2 AI model for generating personalized promotional content Automatically syncs lead data with CRM systems for comprehensive tracking Includes delay mechanisms to ensure proper data synchronization Supports both email and voice-based lead nurturing strategies How It Works Watch Real Estate Offer** - Monitors incoming real estate listings and opportunities to trigger marketing campaigns Get Client Contact List** - Fetches targeted client information and contact details from CRM or database systems Generate Promo Content with Llama** - Uses AI to create personalized marketing content based on property details and client preferences Trigger Voice Campaign via VAPI** - Initiates automated voice calls to prospects using personalized messaging Create Personalized Email Template** - Generates custom HTML email templates with property information and promotional content Email Promo to Clients (Gmail)** - Sends targeted email campaigns to segmented client lists through Gmail integration Delay to Sync Data** - Ensures proper data synchronization between systems before processing leads Receive Lead Data from VAPI** - Captures lead information and responses from voice campaign interactions Save Lead to CRM Sheet** - Logs all lead data and campaign results to spreadsheet for tracking and analysis Send Acknowledgment to VAPI** - Confirms successful lead processing and maintains system synchronization How to Use Import workflow into n8n Configure VAPI credentials for voice campaign automation Set up Gmail API for email marketing integration Connect CRM or Google Sheets for lead management Configure Llama 3.2 AI model access Test with sample real estate data Monitor campaign performance and lead conversion rates Requirements VAPI account for voice campaigns Gmail API credentials Llama 3.2 AI model access Google Sheets or CRM integration Real estate data source Customizing This Workflow Adjust AI prompts for different property types or market segments Modify email templates for various campaign styles Configure voice campaign scripts based on target audience Set up custom lead scoring and qualification criteria Integrate additional CRM systems or marketing platforms
by Ritesh
Automated Incident and Request Management in ServiceNow Who’s it for This workflow is designed for IT teams, service desk agents, and operations managers who use ServiceNow. It reduces manual effort by automatically classifying chat messages as Incidents or Requests, creating/updating them in ServiceNow, and summarizing ticket updates. What it does Receives incoming chat messages. Classifies the message as one of: Incident (something broken, unavailable, or a complaint) Request (access, provisioning, product/order related) Follow-ups (incident or request update checks) Update action (user wants to add info to an existing ticket) Everything else (knowledge search / general query). Creates Incidents in ServiceNow via the ServiceNow node. Creates Requests in ServiceNow using the Service Catalog API. Updates existing Incidents with new work notes when the user provides an update. Pulls existing incident/request work notes for summaries. Optionally uses SerpAPI for general queries (if enabled). Returns a concise summary back to the user through the webhook. Requirements ServiceNow account** with API access (Basic Auth) OpenAI API key** (used by the classifier and summarizer) SerpAPI key* *(optional – for general web lookups) Credentials needed You will need to set up the following credentials in n8n: ServiceNow Basic Auth (username, password, instance URL). OpenAI API (API key). SerpAPI (optional – only if you want web search enabled). How to set up Import the workflow JSON into your n8n instance. Create the credentials mentioned above and assign them to the corresponding nodes: Create an incident → ServiceNow Basic Auth HTTP Request1 (for Service Catalog requests) → ServiceNow Basic Auth OpenAI Chat Model / OpenAI Chat Model1 / OpenAI Chat Model2 / OpenAI Chat Model3 → OpenAI API SerpAPI node (optional) → SerpAPI key Adjust the ServiceNow instance URL in the HTTP Request node to match your environment. Deploy the workflow. Send a test chat message to trigger the workflow. How to customize Update the classification rules in the Text Classifier node if your organization uses different definitions for incidents vs. requests. Edit the summary prompt in the Summarization Chain to include or exclude specific fields. Add additional notification nodes (Slack, Teams, or Email) if you want updates pushed to other channels. Notes & Limitations This workflow creates general requests in ServiceNow using the catalog API. For production, update the Service Catalog item ID to match your environment. “Everything else” category uses SerpAPI. If not configured, those queries will not return results. This workflow requires OpenAI GPT-4.1 mini (or another supported model) for classification and summarization.
by IranServer.com
Automate IP geolocation and HTTP port scanning with Google Sheets trigger This n8n template automatically enriches IP addresses with geolocation data and performs HTTP port scanning when new IPs are added to a Google Sheets document. Perfect for network monitoring, security research, or maintaining an IP intelligence database. Who's it for Network administrators, security researchers, and IT professionals who need to: Track IP geolocation information automatically Monitor HTTP service availability across multiple ports Maintain centralized IP intelligence in spreadsheets Automate repetitive network reconnaissance tasks How it works The workflow triggers whenever a new row containing an IP address is added to your Google Sheet. It then: Fetches geolocation data using the ip-api.com service to get country, city, coordinates, ISP, and organization information Updates the spreadsheet with the geolocation details Scans common HTTP ports (80, 443, 8080, 8000, 3000) to check service availability Records port status back to the same spreadsheet row, showing which services are accessible The workflow handles both successful connections and various error conditions, providing a comprehensive view of each IP's network profile. Requirements Google Sheets API access** - for reading triggers and updating data Google Sheets document** with at least an "IP" column header How to set up Create a Google Sheet with columns: IP, Country, City, Lat, Lon, ISP, Org, Port_80, Port_443, Port_8000, Port_8080, Port_3000 Configure Google Sheets credentials in both the trigger and update nodes Update the document ID in the Google Sheets Trigger and both Update nodes to point to your spreadsheet Test the workflow by adding an IP address to your sheet and verifying the automation runs How to customize the workflow Modify port list**: Edit the "Edit Fields" node to scan different ports by changing the ports array Add more geolocation fields**: The ip-api.com response includes additional fields like timezone, zip code, and AS number Change trigger frequency**: Adjust the polling interval in the Google Sheets Trigger for faster or slower monitoring Add notifications**: Insert Slack, email, or webhook nodes to alert when specific conditions are detected Filter results**: Add IF nodes to process only certain IP ranges or geolocation criteria