by Aaron Smusz
This workflow automatically manages Acrobat Sign signatures, respond with "intent" to Acrobat-Sign webhooks. Prerequisites Adobe Acrobat Sign and Sign webhook Basic knowledge of JavaScript Nodes Webhook nodes trigger the workflow on new sign intents on a document Respond to Webhook node sets the response headers. Function node processes data returned by the previous node. Set node sets the required values.
by Jorge MartΓnez
Lead Enrichment & Email Discovery from Google Sheets What this workflow does This template automates the enrichment of business leads from a Google Sheet by: Triggering when a row is activated Searching for company information with Serper.dev Generating and validating potential contact pages Scraping company pages with ScrapingBee Extracting emails and updating the sheet Marking rows as finished Prerequisites Google Sheet with columns: business type, city, state, activate Copy the ready-to-use template:** Sheet Template Google Sheets API credentials (from Google Cloud) Serper.dev API key (free tier available) ScrapingBee API key (free tier available) Inputs Google Sheet row:** Must include business type, city, state, activate Set Information Node:** country, country_code, language, result_count (can also be provided via columns in the sheet) Outputs Google Sheet update:** Company names, URLs, found email addresses (comma-separated if multiple), and status updates (Running, Missing information, Finished) Configuration Required Connect Google Sheets node with your Google Cloud credentials Add your Serper.dev API key to the HTTP Request node Add your ScrapingBee API key to the scraping node Adjust search and filtering options as needed How to customize the workflow Send country, country_code, and result_count from the sheet:** Add these as columns in your sheet and update the workflow to read their values dynamically, making your search fully configurable per row. Add more blacklist terms:** Update the code node with additional company names or keywords you want to exclude from the search results. Extract more contact details:** Modify the email extraction code to find other contact info (like phone numbers or social profiles) if needed.
by MANISH KUMAR
Automated YouTube Shorts Creator with yt-dlp & FFmpeg Description How It Works β’ Downloads videos/music from YouTube using yt-dlp β’ Merges assets with dynamic text overlays β’ Automatically uploads to YouTube as Shorts (9:16 format) β’ Tracks everything in Google Sheets Set Up Steps (~10 minutes) Install yt-dlp and FFmpeg in your n8n environment Connect Google Sheets (for video/music pools) Set up YouTube OAuth credentials Configure text overlay font (NotoSerif included) Key Features Dual Pipeline System Video Downloader (MP4) + Music Downloader (MP3 with thumbnails) Random pairing for endless combinations Professional Text Overlays Dynamic line wrapping for perfect 9:16 formatting Customizable fonts/colors YouTube API Integration Automatic upload with metadata (titles/descriptions) Privacy/license controls Google Sheets Tracking Logs download paths, YouTube URLs, timestamps Prevents duplicate processing
by Shelly-Ann Davy
AI Contact Enrichment π Template Description Overview Automatically enhance and enrich contact data using AI to fill in missing information, generate insights, and create detailed buyer personas. Supports multiple AI providers (OpenAI, Anthropic, etc.) with automatic logging to Supabase. Description This workflow transforms incomplete contact records into rich, actionable profiles. By leveraging AI, it can infer job roles, company information, likely pain points, communication preferences, and buying motivations from minimal input data. Perfect for sales and marketing teams looking to improve data quality and personalize outreach. Key Benefits: Smart Data Completion**: Fill in missing contact fields using AI inference Buyer Persona Generation**: Create detailed profiles from basic information Universal AI Support**: Works with OpenAI, Anthropic Claude, or custom providers CRM Enhancement**: Automatically enrich contacts as they enter your system Lead Qualification**: Assess lead quality and fit based on enriched data Personalization Engine**: Generate insights for tailored outreach Data Quality**: Maintain clean, complete contact records Use Cases: Sales prospecting and lead enrichment Marketing persona development CRM data cleansing and completion Account-based marketing (ABM) research Lead scoring and qualification Personalized email campaign preparation Contact segmentation and targeting βοΈ Setup Instructions Prerequisites n8n instance (cloud or self-hosted) AI Provider account (OpenAI, Anthropic, or custom) Supabase account with database access Step 1: Configure Environment Variables Add these to your n8n environment settings: AI_PROVIDER=openai # or 'anthropic', 'custom' AI_API_KEY=your_api_key_here AI_MODEL=gpt-3.5-turbo # or 'gpt-4', 'claude-3-sonnet-20240229' AI_ENDPOINT= # Only for custom providers Recommended Models: Cost-effective**: gpt-3.5-turbo (fast, affordable, good for basic enrichment) High-quality**: gpt-4 or claude-3-sonnet-20240229 (better inference, deeper insights) Premium**: claude-3-opus-20240229 (best for complex persona generation) How to set environment variables: n8n Cloud**: Go to Settings β Environment Variables Self-hosted**: Add to your .env file or docker-compose configuration Step 2: Set Up Supabase Database Create the logging table in your Supabase database: CREATE TABLE workflow_logs ( id BIGSERIAL PRIMARY KEY, workflow_name TEXT NOT NULL, data JSONB NOT NULL, ai_response JSONB NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); CREATE INDEX idx_workflow_logs_created_at ON workflow_logs(created_at); CREATE INDEX idx_workflow_logs_workflow_name ON workflow_logs(workflow_name); -- Optional: Create a view for enriched contacts CREATE VIEW enriched_contacts AS SELECT id, data->>'email' as email, data->>'name' as name, data->>'company' as company, ai_response as enrichment_data, created_at FROM workflow_logs WHERE workflow_name = 'AI Contact Enrichment' ORDER BY created_at DESC; To run this SQL: Open your Supabase project dashboard Go to the SQL Editor Paste the SQL above and click "Run" Step 3: Configure Supabase Credentials in n8n Go to Settings β Credentials Click Add Credential β Supabase API Enter your Supabase URL and API key (found in Project Settings β API) Name it Supabase API Click Save Step 4: Activate the Webhook Import this workflow into n8n Click the Activate toggle in the top-right corner Click on the "Webhook Trigger" node Copy the Production URL (this is your webhook endpoint) Save this URL for integration with your applications Step 5: Test the Workflow Send a test POST request to the webhook: curl -X POST https://your-n8n-instance.com/webhook/contact-enrichment \ -H "Content-Type: application/json" \ -d '{ "email": "john.doe@acmecorp.com", "name": "John Doe", "company": "Acme Corporation", "linkedin_url": "https://linkedin.com/in/johndoe" }' Successful Response: { "success": true, "workflow": "AI Contact Enrichment", "timestamp": "2025-01-14T12:00:00.000Z" } π₯ Expected Payload Format The webhook accepts JSON with basic contact information: Minimal Input { "email": "string (required or name required)", "name": "string (required or email required)" } Recommended Input { "email": "string", "name": "string", "company": "string", "job_title": "string", "linkedin_url": "string", "phone": "string", "location": "string", "website": "string" } Complete Input Example { "email": "sarah.chen@techstartup.io", "name": "Sarah Chen", "company": "TechStartup Inc.", "job_title": "VP of Marketing", "linkedin_url": "https://linkedin.com/in/sarahchen", "phone": "+1-555-0123", "location": "San Francisco, CA", "website": "https://techstartup.io", "industry": "B2B SaaS", "company_size": "50-200 employees", "notes": "Met at SaaS conference 2024" } Field Guidelines: At minimum, provide either email or name More input fields = better AI enrichment quality Include linkedin_url for best results company helps with firmographic enrichment Any additional context improves accuracy π Workflow Flow Webhook Trigger: Receives basic contact information from your application, form, or CRM Process Data: Adds unique ID and timestamp to the incoming data Prepare AI Request: Configures AI provider settings from environment variables Call AI API: Sends contact data to AI with enrichment prompt Save to Supabase: Archives original data and enrichment results Format Response: Returns success confirmation π― Customization Tips Enhance AI Prompts for Better Enrichment Modify the "Prepare AI Request" node to customize enrichment: // Enhanced prompt for contact enrichment const systemPrompt = `You are an expert sales intelligence analyst. Analyze the provided contact information and generate a comprehensive enrichment including: INFERRED DETAILS: Fill in missing information based on available data Full job title and seniority level Department and reporting structure Years of experience (estimated) Professional background COMPANY INSIGHTS: If company name provided Industry and sub-industry Company size and revenue (estimated) Key products/services Recent news or developments BUYER PERSONA: Create a detailed profile Primary responsibilities Likely pain points and challenges Key priorities and goals Decision-making authority Budget influence level ENGAGEMENT STRATEGY: Provide outreach recommendations Best communication channels Optimal outreach timing Key talking points Personalization suggestions Content interests LEAD SCORE: Rate 1-10 based on: Fit for product/service (specify your ICP) Seniority and decision power Company size and maturity Engagement potential Return as structured JSON with clear sections.`; const userMessage = Contact Information:\n${JSON.stringify($json.data, null, 2)}; const aiConfig = { provider: $env.AI_PROVIDER || 'openai', apiKey: $env.AI_API_KEY, model: $env.AI_MODEL || 'gpt-3.5-turbo', endpoint: $env.AI_ENDPOINT, messages: [ { role: 'system', content: systemPrompt }, { role: 'user', content: userMessage } ] }; return { json: { aiConfig, data: $json } }; Add External Data Sources Enhance enrichment with third-party APIs: After "Process Data" node, add: Clearbit/Hunter.io Node: Get verified company data LinkedIn API: Pull professional information Company Database: Query internal customer data Web Scraping: Extract data from company websites Then merge all data before AI enrichment for best results Connect to Your CRM Auto-update contacts after enrichment: Salesforce Integration: // Add after "Call AI API" node // Update Salesforce contact with enriched data const enrichedData = JSON.parse($json.ai_response); return { json: { contactId: $json.data.salesforce_id, updates: { Description: enrichedData.buyer_persona, Custom_Score__c: enrichedData.lead_score, Pain_Points__c: enrichedData.pain_points } } }; HubSpot Integration: Add HubSpot node to update contact properties Map enriched fields to custom HubSpot properties Pipedrive Integration: Use Pipedrive node to update person records Add custom fields for AI insights Implement Lead Scoring Add scoring logic after enrichment: // Calculate lead score based on enrichment const enrichment = JSON.parse($json.ai_response); let score = 0; // Job title scoring if (enrichment.seniority === 'C-Level') score += 30; else if (enrichment.seniority === 'VP/Director') score += 20; else if (enrichment.seniority === 'Manager') score += 10; // Company size scoring if (enrichment.company_size === 'Enterprise') score += 25; else if (enrichment.company_size === 'Mid-Market') score += 15; // Decision authority scoring if (enrichment.decision_authority === 'High') score += 25; else if (enrichment.decision_authority === 'Medium') score += 15; // Budget influence if (enrichment.budget_influence === 'Direct') score += 20; return { json: { ...enrichment, lead_score: score } }; Add Compliance Checks Insert before AI processing: // Check for opt-out or compliance flags const email = $json.email.toLowerCase(); // Check against suppression list const suppressedDomains = ['competitor.com', 'spam.com']; const domain = email.split('@')[1]; if (suppressedDomains.includes(domain)) { throw new Error('Contact on suppression list'); } // Verify email format const emailRegex = /^+@+\.+$/; if (!emailRegex.test(email)) { throw new Error('Invalid email format'); } return { json: $json }; Batch Enrichment Process multiple contacts: Add Spreadsheet File trigger instead of webhook Add Split In Batches node (process 10-20 at a time) Run enrichment for each contact Combine results and export to CSV π οΈ Troubleshooting Common Issues Issue: "Enrichment is too generic" Solution**: Provide more input data (company, job title, LinkedIn) Use GPT-4 or Claude models for better inference Enhance the system prompt with specific instructions Issue: "AI_API_KEY is undefined" Solution**: Ensure environment variables are set correctly Verify variable names match exactly (case-sensitive) Issue: "Enrichment contradicts actual data" Solution**: AI makes inferences - always validate critical information Add validation step to check enriched data against known facts Use external APIs for verification Issue: "Too slow for real-time use" Solution**: Implement queue system for async processing Use faster models (gpt-3.5-turbo) for speed Process in batches during off-peak hours Issue: "Supabase credentials not found" Solution**: Check credential name matches exactly: "Supabase API" Verify Supabase URL and API key are correct Debugging Tips Test with known contacts first to validate accuracy Compare AI enrichment against actual data Check execution logs for API errors Start with minimal prompt, then enhance gradually Use "Execute Node" to test individual steps π Analyzing Enriched Data Query and analyze your enriched contacts: -- Get all enriched contacts SELECT * FROM enriched_contacts ORDER BY created_at DESC; -- Find high-value leads (assuming scoring implemented) SELECT email, name, company, ai_response->>'lead_score' as score FROM enriched_contacts WHERE (ai_response->>'lead_score')::int > 70 ORDER BY (ai_response->>'lead_score')::int DESC; -- Analyze enrichment by company SELECT data->>'company' as company, COUNT(*) as contact_count, AVG((ai_response->>'lead_score')::int) as avg_score FROM workflow_logs WHERE workflow_name = 'AI Contact Enrichment' AND ai_response->>'lead_score' IS NOT NULL GROUP BY data->>'company' ORDER BY contact_count DESC; -- Find contacts needing follow-up SELECT email, name, ai_response->>'engagement_strategy' as strategy, created_at FROM enriched_contacts WHERE created_at > NOW() - INTERVAL '7 days' ORDER BY created_at DESC; Export Enriched Data -- Export to CSV COPY ( SELECT data->>'email' as email, data->>'name' as name, data->>'company' as company, ai_response->>'job_title' as enriched_title, ai_response->>'seniority' as seniority, ai_response->>'lead_score' as score FROM workflow_logs WHERE workflow_name = 'AI Contact Enrichment' ) TO '/tmp/enriched_contacts.csv' WITH CSV HEADER; π Integration Ideas Form Integration Automatically enrich new leads from forms: Typeform**: Trigger on form submission Google Forms**: Use Google Sheets trigger Calendly**: Enrich after meeting booking Webflow Forms**: Webhook trigger from form CRM Integration Real-time enrichment as contacts enter CRM: Salesforce**: Trigger on new lead/contact creation HubSpot**: Enrich on form submission or import Pipedrive**: Auto-enrich new persons Close**: Webhook on lead creation Email Tools Enhance cold outreach campaigns: Instantly.ai**: Enrich before campaign launch Lemlist**: Generate personalization variables Apollo.io**: Supplement with AI insights Mailshake**: Enrich prospect lists Marketing Automation Power ABM and segmentation: Marketo**: Enrich leads for scoring Pardot**: Enhance prospect profiles ActiveCampaign**: Personalization data Klaviyo**: E-commerce customer insights Slack Integration Team notifications and collaboration: Send enrichment summaries to sales channel Notify reps of high-value leads Share persona insights with marketing Alert on key account contacts π Security & Compliance Best Practices Data Protection Encrypt Sensitive Data: Use environment variables for all credentials Access Control: Limit webhook access with authentication Data Retention: Set automatic deletion policies in Supabase Audit Logging: Track all enrichment activities Privacy Compliance GDPR Compliance: Get consent before enriching personal data Allow contacts to request data deletion Document legal basis for processing CCPA Compliance: Honor do-not-sell requests Data Minimization: Only enrich necessary fields Right to Access: Allow contacts to view enriched data AI Ethics Bias Awareness: Review AI inferences for bias Accuracy Validation: Verify critical information Transparency: Disclose use of AI enrichment Human Oversight: Review before critical decisions π‘ Best Practices Input Data Quality Always include email or full name** as anchor point Add LinkedIn URLs** for 50% better accuracy Provide company name** for firmographic insights Include any known details** - more data = better results Prompt Engineering Be specific** about your ideal customer profile (ICP) Request structured output** (JSON format) Define scoring criteria** that match your business Ask for actionable insights** not just descriptions Post-Enrichment Workflow Always validate** critical information before use Review AI inferences** for accuracy and bias Update CRM promptly** to maintain data freshness Track enrichment ROI** (conversion rates, time saved) Performance Optimization Batch process** during off-peak hours Use appropriate models** (gpt-3.5 for speed, gpt-4 for quality) Cache common enrichments** to reduce API costs Set rate limits** to avoid API throttling π·οΈ Tags sales-automation, lead-enrichment, ai-automation, crm-integration, data-enrichment, contact-intelligence, buyer-personas, lead-scoring, webhook, supabase, openai, anthropic, b2b-sales π License This workflow template is provided as-is for use with n8n. π€ Support For questions or issues: n8n Community Forum: https://community.n8n.io n8n Documentation: https://docs.n8n.io π Example Output Input: { "email": "mike.johnson@cloudtech.com", "name": "Mike Johnson", "company": "CloudTech Solutions", "job_title": "Director of IT" } AI-Generated Enrichment: { "full_title": "Director of Information Technology", "seniority": "Director", "department": "Technology/IT", "experience_years": "10-15", "company_insights": { "industry": "Cloud Computing", "size": "Mid-Market (100-500)", "revenue_estimate": "$10M-$50M" }, "buyer_persona": { "responsibilities": ["Infrastructure management", "Vendor selection", "Security oversight"], "pain_points": ["Legacy system migration", "Cost optimization", "Security compliance"], "priorities": ["Scalability", "Cost reduction", "Team efficiency"] }, "engagement_strategy": { "best_channels": ["Email", "LinkedIn"], "timing": "Tuesday-Thursday, 9-11 AM", "talking_points": ["ROI and cost savings", "Security features", "Ease of implementation"], "personalization": "Reference cloud migration challenges" }, "lead_score": 75 } π Version History v1.0.0** (2025-01-14): Initial release with universal AI provider support
by Alex Kim
Overview This n8n workflow automates the creation of 9:16 aspect ratio images optimized for short-form video content and thumbnails. It integrates multiple tools to retrieve content, generate scripts, and create AI-generated imagery. Key Features Trigger Workflow Manually The workflow starts when triggered manually in n8n. Retrieve Brand Guidelines Fetch brand elements like style, tone, and guidelines from Airtable. SEO Keywords and Blog Post Retrieval Retrieves blog posts and associated SEO keywords from Airtable to form the basis of image content. Content Preparation Uses GPT-4 to prepare a 4-scene script and thumbnail prompts for short-form videos. AI Image Generation Uses Leonardo.ai API to generate: Thumbnail Images Scene-specific Images (9:16 Aspect Ratio) Airtable Asset Management Generated assets (images) are saved back into Airtable with metadata like URLs and file sizes. Tools and Integrations n8n**: Workflow automation platform. OpenAI**: Generates scripts and prompts (GPT-4O-MINI). Leonardo.ai**: AI tool for improving prompts and generating high-quality images. Airtable**: Used as a data source for brand guidelines, blog posts, and to store generated assets. Workflow Steps Manual Trigger Initiate the workflow. Retrieve Brand and SEO Guidelines Fetch essential brand elements like tone, style, and keywords. Filter and Fetch Blog Content Search for blog posts relevant to selected SEO keywords. Script Preparation Use GPT-4 to generate a script with image prompts for scenes and thumbnails. Image Generation Call Leonardo.ai to create: Scene Images in 9:16 Aspect Ratio. A Thumbnail Image with an improved prompt. Store Assets Save generated assets (images) to Airtable for future use. Workflow Structure Nodes Breakdown: Manual Trigger**: Start the workflow. Get Brand Guidelines**: Pull brand-related information (style, tagline, tone, etc.) from Airtable. Set Guidelines**: Prepare fetched data. Get SEO Keywords**: Retrieve keywords to filter relevant content. Keyword Filter*: Filter results for specified keywords (e.g., *"AI Automation"). Script Prep**: Generate 4-scene scripts and prompts with GPT-4. Leo - Improve Prompt**: Improve image prompts for clarity and detail. Leo - Generate Image**: Create AI-generated images for scenes and thumbnails. Wait Nodes**: Ensures Leonardo image generation is complete. Add Asset Info**: Store the generated images back into Airtable with metadata. API Credentials Required Ensure the following credentials are configured in n8n: OpenAI API Key Leonardo.ai API Key Airtable API Token Output Generated Images**: High-quality AI-generated images with a 9:16 aspect ratio. Saved Metadata**: Asset details (URLs, sizes, types) stored in Airtable. Usage Import this workflow into n8n. Set up your Airtable API, Leonardo.ai API, and OpenAI API credentials. Run the workflow manually. Monitor image generation and check the Airtable output for results. Tags OpenAI** RunwayML** Leonardo** Airtable** Video Automation** Author AlexK1919 AI-Native Workflow Architect More Workflow Templates YouTube Channel Connect with Alex
by Mark Shcherbakov
Video Guide I prepared a detailed guide that shows the entire process of building an AI agent that integrates with Airtable data in n8n. This template covers everything from data preparation to advanced configurations. Youtube Link Who is this for? This workflow is designed for developers, data analysts, and business owners who want to create an AI-powered conversational agent integrated with Airtable datasets. It is particularly useful for users looking to enhance data interaction through chat interfaces. What problem does this workflow solve? Engaging with data stored in Airtable often requires manual navigation and time-consuming searches. This workflow allows users to interact conversationally with their datasets, retrieving essential information quickly while minimizing the need for complex queries. What this workflow does This workflow enables an AI agent to facilitate chat interactions over Airtable data. The agent can: Retrieve order records, product details, and other relevant data. Execute mathematical functions to analyze data such as calculating averages and totals. Optionally generate maps for geographic data visualization. Dynamic Data Retrieval: The agent uses user prompts to dynamically query the dataset. Memory Management: It retains context during conversations, allowing users to engage in a more natural dialogue. Search and Filter Capabilities: Users can perform tailored searches with specific parameters or filters to refine their results. Set up steps Separate workflows: Create additional workflow and move there Workflow 2. Replace credentials: Replace connections and credentials in all nodes. Start chat: Ask questions and don't forget to mention required base name.
by Amjid Ali
Template Guide for Employee Shortlisting AI Agent Automation Overview This template automates the process of shortlisting job applicants using ERPNext, n8n, and AI-powered decision-making tools like Google Gemini and OpenAI. It reduces manual effort, ensures fast evaluations, and provides justifiable decisions about applicants. This is ideal for businesses aiming to streamline their recruitment process while maintaining accuracy and professionalism. YouTube Tutorial:** For a full walkthrough of this template, visit: Integrate AI in ERPNext: Automate Recruitment Job Applicant Shortlisting in Seconds! What Does This Template Do? Webhook Integration with ERPNext: Automatically triggers the workflow when a job application is created in ERPNext. Resume Validation: Ensures resumes are attached and correctly processes various file formats like PDF and DOC. AI-Powered Evaluation: Uses AI to compare resumes against job descriptions and provides a: Fit Level (Strong, Moderate, or Weak) Score (0β100) Justification for the decision. Automated Decision Making: Based on AI-generated scores: Candidates with a score of 80 or higher are Accepted. Candidates below 80 are Rejected. Applications missing required fields or attachments are put On Hold. ERPNext Integration: Updates applicant records in ERPNext, including custom fields such as justification, fit level, and scores. Notifications: Notifies candidates via email, WhatsApp, or SMS about their application status. Step-by-Step Guide Step 1: Set Up ERPNext Webhook Go to Webhooks in ERPNext. Create a webhook for the Job Applicant DocType. Set the trigger to Insert. Pin and test the webhook to ensure proper data flow. Step 2: Import the Template into n8n Open your n8n instance. Import the provided workflow template. Check all nodes for proper configuration. Step 3: Configure Credentials Add your ERPNext API credentials to the ERPNext nodes. Add credentials for AI services like OpenAI or Google Gemini. Configure additional services like WhatsApp or email if you plan to use them for notifications. Step 4: Test Resume Validation Test how the workflow handles different file types (e.g., PDF, DOC, JPG). Ensure resumes without the proper format or attachment are flagged and rejected. Step 5: AI Evaluation The AI model (Google Gemini or OpenAI) will evaluate resumes against job descriptions. Customize the AI prompt to suit your job evaluation needs. The output will include a Fit Level, Score, Rating, and Justification. Step 6: Decision Automation The workflow automatically categorizes applicants: Accepted for scores β₯ 80. Rejected for scores < 80. On Hold if essential fields or attachments are missing. Step 7: Update ERPNext Records The workflow updates the Job Applicant record in ERPNext with: Status (Accepted, Rejected, On Hold) AI-generated Fit Level, Score, Rating, and Justification. Step 8: Notify Candidates Configure notification nodes (email, WhatsApp, or SMS). Inform candidates about their application status and include feedback if required. How It Works Trigger: The workflow starts when a job application is submitted in ERPNext. Validation: Checks if the resume is attached and in the correct format. AI Evaluation: Compares the resume with the job description and generates a decision. ERPNext Update: Updates the applicant's record with the decision and justification. Notification: Sends a personalized notification to the candidate. Dos and Donβts Dos: Customize Prompts:** Tailor the AI prompt to match your specific job evaluation requirements. Test the Workflow:** Run sample data to ensure the process works as intended. Secure Your Credentials:** Keep your API credentials safe and do not share them publicly. Optimize for Different Formats:** Ensure the workflow can handle all types of resumes you expect. Donβts: Avoid Manual Intervention:** Let the workflow handle most of the tasks to ensure efficiency. Do Not Skip Testing:** Always test the workflow with various scenarios to avoid errors. Do Not Overlook Notifications:** Ensure candidates are notified promptly to maintain professionalism. Customization Options Add logic for more file types (e.g., scanned images using OCR). Enhance the AI prompts to analyze more complex resume data. Integrate additional tools like Slack or Trello for recruitment tracking. Resources GET n8n Now N8N COURSE n8n Book YouTube Tutorial:** For a full walkthrough of this template, visit: SyncBricks YouTube Channel Detailed Guides and Courses:** Learn more about ERPNext and AI-driven automation at: SyncBricks LMS Support If you encounter issues or want to explore more possibilities with AI-driven automation, feel free to reach out: Email:** amjid@amjidali.com Website:** ERPNext and Other Courses LinkedIn:** Amjid Ali Let me know if you'd like further details or modifications to the guide!
by Zacharia Kimotho
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. This workflow is a gem for all PPC managers and experts out there looking to keep track of competitor ads and the campaigns they are running and generate an email report How does it work We use Bright Data API to scrap Google for a given keyword that can trigger an ad. We then extract and analyse different components of the ads to get insights and data rekevant for our processes Setting it up Make a copy of this workflow to your canvas Make a copy of this google sheet Add high intent commercial keywords to your google sheet. These are relevant to trigger ads Set your Bright Data API credentials and update the zone to your respective zone as set on your Bright Data account We filter only if ads are found and if true extract the top and botton ads This routes the results via different paths Store raw Ad results Process the Ads to get new insights and data Map the raw data to match your account You can adjust the prompt to provide any data as needed Connect your emailing platform or tool and update the to email Setting up Bright Data serp API and Zone On Bright Data, go to the Proxies & Scraping tab Under SERP API, create a new zone Give it a suitable name and description. The default is serp_api Add this to your account If you have any questions, feel free to reach out via linkedin
by Dataki
Check Legal Regulations: This workflow involves scraping, so ensure you comply with the legal regulations in your country before getting started. Better safe than sorry! π Purpose This workflow enables automated and AI-driven topic monitoring, delivering concise article summaries directly to a Slack channel in a structured and easy-to-read format. It allows users to stay informed on specific topics of interest effortlessly, without manually checking multiple sources, ensuring a time-efficient and focused monitoring experience. To get started, copy the Google Sheets template required for this workflow from here. π― Target Audience This workflow is designed for: Industry professionals** looking to track key developments in their field. Research teams** who need up-to-date insights on specific topics. Companies** aiming to keep their teams informed with relevant content. βοΈ How It Works Trigger: A Scheduler initiates the workflow at regular intervals (default: every hour). Data Retrieval: RSS feeds are fetched using the RSS Read node. Previously monitored articles are checked in Google Sheets to avoid duplicates. Content Processing: The article relevance is assessed using OpenAI (GPT-4o-mini). Relevant articles are scraped using Jina AI to extract content. Summaries are generated and formatted for Slack. Output: Summaries are posted to the specified Slack channel. Article metadata is stored in Google Sheets for tracking. π οΈ Key APIs and Nodes Used Scheduler Node:** Triggers the workflow periodically. RSS Read:** Fetches the latest articles from defined RSS feeds. Google Sheets:** Stores monitored articles and manages feed URLs. OpenAI API (GPT-4o-mini):** Classifies article relevance and generates summaries. Jina AI API:** Extracts the full content of relevant articles. Slack API:** Posts formatted messages to Slack channels. This workflow provides an efficient and intelligent way to stay informed about your topics of interest, directly within Slack.
by Matthieu
π§ AI-Powered B2B Prospecting Automation This automation is a complete end-to-end system designed to find, qualify, and contact B2B leads β fully automated and powered by AI. 1. Lead Discovery & Scoring Searches for target companies on LinkedIn via Ghost Genius API, using filters like location, and company size. Enriches each company with details like website, description, and follower count. Uses OpenAI to score each company (0 to 10) based on fit with your product. Filters out irrelevant companies and stores only qualified ones (score β₯ 7) into a Google Sheet CRM. 2. Decision-Maker Enrichment & Outreach Finds key decision-makers at each qualified company via LinkedIn Sales Navigator. Retrieves their job titles, descriptions, and LinkedIn summaries. Generates a fully personalized 3-email cold outreach sequence using OpenAI. Retrieves verified email addresses using a waterfall enrichment system. Stores all contact data and email content in your CRM and updates lead status. Key Features Fully automated**: runs daily with no manual input required. Smart targeting**: all filters and parameters managed in Google Sheets. AI-enhanced**: leverages OpenAI for scoring, personalization, and copywriting. Compliant & safe**: uses Ghost Genius API (cookieless scraping). Ideal for B2B startups, agencies, or growth teams looking to scale outbound without manual effort.
by Cognitive Creators
Microsoft Outlook AI Email Assistant Prerequisites 1. Microsoft 365 Login Credentials Provide your Office 365 credentials to connect Outlook. 2. Monday.com Generate an API token and have a board with your contact details. 3. Airtable Obtain an API key (or personal access token) and set up a base to store: Contacts (populated by the Monday.com sync). Rules & Categories (used by the AI Email Assistant). Use this Airtable base as the template: Airtable AI Email Assistant Template. Define your own rules, categories, and delete rules. 4. OpenAI API Key Sign up for OpenAI if you donβt already have an account. Generate a new API key at OpenAI API Keys. What the System Does 1. Daily Contact Sync (Monday.com β Airtable) Runs once a day to pull the latest contacts from Monday.com and store or update them in Airtable. 2. AI Email Categorisation & Prioritisation Fetches Outlook emails with filters. Cleans and processes email content. Matches emails with known contacts from Airtable. Uses an AI agent to classify, categorise, and prioritise emails. Updates Outlook categories and importance based on AI results. Runs in parallel with Airtable rules & categories retrieval for real-time decision-making. Workflow 1: Daily Contact Sync (Monday.com β Airtable) Purpose Keep Airtableβs Contacts table up to date by pulling new or updated contact data from Monday.com daily. Steps Schedule Trigger Runs at a set interval (daily) to initiate contact syncing. Monday.com: Get Contacts Reads the specified board/columns from Monday.com where you store contact details. Airtable - Contacts Upserts (adds or updates) the fetched Monday.com data into Airtableβs Contacts table. Ensures daily updates reflect changes from Monday.com. Result A consolidated contact list in Airtable, ready for AI email categorisation. Workflow 2: Categorise & Prioritise Outlook Emails Purpose Fetches Outlook emails, cleans and processes their content, matches senders with known contacts, and uses AI to categorise and prioritise them. Steps 1. Get Outlook Emails with Filters Trigger**: Either scheduled (Check Mail Schedule Trigger) or manual (Test Workflow). Outlook Filters**: Not flagged (flag/flagStatus == 'notFlagged'). Not categorised (not categories/any()). πΉ Result: A batch of fresh, unprocessed emails ready for processing. 2. Sanitise Email Convert to Markdown: Strips **HTML tags and normalises formatting. Email Messages Processing: Allows manual removal of **signatures, disclaimers, or extra content. πΉ Result: A clean, AI-friendly email for categorisation. 3. Match Contact Loop Over Emails**: Iterates over each email. Contact Lookup: Checks Airtableβs **Contacts table (updated daily). Merge Data: Enriches emails with known **client, supplier, or internal team info. πΉ Result: Enhanced email context for AI processing. 4. AI Agent to Categorise & Prioritise Retrieve Rules & Categories** Reads Rules, Categories, and Delete Rules from Airtable in parallel. AI: Analyse Email (Tools Agent)** Uses email text, sender info, and rules to build a structured AI prompt. OpenAI Chat Model** Processes the AI prompt and outputs: Category Subcategory (optional) Priority level Short rationale Structured Output Parser** Ensures AI response is valid JSON format. πΉ Result: Each email is labelled, categorised, and prioritised with AI-driven logic. 5. Set Outlook Category & Importance Set Category: Updates Outlook with the assigned **category. Check Priority Conditions** (If Node): If Action Required or from a VIP, mark as High Priority. Set Importance: Updates the email's **importance flag in Outlook. πΉ Result: Outlook is updated with categories & importance based on AI recommendations. Parallel Processing: Retrieve Rules & Categories Runs alongside the email categorisation workflow. Ensures Airtable-based rules are available before AI processing. Steps Airtable: Get Rules & Categories Fetches Rules, Categories, and Delete Rules from Airtable. Delete Rules (Optional) If a delete rule matches, the email is removed. πΉ Result: A dynamic, updatable rule system ensuring emails are handled properly. Final Outcome Daily Contact Sync** keeps contacts up to date. AI-driven email workflow** ensures smart categorisation. Outlook automatically updated** with AI-generated categories and importance. This automated system saves time, ensures efficient inbox management, and allows for customisable rules via Airtable.
by Jay Emp0
AI Email Classifier π¬ Automate Email Classification, Prioritization, and Spam Detection Across Multiple Accounts Created by: Jayant Kumar (@jharilela) π Powered by: Gmail, Google Sheets, OpenAI, Discord, and n8n Sample Discord labelling as Spam Sample Discord labelling as Legit Why I Built This Focus is Expensive. Managing multiple email inboxes every dayβpersonal, business, partnerships, invoices. Logging into each, skimming through noise, flagging important stuff, and deleting spam started eating up hours of my week. I needed a system that helped me focus only on what matters without building an entire helpdesk dashboard. I already live in Discord. It made sense to push my emails thereβbut in a fun, digestible, and actionable way. I built AI Email Classifier π¬ to summarize emails, detect spam, assign priority, and make everything skimmable with pictures and links. And it works across multiple Gmail accounts. Key Features β Works with multiple Gmail inboxes π§ Uses AI to classify spam vs legit π― Assigns priority levels: High / Medium / Low π Appends everything to a central Google Sheet πΈ Sends visual summaries to Discord (with image + action links) π Powered by open-source: n8n_discord_trigger_bot How It Works Hereβs the high-level flow: New Email in any inbox triggers the worfklow to start The AI Agent reads the raw content, subject, sender, Gmail labels. It calls a Google Sheet that acts as our feedback memory: Emails and domains manually marked as spam or legit. AI classifies the incoming email using logic: Spam if sender or domain is blacklisted, or content matches patterns like: "promotions, phishing, ads, mass emails, cold offers" Priority is assigned by: High: deadlines, legal, payments, clients, CEO emails Medium: team updates, meetings, project notifications Low: newsletters, FYIs, casual threads It produces a compact JSON output with: Sender, recipient, subject, summary, priority, priority color, image URL, action URL The message is formatted visually and posted back to Discord as an embed with: Summary text Actionable links Priority color code Thumbnail (if any) Google Sheet Training Table The system uses this sheet as live memory to label spam and legit senders: ββββββββββββββββββββββ¦βββββββββββββββ¦ββββββββββββββββββ¦βββββββββββββββ¦βββββββββββββββββ β Email β Domain β Classification β Labelled By β Labelled Date β β βββββββββββββββββββββ¬βββββββββββββββ¬ββββββββββββββββββ¬βββββββββββββββ¬βββββββββββββββββ£ β offers@badsite.com β badsite.com β Spam β Jayant β 08/07/2025 β β ceo@trusted.com β trusted.com β Legit β Jayant β 08/07/2025 β ββββββββββββββββββββββ©βββββββββββββββ©ββββββββββββββββββ©βββββββββββββββ©βββββββββββββββββ This allows manual control to teach the AI which senders to trust or ignore. Every time I see something marked wrong, I just reply in Discord with "spam" or "legit" on that message thread. That triggers an update to the Sheet via AI parsing and n8n. Why Manual Input Still Matters AI isnβt perfect. Some spam emails are cleverly disguised. And some senders are contextually important only to you. Thatβs why I kept a simple feedback loop: You tell the bot "spam" or "legit" on any Discord email message. Or anything along that line The AI agent detects the intent and updates the Sheet. The AI improves its judgment next time as it now remembers your preference Why Discord? Because Slack charges per seat and email feels lonely. I run most of my operations inside Discord community chats, client rooms, bot alerts. Instead of making a full email UI, I turned each email into a Discord card with a thumbnail, summary, and quick actions. Itβs fun. Itβs visual. It doesnβt feel like work. Email becomes more like a game feed. Tech Stack Gmail β Discord via Gmail trigger node Discord β n8n Webhook via n8n_discord_trigger_bot OpenAI GPT-4o (classification + summarization) Google Sheets (feedback memory) Discord Node (embed output with JSON + images) Try It Yourself Clone the workflow JSON, set up your Gmail integrations, and install the n8n Discord Trigger Bot. I made this workaround because i couldnt find a discord trigger on n8n. Now I just scroll my Discord DMs and know what to reply to, and ignore everything else.Dont let Email spam your brain. Let your AI do the thinking.