by Eduard
⚡ UPDATE on May 2025 – added section with all n8n instance webhooks Using n8n a lot? Soar above the limitations of the default n8n dashboard! This template gives you an overview of your workflows, nodes, and tags – all in one place. 💪 Built using XML stylesheets and the Bootstrap 5 library, this workflow is self-contained and does not depend on any third-party software. 🙌 It generates a comprehensive overview JSON that can be easily integrated with other BI tools for further analysis and visualization. 📊 Reach out to Eduard if you need help adapting this workflow to your specific use-case! 🚀 Benefits: Workflow Summary** 📈: Instant overview of your workflows, active counts, and triggers. Left-Side Panel** 📋: Quick access to all your workflows, nodes, and tags for seamless navigation. Workflow Details** 🔬: Deep dive into each workflow's nodes, timestamps, and tags. Node Analysis** 🧩: Identify the most frequently used nodes across your workflows. Tag Organization** 🗂️: Workflows are grouped according to their tags. Webhooks** ⚡: List of all webhook endpoints with the links to workflows. Visually Stunning** 🎨: Clean, intuitive, and easy-to-navigate dashboard design. XML & Bootstrap 5** 🛠️: Built using XML stylesheets and Bootstrap 5, ensuring a self-contained and responsive dashboard. No Dependencies** 🔒: The workflow does not rely on any third-party software. Bootstrap 5 files are loaded via CDN but can be delivered directly from your server. ⚠️ Important note for cloud users Since the cloud version doesn't support environmental variables, please make the following changes: get-nodes-via-jmespath node. Update the instance_url variable: enter your n8n URL instead of {{$env["N8N_PROTOCOL"]}}://{{$env["N8N_HOST"]}} Create HTML node. Please provide the n8n instance URL instead of {{ $env.WEBHOOK_URL }} 🌟Example: Follow me on LinkedIn for more tips on AI automation and n8n workflows!
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 omid dev
How It Works: This n8n template automates the process of tracking design changes in Figma and updating relevant Jira issues. The template is triggered when a new version is created in Figma via a custom plugin. Once the version is committed, the plugin sends the design details to an n8n workflow using a webhook. The workflow then performs the following actions: Fetches the Jira issue based on the provided issue link from Figma. Adds the design changes as a comment to the Jira issue. Updates the status of the Jira issue based on the provided task status (e.g., "In Progress", "Done"). This streamlines the workflow, reducing the need for manual updates and ensuring that both the design team and developers have the latest design changes and task statuses in sync. How to Use It: Set up the Figma Plugin: Install the Figma Commit Plugin from GitHub. In the plugin, fill out the version name, design link, Jira issue link, and the task status. Commit the changes in Figma, which will trigger the webhook. Set Up the n8n Workflow: Import this template into your n8n instance. Connect the Figma Trigger node to capture version updates from Figma. Configure the Jira nodes to retrieve the issue and update the status/comment based on the data sent from the plugin. Automate: Once the version is committed in Figma, the workflow will automatically update the Jira issue and keep both your Figma design and Jira tasks in sync! By integrating Figma, Jira, and n8n through this template, you’ll eliminate manual steps, making collaboration between design and development teams more efficient.
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 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 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.
by Iniyavan JC
This workflow automates the process of creating and posting Instagram Reels, combining Google Drive, AI, Airtable, and the Facebook Graph API. It supports two content creation paths: Scheduled Random Video Selection & Posting Selects a random video from a Google Drive folder named "Random video mover" based on a schedule. Moves the video to a processing folder for posting. Manual Upload Trigger & Posting Watches a specific Google Drive folder ("n8n reels automation on instagram"). Triggers the workflow when a new video is uploaded. Core Process (applies to both paths) Download Video from Google Drive. AI Caption Generation with Google Gemini, using the file name as context. The AI creates concise captions with hashtags and a call-to-action. Airtable Logging to store video name, caption, and URL. Instagram Reels Posting via the Facebook Graph API. Recent Change In early 2025, Meta tightened its requirements for video_url and image_url parameters. URLs must now be direct, public links to the raw media file with no redirects or authentication. Google Drive links no longer work. Our Fix Store the binary file locally on the n8n server at /tmp/video.mp4. Serve the file through a public n8n webhook with the correct Content-Type. Use the webhook URL in the Facebook Graph API request. Upload succeeds without the “Media download has failed” error. Cleanup Deletes the temporary file after posting. Benefits Saves time with full automation. Improves engagement through AI-generated captions. Keeps content organized in Airtable. Works with Meta’s updated API requirements by hosting files directly from the n8n server.
by Davide
This workflow is designed to manage the assignment and validation of unique QR code coupons within a lead generation system with SuiteCRM. How it Works This workflow automates the process of assigning unique QR code coupons to leads generated through a form submission, ensuring no duplicates are created, and validating the usage of coupons. Here's how it operates: Webhook Trigger: The workflow starts with a Webhook node that listens for incoming requests containing QR code data. A Set coupon node extracts the QR code value from the request parameters. Validation of QR Code: An If node checks if the QR code exists in the incoming data. If it does, the process proceeds; otherwise, a "No coupon" response is sent back. Coupon Lookup: The Get Lead node queries a Google Sheets document to check if the QR code corresponds to an existing lead. A subsequent Not used? node verifies whether the coupon has already been used by checking the "USED COUPON?" field in the sheet. Lead Duplication Check: When a new lead submits the form (On form submission), the Duplicate Lead? node checks if the email already exists in the system to prevent duplicates. Coupon Assignment: If the lead is not a duplicate, the Get Coupon node retrieves an available unassigned coupon from the Google Sheets document. The Token SuiteCRM node generates an access token for SuiteCRM, and the Create Lead SuiteCRM node creates a new lead entry in SuiteCRM, associating it with the assigned coupon. QR Code Generation and Email Notification: The Get QR node generates a QR code image URL for the assigned coupon. The Send Email node sends an email to the lead with the QR code attached. Response Handling: Depending on the validation results, the workflow responds with appropriate messages: "Coupon OK" if the coupon is valid and unused. "Coupon KO" if the coupon has already been used. "Coupon not valid" if the QR code does not exist. Set Up Steps To replicate this workflow in your own n8n environment, follow these steps: Configuration: Set up an n8n instance either locally or via cloud services. Import the provided JSON configuration file into your workspace. Configure all required credentials, such as: Google Sheets OAuth2 API for accessing the spreadsheet. SuiteCRM API credentials (e.g., SUITECRMURL, CLIENTID, CLIENTSECRET). SMTP credentials for sending emails. Customization: Adjust the Webhook URL to match your deployment environment. Modify the Google Sheets document ID and sheet name in nodes like Duplicate Lead?, Get Coupon, Update Sheet, and Update coupon used. Update the SuiteCRM API endpoint and credentials in nodes like Token SuiteCRM and Create Lead SuiteCRM. Customize the email template in the Send Email node to match your branding and messaging requirements. Ensure the QR code generation URL in the Get QR node points to a valid QR code generator service. By following these steps, you can effectively implement and customize this workflow to manage lead generation and coupon assignments in your organization.
by Angel Menendez
CallForge - AI-Powered Sales Call Data Processor Automate sales call analysis and store structured insights in Notion with AI-powered intelligence. Who is This For? This workflow is ideal for: ✅ Sales teams looking to automate call insight processing. ✅ Sales operations managers managing AI-driven call analysis. ✅ Revenue teams using Gong, Fireflies.ai, Otter.ai, or similar transcription tools. It streamlines sales call intelligence, ensuring that insights such as competitor mentions, objections, and customer pain points are efficiently categorized and stored in Notion for easy access. 🔍 What Problem Does This Workflow Solve? Manually reviewing and documenting sales call takeaways is time-consuming and error-prone. With CallForge, you can: ✔ Identify competitors mentioned in sales calls. ✔ Capture objections and customer pain points for follow-up. ✔ Track sales call outcomes and categorize insights automatically. ✔ Store structured sales intelligence in Notion for future reference. ✔ Improve sales strategy with AI-driven, automated call analysis. 📌 Key Features & Workflow Steps 🎙️ AI-Powered Call Data Processing This workflow processes AI-generated sales call insights and structures them in Notion databases: Triggers automatically when AI call analysis data is received. Extracts competitor mentions from the call transcript and logs them in Notion. Identifies and categorizes sales objections for better follow-ups. Processes integration mentions, capturing tools or platforms referenced in the call. Extracts customer use cases, categorizing pain points and feature requests. Aggregates all extracted insights and updates relevant Notion databases. 📊 Notion Database Integration Competitors → Logs mentioned competitors for sales intelligence. Objections → Tracks and categorizes common objections from prospects. Integrations → Captures third-party tools & platforms discussed in calls. Use Cases → Stores customer challenges & product feature requests. 🛠 How to Set Up This Workflow 1. Prepare Your AI Call Analysis Data Ensure AI-generated sales call data is passed into the workflow. Compatible with Gong, Fireflies.ai, Otter.ai, and other AI transcription tools. 2. Connect Your Notion Database Set up Notion databases for: 🔹 Competitors (tracks competing products) 🔹 Objections (logs customer objections & concerns) 🔹 Integrations (captures mentioned platforms & tools) 🔹 Use Cases (categorizes customer pain points & feature requests) 3. Configure n8n API Integrations Connect your Notion API key** in n8n under “Notion API Credentials.” Set up webhook triggers** to receive data from your AI transcription tool. Test the workflow** using a sample AI-generated call transcript. CallForge - 01 - Filter Gong Calls Synced to Salesforce by Opportunity Stage CallForge - 02 - Prep Gong Calls with Sheets & Notion for AI Summarization CallForge - 03 - Gong Transcript Processor and Salesforce Enricher CallForge - 04 - AI Workflow for Gong.io Sales Calls CallForge - 05 - Gong.io Call Analysis with Azure AI & CRM Sync CallForge - 06 - Automate Sales Insights with Gong.io, Notion & AI CallForge - 07 - AI Marketing Data Processing with Gong & Notion CallForge - 08 - AI Product Insights from Sales Calls with Notion 🔧 How to Customize This Workflow 💡 Modify Notion Data Structure – Adjust fields to match your company’s CRM setup. 💡 Enhance AI Data Processing – Align fields with different AI transcription providers. 💡 Expand with CRM Integration – Sync insights with HubSpot, Salesforce, or Pipedrive. 💡 Add Notifications – Send alerts via Slack, email, or webhook when key competitor mentions or objections are detected. ⚙️ Key Nodes Used in This Workflow 🔹 If Nodes – Checks if AI-generated data includes competitors, integrations, objections, or use cases. 🔹 Notion Nodes – Creates or updates entries in Notion databases. 🔹 Split Out & Aggregate Nodes – Processes multiple insights and consolidates AI outputs. 🔹 Wait Nodes – Ensures smooth sequencing of API calls and database updates. 🔹 HTTP Request Node – Sends AI-extracted insights to Notion for structured storage. 🚀 Why Use This Workflow? ✔ Eliminates manual data entry and speeds up sales intelligence processing. ✔ Ensures structured and categorized sales insights for decision-making. ✔ Improves team collaboration with AI-powered competitor tracking & objections logging. ✔ Seamlessly integrates with Notion to centralize and manage sales call insights. ✔ Scalable for teams using n8n Cloud or self-hosted deployments. This workflow empowers sales teams with automated AI insights, streamlining sales strategy and follow-ups with minimal effort. 🚀
by Luís Philipe Trindade
What's up Guys. I'm Luís 🙋🏻♂️ Let me make one thing clear up front: this isn't just another WhatsApp summary workflow. It’s a fully structured automation built for people who actually need to stay informed without wasting time and with total control over what gets summarized. What this workflow does: Receives messages via webhook from Evolution API Checks if the message is from a group or an individual Routes messages by type: text or audio (with automatic transcription using OpenAI) Stores everything in a Google Sheet organized by group, sender, timestamp and message sended Creates a Control Panel with a checkbox for each group. So, you decide which groups should receive summaries (this is the main differentiator about this workflow) Collects all messages from yesterday, groups them by chat, and sends them to GPT to generate a summary Sends the summary in a clean, formatted in Whatsapp every morning (fully automated). 🧩 How the flow is structured This workflow is strategically divided into two independent parts to ensure clarity, organization, and easy scalability: Part 1 – Message Capture and Storage Triggered via webhook, this part: Receives messages from Evolution API Checks if the message is from a group Distinguishes between text and audio (with automatic transcription) Stores the message in Google Sheets -Checks if the group exists in the control tab If it doesn't, it creates a new row with a checkbox so you can enable/disable summaries for that group Part 2 – Summary Generation and Delivery Scheduled to run daily at 08:00 AM or choose your preferred trigger time Pulls all messages from the previous day Groups them by chat and checks if that group is enabled for summaries Sends the messages to OpenAI to generate a digest Delivers the summary directly into the WhatsApp group using Evolution API This structure makes the flow easier to manage, customize, and scale — plug in other tools without breaking the logic. Tools used: ✅ Evolution API (WhatsApp connection API non-official) ✅ Google Sheets (template provided) ✅ OpenAI (for transcription and summarization) How to set it up: Set up the webhook on Evolution and connect it to n8n Use the included Google Sheets template. Click here to make your copy 👉🏻 [[Template] Log - Group Summary](https://docs.google.com/spreadsheets/d/1ymkWd0thcFRTtWdNrenUg1k8lAmn19ebznSHtvKHaoE/edit?usp=sharing) Connect your Google Sheets credentials Add your OpenAI API key (Optional) Customize the prompt and choose your preferred trigger time Why this workflow stands out: 📊 *Real control panel: enable or disable summaries per group with a single click* 🔍 Fully traceable and modular logic with clear branching and error handling ⚙️ Built for scale. Ideal for teams, communities, or educational groups 📬 Automatically delivers structured daily insights straight to your Whatsapp Groups ✅ Works on both n8n Cloud and Self-hosted 🔐 100% secure. No hacks. No shortcuts. Want to adapt this flow for your business, team, or community? 📩 Custom requests: WhatsApp me at +5534992569346 Português <> PT-BR Fala, galera! Eu sou o Luís 🙋🏻♂️ Eu já vou deixar uma coisa clara: esse não é só mais um fluxo de resumo do WhatsApp. É uma automação completa, estruturada do início ao fim, feita pra quem realmente precisa se manter informado sem perder tempo e com controle total sobre o que vai ou não pro resumo. O que esse fluxo faz: Recebe mensagens via webhook da Evolution API Verifica se a mensagem é de grupo ou contato individual Separa as mensagens por tipo: texto ou áudio (com transcrição automática via OpenAI) Armazena tudo no Google Sheets, organizado por grupo, autor, horário e conteúdo Cria um Painel de Controle com checkbox para cada grupo — você decide quais grupos vão ou não receber o resumo (esse é o grande diferencial do fluxo) Coleta todas as mensagens do dia anterior, agrupa por grupo e envia para a IA gerar o resumo Envia o resumo formatado direto no grupo do WhatsApp todas as manhãs (100% automático) 🧩 Como o fluxo está estruturado Esse fluxo foi estrategicamente dividido em duas partes independentes, garantindo clareza, organização e escalabilidade: Parte 1 – Captura e Armazenamento das Mensagens Ativado por webhook: Recebe mensagens da Evolution API Verifica se é de grupo Separa entre texto e áudio (com transcrição automática) Armazena a mensagem no Google Sheets Verifica se o grupo já existe na aba de controle Caso não exista, cria uma nova linha com checkbox para ativar ou não os resumos daquele grupo Parte 2 – Geração e Envio do Resumo Agendado para rodar todo dia às 08:00 (ou no horário que você quiser) Coleta todas as mensagens do dia anterior Agrupa por grupo e valida se o grupo está habilitado no painel de controle Envia as mensagens para o OpenAI gerar o resumo Entrega o resumo diretamente no grupo via Evolution API Essa estrutura torna o fluxo muito mais fácil de manter, adaptar e escalar — pode integrar novas ferramentas sem bagunçar nada Ferramentas utilizadas: ✅ Evolution API (conexão com o WhatsApp, API não oficial) ✅ Google Sheets (modelo incluso) ✅ OpenAI (para transcrição e geração do resumo) Como configurar: Configure o webhook no Evolution e conecte ao n8n Use a planilha modelo que acompanha esse fluxo. Faça sua cópia clicando aqui 👉🏻 [[Template] Log - Group Summary](https://docs.google.com/spreadsheets/d/1ymkWd0thcFRTtWdNrenUg1k8lAmn19ebznSHtvKHaoE/edit?usp=sharing) Conecte suas credenciais do Google Sheets Adicione sua chave da OpenAI (Opcional) Personalize o prompt da IA e defina o melhor horário de execução Por que esse fluxo se destaca: 📊 *Painel de controle real: ative ou desative os resumos por grupo com 1 clique* 🔍 Lógica rastreável e modular, com ramificações claras e tratamento de exceções ⚙️ Pronto pra escalar. Ideal para times, comunidades ou grupos educacionais 📬 Entrega automática de resumos diários direto nos grupos do WhatsApp ✅ Compatível com n8n Cloud e Self-hosted 🔐 100% seguro. Sem gambiarra. Sem atalhos. Quer adaptar esse fluxo para seu negócio, time ou comunidade? 📩 Solicitações personalizadas: me chama no WhatsApp +5534992569346
by Colleen Brady
Who is this for? This workflow is built for anyone who works with YouTube content, whether you're: A learner looking to understand a video’s key points A content creator repurposing video material A YouTube manager looking to update titles, descriptions A social media strategist searching for the most shareable clips Don't just ask questions about what's said. Find out what's going on in a video too. Video Overview: https://www.youtube.com/watch?v=Ovg_KfKxnC8 What problem does this solve? YouTube videos hold valuable insights, but watching and processing them manually takes time. This workflow automates: Quick content extraction**: Summarize key ideas without watching full videos Visual analysis**: Understand what’s happening beyond spoken words Clip discovery**: Identify the best moments for social sharing How the workflow works This n8n-powered automation: Uses Google’s Gemini 1.5 Flash AI for intelligent video analysis Provides multiple content analysis templates tailored to different needs What makes this workflow powerful? The easiest place to start is by requesting a summary or transcript. From there, you can refine the prompts to match your specific use case and the type of video content you’re working with. But what's even more amazing? You can ask questions about what’s happening in the video — and get detailed insights about the people, objects, and scenes. It's jaw-dropping. This workflow is versatile — the actions adapt based on the values set. That means you can use a single workflow to: Extract transcripts Generate an extended YouTube description Write a summary blog post You can also modify the trigger based on how you want to run the workflow — use a webhook, connect it to an event in Airtable, or leave it as-is for on-demand use. The output can then be sent anywhere: Notion, Airtable, CMS platforms, or even just stored for reference. How to set it up Connect your Google API key Paste a YouTube video URL Select an analysis method Run the workflow and get structured results Analysis Templates Basic & Timestamped Transcripts**: Extract spoken content Summaries**: Get concise takeaways Visual Scene Analysis**: Detect objects, settings, and people Clip Finder**: Locate shareable moments Actionable Insights**: Extract practical information Customization Options Modify templates to fit your needs Connect with external platforms Adjust formatting preferences Advanced Configuration This workflow is designed for use with gemini-1.5-flash. In the future, you can update the flow to work with different models or even modify the HTTP request node to define which API endpoint should be used. It's also been designed so you can use this flow on it's own or add to a new / existing worflow. This workflow helps you get the most out of YouTube content — quickly and efficiently.
by rangelstoilov
This workflow goes through the teachable webhook request types and adds a user, updates him and tags him with #unsubscribe or removes the #unsubscribe tag. It also tags the user with the tag of the name of the course. Enjoy!