by n8n Team
v1 Helper βΉοΈ This workflow is to be run after upgrading to n8n v1. This workflow returns all locations where a node in an active workflow contains a parameter using an expression extension affected by v1 changes. For every location, please check that the workflow still behaves as intended.
by Eduard
The workflow starts by listening for messages from Telegram users. The message is then processed, and based on its content, different actions are taken. If it's a regular chat message, the workflow generates a response using the OpenAI API and sends it back to the user. If it's a command to create an image, the workflow generates an image using the OpenAI API and sends the image to the user. If the command is unsupported, an error message is sent. Throughout the workflow, there are additional nodes for displaying notes and simulating typing actions.
by Harshil Agrawal
This workflow allows you to create, add an attachment, and send a draft using the Microsoft Outlook node. Microsoft Outlook node: This node creates a draft message with HTML content. You can either set the content as Text or HTML. You can also add the recipients to the draft in this node. HTTP Request node: This node fetches the logo of n8n from a URL and returns the binary data. You might want to fetch files from your machine or another email or a database. You can replace this node with the relevant node. Microsoft Outlook1 node: This node adds the attachment that we receive from the previous node to the draft message that we created. Microsoft Outlook2 node: This node sends the draft message to a recipient. Since we didn't mention the recipient in the Microsoft Outlook node, we add the recipient in this node. You can also enter multiple recipients.
by n8n Team
This n8n workflow is designed to analyze email headers received via a webhook. The workflow splits into two main paths based on the presence of the received and authentication results headers. In the first path, if received headers are present, the workflow extracts IP addresses from these headers and then queries the IP Quality Score API to gather information about the IP addresses, including fraud score, abuse history, organization, and more. Geolocation data is also obtained from the IP-API API. The workflow collects and aggregates this information for each IP address. In the second path, if authentication-results headers are present, the workflow extracts SPF, DKIM, and DMARC authentication results. It then evaluates these results and sets fields accordingly (e.g., SPF pass/fail/neutral). The paths merge their results, and the workflow responds to the original webhook with the aggregated analysis, including IP information and authentication results. Potential issues during setup include ensuring proper configuration of the webhook calls with header authentication, handling authentication and API keys for the IP Quality Score API, and addressing any discrepancies or errors in the logic nodes, such as handling SPF, DKIM, and DMARC results correctly. Additionally, thorough testing with various email header formats is essential to ensure accurate analysis and response.
by Romain
π§Ύ Automated Invoice Processing - n8n Workflow π Workflow Description This n8n workflow automates the complete processing of PDF invoices with AI-powered data extraction. The workflow monitors a Google Drive folder, extracts important invoice data, and automatically organizes files in a structured filing system. π― Features π Automatic monitoring** of a Google Drive folder for new PDF files π€ AI-powered data extraction** from invoices (customer, amount, date, etc.) π Intelligent file sorting** by year and month π Automatic renaming** following a consistent schema π Central documentation** in Google Sheets π§ Required Integrations Required Accounts: Google Drive (with folder permissions) Google Sheets (with write permissions) Google Gemini API (for AI data extraction) Used n8n Nodes: Google Drive Trigger Google Drive (File Operations) Google Sheets Extract from File (PDF) Information Extractor (LangChain) Google Gemini Chat Model Split in Batches π Workflow Steps in Detail 1. Monitoring & Triggering Google Drive Trigger** monitors a defined input folder Automatically starts when new PDF files are detected Split in Batches** enables batch processing of multiple files 2. File Processing GetFile** downloads PDF files from Google Drive ExtractFromPDF** converts PDF content to text Supports scanned documents as well 3. AI Data Extraction The Information Extractor node with Google Gemini extracts: Company name/sender Customer name and customer number Invoice number and date Net and gross amount Value-added tax Article description Month and year (for sorting) 4. Automatic Filing GetYearFolder** searches/creates year folders GetMonthFolder** searches/creates month folders MoveFile** moves invoice to correct folder UpdateFileName** renames file (schema: "Customer Month Year") 5. Documentation AddToOverview** enters all data into Google Sheets table Enables central overview and analysis βοΈ Setup Instructions Step 1: Prepare Google Drive Create the following folder structure in Google Drive: π [Input Folder] (e.g., "Invoices-Inbox") π [Main Folder] (e.g., "Accounting") βββ π 2024 βββ π January βββ π February βββ π March βββ ... (all months) βββ π 2025 βββ ... (all months) Step 2: Create Google Sheets Table Create a spreadsheet with the following columns: Customer Number Customer [Company Name] Location Invoice Date Invoice Number VAT Net Amount Month Year Step 3: Configure Workflow Configure Google Drive Trigger: Select your input folder as "Folder to Watch" Set "Event" to "fileCreated" Activate the trigger Search files and folders: Select the same input folder as filter Customize Information Extractor: Adapt attribute names to your needs Change company name in description Adjust system prompt if needed GetYearFolder & GetMonthFolder: Set the correct folder ID for your main folder Check query string for year/month search AddToOverview: Select your Google Sheets table Map columns according to your table π§ Customization Options Extend Data Extraction: Add more attributes in the Information Extractor node: { "name": "Payment Terms", "description": "Days until payment due", "required": false } Customize File Naming: Change the schema in the UpdateFileName node: "{{ $('Information Extractor').item.json.output.InvoiceNumber }} - {{ $('Information Extractor').item.json.output.Customer }}" Change Monitoring Interval: In Google Drive Trigger under "Poll Times" select different intervals. π¨ Important Notes β οΈ Permissions: Google Drive: Full access to configured folders Google Sheets: Write permission for target table Google Gemini: Valid API key required π Data Format: Works with German number formats (comma as decimal separator) Date format: YYYY-MM-DD Supports various PDF formats π Error Handling: Workflow fails if folders are missing Incomplete PDFs may lead to incomplete extractions Check logs for troubleshooting π Performance & Limitations Processing time:** 30-60 seconds per invoice Supported formats:** PDF (text and OCR) Batch processing:** Yes, multiple files simultaneously AI accuracy:** ~95% for standardized invoices π§ͺ Testing Run Test: Upload a test PDF to the input folder Monitor workflow execution in n8n Check results in Google Sheets Verify correct file movement and renaming Error Diagnosis: For errors: check n8n logs Consider Google API quotas Validate folder permissions π License & Support This workflow can be used and customized freely. For configuration questions or issues, check the n8n community or Google API documentation. Tip: Start with a few test invoices before using the workflow in production!
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 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 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. π