by WeblineIndia
Google Sheets + Twelve Data + Groq AI Stock Risk Alert Workflow > Smart Stock Risk Alerts in Minutes This workflow automatically reads your stock portfolio from Google Sheets, fetches real-time prices via API, calculates risk metrics (price drops and volatility) and sends AI-generated email alerts only when risks are detected. It helps you stay informed without being overwhelmed by unnecessary notifications. Quick Implementation Steps Connect your Google Sheets account and prepare your portfolio sheet. Add your Twelve Data API key in the HTTP Request node. Connect your Gmail account for sending alerts. Configure thresholds in the Edit Fields – Config & Thresholds node. Set up a Cron (Schedule Trigger) instead of manual execution. Run the workflow and monitor alerts. What It Does This workflow automates stock portfolio monitoring by combining spreadsheet data, real-time market prices and AI-powered summaries. It reads your portfolio data from Google Sheets and processes each stock by fetching its current market price through an external API. Once the data is enriched, the workflow calculates key risk indicators such as percentage price change and volatility. Based on predefined thresholds, it flags stocks that may require attention. Instead of sending raw data, it uses an AI model to generate a clean, human-readable summary. The workflow ensures efficiency by sending alerts only when necessary, reducing noise and helping you focus on meaningful risks. Who It's For Retail investors tracking personal portfolios Financial analysts monitoring stock risks Traders who want automated alerts Anyone using Google Sheets for stock tracking Users looking to integrate AI into financial workflows Requirements To use this workflow, you need: n8n account (self-hosted or cloud) Google Sheets account** (OAuth2 connection required) Gmail account** (OAuth2 connection required) Twelve Data API key** (mandatory) Groq API access** (for AI summary generation) How It Works & Setup Guide Step 1: Prepare Google Sheets Use a sheet named: Portfolio Range: A:E Required columns (in order): | Column | Field Name | Description | |--------|-------------|-------------| | A | symbol | Stock ticker (e.g., AAPL) | | B | avg_price | Average purchase price | | C | quantity | Number of shares | | D | sector | Industry sector | | E | notes | Optional notes | Step 2: Connect Google Sheets Open Read Portfolio from Google Sheets node Authenticate using Google OAuth2 Ensure: Sheet ID is correct Range is set to Portfolio!A:E Step 3: Configure API (MANDATORY) ⚠️ This is a required setup step. The workflow will NOT work without it. Open Fetch Stock Prices node Update URL: Replace YOUR_API_KEY with your Twelve Data API key Step 4: Configure Email Alerts (MANDATORY) ⚠️ You must configure the recipient email manually. Open Send Risk Alert Notification node Set: sendTo → your email address Subject is already set: Daily Stock Risk Alert Step 5: Configure Thresholds Open Edit Fields – Config & Thresholds node Default values: drop_threshold = -5 → triggers alert if price drops ≥ 5% volatility_threshold = 3 → triggers alert if volatility ≥ 3% Adjust these based on your risk tolerance. Step 6: Enable Scheduling The workflow is designed for scheduled execution. Replace Manual Trigger with Cron Node Example schedule: Daily at 9 AM Every hour during market hours Step 7: Execute Workflow Run once manually for testing Activate workflow for automation How It Works (Flow Summary) Reads portfolio data from Google Sheets Adds configuration thresholds Loops through each stock Fetches real-time prices (with delay to avoid rate limits) Merges portfolio + price data Computes: Price change % Volatility Flags risky stocks Filters only flagged items Formats data into readable text Uses AI (Groq model) to generate summary Sends email alert How To Customize Nodes Edit Fields – Config & Thresholds** Adjust sensitivity of alerts Wait 8 Seconds Before request** Modify delay based on API rate limits Compute Risk Logic** Add new conditions (e.g., stop-loss, sector-based alerts) Generate Risk Summary** Customize prompt for different tone or format Send Risk Alert Notification** Change subject or email structure Add-ons (Extend This Workflow) Add Slack/Telegram alerts instead of email Store alerts in a database (PostgreSQL / Airtable) Add historical tracking & charts Integrate multiple APIs for redundancy Add portfolio performance analytics dashboard Enable multi-user alerts Use Case Examples Daily Portfolio Monitoring Automatically receive alerts for risky stocks each day Intraday Risk Tracking Run hourly to track sudden market movements High Volatility Detection Identify stocks with unstable price behavior Loss Prevention Alerts Get notified when stocks drop beyond safe thresholds Sector-Based Monitoring Track risk exposure across industries There can be many more use cases depending on how you customize thresholds and logic. Troubleshooting Guide | Issue | Possible Cause | Solution | |------|--------------|----------| | No data fetched from Google Sheets | Incorrect sheet ID or range | Verify Sheet ID and Portfolio!A:E | | API not returning prices | Missing API key | Add apikey in HTTP Request node | | Workflow stops unexpectedly | API rate limit | Increase wait time | | No email received | sendTo field empty | Add recipient email | | No alerts triggered | Thresholds too strict | Adjust drop/volatility values | | AI summary not generated | Groq API issue | Check API credentials | | Incorrect risk calculation | Data format issue | Ensure numeric values in sheet | Need Help? If you need assistance with: Setting up this workflow Customizing risk logic Adding advanced features Integrating additional APIs Building similar automation workflows We’re here to help! 👉 Contact our n8n developes at WeblineIndia for expert support in building scalable, AI-powered automation solutions tailored to your needs.
by Rahul Joshi
Description This workflow intelligently analyzes incoming Gmail emails, classifies intent using GPT-4, and sends real-time Slack notifications while logging structured data into Google Sheets. It provides a smart, AI-assisted communication workflow that saves time and ensures no important email is overlooked. 🤖💌📊 What This Template Does Monitors Gmail for unread or new incoming emails. 📥 Extracts sender, subject, and body content for processing. ✉️ Uses GPT-4 to analyze email intent and determine priority. 🧠 Formats key insights (sender, summary, intent, urgency). 🧾 Posts structured summaries and priority alerts in Slack. 💬 Logs all processed emails with classification results in Google Sheets. 📊 Sends error notifications in case of API or parsing failures. 🚨 Key Benefits ✅ AI-driven email intent classification for smarter response handling. ✅ Seamless Slack notifications for high-priority or urgent emails. ✅ Maintains a centralized record of email insights in Google Sheets. ✅ Reduces response time by surfacing critical messages instantly. ✅ Minimizes manual email triage and improves team productivity. Features Real-time Gmail monitoring for unread emails. AI-based classification using GPT-4. Slack notifications with rich formatting and urgency tagging. Google Sheets logging for tracking and analytics. Built-in error handling with notification alerts. Modular setup for easy credential reuse across projects. Requirements Gmail OAuth2 credentials with inbox read access. Slack Bot token with chat:write and channels:history scopes. Google Sheets OAuth2 credentials for data logging. Azure OpenAI (or OpenAI GPT-4) API credentials. n8n instance (cloud or self-hosted). Target Audience Customer support teams managing shared inboxes. Operations teams tracking email-based requests. Sales or marketing teams prioritizing inbound leads. AI automation enthusiasts optimizing email workflows. Remote teams using Slack for real-time updates. Step-by-Step Setup Instructions Connect your Gmail, Slack, Google Sheets, and GPT-4 credentials in n8n. 🔑 Specify the Gmail search filter (e.g., is:unread) for tracking new emails. 📬 Add your Slack channel ID in the notification node. 💬 Set your Google Sheet ID and tab name for logging results. 📊 Run once manually to verify connection and output structure. ✅ Enable the workflow for continuous, real-time execution. 🚀
by Jan Zaiser
This n8n template demonstrates how to automatically process incoming invoice emails using AI to extract structured data, organize files in Google Drive, log everything in Google Sheets, and forward to your accounting system, completely hands-free. Use cases are many: Perfect for freelancers managing client invoices, small businesses handling supplier bills, accounting departments processing high invoice volumes, or anyone who wants to eliminate manual data entry and maintain a perfectly organized invoice archive! Good to know The AI extraction works with most standard invoice formats but may require prompt adjustments for unusual layouts. Ensure your IMAP email account allows external app connections and has sufficient storage for the archive folder. Google Drive folder structure is automatically created if it doesn't exist yet. How it works The IMAP Email trigger monitors your inbox for new messages with attachments. JavaScript splits multiple attachments into separate items, ensuring each invoice is processed individually. PDF text extraction reads the content from each invoice file. An AI model (like OpenAI or Gemini) analyzes the extracted text and identifies key fields: company name, invoice number, date, amount, VAT, and more. Additional date metadata is generated (month, year, formatted dates) for smart categorization. The invoice PDF is uploaded to a temporary "Incoming Files" folder on Google Drive for safe processing. The workflow searches for or creates the correct monthly folder (e.g., "Invoices / October 2025") in your Drive structure. The invoice is moved to the final destination with a clean, standardized filename: 2025-10-02_Company-Name_InvoiceNumber.pdf. All extracted data is logged to Google Sheets for easy tracking, reporting, and audit trails. The finalized invoice is forwarded to your DateV accounting email inbox. The original email is automatically moved to an archive folder, keeping your inbox clean and organized. How to use The IMAP trigger is configured for continuous monitoring, but you can adjust the polling interval based on your needs. Customize the AI prompt to match your specific invoice formats or extract additional fields relevant to your business. The folder structure on Google Drive can be modified to match your existing organization system. Requirements IMAP-enabled email account (Gmail, Outlook, or any email provider supporting IMAP) Google Drive account for file storage Google Sheets for invoice logging AI model access (OpenAI, Gemini, or compatible LLM for data extraction) DateV email address (or replace with your preferred accounting system) Customising this workflow Replace the DateV email step with integrations to other accounting platforms like Xero, QuickBooks, or Lexoffice. Add conditional logic to route different invoice types to different folders or sheets. Extend the AI extraction to include line items, payment terms, or custom fields specific to your industry. Connect additional notifications via Slack, Teams, or SMS when high-value invoices are received. Disclaimer: The node to move the e-mail is a community-node, so it’s only for self-hosting.
by Jordan Hoyle
🤖 AI-Powered Job Matcher & Resume Customizer Description This advanced workflow automates the entire job search and preparation process, moving beyond simple notifications to provide AI-driven career intelligence. It connects to LinkedIn to scrape fresh job postings, filters against jobs you've already seen, and then uses powerful LLMs (Mistral Large/Small) to perform a detailed resume-to-job match, generate tailored cover letters, and provide concrete resume improvement suggestions. All data is logged into a Google Sheet for comprehensive tracking, and a clean, single Daily Digest Email summarizes the top 5 matches found each day. ✨ Key Features Automated Scheduling:** Runs daily to find new job postings. Multi-Keyword Search:** Uses your main job title and three alternate titles generated by an AI Agent for maximum search coverage. LinkedIn Web Scraping:** Pulls new job URLs, details, location, and salary data from LinkedIn Search results. Duplicate Prevention:* Uses the *Compare Datasets** node to ensure only new, unseen jobs are processed against your master Google Sheet. Intelligent Matching (LLM):** The workflow performs a detailed job-to-resume comparison, generating: A Match Score (0-100) with evidence for alignment in skills, experience, and domain. A Tailored Cover Letter specific to the job title and company. Actionable Resume Improvement points (e.g., [ADD], [QUANTIFY]) to optimize your resume for the specific role. Centralized Tracking:* Saves all job data, match scores, cover letters, and resume suggestions to a *Google Sheet**. Professional Daily Digest:* Sends a single, clean *HTML email** summarizing the top 5 highest-scoring job matches for easy review. 🛠️ Prerequisites n8n Credentials: Google Drive: To download your resume (PDF/DOCX file URL). Google Sheets: To connect to your job tracking sheet. Gmail: To send the daily digest email. Mistral Cloud: For the LLM processing (Resume Breakdown, Job Matching, and Resume Analysis). External Files: A Job Tracking Google Sheet (used as a master database). Your current Resume file (PDF recommended, hosted on Google Drive). Setup Notes: Update the file links (Download Resume node) and Google Sheet details (Get row(s)/Append nodes). Set your personal email address in the Send Digest Email node. Review the LLM prompts to tailor the AI agent's persona and output fields to your exact needs.
by Khairul Muhtadin
Promo Seeker automatically finds, verifies, and delivers active promo codes to users via Telegram or email using SerpAPI + Gemini (OpenRouter). Saves hours of manual searching and deduplicates results into an n8n Data Table for fast reuse. Why Use This Workflow? Time Savings: Reduces manual promo hunting from 2 hours to 5 minutes per query. Cost Reduction: Cuts reliance on paid scraping tools or manual services — potential savings of $50–$200/month. Error Prevention: Cross-references sources and enforces a 30‑day recency filter to reduce expired-code hits by ~60% vs single-source checks. Scalability: Handles hundreds of queries per day with Data Table upserts and optional scheduling for continuous discovery. Ideal For Marketing / Growth Managers:** Quickly discover competitor or partner discounts to promote in campaigns. Customer Support / Operations:** Respond to user requests with verified promo codes via Telegram or email. Affiliate / Content Teams:** Aggregate and maintain a clean promo feed for newsletters or site widgets. How It Works Trigger: Incoming request via Webhook, Telegram message, Google Form submission, or scheduled run. Data Collection: The LangChain agent uses SerpAPI search results and Gemini (OpenRouter) to locate recent promo codes. Processing: Filter for recency (last 30 days), extract code, value, terms, and expiry. Intelligence Layer: Gemini 2.5 Pro (OpenRouter) + LangChain agent structure and verify results, outputting a standardized JSON. Output & Delivery: If a code exists in the Data Table, notify the requester via Telegram and Gmail; otherwise, return results and upsert them into the Data Table. Storage & Logging: Results stored/upserted in an n8n Data Table to prevent duplicates and enable fast lookups. Setup Guide Prerequisites | Requirement | Type | Purpose | |-------------|------|---------| | n8n instance | Essential | Execute the workflow — import JSON to your n8n instance | | SerpAPI account | Essential | Web search results for promo code discovery | | OpenRouter (Gemini) account | Essential | Language model (Gemini 2.5 Pro) for extraction and verification | | Telegram Bot (BotFather) | Essential | Receive queries and send promo notifications | | Gmail OAuth2 | Essential | Send rich email notifications | | n8n Data Tables | Essential | Store and deduplicate promo code records | Get your n8n instance here: n8n instance — import the JSON and begin configuration. (Repeat link for convenience) n8n instance Installation Steps Import the JSON workflow into your n8n instance. Configure credentials (use n8n's Credentials UI — do NOT paste keys into nodes): SerpAPI: paste your SerpAPI API Key from your SerpAPI dashboard. OpenRouter API: paste your OpenRouter API Key (for Gemini 2.5 Pro). Telegram API: create bot via @BotFather, then add Bot Token to Telegram credentials. Gmail OAuth2: use n8n's Gmail OAuth2 credential flow and authorize the account. Update environment-specific values: Webhook path: /v1/promo-seeker (configured in the Webhook node) or replace with your preferred path. Data Table ID: point to your own Data Table Form/webhook recipient fields (email/chatId mappings). Customize settings: Adjust the LangChain agent prompt (Promo Seeker Agent) for different recency windows or regional focus. Change max results/limit on the Data Table node (default limit = 3). Test execution: Trigger via Telegram or a POST to the webhook with sample payload: { "platform":"example.com", "email":"you@domain.com" } Confirm notifications arrive and Data Table rows are upserted. Technical Details Core Nodes | Node | Purpose | Key Configuration | |------|---------|-------------------| | SerpAPI | Fetch web search results | Provide credential; adjust search params in agent prompt | | Gemini 2.5Pro (OpenRouter) | Extract & verify promo details | Use OpenRouter credential; model google/gemini-2.5-pro | | Promo Seeker Agent (LangChain) | Orchestrates search + parsing | System prompt enforces 30‑day recency & result format | | Structured Output Parser | Validates agent output | JSON schema example for platform/code/value/terms/validUntil | | Data Table (Get row(s)) | Lookup existing promos | Filters by platform; limit = 3 | | If (Code Exist?) | Branching logic | Checks existence of platform field | | Data Table (Upsert row(s)) | Insert or update promo | Mapping from agent output to Data Table columns | | Telegram Trigger / Telegram | Receive queries & notify users | Webhook-based trigger; parse_mode = HTML for messages | | Gmail | Send rich HTML emails | Uses Gmail OAuth2 credential | | Webhook / Form Trigger | Alternate inputs | Webhook path /v1/promo-seeker and Form trigger for manual submissions | Workflow Logic On trigger, the Platform Set node normalizes the incoming query and receiver. Get row(s) checks Data Table for existing promos. If found: notify via Telegram and send Gmail (email template included). If not found: the Promo Seeker Agent runs SerpAPI searches, parses structured output, then Upsert row(s) saves results and notifications are sent. Structured Output Parser enforces correct JSON to avoid bad upserts. Customization Options Basic Adjustments Recency window: change the agent prompt to 7/14/30 days. Result limit: increase Data Table Get limit or change Upsert batch size. Advanced Enhancements Add Slack or Microsoft Teams notifications (moderate complexity). Add caching layer (Redis) to reduce repeated SerpAPI calls (advanced). Parallelize searches across multiple search engines (higher API usage & complexity). Performance & Optimization | Metric | Expected Performance | Optimization Tips | |--------|----------------------|-------------------| | Execution time | 8–30s per new search (depends on SerpAPI + LM response) | Reduce SerpAPI page depth; cache recent results | | API calls | 3–10 SerpAPI calls per complex query | Batch queries; use higher-quality search params | | Error handling | Agent retries on malformed output | Use retry nodes and set onError strategy for downstream nodes | Troubleshooting | Problem | Cause | Solution | |---------|-------|----------| | No results returned | Query too vague or rate-limited API | Improve query specificity; check SerpAPI quota | | Gmail send fails | OAuth scope not granted or token expired | Reconnect Gmail OAuth2 credential in n8n | | Telegram webhook not firing | Incorrect bot token or webhook setup | Recreate Telegram credential and check bot permissions | | Duplicate rows | Upsert mapping mismatch | Ensure promoCode mapping in Upsert matches structured output | | Agent returns malformed JSON | LM prompt too permissive | Tighten the agent system prompt and validate with Structured Output Parser | Created by: khaisa Studio Category: Marketing Automation Tags: promo-codes, coupons, serpapi, telegram, gmail, openrouter, data-tables Need custom workflows or help adapting this template? Contact us
by isaWOW
Description Paste any webinar, training, or lecture recording URL into a simple form along with the title, speaker name, topic category, and date and the workflow builds your knowledge base automatically. WayinVideo transcribes the full session with speaker labels and timestamps, then GPT-4o-mini identifies 3 to 8 distinct topics covered and writes a complete structured page for each one — summary, key insights, action items, notable quotes, timestamps, and tags. One Notion page is created per topic and every page is logged to Google Sheets with its Notion URL for easy team access. Built for teams, educators, consultants, and agencies who want a searchable knowledge base from every webinar without watching recordings or taking notes manually. What This Workflow Does Transcribes webinars with speaker labels** — WayinVideo processes the full session and returns every segment attributed to the correct speaker with timestamps, giving GPT full context Identifies 3 to 8 distinct topics automatically** — GPT-4o-mini reads the transcript and determines how many meaningful topics were covered — no manual segmentation needed Writes a complete knowledge page per topic** — Each topic gets a summary, up to five key insights, action items with checkboxes, notable quotes, timestamp range, and relevant tags Creates one Notion page per topic** — Each knowledge page is published directly to your Notion database with the webinar title and topic title as the page name Polls automatically until transcription is ready** — Waits 90 seconds then checks every 30 seconds until the transcript is available, with no manual monitoring required Logs every created page to Google Sheets** — Appends a row with the Notion page ID, Notion page URL, topic title, speaker, tags, and Status set to Published Saves all webinar metadata to every page** — Speaker name, webinar date, duration, target team, and recording URL are embedded in every Notion page for full context Setup Requirements Tools Needed n8n instance (self-hosted or cloud) WayinVideo account with API access OpenAI account with GPT-4o-mini API access Notion account with a connected database Google Sheets (one sheet with a tab named Knowledge Base Log) Credentials Required WayinVideo API key (pasted into 2. WayinVideo — Submit Transcription and 4. WayinVideo — Get Transcript Results) OpenAI API key Notion OAuth credential Google Sheets OAuth2 > ⚠️ WayinVideo API key appears in 2 steps — replace YOUR_WAYINVIDEO_API_KEY in both 2. WayinVideo — Submit Transcription and 4. WayinVideo — Get Transcript Results. Missing either one will cause the workflow to fail. Estimated Setup Time: 20–25 minutes Step-by-Step Setup Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import Get your WayinVideo API key — Log in to your WayinVideo account → go to Account Settings → copy your API key Add your WayinVideo API key to node 2 — Open node 2. WayinVideo — Submit Transcription → find the Authorization header value Bearer YOUR_WAYINVIDEO_API_KEY → replace YOUR_WAYINVIDEO_API_KEY with your actual key Add your WayinVideo API key to node 4 — Open node 4. WayinVideo — Get Transcript Results → find the same Authorization header → replace YOUR_WAYINVIDEO_API_KEY with the same key Connect OpenAI — Open node 9. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection Set up your Notion database — In Notion, create a database (or use an existing one) where the knowledge pages will be created → open the database in a browser → copy the database ID from the URL (the 32-character string after your workspace name and before the ?) Connect Notion — Open node 11. Notion — Create Topic Page → click the credential dropdown → add Notion OAuth → complete the OAuth flow to authorize n8n access → in the pageId field, paste your Notion database URL or ID Create your Google Sheet tab — Open your Google Sheet → add a tab named exactly Knowledge Base Log → add these 10 column headers in row 1: Webinar Title, Topic Title, Speaker, Topic Category, Webinar Date, Notion Page ID, Notion Page URL, Tags, Created On, Status Connect Google Sheets — Open node 12. Google Sheets — Log Created Pages → click the document field → replace YOUR_GOOGLE_SHEET_LOG_ID by selecting your spreadsheet or entering the Sheet ID (the string between /d/ and /edit in your Sheet URL) → click the credential dropdown → add Google Sheets OAuth2 → authorize access Activate the workflow — Toggle the workflow to Active → copy the Form URL from node 1. Form — Webinar URL + Details → open it in a browser to submit your first webinar How It Works (Step by Step) Step 1 — Form: Webinar URL + Details You open the form URL in a browser and fill in six fields: the webinar or recording URL (Zoom, YouTube, Vimeo, or any direct link), the webinar title, the speaker or presenter name, the topic category (e.g. SEO, Marketing, AI), the webinar date, and optionally the target team or department. Submitting the form starts the workflow. Step 2 — HTTP: WayinVideo — Submit Transcription The webinar URL is sent to the WayinVideo transcription API with the target language set to English. WayinVideo accepts the job and returns a task ID confirming transcription has started. Step 3 — Wait: 90 Seconds The workflow pauses for 90 seconds before the first status check. This is longer than shorter video workflows because webinar recordings are typically 45–90 minutes and need more initial processing time. Step 4 — HTTP: WayinVideo — Get Transcript Results A GET request checks the WayinVideo results endpoint using the task ID from step 2. It returns the current processing status and, once complete, the full speaker-labeled transcript. Step 5 — IF: Transcription Complete? This is the polling gate. If the status equals SUCCEEDED (YES path), the transcript is ready and the workflow moves forward to formatting. If still processing (NO path), the workflow routes to 6. Wait — 30 Seconds Retry which pauses 30 seconds then loops back to step 4 to check again. This repeats until SUCCEEDED. Step 6 — Wait: 30 Seconds Retry When the transcript is not yet ready, the workflow waits 30 seconds then returns to step 4 for another check. The loop continues automatically. Step 7 — Code: Format Transcript Each segment is formatted as [Speaker Name | MM:SS] text. Total duration in minutes, word count, and unique speaker names are calculated. All form inputs — webinar title, speaker name, topic category, webinar date, target team, and recording URL — are packaged here for the AI prompt. Step 8 — AI Agent: Extract Knowledge Topics GPT-4o-mini receives the formatted transcript and a detailed system prompt. It identifies between 3 and 8 distinct topics from the webinar and for each topic returns a structured JSON object with: a 5–8 word topic title, a 2–3 sentence summary, up to five key insights, action items, notable quotes, an approximate timestamp range, and 2–4 tags. The output is a clean JSON array. GPT is instructed to write only from what was actually said in the transcript. Step 9 — OpenAI: GPT-4o-mini Model This is the language model powering the knowledge extraction. It runs with default settings for consistent, structured output. Step 10 — Code: Parse Topics and Build Notion Content The AI output JSON is cleaned (any accidental markdown backticks removed) and parsed. If parsing fails, the step throws a clear error. Each topic in the array is returned as an individual row. For each topic, a full Notion-ready markdown page is assembled with sections for Summary, Key Insights, Action Items (with checkbox syntax), Notable Quotes (in blockquote format), and Webinar Details. All webinar metadata is embedded in every page. Step 11 — Notion: Create Topic Page One Notion page is created per topic. The page title is formatted as "Webinar Title — Topic Title". The full markdown content built in step 10 is written into the page body. Notion returns the new page's ID and URL. Step 12 — Google Sheets: Log Created Pages After each Notion page is created, one row is appended to your Knowledge Base Log tab. The row includes webinar title, topic title, speaker, topic category, webinar date, the Notion page ID, the Notion page URL, the tags as a comma-separated string, the creation timestamp, and Status set to Published. Your team now has a direct link to every knowledge page from one sheet. Key Features ✅ 90-second initial wait for long recordings — The workflow uses a longer first pause suited to webinar-length content rather than short video clips ✅ 3 to 8 topics per webinar — auto-detected — GPT decides how many meaningful topics are present based on the actual content, not a fixed number ✅ Action items formatted as Notion checkboxes — Every action item is written with - [ ] syntax so they render as real checkboxes in Notion — ready to assign and complete ✅ Notable quotes in blockquote format — Speaker quotes are wrapped in Notion blockquote syntax so they visually stand out on the page ✅ Webinar metadata embedded in every page — Speaker, date, duration, target team, and recording URL are written into each page so the context is always visible without referencing a separate document ✅ Notion page URL logged immediately — Every page URL is saved to Google Sheets the moment it is created so your team can access any page directly without opening Notion ✅ JSON parsing with fallback protection — The code step strips any accidental markdown formatting from GPT output before parsing, reducing the chance of a JSON parse failure on well-formed responses Customisation Options Increase the maximum number of topics — In node 8. AI Agent — Extract Knowledge Topics, change "maximum 8 topics" in the system prompt to a higher number — useful for long full-day workshop recordings that cover more than 8 distinct areas. Add a Slack notification after all pages are created — After node 12. Google Sheets — Log Created Pages (on the last topic row), add a Slack step that posts the webinar title, number of pages created, and a link to your Knowledge Base Log sheet so your team is notified without checking Sheets. Filter which topics get a Notion page — After node 10. Code — Parse Topics and Build Notion Content, add an IF check that only proceeds to Notion creation if the number of key insights is 3 or more — skipping thin topics that GPT extracted with limited content. Add a Notion tag property — In node 11. Notion — Create Topic Page, add a multi-select property mapping that sends the tags array to a Tags property in your Notion database — making pages filterable and searchable by tag directly in Notion. Send a summary email after all pages are created — After node 12. Google Sheets — Log Created Pages (last row only), add a Gmail step that sends an email with the webinar title, number of pages created, and a direct link to the Knowledge Base Log sheet so the submitter gets a confirmation. Troubleshooting WayinVideo returning an error on submission: Confirm YOUR_WAYINVIDEO_API_KEY in node 2. WayinVideo — Submit Transcription is replaced with your actual API key — not the placeholder text Confirm the same replacement was made in node 4. WayinVideo — Get Transcript Results — both steps require the key Check the execution log of node 2 for the raw error — a 401 means wrong key, a 422 means the URL format is not supported by WayinVideo Workflow stuck in the polling loop: Check that the webinar URL is publicly accessible — Zoom recordings with password protection, private YouTube videos, or expired Zoom links will not be processed Open the execution log of node 4. WayinVideo — Get Transcript Results and check the raw response — WayinVideo may have returned a FAILED status with a specific error message Very long recordings (over 2 hours) may take longer than the polling loop can handle — consider increasing the retry wait from 30 to 60 seconds in node 6. Wait — 30 Seconds Retry GPT not returning valid JSON or extracting zero topics: Confirm the API key is connected in node 9. OpenAI — GPT-4o-mini Model and your account has available credits Check the execution log of node 8. AI Agent — Extract Knowledge Topics for the raw GPT output — the code step in node 10 will show a parse error with the first 200 characters of the bad output If GPT is consistently returning markdown-wrapped JSON (with backticks), node 10 strips these automatically — but if the output has additional explanation text before the array, the JSON extraction regex should still find it Notion pages not being created: Confirm the Notion OAuth credential in node 11. Notion — Create Topic Page is connected and that the integration has been added to the target database in Notion — go to your Notion database → three-dot menu → Add connections → find your n8n integration Confirm the pageId field in node 11 points to a valid Notion database URL — this must be a database, not a regular page Check the execution log of node 11 for the Notion API error — a 404 means the database ID is incorrect Google Sheets not logging rows: Confirm YOUR_GOOGLE_SHEET_LOG_ID in node 12. Google Sheets — Log Created Pages is replaced with your actual sheet ID from the URL Confirm the tab is named Knowledge Base Log exactly and all 10 column headers in row 1 match exactly Check that the Google Sheets OAuth2 credential is connected and not expired — re-authorize if needed 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 Avkash Kakdiya
How it works This workflow monitors customer health by combining payment behavior, complaint signals, and AI-driven feedback analysis. It runs on daily and weekly schedules to evaluate risk levels, escalate high-risk customers, and generate structured product insights. High-risk cases are notified instantly, while detailed feedback and audit logs are stored for long-term analysis. Step-by-step Step 1: Triggers & mode selection** Daily Risk Check Trigger – Starts the workflow on a daily schedule. Weekly schedule1 – Triggers the workflow for weekly summary runs. Edit Fields3 – Sets flags for daily execution. Edit Fields2 – Sets flags for weekly execution. Switch1 – Routes execution based on daily or weekly mode. Step 2: Risk evaluation & escalation** Fetch Customer Risk Data – Pulls customer, payment, product, and complaint data from PostgreSQL. Is High Risk Customer? – Evaluates payment status and complaint count. Prepare Escalation Summary For Low Risk User – Assigns low-risk status and no-action details. Prepare Escalation Summary For High Risk User – Assigns high-risk status and escalation actions. Merge Risk Result – Combines low-risk and high-risk customer records. Send a message4 – Sends the customer risk summary via Gmail. Send a message5 – Sends the same risk summary to Discord. Code in JavaScript3 – Appends notification status and timestamps. Append or update row in sheet3 – Logs risk evaluations and notification status in Google Sheets. Step 3: AI feedback & reporting** Get row(s) in sheet1 – Fetches customer records for feedback analysis. Loop Over Items1 – Processes customers one by one. Prompt For Model1 – Builds a structured prompt for product feedback analysis. HTTP Request1 – Sends data to the AI model for insight generation. Code in JavaScript – Merges AI feedback with original customer data. Append or update row in sheet – Stores AI-generated feedback in Google Sheets. Wait1 – Controls execution pacing between records. Merge1 – Prepares consolidated feedback data. Send a message1 – Emails the final AI-powered feedback report. Why use this? Detect customer churn risk early using payment and complaint signals Automatically escalate high-risk customers without manual monitoring Convert raw customer issues into executive-ready product insights Keep a complete audit trail of risk, feedback, and notifications Align support, product, and leadership teams with shared visibility
by Țugui Dragoș
This workflow automatically collects customer reviews from Google, Facebook, Trustpilot, and Yelp, analyzes their sentiment using AI, sends real-time alerts for negative feedback, and generates a weekly summary report. It is ideal for businesses that want to monitor their online reputation across multiple platforms and respond quickly to customer concerns. How It Works Daily Schedule**: Triggers the workflow every day at 09:00. Review Collection**: Fetches new reviews from Google, Facebook, Trustpilot, and Yelp using their official APIs. Data Normalization**: Merges and standardizes all reviews into a unified format. AI Sentiment Analysis**: Uses GPT-4 to analyze the sentiment and extract key insights from each review. Negative Review Alerts**: Sends a Slack notification to managers if a negative review is detected. Logging**: Saves all reviews and their analysis to a Google Sheet for record-keeping. Weekly Reporting**: Every Monday, aggregates the past week’s reviews, generates an AI-powered summary, and emails it to management. Configuration API Credentials: Google My Business API: Create a project in Google Cloud, enable the My Business API, and generate OAuth credentials. Facebook Graph API: Create a Facebook App, request the necessary permissions, and obtain a Page Access Token. Trustpilot API: Register for a Trustpilot Business account and generate an API key. Yelp Fusion API: Sign up for Yelp Fusion, create an app, and get your API key. OpenAI API: Create an account at OpenAI, generate an API key for GPT-4 access. Slack API: Create a Slack App, enable Incoming Webhooks, and get the webhook URL. Google Sheets API: Enable the Google Sheets API in Google Cloud and create OAuth credentials. Set Up Environment Variables: Add all API keys, tokens, and configuration values in the Workflow Configuration node or as n8n credentials. Google Sheet Setup: Create a Google Sheet with columns for review data and share it with your service account email. Slack Channel: Set up a Slack channel for alerts and add the webhook URL in the configuration. Email Settings: Configure the recipient email address for weekly reports in the workflow. Usage Activate the workflow after configuration. Reviews will be collected and analyzed daily. Negative reviews trigger instant Slack alerts. Every Monday, a summary report is sent via email. Use Case: Monitor and respond to customer feedback across Google, Facebook, Trustpilot, and Yelp, automate sentiment analysis, and keep management informed with actionable weekly insights.
by AppStoneLab Technologies LLP
AI-Powered Hiring Pipeline: Auto-Screen CVs, Score Candidates & Send Interview Invites Stop manually reading every CV. This workflow watches your inbox, extracts CV text using Mistral OCR, scores every candidate against your job description using Google Gemini AI, and automatically routes them - shortlisted candidates get a professional interview invite, rejected ones get a polite decline, and HR receives a full AI summary with the CV attached. All hands-free. Who Is This For? HR teams and recruiters** at startups or growing companies who receive a high volume of CV emails Technical hiring managers** who want AI-assisted pre-screening before spending time on interviews Solo founders** who are hiring but don't have a dedicated recruiter No-code automation builders** looking for a production-ready hiring automation template What Problem Does This Solve? Manually reviewing CVs is time-consuming, inconsistent, and expensive. This workflow eliminates the bottleneck by automatically: Extracting CV text from PDF attachments (including scanned documents) via Mistral OCR Evaluating every candidate against your specific job description using Gemini AI Routing candidates and sending the right email to the right person - instantly You focus on interviewing. The pipeline handles everything else. Key Features 📥 Email-triggered** → fires automatically when a CV arrives in your inbox, no manual steps 📄 Mistral OCR** → works on both digitally-created and scanned/image-based PDF CVs 🤖 Gemini AI scoring** → returns a 0–100 score, shortlist/reject decision, candidate summary, and key skills 🔀 Smart routing** → shortlisted and rejected candidates are handled differently in the same workflow 📧 3 beautiful HTML email templates** → HR notification (with CV attached), interview invite, and polite decline ⚙️ Binary passthrough** → original CV PDF is preserved and forwarded to HR's email as an attachment 📋 Sticky note documentation** → every node is documented inside the workflow canvas How It Works (Step-by-Step) 📥 Watch Inbox → IMAP trigger fires when a new email arrives with a CV attachment 📄 OCR Extraction → Mistral's mistral-ocr-latest model reads the CV and outputs clean structured text 🤖 AI Scoring → Google Gemini evaluates the CV against your job description and returns a structured JSON with score, decision, candidate name, 3–4 sentence summary, and top 5 skills ⚙️ Parse & Route → a Code node cleans Gemini's response, extracts candidate email from the IMAP from field, and passes the binary CV forward 🔀 IF Decision → routes shortlisted candidates to the true branch and rejected to the false branch 📧 HR Email → HR receives a branded email with the AI score, candidate summary, key skills, and the original CV attached 📧 Interview Invite → shortlisted candidate receives a professional invitation with a scheduling link and "What to Expect" section 📧 Polite Decline → rejected candidate receives a warm, empathetic decline with a link to your careers page 🛠️ Setup Instructions Step 1 - Credentials Required You need to set up 4 credentials in n8n: | Credential | Node Used | Where to Get It | |---|---|---| | IMAP account | Email Trigger | Your email provider settings (Gmail: use App Password) | | Mistral Cloud API | OCR Extraction | Mistral AI Studio → API Keys | | Google Gemini (PaLM) API | AI Scoring | Google AI Studio → Get API Key | | SMTP account | All 3 email nodes | Your email provider SMTP settings | > 💡 Gmail users: Enable 2FA and generate an App Password for both IMAP and SMTP. Use imap.gmail.com:993 and smtp.gmail.com:587. Step 2 - Update Email Addresses In all 3 Send Email nodes, replace the placeholder emails: fromEmail → your sending address (e.g. hr@yourcompany.com) toEmail in the HR node → your HR team's inbox The candidate email fields are already dynamic ({{ $json.candidate_email }}) Step 3 - Add Your Job Description Open the 🤖 AI Score CV (Gemini) node and replace the JOB DESCRIPTION: section in the prompt with your actual role requirements. The current template uses an AI Engineer JD from AppStoneLab as a working example. Step 4 - Add Your Interview Scheduling Link In the 📧 Send Interview Invite to Candidate node, find YOUR_CALENDLY_OR_CAL_LINK_HERE in the HTML and replace it with your actual booking link (Calendly, Cal.com, TidyCal, etc.). How to Customize for Your Use Case | What to Change | Where | Example | |---|---|---| | Job description | Gemini node prompt | Swap in your own role requirements | | Scoring threshold | IF node condition | Change "shortlisted" to score-based logic e.g. score >= 70 | | Company name & branding | All 3 HTML email templates | Replace "AppStoneLab Technologies" with your company | | Careers page URL | Decline email HTML | Replace appstonelab.com/career with your URL | | AI model | Gemini node | Switch to gemini-3-flash-preview or gemini-3.1-pro-preview for different speed/quality | | Watched mailbox | IMAP trigger | Change INBOX to a dedicated folder like INBOX.careers | | Interview questions | Invite email HTML | Add/edit the "What to Expect" section steps | API Keys — Quick Links Mistral AI** → Mistral AI Studio - Free tier includes OCR. Pricing: $1 per 1,000 pages for mistral-ocr-latest Google Gemini** → Google AI Studio - Free tier available. gemini-3-flash-preview is fast and cheap for production Gmail App Password** → Google App Passwords n8n IMAP docs** → docs.n8n.io/integrations/core-nodes/n8n-nodes-base.emailimap n8n SMTP docs** → docs.n8n.io/integrations/core-nodes/n8n-nodes-base.sendemail Important Notes The IMAP Format field must be set to Resolved (not Simple) - this is required for binary attachment data to flow correctly through the workflow The Code node carries the binary CV attachment forward from the IMAP trigger to the HR email node. If you add new nodes between them, make sure binary passthrough is preserved Mistral OCR works on both text-based and scanned/image PDFs, making it more reliable than n8n's built-in Extract from File node The workflow uses the from.value[0].address path to extract the candidate's email from the IMAP trigger output - this is the correct path for the Resolved format 💬 Questions or Issues? Drop a comment on this template or reach out on the n8n community forum. Happy to help you adapt this for your specific hiring use case.
by Jitesh Dugar
Automated Event Badge Generator Streamline your event registration process with this fully automated badge generation system. Perfect for conferences, seminars, corporate events, universities, and training programs. 🎯 What This Workflow Does Receives Registration Data via webhook (POST request) Validates & Sanitizes attendee information (email, name, role) Generates Unique QR Codes for each attendee with scannable IDs Creates Beautiful HTML Badges with gradient design and branding Converts to High-Quality PNG Images (400x680px) via HTMLCSStoImage API Logs Everything to Google Sheets for tracking and analytics Sends Personalized Emails with badge attachment and event instructions Handles Errors Gracefully with admin notifications ✨ Key Features Professional Badge Design**: Gradient purple background, attendee photos (initials), QR codes Automatic QR Code Generation**: Unique scannable codes for quick check-in Email Delivery**: Personalized HTML emails with download links Google Sheets Tracking**: Complete audit trail of all badge generations Error Handling**: Admin alerts when generation fails Scalable**: Process registrations one-by-one or in batches 🔧 Required Setup APIs & Credentials: HTMLCSStoImg API - Sign up at https://htmlcsstoimg.com Get API Key Gmail OAuth2 Connect your Gmail account Grant send permissions Google Sheets OAuth2 Create a tracking spreadsheet Add headers: Name, Email, Event, Role, Attendee ID, Badge URL, Timestamp Connect via OAuth2 Before Activation: Replace YOUR_GOOGLE_SHEETS_ID with your Google Sheet ID Replace admin@example.com with your admin email address Add all three credentials Test with sample data 📊 Use Cases Conferences & Seminars**: Generate badges for 100+ attendees Universities**: Student ID cards and event passes Corporate Events**: Employee badges with QR check-in Training Programs**: Course participant badges Workshops**: Professional badges with role identification Trade Shows**: Exhibitor and visitor badges 🎨 Customization Options Badge Design**: Modify HTML/CSS for custom branding, colors, logos QR Code Size**: Adjust dimensions for different use cases Email Template**: Personalize welcome message and instructions Role-Based Badges**: Different designs for VIP, Speaker, Staff, Attendee Multi-Event Support**: Handle multiple events with different templates 📈 What You'll Track Total badges generated Attendee names, emails, roles Badge image URLs for reprints Generation timestamps Event names and dates ⚡ Processing Time Average**: 5-8 seconds per badge Includes**: Validation, QR generation, HTML rendering, image conversion, logging, email 🔒 Security Features Email format validation Continue-on-fail error handling Admin notifications on failures Secure credential storage 💡 Pro Tips Use a dedicated Gmail account for automation Monitor HTMLCSStoImg API limits Create separate sheets for different events Archive old data periodically Set up webhook authentication for production 🚀 Getting Started Import this workflow Add the three required credentials Update Sheet ID and admin email Test with sample registration data Activate and integrate with your registration form Perfect for event organizers, HR teams, universities, and anyone managing events with 10-1000+ attendees!
by isaWOW
Paste your interview recording URL into a simple form, describe the moments you want to find, and the workflow takes care of everything else. WayinVideo AI scans the full recording and extracts only the clips that match your search — then downloads each one, uploads it to Google Drive, and logs every detail into a Google Sheet library. You receive a summary email with a direct link to your library the moment all clips are saved. Built for podcast producers, content teams, and agencies who want to build a searchable clip archive from interview recordings without any manual editing. What This Workflow Does AI moment extraction** — Sends your interview URL and a plain-English query to WayinVideo, which finds and exports only the clips matching your description Smart file naming** — Each clip is saved to Google Drive with a filename that includes the guest name, clip number, and relevance score — so your folder stays organised from day one Searchable clip library** — Saves every clip's title, description, timestamp, score, tags, and Drive link to a Google Sheet — so your whole team can search and reuse clips later Auto-polling with retry** — Waits 90 seconds, then checks if clips are ready, and loops back every 30 seconds automatically until processing is complete Permanent Drive storage** — Clips are uploaded to Google Drive immediately — no risk of losing them when WayinVideo export links expire after 24 hours Summary email on completion** — Sends a confirmation email with a link to your Google Sheet library as soon as all clips are saved Form-based input** — Anyone on your team can submit an interview and query through a web form — no access to n8n required Setup Requirements Tools you'll need: Active n8n instance (self-hosted or n8n Cloud) WayinVideo account + API key Google account connected to n8n via Google Drive OAuth2 Google account connected to n8n via Google Sheets OAuth2 Google account connected to n8n via Gmail OAuth2 A Google Sheet with a tab named exactly: Interview Clip Library Estimated Setup Time: 15–20 minutes Step-by-Step Setup Get your WayinVideo API key Log in at WayinVideo, go to your account settings or developer section, and copy your API key. Paste the API key into node "2. WayinVideo — Submit Find Moments" Open this node, find the Authorization header value, and replace YOUR_WAYIN_API_KEY with your actual key. Paste the API key into node "4. WayinVideo — Get Clips Result" Open this node, find the same Authorization header, and replace YOUR_WAYIN_API_KEY again. > ⚠️ This key appears in 2 nodes — you must replace it in both "2. WayinVideo — Submit Find Moments" and "4. WayinVideo — Get Clips Result". Missing either one will cause the workflow to fail. Set your Google Drive folder ID in node "9. Google Drive — Upload Clip" Open this node and replace YOUR_GDRIVE_FOLDER_ID with your actual folder ID. To find it: open your target Google Drive folder in a browser — the folder ID is the string of letters and numbers at the end of the URL after /folders/. Then connect your Google Drive credential via OAuth2 in the same node. Set your Google Sheet ID in node "10. Google Sheets — Save to Library" Open this node and replace YOUR_GOOGLE_SHEET_ID with your actual Sheet ID. To find it: open your Google Sheet in a browser — the Sheet ID is the long string in the URL between /d/ and /edit. Then connect your Google Sheets credential via OAuth2 in the same node. > ⚠️ Before running the workflow, make sure your Google Sheet has a tab named exactly Interview Clip Library — the sheet name must match this exactly or the workflow will fail to save rows. Connect your Gmail account in node "11. Gmail — Send Summary Email" Open this node, click the credential field, and connect your Google account via Gmail OAuth2. Follow the on-screen prompts to authorise n8n. Activate the workflow Toggle the workflow to Active. Open the form URL generated by node "1. Form — Interview URL + Details" and submit a test interview URL to confirm the full workflow runs end to end. How It Works (Step by Step) Step 1 — Form Trigger (Web Form) The workflow starts when someone fills in the web form. You enter five things: the interview recording URL (Zoom, YouTube, or any direct link), the guest's name, the interview topic or category, a plain-English description of what moments to find, and the email address for the summary. The form includes query tips to help users write better searches — the form description gives examples like "career advice and turning point moments" to guide them. Step 2 — Submit to WayinVideo Find Moments The recording URL, search query, and project name (built from the guest name and topic) are sent to WayinVideo's Find Moments endpoint. The request asks for up to 5 matching clips at HD 720p quality with original-language captions. WayinVideo scans the video and returns a task ID to track the job. Step 3 — Wait 90 Seconds The workflow pauses for 90 seconds to give WayinVideo time to scan the recording before checking for results. This prevents the workflow from requesting results before they are ready. Step 4 — Poll WayinVideo for Results The workflow calls WayinVideo's results endpoint using the task ID from Step 2. It checks whether the clips have been found and exported yet, and receives either a completed clips list or a status showing the job is still running. Step 5 — Check: Status SUCCEEDED? (YES / NO branch) YES** — If the status equals SUCCEEDED, the workflow moves forward to split and process each clip. NO** — If the job is still running, the workflow routes to a 30-second wait and then loops back to Step 4 to check again. This repeats automatically until the clips are ready. > ⚠️ Infinite Loop Risk: If WayinVideo never returns SUCCEEDED — due to an invalid URL, private video, or API error — this loop runs forever. Add a retry counter to stop after 8–10 attempts and send an error notification instead. Step 6 — Wait 30 Seconds (Retry) When clips are not ready yet, the workflow pauses 30 seconds before checking again. This gap prevents too many requests hitting the WayinVideo API in quick succession. Step 7 — Split Each Clip (Code) Once clips are ready, this step reads the full clips list and splits it into individual results — one per clip. Each result carries the clip title, download link, relevance score, description, tags, start time, end time, and clip index number. Step 8 — Download Each Clip File For each clip, the workflow fetches the video file from WayinVideo's export link and downloads it as a binary file — ready to be uploaded to Google Drive. Step 9 — Upload to Google Drive Each downloaded clip is uploaded to your specified Google Drive folder. The filename is built automatically using the guest name, clip number, and relevance score — for example: Raj_Sharma_Clip_1_Score_87.mp4. This keeps your Drive folder organised and sortable by score. Step 10 — Save to Google Sheets Library After each clip is uploaded, the workflow adds a new row to your Interview Clip Library sheet. It records the guest name, topic, query used, clip title, description, timestamp range, relevance score, tags, a direct Google Drive view link, the Drive file ID, the original interview URL, and the date. This creates a searchable, permanent library your whole team can use. Step 11 — Gmail Sends Summary Email After all clips are saved to the sheet, a summary email is sent to the address you entered in the form. The email confirms that clips have been uploaded to Google Drive and saved to the library, and reminds you to open the Interview Clip Library sheet to access all the Drive links. The final result is a set of clips in Google Drive, a fully logged library row per clip in Google Sheets, and a confirmation email — all from one form submission. Key Features ✅ Plain-English search queries — Describe moments in normal language — "failure and comeback story" or "key career turning point" — and WayinVideo finds them ✅ Score-based file naming — Every clip filename includes the guest name and relevance score — so your Drive folder is self-sorting and instantly readable ✅ Permanent clip archive — Clips are saved to Google Drive immediately — no 24-hour expiry risk because the file is stored before the export link dies ✅ Full metadata in Google Sheets — Every clip's title, description, timestamp, score, tags, and Drive link are logged — your team can search and reuse clips without rewatching recordings ✅ Auto-retry polling — The workflow keeps checking until clips are ready — no manual monitoring needed ✅ Guest + topic project naming — WayinVideo jobs are named using the guest name and topic you enter — so your WayinVideo project dashboard stays organised too ✅ Captions on every clip — Original-language captions are embedded in each exported clip — useful for accessibility and silent viewing ✅ One summary email per run — A single confirmation email is sent after all clips are saved — clean and non-spammy Customisation Options Extract more clips per search In node "2. WayinVideo — Submit Find Moments", change "limit": 5 to a higher number — use 10 to get a broader set of matching moments from longer recordings. Upgrade to Full HD resolution In node "2. WayinVideo — Submit Find Moments", change "resolution": "HD_720" to "FULL_HD_1080" for higher quality exports — useful for client-facing or broadcast use. Generate vertical clips for social media In node "2. WayinVideo — Submit Find Moments", add "enable_ai_reframe": true and "ratio": "RATIO_9_16" to automatically reframe clips to 9:16 vertical format — ready for Reels, Shorts, or TikTok. Add a Slack notification when the library is updated Insert a Slack node after "11. Gmail — Send Summary Email" to post a channel message with the guest name, topic, and number of clips saved — so your team gets notified without checking email. Sort clips into guest-specific Drive subfolders In node "9. Google Drive — Upload Clip", change the folder ID to a dynamic expression using the guest name field from the form — so each guest's clips automatically go into their own subfolder. Add a retry limit to stop infinite loops Add a Set step before "6. Wait — 30 Seconds Retry" to track a retry counter, then add a second IF check to stop after 10 attempts and route to "11. Gmail — Send Summary Email" with a failure message instead of looping forever. Troubleshooting WayinVideo API key not working: Check that you replaced YOUR_WAYIN_API_KEY in both "2. WayinVideo — Submit Find Moments" and "4. WayinVideo — Get Clips Result" — missing either one causes the workflow to fail Confirm your WayinVideo account is active and the key has not expired or been revoked Make sure there are no extra spaces before or after the key when pasting Workflow stuck in the retry loop: Check that the interview recording URL is publicly accessible — private, password-protected, or region-blocked videos will not be processed by WayinVideo Open the output of "4. WayinVideo — Get Clips Result" and inspect the raw response — WayinVideo may have returned an error message explaining the failure If the status never reaches SUCCEEDED, deactivate and reactivate the workflow, fix the video URL, and resubmit the form Google Drive upload failing: Open node "9. Google Drive — Upload Clip" and confirm the Google Drive OAuth2 credential is connected and not expired — reconnect it if needed Confirm YOUR_GDRIVE_FOLDER_ID was replaced with just the folder ID string (e.g. 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs), not the full URL Check that your Google account has write permission for the target folder Google Sheets not saving rows: Confirm your Google Sheet has a tab named exactly Interview Clip Library — the name must match character-for-character, including capitalisation Open node "10. Google Sheets — Save to Library" and check that YOUR_GOOGLE_SHEET_ID was replaced with just the Sheet ID (the string between /d/ and /edit in the Sheet URL) Check that the Google Sheets OAuth2 credential is connected and not expired — reconnect it in n8n credentials if needed No clips found (empty results): Your query may be too short or too vague — WayinVideo needs descriptive phrases to find relevant moments; try "career advice and lessons learned" instead of just "advice" Confirm the recording has clear spoken audio — low-quality audio or heavy background noise reduces accuracy Check that the recording URL is a direct video link and not a login-required viewer or landing page 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 Davide
This workflow automates the collection, analysis, and reporting of Trustpilot reviews for a specific company using ScrapeGraphAI, transforming unstructured customer feedback into structured insights and actionable intelligence. Key Advantages 1. ✅ End-to-End Automation The entire process—from scraping reviews to delivering a polished management report—is fully automated, eliminating manual data collection and analysis . 2. ✅ Structured Insights from Unstructured Data The workflow transforms raw, unstructured review text into structured fields and standardized sentiment categories, making analysis reliable and repeatable. 3. ✅ Company-Level Reputation Intelligence Instead of focusing on individual products, the analysis evaluates the overall brand, service quality, customer experience, and operational performance, which is critical for leadership and strategic teams. 4. ✅ Action-Oriented Outputs The AI-generated report goes beyond summaries by: Identifying reputational risks Highlighting improvement opportunities Proposing concrete actions with priorities, effort estimates, and KPIs 5. ✅ Visual & Executive-Friendly Reporting Automatic sentiment charts and structured executive summaries make insights immediately understandable for non-technical stakeholders. 6. ✅ Scalable and Configurable Easily adaptable to different companies or review volumes Page limits and batching protect against rate limits and excessive API usage 7. ✅ Cross-Team Value The output is tailored for multiple internal teams: Management Marketing Customer Support Operations Product & UX Ideal Use Cases Brand reputation monitoring Voice-of-the-customer programs Executive reporting Customer experience optimization Competitive benchmarking (by reusing the workflow across brands) How It Works This workflow automates the complete process of scraping Trustpilot reviews, extracting structured data, analyzing sentiment, and generating comprehensive reports. The workflow follows this sequence: Trigger & Configuration: The workflow starts with a manual trigger, allowing users to set the target company URL and the number of review pages to scrape. Review Scraping: An HTTP request node fetches review pages from Trustpilot with pagination support, extracting review links from the HTML content. Review Processing: The workflow processes individual review pages in batches (limited to 5 reviews per execution for efficiency). Each review page is converted to clean markdown using ScrapegraphAI. Data Extraction: An information extractor using OpenAI's GPT-4.1-mini model parses the markdown to extract structured review data including author, rating, date, title, text, review count, and country. Sentiment Analysis: Another OpenAI model performs sentiment classification on each review text, categorizing it as Positive, Neutral, or Negative. Data Aggregation: Processed reviews are collected and compiled into a structured dataset. Analytics & Visualization: A pie chart is generated showing sentiment distribution A comprehensive reputation analysis report is created using an AI agent that evaluates company-level insights, recurring themes, and provides actionable recommendations Reporting & Delivery: The analysis is converted to HTML format and sent via email, providing stakeholders with immediate insights into customer feedback and company reputation. Set Up Steps To configure and run this workflow: Credential Setup: Configure OpenAI API credentials for the chat models and information extraction Set up ScrapeGraphAI credentials for webpage-to-markdown conversion Configure Gmail OAuth2 credentials for email notifications Company Configuration: In the "Set Parameters" node, update company_id to the target Trustpilot company URL Adjust max_page to control how many review pages to scrape Review Processing Limits: The "Limit" node restricts processing to 5 reviews per execution to manage API costs and processing time Adjust this value based on your needs and OpenAI usage limits Email Configuration: Update the "Send a message" node with the recipient email address Customize the email subject and content as needed Analysis Customization: Modify the prompt in the "Company Reputation Analyst" node to tailor the report format Adjust sentiment analysis categories if different classification is needed Execution: Click "Test workflow" to execute the manual trigger Monitor execution in the n8n editor to ensure all API calls succeed Check the configured email inbox for the generated report Note: Be mindful of API rate limits and costs associated with OpenAI and ScrapegraphAI services when processing large numbers of reviews. The workflow includes a 5-second delay between paginated requests to comply with Trustpilot's terms of service. 👉 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.