by Hubschrauber
Overview This template describes a possible approach to handle a pseudo-callback/trigger from an independent, external process (initiated from a workflow) and combine the received input with the workflow execution that is already in progress. This requires the external system to pass through some context information (resumeUrl), but allows the "primary" workflow execution to continue with BOTH its own (previous-node) context, AND the input received in the "secondary" trigger/process. Primary Workflow Trigger/Execution The workflow path from the primary trigger initiates some external, independent process and provides "context" which includes the value of $execution.resumeUrl. This execution then reaches a Wait node configured with Resume - On Webhook Call and stops until a call to resumeUrl is received. External, Independent Process The external, independent process could be anything like a Telegram conversation, or a web-service as long as: it results in a single execution of the Secondary Workflow Trigger, and it can pass through the value of resumeUrl associated with the Primary Workflow Execution Secondary Workflow Trigger/Execution The secondary workflow execution can start with any kind of trigger as long as part of the input can include the resumeUrl. To combine / rejoin the primary workflow execution, this execution passes along whatever it receives from its trigger input to the resume-webhook endpoint on the Wait node. Notes IMPORTANT: The workflow ids in the Set nodes marked **Update Me have embedded references to the workflow IDs in the original system. They will need to be CHANGED to make this demo work. Note: The Resume Other Workflow Execution node in the template uses the $env.WEBHOOK_URL configuration to convert to an internal "localhost" call in a Docker environment. This can be done differently. ALERT:** This pattern is NOT suitable for a workflow that handles multiple items because the first workflow execution will only be waiting for one callback. The second workflow (not the second trigger in the first workflow) is just to demonstrate how the Independent, External Process needs to work.
by Yaron Been
This workflow provides automated access to the Creativeathive Lemaar Door Mockedup AI model through the Replicate API. It saves you time by eliminating the need to manually interact with AI models and provides a seamless integration for other generation tasks within your n8n automation workflows. Overview This workflow automatically handles the complete other generation process using the Creativeathive Lemaar Door Mockedup model. It manages API authentication, parameter configuration, request processing, and result retrieval with built-in error handling and retry logic for reliable automation. Model Description: Advanced AI model for automated processing and generation tasks. Key Capabilities Specialized AI model with unique capabilities** Advanced processing and generation features** Custom AI-powered automation tools** Tools Used n8n**: The automation platform that orchestrates the workflow Replicate API**: Access to the Creativeathive/lemaar-door-mockedup AI model Creativeathive Lemaar Door Mockedup**: The core AI model for other generation Built-in Error Handling**: Automatic retry logic and comprehensive error management How to Install Import the Workflow: Download the .json file and import it into your n8n instance Configure Replicate API: Add your Replicate API token to the 'Set API Token' node Customize Parameters: Adjust the model parameters in the 'Set Other Parameters' node Test the Workflow: Run the workflow with your desired inputs Integrate: Connect this workflow to your existing automation pipelines Use Cases Specialized Processing**: Handle specific AI tasks and workflows Custom Automation**: Implement unique business logic and processing Data Processing**: Transform and analyze various types of data AI Integration**: Add AI capabilities to existing systems and workflows Connect with Me Website**: https://www.nofluff.online YouTube**: https://www.youtube.com/@YaronBeen/videos LinkedIn**: https://www.linkedin.com/in/yaronbeen/ Get Replicate API**: https://replicate.com (Sign up to access powerful AI models) #n8n #automation #ai #replicate #aiautomation #workflow #nocode #aiprocessing #dataprocessing #machinelearning #artificialintelligence #aitools #automation #digitalart #contentcreation #productivity #innovation
by ConvertAPI
Who is this for? For developers and organizations that need to combine PDF files. What problem is this workflow solving? PDF file merging problem. What this workflow does Downloads two PDF files from the web. Merges two PDF files into one. Stores the PDF file in the local file system. How to customize this workflow to your needs Open the PDF merge HTTP Request node. Adjust the URL parameter (all endpoints can be found here). Add your secret to the Query Auth account parameter. Please create a ConvertAPI account to get an authentication secret. Optionally, additional Body Parameters can be added for the converter.
by n8n Team
This workflow template shows how to load JSON data into a workflow and push that data into an App or convert it into a Spreadsheet file. Specifically, this workflow shows how to make a generic API request that returns JSON. It then shows how to load that into a Google Sheets spreadsheet, or convert it to .CSV file format. However, you can use the general pattern to load data into any app or convert to any spreadsheet file format (such as .xlsx).
by n8n Team
This workflow compares 2 datasets from a single database. Two SQL nodes create a slightly different summary report based on the payments table. Both reports have the same structure, but different time periods. In addition to that, output from the "Orders from 2004 and 2005" node has an extra manipulation on the ordercount variable. This makes Compare Datasets node to produce four outputs: data in A Only Branch, in B Only Branch, Same Branch records and Different Branch records. Please refere to the MySQL Tutorial website and download the example database: https://www.mysqltutorial.org/mysql-sample-database.aspx
by Jitesh Dugar
Customer Support Ticket Documentation Automation Automatically transform resolved support tickets into professional, AI-powered PDF documentation with complete tracking and team notifications. Overview This workflow automates the entire process of documenting resolved support tickets — from receiving ticket data to generating professional PDF case studies, storing them in Google Drive, tracking in spreadsheets, and notifying your team. Powered by AI, it creates consistent, high-quality documentation that can be reused for knowledge base articles, training materials, and compliance records. What This Workflow Does Receives resolved support tickets via webhook from your support platform Extracts and normalizes ticket data (works with Zendesk, Freshdesk, and custom formats) Generates AI-powered summaries using OpenAI GPT-4, creating structured case studies with: Problem description Troubleshooting steps taken Final resolution Key takeaways and prevention tips Creates professional PDF documents with branded HTML templates Uploads PDFs to organized Google Drive folders Tracks all tickets in a Google Sheets database for reporting and analytics Sends Slack notifications to your team with links to completed documentation Handles errors gracefully with automatic alerts when issues occur Key Features Fully Automated:** Zero manual intervention after setup AI-Powered Documentation:** Intelligent summaries that extract insights from raw ticket data Professional Output:** Branded, print-ready PDFs with modern styling Multi-Platform Support:** Works with any support tool that can send webhooks Centralized Tracking:** All tickets logged in Google Sheets for easy reporting Error Handling:** Built-in failure detection with Slack alerts Customizable:** Easy to brand with your company colors, logo, and styling Scalable:** Handles hundreds of tickets per day Use Cases Knowledge Base Building:** Automatically create searchable documentation from real support cases Team Training:** Build a library of resolved issues for onboarding new support agents Compliance & Audit:** Maintain complete records of all customer interactions Performance Analytics:** Track resolution times, common issues, and agent performance Customer Success:** Share professional case studies with stakeholders Process Improvement:** Identify recurring issues and optimize workflows Prerequisites Required Services & Accounts n8n** (self-hosted or cloud) OpenAI Account** with API access PDFMunk Account** (for HTML → PDF conversion) Google Workspace** (for Drive & Sheets) Slack Workspace** (optional but recommended) Support Platform** that can send webhooks (Zendesk, Freshdesk, Intercom, etc.) Required Credentials OpenAI API Key PDFMunk API Key Google Drive OAuth2 credentials Google Sheets OAuth2 credentials Slack Bot Token (OAuth2) Setup Instructions 1. Import the Workflow Copy the workflow JSON. In n8n, click “Import from File” or “Import from Clipboard.” Paste and import. 2. Configure Credentials OpenAI API Get API key from OpenAI Add in n8n: Credentials → OpenAI API → Paste key PDFMunk API Sign up at pdfmunk.com Copy API key → Add in Credentials → HtmlcsstopdfApi Google Drive OAuth2 Create project at Google Cloud Console Enable Drive API Create OAuth 2.0 credentials Add in n8n: Credentials → Google Drive OAuth2 → Connect Google Sheets OAuth2 Enable Google Sheets API in the same project Add in n8n: Credentials → Google Sheets OAuth2 → Connect Slack OAuth2 Create app at Slack API Add scopes: chat:write, chat:write.public Install to workspace Add bot token in Credentials → Slack OAuth2 API 3. Configure Node Settings Google Drive Folder ID Create a folder in Drive for PDFs Copy folder ID from the URL → https://drive.google.com/drive/folders/FOLDER_ID_HERE Paste in the “Upload to Google Drive” node Google Sheets Configuration Create a new sheet titled “Support Ticket Documentation Log.” Add these headers in Row 1: | Ticket ID | Subject | Customer Name | Customer Email | Agent Name | Priority | Category | Resolved Date | Resolution Time | PDF Link | Document Generated | Status | | --------- | ------- | ------------- | -------------- | ---------- | -------- | -------- | ------------- | --------------- | -------- | ------------------ | ------ | Copy Sheet ID from URL → https://docs.google.com/spreadsheets/d/SHEET_ID_HERE/edit Paste it in the “Update Google Sheets” node configuration. Slack Channel ID Right-click your Slack channel → View Channel Details Copy the Channel ID Update it in: “Send Slack Notification” node “Error – PDF Failed” node “Error – Upload Failed” node 4. Configure Webhook in Support Tool Activate the workflow in n8n Copy the Webhook URL from the “Webhook – Receive Ticket” node In Zendesk/Freshdesk: Trigger: “Ticket Status = Resolved” Method: POST Paste the n8n webhook URL Send ticket data as JSON 5. Test the Workflow Click “Execute Workflow” manually Send a test webhook Verify each step completes successfully Check: Generated PDF in Google Drive Row entry in Google Sheets Slack notification delivery How It Works Webhook Trigger → Receives resolved ticket Data Extraction → Normalizes ticket fields AI Summarization (OpenAI) → Generates structured summary HTML Formatting → Styles and adds branding PDF Conversion (PDFMunk) → Converts HTML → PDF Google Drive Upload → Saves and returns shareable link Sheets Logging → Appends ticket info + PDF link Slack Notification → Notifies team with summary Error Handling → Detects and reports failures Result → Clean, documented ticket case study in minutes Customization Branding Update company name, logo URL, and color scheme in the “Format HTML” node. Default color: #4CAF50 → Replace with your brand color. AI Prompt Customization Modify “AI Summarization (OpenAI)” node to add: Industry-specific terms Additional sections or insights Different summary tone or length Notification Customization Add @mentions or emojis in Slack messages for better visibility. Data Flow Webhook → Extract Data → AI Summary → Format HTML → Convert to PDF ↓ Download PDF → Upload to Drive → Log in Sheets → Notify Team ↓ Error Handling (if any) Expected Output PDF Document Includes: Branded header with company name/logo Resolution time badge Ticket metadata (ID, priority, customer, agent, etc.) Full AI-generated case study Professional footer with timestamp Google Sheets Entry: All ticket info Resolution metrics Direct PDF link Status = “Generated” Slack Notification: Summary of ticket Clickable PDF link Timestamp Performance Processing Time:** 10–20 seconds/ticket Capacity:** 100+ tickets/day PDF Size:** 50–300 KB Troubleshooting Webhook not triggering → Check webhook URL, trigger conditions, and public access. PDF generation fails → Verify HTML syntax and PDFMunk API key. Google Drive upload fails → Re-authenticate credentials or check folder permissions. Slack notification missing → Ensure bot token, scopes, and channel ID are valid. Data extraction errors → Adjust field mappings or inspect payload format. Best Practices Test before production rollout Monitor first-week error logs Organize Drive by date/priority Validate Sheets columns Use a dedicated Slack channel Archive old PDFs regularly Review AI summaries weekly Document configuration changes Security Notes All credentials stored securely in n8n PDF links are restricted by Drive sharing settings Webhooks use HTTPS for secure data transfer No sensitive info logged in error messages Future Enhancements Multi-language summaries Integration with Confluence or Notion Customer satisfaction feedback link ML-based issue categorization Analytics dashboard Weekly email digests Public knowledge base generation Support Resources n8n Documentation n8n Community OpenAI API Docs PDFMunk Support Google Drive API Slack API Docs License This workflow template is provided as-is for use with n8n under the MIT License.
by PiAPI
What does the workflow do? This workflow is primarily designed to generate animated illustrations for content creators and social media professionals with Midjourney (unoffcial) and Kling (unofficial) API served by PiAPI. PiAPI is an API platform which provides professional API service. With service provided by PiAPI, users could generate a fantastic animated artwork simply using workflow on n8n without complex settings among various AI models. What is animated illustration? An animated illustration is a digitally enhanced artwork that combines traditional illustration styles with subtle, purposeful motion to enrich storytelling while preserving its original artistic essence. Who is this workflow for? Social Media Content Creators: Produces animated illustrations for social media posts. Digital Marketers: Generates marketing materials with motion graphics. Independent Content Producers: Creates animated content without specialized animation skills. Step-by-step Setting Instructions To simplify workflow settings, usually users just need to change basic prompt of the image and the motion of the final video following the instrution below: Sign in your PiAPI account and get your X-API-Key. Fill in your X-API-Key of PiAPI account in Midjourney and Kling nodes. Enter your desired image prompt in the Prompt node. Enter the motion prompt in Kling Video Generator node. For more complex or customization settings, users could also add more nodes to get more output images and generate more videos. Also, they could change the target image to gain a better result. As for recommendation, users could change the video models for which we would recommend live-wallpaper LoRA of Wanx. Users could check API doc to see more use cases of video models and image models for best practice. Use Case Input Prompt A gentle girl and a fluffy rabbit explore a sunlit forest together, playing by a sparkling stream. Butterflies flutter around them as golden sunlight filters through green leaves. Warm and peaceful atmosphere, 4K nature documentary style. --s 500 --sref 4028286908 --niji 6 Output Video When there is troubleshooting Check if the X-API-Key has been filled in nodes needed. Check your task status in Task History in PiAPI to get more details about task status. More Generation Case for Reference
by vinci-king-01
Product Price Monitor with Pushover and Baserow ⚠️ COMMUNITY TEMPLATE DISCLAIMER: This is a community-contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the ScrapeGraphAI community node installed in your n8n instance before using this template. This workflow automatically scrapes multiple e-commerce sites for selected products, analyzes weekly pricing trends, stores historical data in Baserow, and sends an instant Pushover notification when significant price changes occur. It is ideal for retailers who need to track seasonal fluctuations and optimize inventory or pricing strategies. Pre-conditions/Requirements Prerequisites An active n8n instance (self-hosted or n8n.cloud) ScrapeGraphAI community node installed At least one publicly accessible webhook URL (for on-demand runs) A Baserow database with a table prepared for product data Pushover account and registered application Required Credentials ScrapeGraphAI API Key** – Enables web-scraping capabilities Baserow: Personal API Token** – Allows read/write access to your table Pushover: User Key & API Token** – Sends mobile/desktop push notifications (Optional) HTTP Basic Token or API Keys for any private e-commerce endpoints you plan to monitor Baserow Table Specification | Field Name | Type | Description | |------------|-----------|--------------------------| | Product ID | Number | Internal or SKU | | Name | Text | Product title | | URL | URL | Product page | | Price | Number | Current price (float) | | Currency | Single select (USD, EUR, etc.) | | Last Seen | Date/Time | Last price check | | Trend | Number | 7-day % change | How it works This workflow automatically scrapes multiple e-commerce sites for selected products, analyzes weekly pricing trends, stores historical data in Baserow, and sends an instant Pushover notification when significant price changes occur. It is ideal for retailers who need to track seasonal fluctuations and optimize inventory or pricing strategies. Key Steps: Webhook Trigger**: Manually or externally trigger the weekly price-check run. Set Node**: Define an array of product URLs and metadata. Split In Batches**: Process products one at a time to avoid rate limits. ScrapeGraphAI Node**: Extract current price, title, and availability from each URL. If Node**: Determine if price has changed > ±5 % since last entry. HTTP Request (Trend API)**: Retrieve seasonal trend scores (optional). Merge Node**: Combine scrape data with trend analysis. Baserow Nodes**: Upsert latest record and fetch historical data for comparison. Pushover Node**: Send alert when significant price movement detected. Sticky Notes**: Documentation and inline comments for maintainability. Set up steps Setup Time: 15-25 minutes Install Community Node: In n8n, go to “Settings → Community Nodes” and install ScrapeGraphAI. Create Baserow Table: Match the field structure shown above. Obtain Credentials: ScrapeGraphAI API key from your dashboard Baserow personal token (/account/settings) Pushover user key & API token Clone Workflow: Import this template into n8n. Configure Credentials in Nodes: Open each ScrapeGraphAI, Baserow, and Pushover node and select/enter the appropriate credential. Add Product URLs: Open the first Set node and replace the example array with your actual product list. Adjust Thresholds: In the If node, change the 5 value if you want a higher/lower alert threshold. Test Run: Execute the workflow manually; verify Baserow rows and the Pushover notification. Schedule: Add a Cron trigger or external scheduler to run weekly. Node Descriptions Core Workflow Nodes: Webhook** – Entry point for manual or API-based triggers. Set** – Holds the array of product URLs and meta fields. SplitInBatches** – Iterates through each product to prevent request spikes. ScrapeGraphAI** – Scrapes price, title, and currency from product pages. If** – Compares new price vs. previous price in Baserow. HTTP Request** – Calls a trend API (e.g., Google Trends) to get seasonal score. Merge** – Combines scraping results with trend data. Baserow (Upsert & Read)** – Writes fresh data and fetches historical price for comparison. Pushover** – Sends formatted push notification with price delta. StickyNote** – Documents purpose and hints within the workflow. Data Flow: Webhook → Set → SplitInBatches → ScrapeGraphAI ScrapeGraphAI → If True branch → HTTP Request → Merge → Baserow Upsert → Pushover False branch → Baserow Upsert Customization Examples Change Notification Channel to Slack // Replace the Pushover node with Slack { "channel": "#pricing-alerts", "text": 🚨 ${$json["Name"]} changed by ${$json["delta"]}% – now ${$json["Price"]} ${$json["Currency"]} } Additional Data Enrichment (Stock Status) // Add to ScrapeGraphAI's selector map { "stock": { "selector": ".availability span", "type": "text" } } Data Output Format The workflow outputs structured JSON data: { "ProductID": 12345, "Name": "Winter Jacket", "URL": "https://shop.example.com/winter-jacket", "Price": 79.99, "Currency": "USD", "LastSeen": "2024-11-20T10:34:18.000Z", "Trend": 12, "delta": -7.5 } Troubleshooting Common Issues Empty scrape result – Check if the product page changed its HTML structure; update CSS selectors in ScrapeGraphAI. Baserow “Row not found” errors – Ensure Product ID or another unique field is set as the primary key for upsert. Performance Tips Limit batch size to 5-10 URLs to avoid IP blocking. Use n8n’s built-in proxy settings if scraping sites with geo-restrictions. Pro Tips: Store historical JSON responses in a separate Baserow table for deeper analytics. Standardize currency symbols to avoid false change detections. Couple this workflow with an n8n Dashboard to visualize price trends in real-time.
by Friedemann Schuetz
Welcome to my VEO3 Video Generator Workflow! This automated workflow transforms simple text descriptions into professional 8-second videos using Google's cutting-edge VEO3 AI model. Users submit video ideas through a web form, and the system automatically generates optimized prompts, creates high-quality videos with native audio, and delivers them via Google Drive - all powered by Claude 4 Sonnet for intelligent prompt optimization. This workflow has the following sequence: VEO3 Generator Form - Web form interface for users to input video content, format, and duration Video Prompt Generator - AI agent powered by Claude 4 Sonnet that: Analyzes user input for video content requirements Creates factual, professional video titles Generates detailed VEO3 prompts with subject, context, action, style, camera motion, composition, ambiance, and audio elements Optimizes prompts for 16:9 landscape format and 8-second duration Create VEO3 Video - Submits the optimized prompt to fal.ai VEO3 API for video generation Wait 30 seconds - Initial waiting period for video processing to begin Check VEO3 Status - Monitors the video generation status via fal.ai API Video completed? - Decision node that checks if video generation is finished If not completed: Returns to wait cycle If completed: Proceeds to video retrieval Get VEO3 Video URL - Retrieves the final video download URL from fal.ai Download VEO3 Video - Downloads the generated MP4 video file Merge - Combines video data with metadata for final processing Save Video to Google Drive - Uploads the video to specified Google Drive folder Video Output - Displays completion message with Google Drive link to user The following accesses are required for the workflow: Anthropic API** (Claude 4 Sonnet): Documentation Fal.ai API** (VEO3 Model): Create API key at https://fal.ai/dashboard/keys Google Drive API**: Documentation Workflow Features: User-friendly web form**: Simple interface for video content input AI-powered prompt optimization**: Claude 4 Sonnet creates professional VEO3 prompts Automatic video generation**: Leverages Google's VEO3 model via fal.ai Status monitoring**: Real-time tracking of video generation progress Google Drive integration**: Automatic upload and sharing of generated videos Structured output**: Consistent video titles and professional prompt formatting Audio optimization**: VEO3's native audio generation with ambient sounds and music Current Limitations: Format**: Only 16:9 landscape videos supported Duration**: Only 8-second videos supported Processing time**: Videos typically take 60-120 seconds to generate Use Cases: Content creation**: Generate videos for social media, websites, and presentations Marketing materials**: Create promotional videos and advertisements Educational content**: Produce instructional and explanatory videos Prototyping**: Rapid video concept development and testing Creative projects**: Artistic and experimental video generation Business presentations**: Professional video content for meetings and pitches Feel free to contact me via LinkedIn, if you have any questions!
by vinci-king-01
Lead Scoring Pipeline with Mattermost and Trello This workflow automatically enriches incoming form-based leads, calculates a lead-score from multiple data points, and then routes high-value prospects to a Mattermost alert channel while adding all leads to Trello for further handling. It centralizes lead intelligence and streamlines sales team triage—no manual spreadsheet work required. Pre-conditions/Requirements Prerequisites n8n instance (self-hosted or n8n cloud) ScrapeGraphAI community node installed Active Trello and Mattermost workspaces Lead-capture form or webhook that delivers JSON payloads Required Credentials Trello API Key & Token** – Access to the board/list where cards will be created Mattermost Access Token** – Permission to post messages in the target channel (Optional) Clearbit / Apollo / 3rd-party enrichment keys** – If you replace the sample enrichment HTTP requests Specific Setup Requirements | Variable | Purpose | Example Value | |-------------------------|-------------------------------------------|------------------------| | MM_CHANNEL_ID | Mattermost channel to post high-score leads | leads-alerts | | TRELLO_BOARD_ID | Board where new cards are added | 62f1d… | | TRELLO_LIST_ID_HOT | Trello list for hot leads | Hot Deals | | TRELLO_LIST_ID_BACKLOG| Trello list for all other leads | New Leads | | LEAD_SCORE_THRESHOLD | Score above which a lead is considered hot| 70 | How it works This workflow grabs new leads at a defined interval, enriches each lead with external data, computes a custom score, and routes the lead: high-scorers trigger a Mattermost alert and are placed in a “Hot Deals” list, while the rest are stored in a “Backlog” list on Trello. All actions are fully automated and run unattended once configured. Key Steps: Schedule Trigger**: Runs every 15 minutes to poll for new form submissions. HTTP Request – Fetch Leads**: Retrieves the latest unprocessed leads from your form backend or CRM API. Split In Batches**: Processes leads 20 at a time to respect API rate limits. HTTP Request – Enrich Lead**: Calls external enrichment (e.g., Clearbit) to append company and person data. Code – Calculate Score**: JavaScript that applies weightings to enriched attributes and outputs a numeric score. IF – Score Threshold**: Branches flow based on LEAD_SCORE_THRESHOLD. Mattermost Node**: Sends a rich-text message with lead details for high-score prospects. Trello Node (Hot List)**: Creates a Trello card in the “Hot Deals” list for high-value leads. Trello Node (Backlog)**: Creates a Trello card in the “New Leads” list for everyone else. Merge & Flag Processed**: Marks leads as processed to avoid re-processing in future runs. Set up steps Setup Time: 10–15 minutes Import the Workflow: Download the JSON template and import it into n8n. Create / Select Credentials: Add your Trello API key & token under Trello API credentials. Add your Mattermost personal access token under Mattermost API credentials. Configure Environment Variables: Set MM_CHANNEL_ID, TRELLO_BOARD_ID, TRELLO_LIST_ID_HOT, TRELLO_LIST_ID_BACKLOG, and LEAD_SCORE_THRESHOLD in n8n → Settings → Environment. Form Backend Endpoint: Update the first HTTP Request node with the correct URL and authentication for your form or CRM. (Optional) Enrichment Provider: Replace the sample enrichment HTTP Request with your chosen provider’s endpoint and credentials. Test Run: Execute the workflow manually with a sample payload to ensure Trello cards and Mattermost messages are produced. Activate: Enable the workflow; it will now run on the defined schedule. Node Descriptions Core Workflow Nodes: Schedule Trigger** – Triggers workflow every 15 minutes. HTTP Request (Fetch Leads)** – Pulls unprocessed leads. SplitInBatches** – Limits processing to 20 leads per batch. HTTP Request (Enrich Lead)** – Adds firmographic & technographic data. Code (Calculate Score)** – JavaScript scoring algorithm; outputs score field. IF (Score ≥ Threshold)** – Determines routing path. Mattermost** – Sends formatted message with lead summary & score. Trello (Create Card)** – Adds lead as a card to the appropriate list. Merge (Flag Processed)** – Updates source system to mark lead as processed. Data Flow: Schedule Trigger → HTTP Request (Fetch Leads) → SplitInBatches → HTTP Request (Enrich Lead) → Code (Calculate Score) → IF IF (Yes) → Mattermost → Trello (Hot List) IF (No) → Trello (Backlog) Both branches → Merge (Flag Processed) Customization Examples Adjust Scoring Weights // Code node: adjust weights to change scoring logic const weights = { industry: 15, companySize: 25, jobTitle: 20, intentSignals: 40 }; Dynamic Trello List Mapping // Use a Lookup table instead of IF node const mapping = { hot: 'TRELLO_LIST_ID_HOT', cold: 'TRELLO_LIST_ID_BACKLOG' }; items[0].json.listId = mapping[items[0].json.segment]; return items; Data Output Format The workflow outputs structured JSON data: { "leadId": "12345", "email": "jane.doe@example.com", "score": 82, "priority": "hot", "trelloCardUrl": "https://trello.com/c/abc123", "mattermostPostId": "78yzk9n8ppgkkp" } Troubleshooting Common Issues Trello authentication fails – Ensure the token has write access and that the API key & token pair belong to the same Trello account. Mattermost message not sent – Confirm the token can post in the target channel and that MM_CHANNEL_ID is correct. Performance Tips Batch leads in groups of 20–50 to avoid enrichment API rate-limit errors. Cache enrichment responses for repeat domains to reduce API calls. Pro Tips: Add a second IF node to send ultra-high (>90) scores directly to an account executive via email. Store raw enrichment responses in a database for future analytics. Use n8n’s built-in Execution Data Save to debug edge-cases without rerunning external API calls.
by explorium
Research Agent - Automated Sales Meeting Intelligence This n8n workflow automatically prepares comprehensive sales research briefs every morning for your upcoming meetings by analyzing both the companies you're meeting with and the individual attendees. The workflow connects to your calendar, identifies external meetings, enriches companies and contacts with deep intelligence from Explorium, and delivers personalized research reports—giving your sales team everything they need for informed, confident conversations. DEMO Template Demo Credentials Required To use this workflow, set up the following credentials in your n8n environment: Google Calendar (or Outlook) Type:** OAuth2 Used for:** Reading daily meeting schedules and identifying external attendees Alternative: Microsoft Outlook Calendar Get credentials at Google Cloud Console Explorium API Type:** Generic Header Auth Header:** Authorization Value:** Bearer YOUR_API_KEY Used for:** Business/prospect matching, firmographic enrichment, professional profiles, LinkedIn posts, website changes, competitive intelligence Get your API key at Explorium Dashboard Explorium MCP Type:** HTTP Header Auth Used for:** Real-time company intelligence and supplemental research for AI agents Connect to: https://mcp.explorium.ai/mcp Anthropic API Type:** API Key Used for:** AI-powered company and attendee research analysis Get your API key at Anthropic Console Slack (or preferred output) Type:** OAuth2 Used for:** Delivering research briefs Alternative options: Google Docs, Email, Microsoft Teams, CRM updates Go to Settings → Credentials, create these credentials, and assign them in the respective nodes before running the workflow. Workflow Overview Node 1: Schedule Trigger Automatically runs the workflow on a recurring schedule. Type:** Schedule Trigger Default:** Every morning before business hours Customizable:** Set to any interval (hourly, daily, weekly) or specific times Alternative Trigger Options: Manual Trigger:** On-demand execution Webhook:** Triggered by calendar events or CRM updates Node 2: Get many events Retrieves meetings from your connected calendar. Calendar Source:** Google Calendar (or Outlook) Authentication:** OAuth2 Time Range:** Current day + 18 hours (configurable via timeMax) Returns:** All calendar events with attendee information, meeting titles, times, and descriptions Node 3: Filter for External Meetings Identifies meetings with external participants and filters out internal-only meetings. Filtering Logic: Extracts attendee email domains Excludes your company domain (e.g., 'explorium.ai') Excludes calendar system addresses (e.g., 'resource.calendar.google.com') Only passes events with at least one external attendee Important Setup Note: Replace 'explorium.ai' in the code node with your company domain to properly filter internal meetings. Output: Events with external participants only external_attendees: Array of external contact emails company_domains: Unique list of external company domains per meeting external_attendee_count: Number of external participants Company Research Pipeline Node 4: Loop Over Items Iterates through each meeting with external attendees for company research. Node 5: Extract External Company Domains Creates a deduplicated list of all external company domains from the current meeting. Node 6: Explorium API: Match Business Matches company domains to Explorium's business entity database. Method:** POST Endpoint:** /v1/businesses/match Authentication:** Header Auth (Bearer token) Returns: business_id: Unique Explorium identifier matched_businesses: Array of matches with confidence scores Company name and basic info Node 7: If Validates that a business match was found before proceeding to enrichment. Condition:** business_id is not empty If True:** Proceed to parallel enrichment nodes If False:** Skip to next company in loop Nodes 8-9: Parallel Company Enrichment Node 8: Explorium API: Business Enrich Endpoints:** /v1/businesses/firmographics/enrich, /v1/businesses/technographics/enrich Enrichment Types:** firmographics, technographics Returns:** Company name, description, website, industry, employees, revenue, headquarters location, ticker symbol, LinkedIn profile, logo, full tech stack, nested tech stack by category, BI & analytics tools, sales tools, marketing tools Node 9: Explorium API: Fetch Business Events Endpoint:** /v1/businesses/events/fetch Event Types:** New funding rounds, new investments, mergers & acquisitions, new products, new partnerships Date Range:** September 1, 2025 - November 4, 2025 Returns:** Recent business milestones and financial events Node 10: Merge Combines enrichment responses and events data into a single data object. Node 11: Cleans Merge Data Output Transforms merged enrichment data into a structured format for AI analysis. Node 12: Company Research Agent AI agent (Claude Sonnet 4) that analyzes company data to generate actionable sales intelligence. Input: Structured company profile with all enrichment data Analysis Focus: Company overview and business context Recent website changes and strategic shifts Tech stack and product focus areas Potential pain points and challenges How Explorium's capabilities align with their needs Timely conversation starters based on recent activity Connected to Explorium MCP: Can pull additional real-time intelligence if needed to create more detailed analysis Node 13: Create Company Research Output Formats the AI analysis into a readable, shareable research brief. Attendee Research Pipeline Node 14: Create List of All External Attendees Compiles all unique external attendee emails across all meetings. Node 15: Loop Over Items2 Iterates through each external attendee for individual enrichment. Node 16: Extract External Company Domains1 Extracts the company domain from each attendee's email. Node 17: Explorium API: Match Business1 Matches the attendee's company domain to get business_id for prospect matching. Method:** POST Endpoint:** /v1/businesses/match Purpose:** Link attendee to their company Node 18: Explorium API: Match Prospect Matches attendee email to Explorium's professional profile database. Method:** POST Endpoint:** /v1/prospects/match Authentication:** Header Auth (Bearer token) Returns: prospect_id: Unique professional profile identifier Node 19: If1 Validates that a prospect match was found. Condition:** prospect_id is not empty If True:** Proceed to prospect enrichment If False:** Skip to next attendee Node 20: Explorium API: Prospect Enrich Enriches matched prospect using multiple Explorium endpoints. Enrichment Types:** contacts, profiles, linkedin_posts Endpoints:** /v1/prospects/contacts/enrich, /v1/prospects/profiles/enrich, /v1/prospects/linkedin_posts/enrich Returns: Contacts:** Professional email, email status, all emails, mobile phone, all phone numbers Profiles:** Full professional history, current role, skills, education, company information, experience timeline, job titles and seniority LinkedIn Posts:** Recent LinkedIn activity, post content, engagement metrics, professional interests and thought leadership Node 21: Cleans Enrichment Outputs Structures prospect data for AI analysis. Node 22: Attendee Research Agent AI agent (Claude Sonnet 4) that analyzes prospect data to generate personalized conversation intelligence. Input: Structured professional profile with activity data Analysis Focus: Career background and progression Current role and responsibilities Recent LinkedIn activity themes and interests Potential pain points in their role Relevant Explorium capabilities for their needs Personal connection points (education, interests, previous companies) Opening conversation starters Connected to Explorium MCP: Can gather additional company or market context if needed Node 23: Create Attendee Research Output Formats attendee analysis into a readable brief with clear sections. Node 24: Merge2 Combines company research output with attendee information for final assembly. Node 25: Loop Over Items1 Manages the final loop that combines company and attendee research for output. Node 26: Send a message (Slack) Delivers combined research briefs to specified Slack channel or user. Alternative Output Options: Google Docs:** Create formatted document per meeting Email:** Send to meeting organizer or sales rep Microsoft Teams:** Post to channels or DMs CRM:** Update opportunity/account records with research PDF:** Generate downloadable research reports Workflow Flow Summary Schedule: Workflow runs automatically every morning Fetch Calendar: Pull today's meetings from Google Calendar/Outlook Filter: Identify meetings with external attendees only Extract Companies: Get unique company domains from external attendees Extract Attendees: Compile list of all external contacts Company Research Path: Match Companies: Identify businesses in Explorium database Enrich (Parallel): Pull firmographics, website changes, competitive landscape, events, and challenges Merge & Clean: Combine and structure company data AI Analysis: Generate company research brief with insights and talking points Format: Create readable company research output Attendee Research Path: Match Prospects: Link attendees to professional profiles Enrich (Parallel): Pull profiles, job changes, and LinkedIn activity Merge & Clean: Combine and structure prospect data AI Analysis: Generate attendee research with background and approach Format: Create readable attendee research output Delivery: Combine: Merge company and attendee research for each meeting Send: Deliver complete research briefs to Slack/preferred platform This workflow eliminates manual pre-meeting research by automatically preparing comprehensive intelligence on both companies and individuals—giving sales teams the context and confidence they need for every conversation. Customization Options Calendar Integration Works with multiple calendar platforms: Google Calendar:** Full OAuth2 integration Microsoft Outlook:** Calendar API support CalDAV:** Generic calendar protocol support Trigger Flexibility Adjust when research runs: Morning Routine:** Default daily at 7 AM On-Demand:** Manual trigger for specific meetings Continuous:** Hourly checks for new meetings Enrichment Depth Add or remove enrichment endpoints: Company:** Technographics, funding history, news mentions, hiring signals Prospects:** Contact information, social profiles, company changes Customizable:** Select only needed data to optimize speed and costs Research Scope Configure what gets researched: All External Meetings:** Default behavior Filtered by Keywords:** Only meetings with specific titles By Attendee Count:** Only meetings with X+ external attendees By Calendar:** Specific calendars only Output Destinations Deliver research to your preferred platform: Messaging:** Slack, Microsoft Teams, Discord Documents:** Google Docs, Notion, Confluence Email:** Gmail, Outlook, custom SMTP CRM:** Salesforce, HubSpot (update account notes) Project Management:** Asana, Monday.com, ClickUp AI Model Options Swap AI providers based on needs: Default: Anthropic Claude (Sonnet 4) Alternatives: OpenAI GPT-4, Google Gemini Setup Notes Domain Configuration: Replace 'explorium.ai' in the Filter for External Meetings code node with your company domain Calendar Connection: Ensure OAuth2 credentials have calendar read permissions Explorium Credentials: Both API key and MCP credentials must be configured Output Timing: Schedule trigger should run with enough lead time before first meetings Rate Limits: Adjust loop batch sizes if hitting API rate limits during enrichment Slack Configuration: Select destination channel or user for research delivery Data Privacy: Research is based on publicly available professional information and company data This workflow acts as your automated sales researcher, preparing detailed intelligence reports every morning so your team walks into every meeting informed, prepared, and ready to have meaningful conversations that drive business forward.
by Kev
Important: This workflow uses the Autype and SerpAPI Official community nodes and requires a self-hosted n8n instance. Submit a simple form with your product name, industry, and description. The workflow automatically researches your market via Google Trends and Google Search (SerpAPI), conducts deep analysis with Perplexity AI (via OpenRouter), writes a structured report with Anthropic Claude (via OpenRouter), and renders a professionally styled PDF using Autype Extended Markdown. No manual competitor input required -- everything is discovered automatically. Who is this for? Product managers, startup founders, strategists, and consultants who need quick market research reports for investor decks, board meetings, competitive positioning, or strategic planning. Instead of spending hours compiling data from multiple sources, this workflow automates the entire research-to-PDF pipeline from a single form submission. Concrete example: A SaaS startup preparing for a Series A fundraise needs a market research report on the document automation space. They fill in their product name and industry, describe their product, and submit the form. In under two minutes they get a polished PDF with current market trends, auto-discovered competitor comparisons, SWOT analysis, and strategic recommendations -- ready to attach to their pitch deck. What this workflow does When a user submits the form, the workflow sends parallel requests to Google Trends (12-month interest data) and Google Search (competitor discovery) via SerpAPI, and downloads Autype's extended markdown syntax reference. All data is merged and passed to an AI Research Agent powered by Perplexity Sonar Pro (via OpenRouter) for deep market and competitor analysis with real-time web citations. The research output is then handed to an AI Report Writer (Anthropic Claude via OpenRouter) that writes a structured market research report in Autype Extended Markdown. The markdown is rendered to a styled PDF via Autype's Render from Markdown operation, and the final report is saved to Google Drive. How it works Market Research Form -- An n8n Form Trigger collects product name, industry, product description, and report language. Google Trends -- SerpAPI Official node fetches 12 months of search interest data for the industry. Search Competitors -- SerpAPI Google Search automatically discovers competitors and market leaders. Download Markdown Syntax -- Fetches Autype's extended markdown syntax reference so the report writer knows all formatting options. Prepare Research Context -- A Code node merges trends data, competitor search results, and syntax reference into a single context. AI Research Agent -- An AI Agent with OpenRouter (Perplexity Sonar Pro) conducts deep market research: market overview, competitor profiles, trends, and product positioning. Prepare Report Input -- A Code node combines the research output with the markdown syntax reference and form data. AI Report Writer -- An AI Agent (Anthropic Claude via OpenRouter) writes the final report in Autype Extended Markdown. The prompt includes a title page template. Prepare Render Payload -- A Code node cleans the AI output and sets title/filename. Render Report PDF -- Autype renders the extended markdown to a professionally styled PDF with Open Sans font, heading hierarchy (28/22/18pt), automatic page breaks before h1/h2, chart color palette, header with company name and logo, footer with page numbers, and generous spacing. Save Report to Drive -- The PDF is uploaded to Google Drive. Setup Install community nodes via Settings > Community Nodes: n8n-nodes-autype and n8n-nodes-serpapi. Create an Autype API credential with your API key from app.autype.com. See API Keys in Settings. Create a SerpAPI credential with your API key from serpapi.com (free tier: 250 searches/month). Create two OpenRouter API credentials with your key(s) from openrouter.ai. One is used for Perplexity Sonar Pro (research), the other for Anthropic Claude (report writing). You can use the same API key for both. Create a Google Drive OAuth2 credential and connect your Google account. Import this workflow and assign your credentials to each node. Set YOUR_FOLDER_ID in the "Save Report to Drive" node to your target Google Drive folder. Activate the workflow and open the form URL to generate a report. Note: You need a self-hosted n8n instance to use the Community Nodes. Requirements Self-hosted n8n instance (community nodes are not available on n8n Cloud) Autype account with API key (free tier available) n8n-nodes-autype community node installed n8n-nodes-serpapi community node installed (verified) OpenRouter API key (for Perplexity Sonar Pro and Anthropic Claude models) SerpAPI account (free tier: 100 searches/month) Google Drive account with OAuth2 credentials (optional, can replace with other output) How to customize Add more data sources:** Insert additional HTTP Request or SerpAPI nodes before the merge to pull from Google News, Google Scholar, or other engines. Use a different research model:** Swap the OpenRouter Perplexity model for any other OpenRouter model (e.g. Gemini) or replace the sub-node entirely. Use a different report writer:** Swap the Anthropic Claude model for OpenAI, Google Gemini, or any other OpenRouter-compatible model. Customize header/footer:** Edit the defaults JSON in the Render Report PDF node to change the company name, logo URL, or footer text. Customize title page:** Edit the title page template in the AI Report Writer's user prompt to change the logo, layout, or metadata fields. Change report structure:** Edit the system prompt in the AI Report Writer node to add or remove sections, change the tone, or adjust the word count. Customize PDF styling:** Edit the defaults JSON in the Render Report PDF node to change fonts, colors, spacing, and heading styles. See the Autype defaults schema for all options. Generate DOCX instead of PDF:** Change the output format in the Render Report PDF node from PDF to DOCX. Schedule automatic reports:** Add a Schedule Trigger alongside the Form Trigger for recurring market monitoring. Change output destination:** Replace the Google Drive node with Email (SMTP), S3, Slack, or any other n8n output node. Add more languages:** Edit the dropdown options in the Market Research Form node.