by Davide
This workflow automates the process of receiving a post-call audio file and transcription from ElevenLabs, processing them, and generating a financial risk report. Key Advantages 1. β End-to-End Automation The workflow fully automates the process from raw input (audio/transcript) to final delivery (email report), eliminating manual intervention. 2. β AI-Powered Decision Making It leverages language models to: Analyze qualitative interview responses Convert them into quantitative scores Produce consistent and objective evaluations 3. β Structured Data Extraction Automatically extracts critical business information, reducing human error and ensuring standardized outputs. 4. β Scalability The webhook-based architecture allows the system to handle large volumes of interviews in parallel without additional effort. 5. β Modular & Extensible Design Each step (audio processing, extraction, scoring, reporting) is modular, making it easy to: Replace models Add new analysis layers Integrate additional services 6. β Professional Output Generation Generates clean, ready-to-send HTML reports compatible with email clients, improving communication with stakeholders. 7. β Data Traceability & Storage Audio files are stored in Google Drive, ensuring: Auditability Easy retrieval of original data 8. β Consistency & Standardization The evaluation logic ensures that all interviews are assessed using the same criteria, reducing subjective bias. How it works Receiving and Routing Data: The workflow starts with a Webhook that listens for incoming data from ElevenLabs. A Switch node then routes the data based on the body.type field. Post Call Audio: If the type is post_call_audio, the workflow processes the audio. Post Call Transcription: If the type is post_call_transcription, the workflow processes the transcription. Audio Processing Path: For an audio file, a Code node extracts the Base64 audio data and the conversation_id from the webhook payload. It converts the Base64 string into a binary audio buffer (MP3). This binary data is then passed to a Google Drive node, which uploads the file to a specified folder (the user's root folder). Transcription Processing Path: For a transcription, a Set node extracts the transcript array from the payload. A subsequent Code node processes this array, combining all messages from the conversation into a single, readable full text string, prefixed by the speaker's role. Data Enrichment and Analysis: The full transcript text is then used by two nodes in parallel: Information Extractor: This LangChain node uses an OpenAI model (gpt-5-mini) to extract structured data from the text, specifically the company_name, the CEO's name, the address, and the vat_number. Calculate Rating: This LangChain node uses another OpenAI model to perform a quantitative evaluation. It follows a provided system prompt to assign a numerical score, a final verdict (POSITIVE/NEUTRAL/NEGATIVE), and a reason based on the interviewee's responses. Its output is parsed by a Structured Output Parser to ensure it is valid JSON. Report Generation and Delivery: The outputs from the Information Extractor and Calculate Rating nodes are merged into a single data object. This object is passed to the Financial Report Generator, a final LangChain node that acts as a professional analyst. Using the merged data (company details, score, verdict, etc.), it generates a polished, formatted HTML email body. Finally, a Gmail node sends this HTML report as an email to the specified recipient. Set up steps Configure Credentials: OpenAI: Set up an OpenAI API credential for the three language model nodes. Ensure it has access to the gpt-5-mini model. Google Drive: Configure OAuth2 credentials for the "Upload audio" node to allow file uploads. Gmail: Set up OAuth2 credentials for the "Send report" node. Configure Webhook: Note the webhook ID and path. This URL must be configured in ElevenLabs to send post-call data to this n8n instance. Update Node Parameters: Google Drive: Modify the "Upload audio" node if the target folder (folderId) is not the root. Information Extractor: The extraction attributes (company, name, address, VAT) are pre-configured. No changes are needed unless the target data fields change. Gmail: Update the Gmail node with the recipient email address (xxx@xxx.com) and verify the email subject line formatting. Activate Workflow: Once all credentials and parameters are set, toggle the workflow from active: false to active: true in the n8n editor to start listening for webhook calls. π Subscribe to my new YouTube channel. Here Iβll share videos and Shorts with practical tutorials and FREE templates for n8n. Need help customizing? Contact me for consulting and support or add me on Linkedin.
by Incrementors
Description This workflow automates AI Search Engine Optimization (ASEO) tracking for digital marketing agencies. It tests your client's website visibility across four major AI platformsβChatGPT, Claude, DeepSeek, and Perplexityβusing brand-neutral prompts, analyzes ranking position and presence strength on each platform, identifies top competitors, and returns a structured 27-field scorecard with actionable recommendations. Designed as a sub-workflow, it integrates directly into your existing client audit or reporting pipeline. Key Features Brand-neutral prompt generation (no client name usedβtests true organic AI discoverability) Simultaneous visibility testing across ChatGPT, Claude, DeepSeek, and Perplexity Presence strength scoring (0β100%) per platform Competitor identification across all four AI platforms Strongest and weakest platform detection AI-generated actionable recommendations for improvement Structured 27-field output ready for Google Sheets or database insertion Error handling on all agent nodes (partial results if any platform fails) Sub-workflow designβintegrates cleanly into larger audit pipelines What This Workflow Does Input This workflow is triggered by a parent workflow and receives two parameters: Website**: The client's website URL (e.g., https://example.com) Website Summary**: A plain-text description of what the business does and its core services Processing Stage 1 β Brand-Neutral Prompt Generation GPT-4.1-mini generates a realistic search prompt that potential customers would type into an AI chatbot to find a company like the client. Critically, the prompt does not include the client's brand nameβit focuses on their services and industry instead. For example, for a Los Angeles product photography studio, the prompt would be something like "best product photography studio for Amazon listings in Los Angeles" rather than the studio's name. This tests true organic discoverability, not brand recall. Stage 2 β Four-Platform Sequential Testing The same generated prompt is submitted sequentially to four AI platforms: ChatGPT via GPT-4o-mini Claude via Claude Sonnet 3.7 DeepSeek Perplexity Each platform agent runs independently with error handling enabled. If one platform API is down or throws an error, the workflow continues and returns partial resultsβit does not fail entirely. Stage 3 β Cross-Platform Analysis DeepSeek analyzes all four platform outputs together and produces a structured JSON report covering each platform's ranking (Yes/No), position (1β10 or null), presence strength percentage, key mentions, and top competitors. It also generates an overall summary comparing all platforms. Stage 4 β Data Flattening The nested JSON is flattened into 27 individual fields that can be directly inserted into a Google Sheet row, database, or passed back to the parent workflow for reporting. Output The workflow returns 27 structured data fields: Search prompt used (1 field) Per-platform metrics for ChatGPT, Claude, DeepSeek, Perplexity: Ranking (Yes/No), Position, Presence Strength %, Key Mentions, Top Competitors (5 fields Γ 4 platforms = 20 fields) Overall summary: Total platforms ranking, Average presence strength, Strongest platform, Weakest platform, Main competitors across all platforms, Recommendations (6 fields) Setup Instructions Prerequisites Active n8n instance (self-hosted or n8n Cloud) Parent workflow with Execute Workflow node (this workflow does not run standalone) OpenAI API key (used for prompt generation and ChatGPT testing) Anthropic API key (used for Claude testing) DeepSeek API key (used for DeepSeek testing and final analysis) Perplexity API key (used for Perplexity testing) Estimated setup time: 20β25 minutes Step 1: Understand how this workflow is triggered This is a sub-workflow. It does not have its own schedule trigger. It runs when a parent workflow calls it using n8n's Execute Workflow node. Setting up the parent workflow: Open or create your parent workflow (e.g., a client audit scheduler, a Google Sheets loop, or a manual trigger) Add an Execute Workflow node to your parent workflow Inside the Execute Workflow node: Source: Select "Database" Workflow: Search for and select this AI Search Ranking Analyzer workflow Mode: Choose "Run once for all items" or "Run once for each item" depending on your setup Under Fields, add two parameters to pass: Name: Website | Value: your client's website URL expression (e.g., ={{ $json['Website URL'] }}) Name: Website Summary | Value: your client's business description (e.g., ={{ $json['Business Description'] }}) Example parent workflow structure: Schedule Trigger (Weekly / Monthly) β Read Client List from Google Sheets β Loop Over Each Client β Execute Workflow (this AI Search Ranking Analyzer) Pass: Website = {{ $json['Website URL'] }} Pass: Website Summary = {{ $json['Summary'] }} β Append 27 Fields to Reporting Sheet β Send Report Email or Slack Notification Testing the trigger connection: Open this workflow and click on the Receive Website and Summary from Parent node You will see "Waiting for input from parent workflow..." Go to your parent workflow and click Execute node on the Execute Workflow node The data will flow into this workflow for testing Both workflows must be set to Active for production use Step 2: Connect OpenAI credentials This workflow uses two OpenAI models: GPT-4.1-mini** β used by Generate Brand-Neutral Search Prompts, Parse Prompt as JSON, and GPT Model for Parser Support GPT-4o-mini** β used by Test Visibility on ChatGPT To connect: In n8n go to Credentials β Add credential β OpenAI API Paste your API key from https://platform.openai.com/api-keys Name it clearly (e.g., "OpenAI Main") Open each of these nodes and select your credential: GPT Model for Prompt Generation β select your OpenAI credential, set model to gpt-4.1-mini GPT Model for Parser Support β select your OpenAI credential, set model to gpt-4.1-mini GPT-4o-mini for ChatGPT Test β select your OpenAI credential, set model to gpt-4o-mini Step 3: Connect Anthropic credentials Used by the Test Visibility on Claude agent via Claude Sonnet 3.7 Model. To connect: Go to Credentials β Add credential β Anthropic API Get API key from https://console.anthropic.com/ Open the Claude Sonnet 3.7 Model node and select your credential Verify the model is set to claude-3-7-sonnet-20250219 Step 4: Connect DeepSeek credentials Used by two nodes: DeepSeek Model for Testing (platform test) and DeepSeek Model for Analysis (final summarizer). To connect: Go to Credentials β Add credential β DeepSeek API Get API key from https://platform.deepseek.com/ Open DeepSeek Model for Testing node β select your credential Open DeepSeek Model for Analysis node β select your credential Step 5: Connect Perplexity credentials Used by the Test Visibility on Perplexity node (Perplexity native node, not an AI agent). To connect: Go to Credentials β Add credential β Perplexity API Get API key from https://www.perplexity.ai/settings/api Open the Test Visibility on Perplexity node and select your credential Step 6: Test the complete workflow Temporarily add a Manual Trigger node at the start and connect it to Generate Brand-Neutral Search Prompts (bypass the executeWorkflowTrigger for isolated testing) Set the Manual Trigger to pass test data: { "Website": "https://your-test-site.com", "Website Summary": "A company that provides [your service] in [your city]" } Execute and verify: Generate Brand-Neutral Search Prompts produces a sensible search query Each platform node returns output (or gracefully continues on error) Analyze All Platform Results produces structured JSON Flatten JSON to 27 Data Fields produces all 27 fields correctly Remove the test Manual Trigger once testing is complete Activate this workflow and your parent workflow Workflow Node Breakdown Receive Website and Summary from Parent The entry point of this sub-workflow. Listens for execution from a parent workflow via n8n's Execute Workflow node. Receives two inputs: Website (client URL) and Website Summary (business description text). These values are referenced by subsequent nodes throughout the workflow. Generate Brand-Neutral Search Prompts An AI agent powered by GPT-4.1-mini that creates a realistic search query a potential customer might type into an AI chatbot to find a business like the clientβwithout using the client's brand name. This tests organic discoverability based on services and industry positioning rather than brand recognition. The output is a single focused search prompt. Parse Prompt as JSON A Structured Output Parser that enforces JSON schema {"Prompts": "..."} on the generated prompt. Uses GPT Model for Parser Support as its language model and has autoFix enabled, so malformed outputs are automatically retried and corrected. Test Visibility on ChatGPT An AI agent that submits the generated search prompt to ChatGPT (GPT-4o-mini) and records the response. This captures what ChatGPT currently recommends when users search for services like the client's. Test Visibility on Claude An AI agent powered by Claude Sonnet 3.7 (Anthropic) that receives the same prompt and records Claude's recommendations. Has onError: continueRegularOutput so the workflow continues if Claude's API is unavailable. Test Visibility on DeepSeek An AI agent powered by DeepSeek that tests the same prompt on DeepSeek's platform. Also has onError: continueRegularOutput for resilience. Test Visibility on Perplexity Uses n8n's native Perplexity node (not an AI agent) to submit the prompt to Perplexity's search-augmented AI. Perplexity is particularly important because it uses real-time web search, making its recommendations highly relevant for current visibility. Has onError: continueRegularOutput. Analyze All Platform Results A DeepSeek-powered AI agent that receives all four platform outputs simultaneously along with the client website URL and the original search prompt. It analyzes each platform independentlyβdetermining whether the client appears (Yes/No), at what position (1β10), how strongly (0β100%), how they are mentioned, and which competitors appear. It also generates an overall summary comparing all platforms and provides specific improvement recommendations. Uses Parse Analysis as Structured JSON as its output parser. Flatten JSON to 27 Data Fields A Set node that extracts values from the nested JSON output of the analyzer into 27 flat fields. This makes the data ready for direct insertion into a Google Sheets row, Airtable record, or database tableβor for return to the parent workflow. Output Data Complete A No Operation node marking the successful completion of the workflow. The parent workflow receives all 27 fields as the execution output. Usage Guide Adding clients for analysis In your parent workflow, maintain a Google Sheet with columns: | Client Name | Website URL | Business Description | Last Checked | |---|---|---|---| | Example Corp | https://example.com | A SaaS company that provides... | 2025-01-15 | Your parent workflow reads each row, passes the Website URL and Business Description to this sub-workflow, and writes the 27 returned fields back into the sheet for tracking. Understanding the output After execution, check the Flatten JSON to 27 Data Fields node output. For each platform you get: Ranking:** Yes (client appears) or No (client not mentioned) Position:** Numeric position in the AI's recommendations (1 being top) Presence Strength:** 0β100% measuring how positively and prominently the client is featured Key Mentions:** How the AI described or mentioned the client Ranking Competitors:** Which competitors the AI recommended instead The Overall Summary tells you: How many of 4 platforms are currently ranking your client The average presence strength across all platforms Which platform is your strongest opportunity Which platform needs the most improvement The 3 main competitors appearing consistently Specific recommendations for improving AI discoverability Tracking over time Run this workflow monthly per client. Append results to a Google Sheet with a date column. Track whether presence strength is improving, whether the client appears on more platforms over time, and whether competitors are losing or gaining ground. Customization Options Change the number of platforms: Remove any platform agent node and update the Analyze All Platform Results prompt to exclude that platform's output reference. Add more platforms: Add new AI agent nodes (e.g., Grok, Gemini) between Test Visibility on Perplexity and Analyze All Platform Results. Update the analyzer prompt to include the new platform's output. Generate multiple prompts: Modify Generate Brand-Neutral Search Prompts to produce 3β5 different prompts. Loop through each and aggregate results for more comprehensive testing. Write results directly to Google Sheets: After Flatten JSON to 27 Data Fields, add a Google Sheets Append node in your parent workflow to log each audit automatically. Add email or Slack notifications: After the workflow completes in the parent, add a Send Email or Slack node that formats the key metrics (Overall Ranking, Average Presence Strength, Recommendations) into a readable client report. Adjust presence strength scoring: Modify the Analyze All Platform Results prompt to change how the AI scores presence strengthβfor example, weighting first-position mentions more heavily. Troubleshooting Parent workflow not triggering this workflow Verify both workflows are toggled to Active In the Execute Workflow node, confirm the correct workflow is selected Check that the Mode is set (not left blank) Test by clicking Execute node directly on the Execute Workflow node in the parent Website and Website Summary parameters not passing In the Execute Workflow node, confirm the field names are exactly Website and Website Summary (case-sensitive, space in second parameter) Check the parent workflow is actually passing values, not empty expressions Use the Receive Website and Summary from Parent node's input panel to verify received data One platform returns empty output The workflow continues even if one platform fails (onError: continueRegularOutput is set) Check the specific platform node for the error message Verify API credentials are valid and have available credits Perplexity free tier has strict rate limitsβupgrade plan if hitting limits Structured output parser fails Parse Prompt as JSON has autoFix enabledβit will retry malformed outputs automatically If Parse Analysis as Structured JSON fails, simplify the prompt in Analyze All Platform Results or increase max tokens Check that DeepSeek credentials are active (DeepSeek handles the analysis output parsing) Generated prompt includes client brand name The Generate Brand-Neutral Search Prompts agent prompt instructs GPT to avoid brand names If brand names slip through, add to the system prompt: "Never mention any specific company name, brand, or trademark in the generated prompt" All 27 fields not appearing in output Run the workflow with test data and inspect Analyze All Platform Results node output If a platform returned empty output due to an error, its fields will be null Check that Flatten JSON to 27 Data Fields expressions reference the correct node names Use Cases Digital marketing agencies offering ASEO services: Run monthly AI visibility audits for 20β50 clients from one parent workflow. Generate client reports showing AI platform rankings, presence strength trends, and competitor comparisons. Position ASEO as a premium new service. SEO teams expanding beyond Google: Use this alongside traditional Google ranking reports. Show clients their full search visibility pictureβcovering both Google and the AI chatbots that are increasingly influencing purchase decisions. Competitive intelligence: Run this workflow for your own site and 3β5 competitors simultaneously. Identify which competitors dominate AI recommendations and reverse-engineer their content strategy. Brand monitoring: Track how AI chatbots describe your brand over time. Detect if competitors are gaining ground or if negative associations are appearing in AI responses. New market entry research: Before entering a new market or launching a new service line, test whether your website would appear in AI searches for that service category. Use results to guide content strategy before launch. Expected Results Time savings: 45β60 minutes of manual AI testing per client, eliminated per audit cycle Coverage: 4 major AI platforms tested in a single automated run Output quality: Structured, consistent 27-field data formatβready for Google Sheets, dashboards, or PDF reports Scalability: Process 50+ clients per parent workflow run with no additional manual effort Competitive advantage: One of the first systematic approaches to measuring AI Search Engine Optimization (ASEO)βa space with no established tooling yet For any questions, custom development, or workflow integration support: π§ Email: info@incrementors.com π Website: https://www.incrementors.com/
by Wan Dinie
Automated Malaysian Weather Alerts with Perplexity AI, Firecrawl and Telegram This n8n template automates daily weather monitoring by fetching official government warnings and searching for related news coverage, then delivering comprehensive reports directly to Telegram. Use cases include monitoring severe weather conditions, tracking flood warnings across Malaysian states, staying updated on weather-related news, and receiving automated daily weather briefings for emergency preparedness. Good to know Firecrawl free tier allows limited scraping requests per hour. Consider the 3-second interval between requests to avoid rate limits. OpenAI costs apply for content summarization - GPT-4.1 mini balances quality and affordability. After testing multiple AI models (GPT, Gemini), Perplexity Sonar Pro Search proved most effective for finding recent, relevant weather news from Malaysian sources. The workflow focuses on major Malaysian news outlets like Utusan, Harian Metro, Berita Harian, and Kosmo. How it works Schedule Trigger runs daily at 9 AM to fetch weather warnings from Malaysia's official data.gov.my API. JavaScript code processes weather data to extract warning types, severity levels, and affected locations. Search queries are aggregated and combined with location information. Perplexity Sonar Pro AI Agent searches for recent news articles (within 3 days) from Malaysian news channels. URLs are cleaned and processed one by one through a loop to manage API limits. Firecrawl scrapes each news article and extracts summaries from main content. All summaries and source URLs are combined and sent to OpenAI for final report generation. The polished weather report is delivered to your Telegram channel in English. How to use The schedule trigger is set for 9 AM but can be adjusted to any preferred time. Replace the Telegram chat ID with your channel or group ID. The workflow automatically filters out "No Advisory" warnings to avoid unnecessary notifications. Modify the search query timeout and batch processing based on your API limits. Requirements OpenAI API key (get one at https://platform.openai.com) Perplexity API via OpenRouter (get access at https://openrouter.ai) Firecrawl API key (get free tier at https://firecrawl.dev) Telegram Bot token and channel/group ID Customizing this workflow Expand news sources**: Modify the AI Agent prompt to include additional Malaysian news outlets or social media sources. Language options**: Change the final report language from English to Bahasa Malaysia by updating the "Make a summary" system prompt. Alert filtering**: Adjust the JavaScript code to focus on specific warning types (e.g., only severe warnings or specific states). Storage integration**: Connect to Supabase or Google Sheets to maintain a historical database of weather warnings and news. Multi-channel delivery**: Add more notification nodes to send alerts via email, WhatsApp, or SMS alongside Telegram.
by PollupAI
Who is this for This workflow is designed for Customer Success Managers and Sales Teams who manage high-volume pipelines in HubSpot. If you have prospects who stop responding after the contract is sent, this automation helps you recover them without manual follow-up. What it does This template automatically identifies deals that have "stalled" in your pipeline (specifically in the Contract Sent stage) and initiates a personalized re-engagement sequence. Monitors Pipeline: Runs on a schedule to find deals marked as stalled in HubSpot. Smart Filtering: Identifies all associated contacts for a deal and selects the first available contact. This ensures the email goes to a real person involved in the deal. Spam Prevention: Fetches the Last Contacted date from HubSpot. If there has been any activity (call, email, meeting) in the last 7 days, the workflow skips that contact. This safety gate prevents automation from interfering with active conversations. AI Personalization: Uses GPT-5-mini (via OpenAI) to generate a helpful check-in email. The prompt is context-aware, using the contact's name and deal stage to sound personal rather than generic. Multi-Channel Sync: Sends the approved email via Gmail, alerts the internal team in Slack, and logs the email body to the HubSpot Activity Timeline. How to set up Credentials: Connect your HubSpot, OpenAI, Slack, and Gmail accounts in n8n. Configuration: Open the Config: Setup Variables node and enter your Sender Name, Company Name, and Calendar Link. Slack Channel: Open the Slack: Notify CSM node and select the channel where you want your team to be alerted (e.g., #sales-alerts). HubSpot Settings: By default, this targets the contractsent stage. Ensure your HubSpot pipeline matches this ID. Requirements n8n** (Cloud or Self-hosted) HubSpot** account OpenAI** API Key Gmail* & *Slack** accounts How to customize the workflow Target Different Stages: To re-engage leads in other phases (e.g., "Qualification" or "Onboarding"), open the **HubSpot: Search Stalled Deals node and change the dealstage filter to your desired pipeline stage ID. Adjust the Safety Gate: The workflow blocks emails if there has been contact in the last **7 days. To change this window (e.g., to 30 days for cold leads), open the Filter: Last Activity Check node and edit the time value in the expression. Modify the AI Persona: Open the **AI: Generate Email node to edit the System Prompt. You can adjust the tone (formal vs. casual), lengths constraints, or language to match your brand voice.
by WeblineIndia
AI-Powered News Risk Monitoring & Alert System (Google News + Groq + Gmail) This workflow acts as an automated, proactive monitoring system that separates "market noise" from actual "market risk". Instead of flooding your inbox with every single news mention about a company or topic, it uses artificial intelligence (Llama 3 via Groq) to act as a virtual risk analyst. The AI reviews recent Google News articles, categorizes the risk as Low, Medium or High and only sends you an email alert when the risk is significant (Medium or High). Fast Track Setup Prepare your Data: Create a Google Sheet named "Risk Keywords" and list your target companies or terms under a "Keyword" column. Connect Credentials: Add your Google Sheets, Groq API and Gmail credentials to your n8n instance. Configure Nodes: Select your specific spreadsheet in the "Fetch Risk Keywords" node and update the "Gmail Alert Dispatcher" node with your recipient email address. Run: Trigger the workflow manually to start receiving your filtered risk alerts. What It Does This workflow automates the tedious process of monitoring the news for potential business risks. It begins by fetching a customized list of keywords β such as company names, competitors or industry terms β from a Google Sheet. It then processes these keywords one by one, using an iterator to safely manage the flow of data. For each keyword, the workflow scrapes the top 4 most recent articles from a Google News RSS feed. To ensure the system doesn't overwhelm the AI service with too many requests at once, it introduces a brief 2-second rate-limit delay. Once the news data is collected, an AI Agent uses Llama 3 (via Groq) to read the headline and snippet of each article. The AI is instructed to determine the risk level and provide a one-sentence reason for its decision. The workflow then filters out any "Low" risk news, bundles the "Medium" and "High" risk alerts together, formats them into a clean text summary and emails the final report directly to you. Whoβs It For Investors and Traders:** Who need to monitor sudden negative news about stocks in their portfolio without reading every minor press release. Risk Management Professionals:** Who must keep an eye on supply chain disruptions, regulatory changes or macroeconomic indicators like inflation. Public Relations (PR) Teams:** Who want instant alerts when a client or their own brand is mentioned in a potentially damaging context. Business Owners and Executives:** Who need to monitor competitor struggles or industry shifts that could impact their strategic planning. Requirements to use this workflow To successfully run this workflow, you will need: [An active n8n account](https://n8n.partnerlinks.io/om1efg2qgvwi ). A Google account to create the "Risk Keywords" Google Sheet. Google Sheets credentials configured within n8n. A Groq API key to power the Llama 3 AI analysis. Gmail credentials configured within n8n to send the final alerts. How It Works & Set Up Follow these step-by-step instructions to configure and use the workflow: Set Up the Google Sheet: Create a new Google Sheet and name it exactly "Risk Keywords". In the first tab (Sheet1), create a header row and name the first column "Keyword". Fill the rows below with the terms you want to monitor (e.g., "Tesla", "Nvidia", "Inflation Rate"). Configure n8n Credentials: Go to your n8n credentials page and ensure you have active connections for Google Sheets (OAuth2) and Gmail (OAuth2). Create a new credential for the Groq API and input your secret API key. Adjust the Google Sheets Node: Open the "Fetch Risk Keywords" node. Use the dropdown menus to select your "Risk Keywords" document and "Sheet1". Adjust the AI Node: Open the "Llama 3 (via Groq)" node and ensure your Groq credential is selected. Configure the Email Destination: Open the "Gmail Alert Dispatcher" node. Find the "Send To" field and replace "RECIPIENT_EMAIL_HERE" with your actual email address. How To Customize Nodes Top 4 Articles Filter (Limit Node):** Currently, the workflow only analyzes the top 4 recent articles to save API costs and time. You can open this node and change the maxItems value to 10 or 20 if you want a broader scan. API Rate-Limit Delay (Wait Node):** The workflow pauses for 2 seconds between batches. If you are using a free tier API with strict limits, you can increase this wait time to 5 or 10 seconds. Risk Analysis Agent (Agent Node):** You can open this node to tweak the AI's system message. For example, you can tell the AI to look specifically for "financial risk" or "reputational damage" rather than general risk. Addβons You can easily extend this workflow to make it even more powerful: Schedule Trigger:** Replace the manual "Start" node with a Schedule Trigger to run this scan automatically every morning at 8:00 AM or every hour. Slack or MS Teams Integration:** Instead of sending a Gmail alert, you can swap the Gmail node for a Slack or Microsoft Teams node to push high-risk alerts directly to a company channel. Database Logging:** Add an Airtable or Notion node right before the email dispatcher to keep a historical log of all high-risk events over time. Use Case Examples Here are a few ways this workflow can be utilized in the real world: Supply Chain Monitoring: Add keywords for your key suppliers or global shipping routes (e.g., "Suez Canal disruption"). Get alerted immediately if a medium or high risk threatens your inventory. Competitor Watchlist: Track your top 5 competitors. If a competitor faces a high-risk situation (like a lawsuit or product recall), you are notified and can capitalize on the market shift. PR Crisis Prevention: Input your own brand names and executive names. Catch negative press (high risk) the moment it hits Google News so your team can draft a response quickly. Macroeconomic Tracking: Monitor terms like "interest rate hike", "housing market crash" or "recession". Automatically filter out opinion pieces and only get alerted to high-risk factual reports. (Note: There are countless other use cases for this workflow depending on the keywords and AI prompt you choose!) Troubleshooting Guide | Issue | Possible Cause | Solution | | :--- | :--- | :--- | | Workflow fails at the Groq AI node | API Rate Limits exceeded or invalid API Key. | Check your Groq dashboard to ensure your API key is correct and you haven't hit your rate limit. Increase the wait time in the "API Rate-Limit Delay" node. | | No emails are being sent | All news was categorized as "Low" risk. | This is normal behavior! If you want to test the email, temporarily bypass the "Filter High/Medium Risk" node or add a highly controversial keyword to your sheet. | | Email formatting looks broken | The AI outputted invalid JSON data. | The "Format Alert Email" code node is designed to handle errors. However, to prevent this, you can refine the prompt in the "Risk Analysis Agent" to be stricter about JSON formatting. | | Google Sheets node fails | Incorrect document selected or permissions issue. | Re-authenticate your Google account in n8n credentials and ensure the sheet is exactly named "Risk Keywords". | Need Help? Building and customizing automated workflows can sometimes be tricky, especially when integrating AI and dealing with complex data structures. Whether you need help setting up this exact News Risk Alert workflow, customizing it with the Add-ons mentioned above or building an entirely new automation tailored to your business needs, our n8n workflow developers at WeblineIndia are here to help! Please feel free to contact WeblineIndia for expert assistance.
by isaWOW
Description Connect Fireflies and WayinVideo to this workflow once and every recorded sales call automatically generates a set of training clips delivered to your Slack channel. The moment Fireflies finishes transcribing a call, the workflow takes the video recording, submits it to WayinVideo with your custom search query, waits for processing, and logs every matching clip with its timestamp, score, and description to Google Sheets. Your sales team receives a single Slack message with the top clips, ready to review and use for coaching. Built for sales managers and revenue teams who want a consistent stream of real training moments without manually scrubbing through call recordings. What This Workflow Does Triggers automatically when a call ends** β Fireflies fires the workflow the moment transcription completes, so clips are extracted from every call without any manual step Submits the recording to WayinVideo** β Sends the video URL with your natural language query to the WayinVideo Find Moments API to locate matching moments Polls until processing is complete** β Waits 45 seconds then checks WayinVideo's status repeatedly, retrying up to 20 times over approximately 15 minutes before timing out Sorts clips by relevance score** β Ranks all returned clips from highest to lowest score and keeps only your configured maximum number of top clips Converts timestamps to readable format** β Transforms raw millisecond timestamps into MM:SS format so your team can jump straight to the right moment in the recording Logs every clip to Google Sheets** β Appends one row per clip with date, meeting title, clip number, start and end time, duration, score, tags, and description Sends one Slack alert after all clips are saved** β Posts a formatted breakdown to your sales training channel exactly once after all rows are logged, never once per clip Setup Requirements Tools Needed n8n instance (self-hosted or cloud) Fireflies.ai account with webhook access and video recording enabled WayinVideo account with API access Google Sheets (one sheet with a tab named Sales Training Clips) Slack workspace with OAuth2 app configured Credentials Required Fireflies API key (pasted into 2. Set β Config Values) WayinVideo API key (pasted into 2. Set β Config Values) Google Sheets OAuth2 Slack OAuth2 Estimated Setup Time: 15β20 minutes Step-by-Step Setup Import the workflow β Open n8n β Workflows β Import from JSON β paste the workflow JSON β click Import Activate the workflow and copy the webhook URL β Toggle the workflow to Active β click on node 1. Webhook β Fireflies Transcript Done β copy the Production URL shown Register the webhook in Fireflies β Log in to app.fireflies.ai β Settings β Developer Settings β Webhooks β paste the webhook URL β save Get your Fireflies API key β In Fireflies, go to Settings β Integrations β Fireflies API β copy your API key Get your WayinVideo API key β Log in to your WayinVideo account β go to API settings or your account dashboard β copy your API key Fill in Config Values β Open node 2. Set β Config Values β replace all placeholders: | Field | What to enter | |---|---| | YOUR_FIREFLIES_API_KEY | Your Fireflies API key from step 4 | | YOUR_WAYINVIDEO_API_KEY | Your WayinVideo API key from step 5 | | YOUR_GOOGLE_SHEET_ID | The ID from your Google Sheet URL (the string between /d/ and /edit) | | Sales Training Clips | Leave as-is, or change to match your sheet tab name exactly | | #sales-training | Your Slack channel name including the # | | findMomentsQuery | Your natural language search query β default is objection handling and rebuttal moments β change to match what you want to extract (e.g. pricing discussion moments or closing technique moments) | | maxClips | Leave as 3 or change to a higher number to extract more clips per call | > β οΈ findMomentsQuery should use 4β6 descriptive words for best WayinVideo results β very short queries may return no results. Create your Google Sheet tab β Open your Google Sheet β add a tab named exactly Sales Training Clips β add these 11 column headers in row 1: Date, Meeting Title, Clip #, Clip Title, Start, End, Duration (sec), Score, Tags, Description, Logged At Connect Google Sheets β Open node 14. Google Sheets β Log Training Clips β click the credential dropdown β add Google Sheets OAuth2 β sign in with your Google account β authorize access Connect Slack β Open node 16. Slack β Send Training Clips Alert β click the credential dropdown β connect your Slack workspace via OAuth2 β invite the n8n bot to your sales training channel (/invite @n8n) Activate the workflow β Confirm the workflow is Active β Fireflies will now fire it automatically after every recorded sales call How It Works (Step by Step) Step 1 β Webhook: Fireflies Transcript Done This step listens for a signal from Fireflies. Every time a meeting finishes transcribing, Fireflies sends a request to this webhook URL containing the meeting ID. No manual trigger is needed β it fires automatically after every recorded call. Step 2 β Set: Config Values Your Fireflies API key, WayinVideo API key, Google Sheet ID, sheet tab name, Slack channel, Find Moments query, max clips setting, and the meeting ID from the webhook are all stored here. The meeting ID is extracted automatically from all possible Fireflies payload formats. Step 3 β HTTP: Fetch Transcript A request is sent to the Fireflies API using your API key and the meeting ID. It retrieves the meeting title, date, duration, participants, transcript URL, and β most importantly β the video_url and audio_url fields for the recording. Only metadata is fetched, not full transcript sentences. Step 4 β Code: Extract Video URL This step checks for a video URL first, then falls back to an audio URL if no video is available. If neither is present, the workflow throws an error and stops cleanly β WayinVideo requires a media URL to process. The meeting metadata is also cleaned and formatted here for use in the sheet and Slack message. Step 5 β HTTP: Submit Find Moments Task The recording URL and your natural language query are submitted to the WayinVideo Find Moments API. The project name is set automatically using the meeting title. WayinVideo returns a project ID confirming the job was accepted and processing has started. Step 6 β Code: Save Project ID The project ID returned by WayinVideo is saved along with all the meeting metadata. A poll counter is initialized at zero β this counter tracks how many times the workflow has checked the status and enforces the 20-poll timeout. Step 7 β Wait: 45 Seconds The workflow pauses for 45 seconds before checking the WayinVideo status for the first time. This initial wait gives WayinVideo time to begin processing before the first poll. Step 8 β HTTP: Poll Find Moments Results A GET request is sent to the WayinVideo results endpoint using the project ID. It returns the current processing status and, once complete, the full list of matched clips with their timestamps, scores, titles, descriptions, and tags. Step 9 β Code: Check Status The poll counter is incremented and the status is evaluated. If the status is SUCCEEDED, the isReady flag is set to true and the workflow moves forward. If the status is FAILED, the workflow throws an error with the failure message and stops. If the status is anything else (still processing), the workflow continues to the next check. If the poll counter reaches 20 without a SUCCEEDED status (approximately 15 minutes), the workflow throws a timeout error and stops. Step 10 β IF: Processing Complete? This is the retry gate. If isReady is true (YES path β processing is done), the workflow moves forward to extract and log the clips. If isReady is false (NO path β still processing), the workflow routes to 11. Set β Still Processing which loops back to 7. Wait β 45 Seconds for another cycle. Step 11 β Set: Still Processing This step handles the not-yet-complete case. It sets a brief in-progress message and the loop continues back to the wait step for another 45-second pause before the next poll. Step 12 β Code: Process Clips All clips returned by WayinVideo are sorted by relevance score from highest to lowest. The top clips up to your maxClips limit are kept. Each clip's millisecond timestamps are converted to MM:SS format for easy reading. Sheet rows are assembled for each clip and the full Slack message is built β including meeting title, date, duration, the query used, total clips found, and a numbered clip breakdown with timestamps, duration, score, and a short description. Step 13 β Code: Split Rows for Sheets The clips array is converted into individual items β one per clip β so each can be written to Google Sheets as a separate row. An isLastRow flag is set to true only on the final clip, which controls when the Slack alert fires. Step 14 β Google Sheets: Log Training Clips Each clip is appended as one row to your Sales Training Clips tab. All 11 columns are populated: date, meeting title, clip number, clip title, start time, end time, duration in seconds, relevance score, tags, description, and logged-at timestamp. Step 15 β IF: Last Clip Logged? After each row is written, this check reads the isLastRow flag. If true (YES path β this was the final clip), the Slack alert fires. If false (NO path β more clips still need logging), the workflow routes to 17. Set β More Clips and the loop continues to the next clip row. Step 16 β Slack: Send Training Clips Alert Once all clips are logged, one formatted Slack message is posted to your sales training channel. It shows the meeting title, date, duration, the query used, total clips found, and a numbered breakdown of each clip with timestamps, duration, score, and a short description. Step 17 β Set: More Clips This step handles non-final clips during the logging loop. It sets a brief in-progress message and the loop continues to the next clip. Key Features β Natural language clip search β You describe what you want to find in plain English and WayinVideo locates the matching moments β no manual scrubbing through recordings β Retry loop with hard timeout β The workflow polls every 45 seconds for up to 20 attempts (approximately 15 minutes) before stopping β long calls never hang indefinitely β Clips ranked by relevance score β Results are sorted by WayinVideo's confidence score so your top clip is always the most relevant match to your query β MM:SS timestamps for every clip β Raw millisecond data is converted to human-readable timestamps so anyone on the team can jump straight to the right moment β Slack fires exactly once β The isLastRow flag ensures your sales team receives one clean notification after all clips are logged, never one message per clip β Video URL preferred, audio fallback β The workflow uses the video recording when available and falls back to audio automatically β no manual configuration per meeting type β Per-clip Google Sheets logging β Each clip gets its own row with score, tags, timestamps, and description β your sheet becomes a searchable training library over time β Customizable query per workflow instance β Change findMomentsQuery once in Config Values and every future call is analyzed against your chosen training focus Customisation Options Change the training focus β In node 2. Set β Config Values, update findMomentsQuery to match whatever you want to extract β for example pricing and discount discussions, discovery questions about pain points, or closing and next steps conversations to build different training clip libraries. Increase the number of clips per call β In node 2. Set β Config Values, change maxClips from 3 to 5 or 10 to capture more moments per recording β useful for longer calls or when you want a broader set of examples per session. Reduce the polling wait time for faster calls β In node 7. Wait β 45 Seconds, change the wait duration to 30 for shorter recordings that WayinVideo processes faster, or increase to 60 for very long calls to reduce unnecessary API calls. Add a Slack alert when no clips are found β In node 12. Code β Process Clips, the workflow currently throws an error if clips is empty β instead you can change this to return a noClips: true flag and add an IF check that posts a brief Slack message noting no matching moments were found for this call. Log clips to a different sheet per month β In node 2. Set β Config Values, make sheetName dynamic by appending the current month (e.g. Sales Training Clips β April 2026) so clips are automatically organized into monthly tabs without any manual file management. Troubleshooting Workflow not triggering when a call ends: Confirm the workflow is Active β inactive workflows do not receive Fireflies webhooks Log in to app.fireflies.ai β Settings β Developer Settings β Webhooks β confirm the URL matches the Production URL from node 1. Webhook β Fireflies Transcript Done exactly Fireflies only fires webhooks for meetings where you are the organizer and where the bot was invited to record β calls without the bot will not have a video URL WayinVideo returning no project ID or auth error: Confirm YOUR_WAYINVIDEO_API_KEY in node 2. Set β Config Values is replaced with your actual key β not the placeholder text Check the execution log of node 5. HTTP β Submit Find Moments Task for the exact API error response Confirm the findMomentsQuery uses 4β6 descriptive words β very short single-word queries may be rejected or return empty results Polling loop running too long or timing out: If the loop exceeds 20 polls, it stops with a timeout error β check the WayinVideo dashboard to see if the job is still processing or failed on their end For very long recordings (over 60 minutes), consider increasing the wait in node 7. Wait β 45 Seconds to 90 seconds to reduce the chance of timeout on a tight poll budget Check node 9. Code β Check Status execution log to see the current status value returned on each poll Google Sheets not logging rows: Confirm the Google Sheets OAuth2 credential in node 14. Google Sheets β Log Training Clips is connected and not expired Check that YOUR_GOOGLE_SHEET_ID in node 2. Set β Config Values is the ID from the sheet URL, not the full URL Confirm the tab is named Sales Training Clips exactly β capitalization must match sheetName in Config Values Verify all 11 column headers in row 1 match exactly: Date, Meeting Title, Clip #, Clip Title, Start, End, Duration (sec), Score, Tags, Description, Logged At Slack alert not arriving after clips are logged: Confirm the Slack OAuth2 credential in node 16. Slack β Send Training Clips Alert is connected and authorized Check that #sales-training in node 2. Set β Config Values includes the # prefix and matches your channel name exactly Type /invite @n8n in the channel to ensure the bot has posting permission Check the isLastRow value in the execution log of node 15. IF β Last Clip Logged? β if it never reaches true, the clips array may have had only one clip that was not marked as last correctly Support Need help setting this up or want a custom version built for your team or agency? π§ Email: info@isawow.com π Website: https://isawow.com/
by Milo Bravo
Email Lead Router: Gmail β Gemini β Salesforce Pipeline Who is this for? Event sales teams & conference organizers processing 100+ sponsor/partner emails weekly who need instant lead qualification, Salesforce automation, & pipeline analytics. What problem is this workflow solving? Event email chaos kills revenue: 200+ sponsor emails/week β manual Salesforce entry No sentiment/intent scoring = missed $ opps 10+ hours/week routing + logging Fragmented pipeline visibility Zero-drop AI qualification β auto-Salesforce β team routing. What this workflow does Gmail Trigger captures event inbox emails Gemini #1 scores sentiment (Positive/Neutral/Negative + confidence) Gemini #2 extracts topic, intent, urgency (1-10), org, budget signals Upserts Salesforce Lead (deduped by email) w/ 9 custom fields: Sentiment__c, Urgency_Score__c, etc. Hot leads (Positive + urgency β₯7) β auto Salesforce Opportunity Creates Salesforce Task w/ AI-suggested follow-up action Logs to email_analytics Data Table + Google Sheets (Looker Studio dashboard) Routes: Positive β Hot email + Slack #hot-leads (2h); Neutral β Follow-up + #follow-ups (24h); Negative β Insights + #insights Setup (8 minutes): Gmail OAuth2 (event inbox) Google Gemini API Salesforce OAuth2* + *9 custom Lead fields** (Sentiment__c, Urgency_Score__c, etc.) Slack OAuth2 + channels (#hot-leads, #follow-ups, #insights) email_analytics Data Table ID Update Send Email recipients Test w/ Evaluation Dataset How to customize: Tune urgency threshold (7β8) Add event keywords (webinar/tradeshow) Swap Slack β Teams; Salesforce β HubSpot Multi-inbox territory routing ROI: 100% Salesforce coverage** (no manual entry) 8x faster qualification** (2min vs 16h/week) 30% opp velocity** (auto opps/tasks) Live Looker dashboard** β data-driven decisions Need help customizing?: Contact me for consulting and support: LinkedIn / Message Keywords: event sales leads, Salesforce automation, Gemini lead scoring, email sentiment, sales pipeline n8n, AI sales routing
by Θugui DragoΘ
This workflow is a comprehensive, production-grade automation for B2B lead management and multichannel outreach, designed for Sales Development Representatives (SDRs), growth teams, and sales operations. It covers the entire SDR pipeline: from lead ingestion and validation, through enrichment, scoring, AI-powered outreach, reply handling, analytics, and reporting. Key Features: Lead validation (email, suppression, geo/GDPR) Multi-source data enrichment Lead scoring and tiering (HIGH/MEDIUM/LOW) AI-generated personalized cold emails (with A/B subject testing) Multichannel outreach (Email, LinkedIn, WhatsApp) with rate limiting and compliance AI-based reply simulation and intent classification Automated routing (qualification, follow-up, manual review) Full event logging to database Aggregated analytics and daily reporting Human-readable AI summary and Slack notifications What This Workflow Does 1. Lead Ingestion & Validation Loads leads from a source (test data, CRM, webhook, etc.) Validates email format and checks against suppression lists (blocked domains/emails) Applies geo and GDPR compliance logic (blocks/flags leads from restricted countries) 2. Data Enrichment Enriches each lead via one or more external APIs (company info, tech stack, revenue, etc.) Handles enrichment failures gracefully and logs them for analytics 3. Lead Scoring & Segmentation Scores leads based on industry, country, company size, revenue, and pain points Segments leads into HIGH, MEDIUM, or LOW tiers for tailored outreach 4. AI-Powered Outreach Generation Uses OpenAI (or compatible LLM) to generate personalized cold email content Creates A/B tested subject lines for each email Generates LinkedIn and WhatsApp message variants for multichannel outreach 5. Multichannel Outreach Execution Sends emails via SMTP (with rate limiting and quiet hours) Simulates LinkedIn and WhatsApp sends (can be replaced with real integrations) Logs all outreach events to a Postgres database 6. Reply Simulation & AI Classification Simulates a variety of lead replies (interested, not interested, follow-up, unclear) Uses AI to classify reply intent and suggest next actions 7. Automated Routing & Follow-up Routes leads based on AI classification: Interested: Schedules meeting, logs qualification, proposes follow-up Follow-up Later: Schedules future follow-up Not Interested: Marks as closed/lost Unclear: Flags for manual review and notifies team via Slack 8. Event Logging & Analytics Logs every significant event (enrichment, outreach, reply, status change) to a database Aggregates results by lead score, channel, and status Calculates key metrics (qualification rate, enrichment success, multichannel rate, etc.) 9. Reporting & Team Notification Generates a daily analytics row and stores it in the database Uses AI to create a human-readable summary of the run Posts a detailed summary to a Slack channel Use Cases Automated SDR Workflows:** Replace manual lead research, outreach, and follow-up with a fully automated, auditable process. Growth Experiments:** Run A/B tests on messaging, subject lines, and channels at scale. Sales Analytics:** Get transparent, granular reporting on every step of the SDR funnel. Compliance-First Outreach:** Ensure all outreach respects geo, GDPR, and suppression rules. AI-Driven Personalization:** Use LLMs to generate highly relevant, non-generic outreach at scale. Installation & Setup 1. Import the Workflow Download or copy the workflow from the n8n Template Store. In your n8n editor, click Import and paste the workflow JSON, or use the "Use Template" button. 2. Configure Required Credentials Postgres:** Set up a Postgres credential for event and analytics logging. SMTP:** Add your email provider's SMTP credentials for sending emails. OpenAI:** Add your OpenAI API key for AI-powered nodes. Slack:** Add your Slack API credential for notifications. Enrichment APIs:** Add credentials for any external enrichment APIs you use. 3. Customize Lead Source Replace the test data in the Load Test Leads node with your real lead source (e.g., webhook, CRM, Google Sheets, etc.). 4. Adjust Compliance & Suppression Logic Update the suppression lists and geo/GDPR logic in the relevant nodes to match your organization's requirements. 5. Review Multichannel Logic The workflow simulates LinkedIn and WhatsApp sends. Replace these with real integrations if needed. 6. Database Preparation Ensure your Postgres database has the following tables (or adjust node configs): lead_events (for all event logs) analytics_daily (for daily summary rows) meetings (for scheduled meetings) execution_runs (for workflow run metadata) 7. Test the Workflow Run the workflow manually with sample data. Check the database and Slack for logs and notifications. Review AI-generated content for tone and compliance. Configuration Details Rate Limiting:** Email, LinkedIn, and WhatsApp sends are rate-limited and respect quiet hours. A/B Testing:** Each email uses a randomly selected subject variant for ongoing optimization. AI Models:** Uses OpenAI GPT-4o-mini by default; can be swapped for other models. Event Logging:** Every action (enrichment, outreach, reply, status change) is logged with timestamp and payload for full traceability. Analytics:** Aggregates by lead score, channel, and status; calculates rates and averages. Slack Notifications:** Posts a summary of each run, including key metrics and AI-generated insights. Advanced Customization Add/Replace Enrichment APIs:** Plug in any HTTP-based enrichment service. Custom Lead Scoring:** Adjust the scoring logic in the Compute Lead Score node to fit your ICP. Custom AI Prompts:** Edit the system messages in AI nodes for your brand voice. Additional Channels:** Integrate SMS, phone, or other channels as needed. Webhook Triggers:** Replace manual trigger with webhook for real-time automation. Requirements n8n version 1.123.0 or later Postgres database (or adapt for your DB) SMTP email provider OpenAI API key (or compatible LLM) Slack workspace (for notifications) (Optional) Enrichment API keys Template Store Submission Notes All credentials are handled via n8n's credential system (no hardcoded secrets). The workflow is modular, well-commented, and ready for production use. All event and analytics logging is auditable and GDPR-compliant. Please review and test all integrations in your environment before using in production. Example Analytics Output | Metric | Value | |-----------------------|---------| | Total Leads | 100 | | Qualified | 22 | | Follow-up Scheduled | 15 | | Closed Lost | 40 | | Manual Review | 3 | | Qualification Rate | 22% | | Enrichment Success | 90% | | Multichannel Rate | 60% | Ready to automate your SDR pipeline? Import this workflow and start scaling your B2B outreach today!
by θεη΄δΉ
Workflow Overview Zoom Attendance Evaluator with Follow-up is an n8n automation workflow that automatically evaluates Zoom meeting attendance and sends follow-up emails to no-shows and early leavers with recordings and materials. Who's it for Companies and organizations that regularly host online seminars and webinars Educational institutions conducting online classes Anyone looking to streamline participant attendance management and follow-up processes How it works Scheduled execution: Runs automatically every hour Fetch meeting data: Retrieves recent Zoom meetings and participant information Evaluate attendance: Automatically classifies participants into four categories: No-show: 0 minutes attended Early-leaver: Less than 50% attendance Partial attendance: 50-80% attendance Full attendance: Over 80% attendance Automatic follow-up: Sends automated emails with recording links and materials to no-shows and early leavers Record keeping: Logs all follow-ups to Google Sheets for tracking Requirements Zoom account: OAuth2 authentication setup required SMTP email server: Configuration needed (Gmail, SendGrid, etc.) Google Drive: For storing handout materials Google Sheets: For attendance logging Credentials for each service configured in n8n How to customize the workflow Adjust attendance thresholds: Modify the 50% and 80% values in the "Evaluate Attendance" node code Change execution frequency: Configure the time interval in the "Schedule Trigger" node Customize email template: Edit subject and body in the "Prepare Email Data" node Next session registration link: Replace the placeholder URL in the code with your actual registration link This workflow completely automates post-meeting follow-up tasks, helping improve participant engagement and reduce manual work.
by Rahul Joshi
Description Automatically capture customer onboarding help requests from Typeform, log them in Google Sheets, validate email addresses, and send a professional HTML welcome email via Gmail. Ensures smooth onboarding communication with audit-ready tracking and error handling. ππ§ What This Template Does Monitors Typeform submissions for new onboarding help requests. π₯ Logs all responses into Google Sheets with structured fields. π Validates email addresses to prevent errors. β Generates professional HTML welcome emails with company branding. π¨ Sends onboarding emails directly via Gmail. π§ Handles missing or invalid emails with error logging. β οΈ Key Benefits Streamlines customer onboarding request handling. β±οΈ Creates a centralized log for analytics and audits. π§Ύ Improves customer experience with branded email communication. π‘ Reduces manual effort in follow-up and data entry. π Ensures reliable handling of incomplete or invalid submissions. π‘οΈ Features Typeform trigger for new form submissions. π Automatic Google Sheets logging of customer details. π Conditional email validation before sending. π Dynamic HTML email generation with customer details. π¨ Automated Gmail delivery of welcome emails. π§ Error handling node for missing/invalid email submissions. π¨ Requirements n8n instance (cloud or self-hosted). Typeform API credentials with webhook permissions. Google Sheets OAuth2 credentials with spreadsheet write access. Gmail OAuth2 credentials with send email permissions. Pre-configured Google Sheet for onboarding request tracking. Target Audience Customer success and onboarding teams. π©βπ» SaaS startups managing onboarding inquiries. π Support teams handling product/service onboarding. π οΈ SMBs looking for efficient onboarding automation. π’ Remote teams needing structured onboarding workflows. π Step-by-Step Setup Instructions Connect Typeform, Google Sheets, and Gmail credentials in n8n. π Insert your Typeform form ID in the trigger node. π Replace the Google Sheet ID with your tracking sheet. π Map form fields to spreadsheet columns (ensure headers match). π Customize email HTML template with branding and company info. π¨ Update sender email in the Gmail node. π§ Test the workflow with a sample form submission. β
by Nirav Gajera
π€ AI Resume Screener β Google Forms to Automated Shortlisting & Email Automatically score every job application with AI, update your tracking sheet, and send personalised emails to candidates β all without human review. π Description This workflow automates your entire first-round resume screening process. When a candidate submits your Google Form application, the workflow triggers, extracts their details, scores them against the job description using AI, writes the results back to your Google Sheet, and sends the right email β a congratulations to shortlisted candidates, a polite rejection to others. Your HR team only reviews candidates the AI has already scored 7 or above. Built for companies hiring across multiple roles simultaneously, HR teams wanting to reduce screening time, and startups with no dedicated recruiting staff. β¨ Key Features Google Sheets Trigger** β fires automatically when a new application row is added Duplicate prevention** β tracks processed rows with a Processed column, never scores the same application twice Multi-role support** β built-in Job Description map for 5 roles, easily extendable AI scoring 1β10** β Google Gemini scores each candidate against the JD with strengths, weaknesses, recommendation Direct sheet write via API** β writes score + grade + status to exact row using Google Sheets API Smart email routing** β score β₯ 7 β shortlisted (HR alert + candidate email), score < 7 β rejection email Rate limit protection** β Wait node between HR alert and candidate email prevents SMTP throttling Robust AI parsing** β 3-layer fallback ensures AI output always produces a usable result π How It Works New Google Form submission β Google Sheets Trigger (rowAdded, polls every minute) β Read All Rows β Filter Unprocessed Rows (col_18 / Processed β 1) β Extract Fields + Load Job Description β name, email, phone, position, experience, skills, cover note β loads matching JD from built-in map β AI Resume Scorer (Google Gemini) β score: 1β10 β grade: Strong Yes / Maybe / No β strengths, weaknesses, recommendation, summary β Parse AI Output (3-layer fallback) β Build Sheet Request β Write to Sheet via API β writes score, grade, strengths, weaknesses, recommendation, summary, status, timestamp, Processed=1 β Score β₯ 7? β YES β Alert Email to HR + Wait 10s β Shortlist Email to Candidate β NO β Rejection Email to Candidate π€ AI Scoring System The AI scores each candidate from 1 to 10 against the job description: | Score | Grade | Action | | :---: | :--- | :--- | | 8β10 | Strong Yes | Shortlisted β | | 7 | Strong Yes / Maybe | Shortlisted β | | 5β6 | Maybe | Rejected β | | 1β4 | No | Rejected β | For each application the AI also provides: Strengths** β what the candidate does well vs the JD Weaknesses** β gaps or concerns Recommendation** β e.g. "Invite for technical interview" Summary** β 2β3 sentence overall assessment π Built-in Job Descriptions Five roles are pre-configured and auto-matched by position name: | Role | Key Requirements | | :--- | :--- | | Frontend Developer | 2+ yrs React/Vue, HTML/CSS/JS, REST APIs, Git | | Backend Developer | 2+ yrs Node.js/Python/Java, PostgreSQL/MongoDB, Docker | | UI/UX Designer | 2+ yrs UI/UX, Figma or Adobe XD, portfolio | | Project Manager | 3+ yrs PM, PMP/Scrum preferred, Jira/Asana | | Digital Marketing Executive | 2+ yrs digital marketing, Google Ads, Meta Ads, GA4 | Add more roles by editing the JD_MAP object in the Extract Fields + Load JD node. π§ Email Templates Shortlist Email (to candidate) Subject: Congratulations [Name] - You have been shortlisted! Navy blue header Score table (score/10, grade, position, experience, skills) Strengths highlighted in green AI assessment in blue Promise: HR contacts within 2 business days HR Alert Email (internal) Subject: Strong Candidate - [Name] for [Position] Amber header β urgent feel Full candidate details + complete AI breakdown Strengths, weaknesses, recommendation, summary all included Rejection Email (to candidate) Subject: Your application for [Position] - Update Grey header β professional and neutral Polite decline with encouragement No score or feedback shared π Setup Requirements 1. Google Form Create a Google Form with these fields: | Field | Type | | :--- | :--- | | Full Name | Short answer | | Email Address | Short answer | | Phone Number | Short answer | | Select the Position You Are Applying For | Dropdown | | Years of Experience | Short answer | | Relevant Skills | Long answer | | Cover Note | Long answer | Link the form to a Google Sheet (Responses tab). 2. Google Sheet β Response Sheet Columns The form creates columns AβH automatically. Add these columns manually for AI results: | Col | Header | Filled by | | :---: | :--- | :--- | | A | Timestamp | Google Forms | | B | Select the Position... | Google Forms | | C | Full Name | Google Forms | | D | Email Address | Google Forms | | E | Phone Number | Google Forms | | F | Years of Experience | Google Forms | | G | Relevant Skills | Google Forms | | H | Upload CV | Google Forms | | I | Cover Note | Google Forms | | J | AI Score | This workflow | | K | Grade | This workflow | | L | Strengths | This workflow | | M | Weaknesses | This workflow | | N | Recommendation | This workflow | | O | Summary | This workflow | | P | Status | This workflow | | Q | Processed At | This workflow | | R | Processed | This workflow (1 = done) | > Important: The workflow uses column R (Processed) to track which rows have been scored. Rows where R = 1 are skipped on subsequent triggers. 3. Credentials Required | Credential | Used for | Free? | | :--- | :--- | :--- | | Google Sheets Trigger OAuth2 | Detects new rows | Free | | Google Sheets OAuth2 | Read rows + write results | Free | | Google Gemini (PaLM) API | AI resume scoring | Free tier available | | SMTP | Sending emails | Depends on provider | 4. Update Sheet ID In the Read All Rows and Write to Sheet via API nodes, replace the Sheet ID with your own: https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/... 5. Update Email Addresses In all three email nodes, update: fromEmail β your HR sending address HR alert toEmail β your internal HR inbox SMTP credential β your email provider βοΈ Workflow Nodes | Node | Type | Purpose | | :--- | :--- | :--- | | Google Sheets Trigger | Trigger | Fires on new row (polls every minute) | | Read All Rows | Google Sheets | Reads all form responses | | Filter Unprocessed Rows | Code | Skips rows where Processed = 1 | | Extract Fields + Load JD | Code | Extracts candidate data + matches JD | | AI Resume Scorer | AI Agent | Scores candidate vs JD using Gemini | | Google Gemini Chat Model | LLM | AI model for scoring | | Parse AI Output | Code | Parses JSON with 3-layer fallback | | Build Sheet Request | Code | Prepares API write request for exact row | | Write to Sheet via API | HTTP Request | Writes results to columns JβR | | Score β₯ 7? | IF | Routes by score | | Alert Email - HR Team | Email Send | Notifies HR of strong candidates | | Wait 10s | Wait | Prevents SMTP rate limiting | | Shortlist Email - Candidate | Email Send | Congratulations to shortlisted | | Rejection Email - Candidate | Email Send | Polite rejection to others | π Key Technical Details Why HTTP Request for sheet write instead of Google Sheets node? The standard Google Sheets node cannot reliably write to a specific row by row number. Using the Sheets API PUT values/{range} endpoint writes to the exact cell range Form responses 1!J{rowNum}:R{rowNum} β always the correct row regardless of concurrent submissions. Why Read All Rows then Filter instead of reading one row? The Google Sheets Trigger fires on rowAdded but may not pass the exact new row data reliably. Reading all rows and filtering by Processed β 1 is more reliable and handles backlog processing too. The Processed column (R) Set to 1 after scoring completes. This prevents re-processing if the trigger fires again before the workflow finishes, or if old unprocessed rows exist. 3-layer AI output fallback: Direct JSON parse Strip markdown fences then parse Regex extract JSON block Default values if all fail (score: 5, grade: Maybe) π Sample Sheet Output After Scoring Col J (AI Score): 8 Col K (Grade): Strong Yes Col L (Strengths): 3+ yrs React experience; Strong TypeScript skills; Relevant API work Col M (Weaknesses): No Docker experience mentioned; No TypeScript explicitly listed Col N (Recommendation): Invite for technical interview Col O (Summary): Strong frontend candidate with solid React/Vue background. Experience aligns well with role requirements. Minor gaps in DevOps knowledge. Col P (Status): Shortlisted Col Q (Processed At): 2026-03-18T10:30:00.000Z Col R (Processed): 1 π§ Customisation Add more roles: Edit the JD_MAP object in Extract Fields + Load JD: const JD_MAP = { 'Your New Role': 'ROLE: ... REQUIREMENTS: ...', // add as many as needed }; Change the score threshold: In the Score β₯ 7? IF node, change rightValue: 5 to any number. Setting to 8 makes the bar higher (only Strong Yes candidates shortlisted). Add a second HR alert channel: After the HR Alert Email, add a Slack or Telegram node to ping your team instantly for high-scoring candidates. Add calendar booking link: Include a Calendly link in the shortlist email so candidates can self-schedule interviews immediately. Extend with CV parsing: Add a Google Drive node before the AI scorer to download the CV attachment, extract text, and include it in the AI prompt for more accurate scoring. β οΈ Important Notes The Google Sheets Trigger polls every minute β there may be up to a 1-minute delay after form submission before scoring begins The Processed column must exist in your sheet (column R) before activating the workflow Trailing spaces in Google Forms column headers are common β the key.trim() normalization in the code handles this automatically The Wait node between HR alert and shortlist email is intentional β prevents hitting SMTP rate limits when processing multiple candidates π‘ Enhancement Ideas CV download + parse** β download Google Drive CV attachment and include content in AI scoring Calendly integration** β auto-create interview slot and include booking link in shortlist email Slack alert** β instant Slack message to hiring manager for score β₯ 9 candidates Airtable sync** β mirror all candidate data to an Airtable CRM for pipeline tracking Telegram bot** β let HR check candidate status by texting a bot with the candidate email Multi-stage pipeline** β add a second workflow that triggers when HR marks a candidate for second round π¦ Requirements Summary n8n (cloud or self-hosted) Google Workspace account (Forms + Sheets) Google AI Studio account for Gemini API key (free tier available) SMTP email account (Gmail, SendGrid, Mailtrap etc.) Built with n8n Β· Google Gemini AI Β· Google Forms Β· Google Sheets Β· SMTP
by Jitesh Dugar
Workshop Certificate Pre-Issuance System π―Description Transform your event registration process with this comprehensive automation that eliminates manual certificate creation and ensures only verified attendees receive credentials. β¨ What This Workflow Does This powerful automation takes workshop/event registrations from Jotform and: Validates Email Addresses - Real-time verification using VerifiEmail API to prevent bounced emails and spam registrations Generates Professional PDF Certificates - Creates beautifully designed certificates with attendee name, event details, and unique QR code Saves to Google Drive - Automatically organizes all certificates in a dedicated folder with searchable filenames Sends Confirmation Emails - Delivers professional HTML emails with embedded certificate preview and download link Maintains Complete Records - Logs all successful and failed registrations in Google Sheets for reporting and follow-up π― Perfect For Workshop Organizers** - Pre-issue attendance confirmations Training Companies** - Automate enrollment certificates Conference Managers** - Streamline attendee credentialing Event Planners** - Reduce check-in time with QR codes Educational Institutions** - Issue course registration confirmations Webinar Hosts** - Send instant confirmation certificates π‘ Key Features π Email Verification Validates deliverability before issuing certificates Detects disposable/temporary emails Prevents spam and fake registrations Reduces bounce rates to near-zero π¨ Beautiful PDF Certificates Professional Georgia serif design Customizable colors and branding Unique QR code for event check-in Unique certificate ID for tracking Print-ready A4 format π§ Professional Email Delivery Mobile-responsive HTML design Embedded QR code preview Direct link to Google Drive PDF Branded confirmation message Event details and instructions π Complete Tracking All registrations logged in Google Sheets Separate tracking for failed validations Export data for check-in lists Real-time registration counts Deduplication by email β‘ Lightning Fast Average execution: 15-30 seconds Instant delivery after registration No manual intervention required Scales automatically π§ Technical Highlights Conditional Logic** - Smart routing based on email validity Data Transformation** - Clean formatting of form data Error Handling** - Graceful handling of invalid emails Merge Operations** - Combines form data with verification results Dynamic QR Codes** - Generated with verification URLs Secure Storage** - Certificates backed up in Google Drive π¦ What You'll Need Required Services: Jotform - For registration forms VerifiEmail API - Email verification service Google Account - For Gmail, Drive, and Sheets HTMLCSStoPDF - PDF generation service Estimated Setup Time: 20 minutes π Use Cases Workshop Series Issue certificates immediately after registration Reduce no-shows with professional confirmation Easy check-in with QR code scanning Virtual Events Instant confirmation for webinar attendees Digital certificates for participants Automated follow-up communication Training Programs Pre-enrollment certificates Attendance confirmations Course registration verification Conferences & Meetups Early bird confirmation certificates Attendee badge preparation Venue capacity management π Benefits β Save Hours of Manual Work - No more creating certificates one by one β Increase Attendance - Professional confirmations boost show-up rates β Prevent Fraud - Email verification stops fake registrations β Improve Experience - Instant delivery delights attendees β Stay Organized - All data tracked in one central location β Scale Effortlessly - Handle 10 or 10,000 registrations the same way π¨ Customization Options The workflow is fully customizable: Certificate Design** - Modify HTML template colors, fonts, layout Email Template** - Adjust branding and messaging Form Fields** - Adapt to your specific registration needs QR Code Content** - Customize verification data Storage Location** - Choose different Drive folders Tracking Fields** - Add custom data to Google Sheets π Privacy & Security Email addresses verified before certificate issuance Secure OAuth2 authentication for all Google services No sensitive data stored in workflow GDPR-compliant data handling Certificates stored in private Google Drive π± Mobile Responsive Professional emails display perfectly on all devices QR codes optimized for mobile scanning Certificates viewable on phones and tablets Download links work seamlessly everywhere π Why This Workflow Stands Out Unlike basic registration confirmations, this workflow: Validates emails before generating certificates** (saves resources) Creates actual PDF documents** (not just email confirmations) Includes QR codes for event check-in** (reduces venue queues) Maintains dual tracking** (successful + failed attempts) Provides shareable Drive links** (easy resending) Works 24/7 automatically** (no manual intervention) π Learning Opportunities This workflow demonstrates: Conditional branching based on API responses Data merging from multiple sources HTML to PDF conversion Dynamic content generation Error handling and logging Professional email template design QR code integration Cloud storage automation π¬ Support & Customization Perfect for n8n beginners and experts alike: Detailed sticky notes** explain every step Clear node naming** makes it easy to understand Modular design** allows easy modifications Well-documented code** in function nodes Example data** included for testing π Get Started Import the workflow JSON Connect your credentials (Jotform, VerifiEmail, Google) Create your registration form Customize the certificate design Test with a sample registration Activate and watch it work! Tags: #events #certificates #automation #email-verification #pdf-generation #registration #workshops #training #conferences #qr-codes Category: Marketing & Events Difficulty: Intermediate