by Jay Emp0
π€ MCP Personal Assistant Workflow Description This workflow integrates multiple productivity tools into a single AI-powered assistant using n8n, acting as a centralized control hub to receive and execute tasks across Google Calendar, Gmail, Google Drive, LinkedIn, Twitter, and more. β Key Capabilities AI Agent + Tool Use**: Built using n8n's AI Agent and MCP system, enabling intelligent multi-step reasoning. Tool Integration**: Google Calendar: schedule, update, delete events Gmail: search, draft, send emails Google Drive: manage files and folders LinkedIn & Twitter: post updates, send DMs Utility tools: fetch date/time, search URLs Discord Input**: Accepts prompts via n8n_discord_trigger_bot repo link π Setup Instructions Timezone Configuration: Go to Settings > Default Timezone in n8n. Set to your local timezone (e.g., Asia/Jakarta). Ensure all Date & Time nodes explicitly use the same zone to avoid UTC-related bugs. Tool Authentication: Replace all OAuth credentials for: Gmail Google Drive Google Calendar Twitter LinkedIn Use your own accounts when copying this workflow. Platform Adaptability: While designed for Discord, you can replace the Discord trigger with any other chat or webhook service. Example: Telegram, Slack, WhatsApp Webhook, n8n Form Trigger, etc. π¦ Strengths Great for document retrieval, email summarization, calendar scheduling, and social posting. Reduces the need for tab-switching across multiple platforms. Tested with a comprehensive checklist across categories like: Calendar Gmail Google Drive Twitter LinkedIn Utility tools Cross-tool actions (Refer to discordGPT prompt checklist for prompt coverage.) β οΈ Limitations β Binary Uploads: AI agents & MCP server currently struggle with binary payloads. Uploading files to Gmail, Google Drive, or LinkedIn may fail due to format serialization issues. Binary operations (upload/post) are under development and will be fixed in future iterations. β Date Bugs: If timezone settings are incorrect, event times may default to UTC, leading to misaligned calendar events. π¬ Testing Use the provided prompt checklist for full coverage of: β Core feature flows β Edge cases (e.g., invalid dates, nonexistent users) β Cross-tool chains (e.g., Google Drive β Gmail β LinkedIn) β MCP Assistant Test Prompt Checklist π Google Calendar [X] "Schedule a meeting with Alice tomorrow at 10am. and send an invite to alice@wonderland.com" [X] "Create an event called 'Project Sync' on Friday at 3pm with Bob and Charlie." [X] "Update the time of my call with James to next Monday at 2pm." [X] "Delete my meeting with Marketing next Wednesday." [x] "What is my schedule tommorow ? " π§ Gmail [x] "Show me unread emails from this week." [x] "Search for emails with subject: invoice" [X] "Reply to the latest email from john@company.com saying 'Thanks, noted!'" [X] "Draft an email to info@a16z.com with subject 'Emp0 Fundraising' and draft the body of the email with an investment opportunity in Emp0, scrape this site https://Emp0.com to get to know more about emp0.com" [X] "Send an email to hi@cursor.com with subject 'Feature request' and cc sales@cursor.com" [ ] "Send an email to recruiting@openai.com , write about how you like their product and want to apply for a job there and attach my latest CV from Google Drivce" π Google Drive [ ] "Upload the PDF you just sent me to my Google Drive." [X] "Create a folder called 'July Reports' inside Emp0 shared drive." [X] "Move the file named 'Q2_Review.pdf' to 'Reports/2024/Q2'." [X] "Share the folder 'Investor Decks' with info@a16z.com as viewer." [ ] "Download the file 'Wayne_Li_CV.pdf' and attach it in Discord." [X] "Search for a file named 'Invoice May' in my Google Drive." πΌ LinkedIn [X] "Think of a random and inspiring quote. Post a text update on LinkedIn with the quote and end with a question so people will answer and increase engagement" [ ] "Post this Google Drive image to LinkedIn with the caption: 'Team offsite snapshots!'" [X] "Summarize the contents of this workflow and post it on linkedin with the original url https://n8n.io/workflows/5230-content-farming-ai-powered-blog-automation-for-wordpress/" π¦ Twitter [X] "Tweet: 'AI is eating operations. Fast.'" [X] "Send a DM to @founderguy: 'Would love to connect on what youβre building.'" [X] "Search Twitter for keyword: 'founder advice'" π Utilities [X] "What time is it now?" [ ] "Download this PDF: https://ontheline.trincoll.edu/images/bookdown/sample-local-pdf.pdf" [X] "Search this URL and summarize important tech updates today: https://techcrunch.com/feed/" π Discord Attachments [ ] "Take the image I just uploaded and post it to LinkedIn." [ ] "Get the file from my last message and upload it to Google Drive." π§ͺ Edge Cases [X] "Schedule a meeting on Feb 30." [X] "Send a DM to @user_that_does_not_exist" [ ] "Download a 50MB PDF and post it to LinkedIn" [X] "Get the latest tweet from my timeline and email it to myself." π Cross-tool Flows [ ] "Get the latest image from my Google Drive and post it on LinkedIn with the caption 'Another milestone hit!'" [ ] "Find the latest PDF report in Google Drive and email it to investor@vc.com." [ ] "Download an image from this link and upload it to my Google Drive: https://example.com/image.png" [ ] "Get the most recent attachment from my inbox and upload it to Google Drive." Run each of these in isolated test cases. For cross-tool flows, verify binary serialization integrity. π§ Why Use This Workflow? This is an always-on personal assistant that can: Process natural language input Handle multi-step logic Execute commands across 6+ platforms Be extended with more tools and memory If you want to interact with all your work tools from a single promptβthis is your base to start. π Repo & Credits Discord bot trigger: n8n_discord_trigger_bot Creator: Jay (Empβ)
by Lucas Perret
Who this is for This workflow is for sales people who want to quickly and efficiently follow up with their leads What this workflow does This workflow starts every time a new reply is received in lemlist. It then classifies the response using openAI and creates the correct follow up task. The follow-up tasks currently include: Slack alerts when a lead for each new replies Tag interested leads in lemlist Unsubscription of leads when they request it The Slack alerts include: Lead email address Sender email address Reply type (positive, not interested...etc) A preview of the reply Setup To set this template up, simply follow the stickies steps in it How to customize this workflow to your needs Adjust the follow up tasks to your needs Change the Slack notification to your needs ...
by Airtop
README Monitor Competitor Facebook Ads with Airtop Use Case Monitor a competitorβs active Facebook ads and get a weekly HTML intelligence brief by email β saving time on manual research and helping you spot messaging, offers, and creative trends quickly. What This Automation Does Runs weekly on a set schedule. Uses Airtop to visit the competitorβs Facebook Ad Library page and extract up to 30 active ads. Summarizes each ad with key points: message, topic, CTA, duration active, language, target audience. Sends the compiled HTML report via Gmail. How It Works Schedule Trigger β Fires once a week at the configured time. Airtop Extraction β Loads the Ad Library URL and runs a prompt to extract and format the ads into HTML. Email Delivery β Sends the HTML report to your specified recipient using Gmail. Setup Requirements Airtop API Key β Generate here. Airtop Credential in n8n β Add your API key under βAirtopβ in n8n. Gmail OAuth2 Credential β Connect the Gmail account to send reports. Competitorβs Ad Library URL β Replace the default view_all_page_id in the workflow with your target. Next Steps Duplicate the Airtop step for multiple competitors. Enrich reports by visiting ad landing pages for deeper analysis. Send outputs to Slack or archive in a shared workspace. Read about ways to monitor your competitors ads here
by Incrementors
Description Submit up to 3 YouTube video URLs using a simple form and the workflow handles everything automatically. It fetches each video's title, channel, views, and duration from YouTube, submits each video to WayinVideo for accurate speaker-labeled transcription, then sends the transcript to GPT-4o-mini for a 6-field analysis tailored to your niche. Every video is logged to Google Sheets and a single Gmail report arrives sorted by relevance score when all videos are processed. Built for content marketers, SEO strategists, and research teams who want structured intelligence from YouTube videos β not just auto-captions. What This Workflow Does Fetches real YouTube metadata** β Pulls title, channel name, view count, duration, and publish date from the YouTube Data API for each video submitted Transcribes with speaker labels** β Submits each video to WayinVideo for accurate transcription grouped by speaker, not just a flat block of auto-captions Falls back to video description** β If the transcript is empty or too short, the workflow automatically uses the video description so the analysis never fails silently Scores each video for your niche** β GPT-4o-mini rates every video from 1β10 on relevance to your specific industry so you know which videos are worth acting on Identifies competitor content gaps** β For every video, GPT surfaces one thing the video did not cover that would make it more useful for your niche β ready to use as a content brief Logs every video to Google Sheets** β Appends a 15-column row per video with metadata, summary, key topics, best quote, target audience, and relevance score Sends one Gmail report sorted by relevance** β All analyzed videos arrive in a single email ranked from most to least relevant to your niche Setup Requirements Tools Needed n8n instance (self-hosted or cloud) Google Cloud account with YouTube Data API v3 enabled WayinVideo account with API access OpenAI account with GPT-4o-mini API access Google Sheets (one sheet with a tab named YouTube Intelligence) Gmail account (the account you want to receive the report) Credentials Required YouTube Data API key (pasted into 2. Set β Config Values) WayinVideo API key (pasted into 2. Set β Config Values) OpenAI API key Google Sheets OAuth2 Gmail 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 Get your YouTube Data API key β Go to console.cloud.google.com β create or open a project β enable the YouTube Data API v3 β go to Credentials β Create API Key β copy the key Get your WayinVideo API key β Log in to your WayinVideo account β go to Account Settings β copy your API key Fill in Config Values β Open node 2. Set β Config Values β replace all placeholders: | Field | What to enter | |---|---| | PASTE_YOUR_YOUTUBE_DATA_API_KEY_HERE | Your YouTube Data API key from step 2 | | PASTE_YOUR_WAYINVIDEO_API_KEY_HERE | Your WayinVideo API key from step 3 | | PASTE_YOUR_GOOGLE_SHEET_ID_HERE | The ID from your Google Sheet URL (the string between /d/ and /edit) | | PASTE_YOUR_EMAIL_HERE | The email address where the Gmail report should be sent | | PASTE_YOUR_NAME_HERE | Your name for the email greeting and sign-off | | yourNiche | Your industry or focus area (default: SEO and digital marketing) β change to match your niche e.g. personal injury law, medical aesthetics, e-commerce | Connect OpenAI β Open node 14. OpenAI β GPT-4o-mini Model β click the credential dropdown β add your OpenAI API key β test the connection Create your Google Sheet tab β Open your Google Sheet β add a tab named exactly YouTube Intelligence β add these 15 column headers in row 1: Date, Video URL, Title, Channel, Views, Duration, Published, Summary, Key Topics, Best Quote, Target Audience, Relevance Score, Content Gap, Submitted By, Logged At Connect Google Sheets β Open node 17. Google Sheets β Log Video Analysis β click the credential dropdown β add Google Sheets OAuth2 β sign in with your Google account β authorize access Connect Gmail β Open node 20. Gmail β Send Intelligence Report β click the credential dropdown β add Gmail OAuth2 β sign in with the Gmail account that matches your email address β authorize access Activate the workflow β Toggle the workflow to Active β copy the Form URL from node 1. Form β YouTube Video Intelligence β open it in a browser to submit your first videos How It Works (Step by Step) Step 1 β Form: YouTube Video Intelligence You open the form URL in a browser and paste up to 3 YouTube video URLs. Only Video 1 is required β Videos 2 and 3 can be left blank. Your name is optional. Submitting the form starts the workflow. Step 2 β Set: Config Values Your YouTube API key, WayinVideo API key, Google Sheet ID, recipient email, sender name, niche, and all three video URLs are stored here. Today's date is auto-generated. Your name is also captured from the form. Step 3 β Code: Extract Video IDs The three URL fields are filtered β any blank entries or non-YouTube links are removed. Valid YouTube URLs (both youtube.com/watch?v= and youtu.be/ formats) are parsed to extract the video ID. Each valid video becomes its own separate entry so the rest of the workflow processes each video independently. If no valid YouTube URLs are found, the workflow stops with a clear error. Step 4 β HTTP: Fetch YouTube Metadata A request is sent to the YouTube Data API v3 for each video ID. It retrieves the video's snippet (title, channel, description, publish date), statistics (view count), and content details (duration in ISO 8601 format). If the video is private or does not exist, the workflow stops with an error for that video. Step 5 β Code: Process Video Metadata The ISO 8601 duration (e.g. PT1H23M45S) is converted into a readable format (e.g. 1h 23m 45s). The view count is formatted with comma separators (e.g. 1,234,567). The publish date is formatted as day-month-year. All metadata is packaged for the transcription step. Step 6 β HTTP: Submit Transcription Task Each video URL is submitted to the WayinVideo transcription API with the target language set to English. WayinVideo returns a task ID confirming the transcription job was accepted and is processing. Step 7 β Code: Save Transcript Task ID The WayinVideo task ID is saved along with all video metadata. A poll counter is initialized at zero to track how many times the transcript status has been checked. Step 8 β Wait: 45 Seconds The workflow pauses for 45 seconds before checking the transcription status for the first time, giving WayinVideo time to begin processing. Step 9 β HTTP: Poll Transcript Results A GET request checks the WayinVideo results endpoint using the task ID. It returns the current status and, once complete, the full transcript with speaker labels and text segments. Step 10 β Code: Check Transcript Status The poll counter is incremented and the status is evaluated. If SUCCEEDED, the transcript segments are grouped by speaker into readable text (e.g. Speaker A: text here). The transcript is capped at 5,000 characters. If the transcript is empty or under 50 characters, the workflow uses the video description as a fallback with a clear label. FAILED throws an error and stops. Still processing continues the loop. If 15 polls pass without success (approximately 11 minutes), the workflow times out. Step 11 β IF: Transcript Ready? This is the transcription gate. If the transcript is ready (YES path), the workflow moves to AI analysis. If still processing (NO path), the workflow routes to 12. Set β Still Processing Loop Back which carries all the video data forward and loops back to 8. Wait β 45 Seconds for another cycle. Step 12 β Set: Still Processing Loop Back This step preserves all video metadata and config values while looping back to the wait step. This is necessary because the wait step resets the context β all fields are explicitly re-set here so nothing is lost between polling cycles. Step 13 β AI Agent: Analyze Video GPT-4o-mini receives the video metadata and transcript. It returns six structured fields: a 3β4 sentence summary of what the video covers, an array of 5 key topics, the single most memorable quote from the transcript, a one-sentence description of who the video is best for, a relevance score from 1β10 for your specific niche, and one content gap the video missed that would be valuable for your niche audience. Step 14 β OpenAI: GPT-4o-mini Model This is the language model powering the analysis. It runs at temperature 0.2 for consistent, factual output and is capped at 600 tokens to keep analyses concise and costs low. Step 15 β Parser: Structured Video Analysis This step enforces the exact six-field schema GPT-4o-mini must return. It validates that all required fields are present and correctly typed before results move forward. Step 16 β Code: Prepare Results The AI output is merged with all video metadata. The relevance score is formatted as "X out of 10 β High/Medium/Low" using the labels High (8β10), Medium (5β7), and Low (1β4). The key topics array is joined as a comma-separated string for the sheet column. A logged-at timestamp is generated. Step 17 β Google Sheets: Log Video Analysis One row is appended to your YouTube Intelligence tab with all 15 columns populated. Step 18 β IF: Last Video? After each video is logged, this check reads the isLastVideo flag. If true (YES path β all videos processed), the workflow moves to build and send the Gmail report. If false (NO path β more videos still processing), the workflow routes to 21. Set β More Videos and continues. Step 19 β Code: Build Gmail Report All processed video results are collected and sorted by relevance score from highest to lowest. The email subject includes the number of videos analyzed and today's date. The body includes a full breakdown for each video: title, channel, view count, duration, publish date, URL, relevance score, summary, key topics, best quote, target audience, and content gap. Step 20 β Gmail: Send Intelligence Report The complete report is sent to your email address. One email covers all videos, sorted by relevance, with no attribution footer. Key Features β Real YouTube metadata β Title, channel, views, duration, and publish date are pulled directly from the YouTube Data API β not scraped or guessed β Speaker-labeled transcription β WayinVideo groups the transcript by speaker so GPT receives structured dialogue, not a wall of undifferentiated text β Transcript fallback to description β If WayinVideo returns an empty transcript, the video description is used automatically so no video analysis ever fails silently β Niche-specific relevance scoring β You set your niche once in Config Values and every video is scored on how useful it is specifically for that industry β Content gap per video β Every analysis includes one thing the video missed β ready to use as a content brief or competitive edge β Retry loop with 11-minute timeout β The workflow polls every 45 seconds for up to 15 attempts before stopping β long videos never hang the workflow indefinitely β Gmail report sorted by relevance β All videos arrive ranked from most to least relevant so you always know which one to act on first β Permanent research library in Sheets β Every video you submit is logged permanently β over time you build a searchable database of analyzed YouTube content sorted by niche relevance Customisation Options Change your niche between submissions β In node 2. Set β Config Values, update yourNiche before each batch submission to score videos against a different industry β useful for agencies analyzing videos for multiple client verticals in one workflow instance. Increase the polling timeout for very long videos β In node 10. Code β Check Transcript Status, change pollCount >= 15 to pollCount >= 25 to allow up to approximately 19 minutes for transcription β useful for videos over 60 minutes long. Add a Slack notification when the report is ready β After node 20. Gmail β Send Intelligence Report, add a Slack step that posts the top-scoring video title, relevance score, and the content gap to a #content-team or #research channel so your team sees the headline insight immediately. Filter to only high-relevance videos in the email β In node 19. Code β Build Gmail Report, add a filter before sorting: const sorted = [...allItems].filter(v => v.rawScore >= 7).sort(...) to include only videos scoring 7 or above in the email β keeping the report focused on the most actionable content. Log to a separate sheet tab per niche β In node 2. Set β Config Values, make sheetName dynamic by appending your niche value (e.g. YouTube Intelligence β SEO) so different niche batches automatically log to their own dedicated tabs. Troubleshooting Form submission not starting the workflow: Confirm the workflow is Active β inactive workflows do not receive form submissions Copy the Form URL fresh from node 1. Form β YouTube Video Intelligence after activating Make sure at least one URL is a valid YouTube link β node 3. Code β Extract Video IDs filters out any URL that does not contain youtube.com or youtu.be YouTube API returning no video data: Confirm PASTE_YOUR_YOUTUBE_DATA_API_KEY_HERE in node 2. Set β Config Values is replaced with your actual API key Make sure the YouTube Data API v3 is enabled in your Google Cloud project β go to console.cloud.google.com β APIs and Services β Library β search YouTube Data API v3 β Enable Private, unlisted, or deleted videos will return no results β the workflow throws an error for these and stops cleanly WayinVideo transcription timing out or failing: If the polling loop times out after 15 polls (approximately 11 minutes), check your WayinVideo dashboard to see if the job is still processing or failed on their end Confirm PASTE_YOUR_WAYINVIDEO_API_KEY_HERE in node 2. Set β Config Values is your actual WayinVideo API key Very long videos (over 90 minutes) may exceed the 11-minute timeout β increase the poll limit in node 10. Code β Check Transcript Status from 15 to 20 for longer content OpenAI not generating the analysis: Confirm the API key is connected in node 14. OpenAI β GPT-4o-mini Model and your account has available credits Check the execution log of node 13. AI Agent β Analyze Video for the raw GPT response If the schema parser in node 15. Parser β Structured Video Analysis is throwing errors, GPT returned an unexpected format β re-run the submission to see if the issue is consistent Google Sheets not logging rows or Gmail not arriving: Confirm the Google Sheets OAuth2 credential in node 17. Google Sheets β Log Video Analysis is connected and not expired Check that PASTE_YOUR_GOOGLE_SHEET_ID_HERE is replaced with the actual sheet ID from the URL β not the full URL Confirm the tab is named YouTube Intelligence exactly and all 15 column headers in row 1 match exactly For Gmail, confirm the OAuth2 credential in node 20. Gmail β Send Intelligence Report is connected and check your spam folder on the first send Support Need help setting this up or want a custom version built for your team or agency? π§ Email: info@incrementors.com π Website: https://www.incrementors.com/
by isaWOW
Description Submit any YouTube tutorial or how-to video URL along with your section search query and the workflow finds all the key moments automatically. WayinVideo's Find Moments API scans the full video and returns up to 15 section timestamps, which are then sorted chronologically and sent to GPT-4o-mini in one call to complete three tasks: generate clean chapter timestamps starting with 0:00, write a 3β4 sentence video description block, and write a 100β150 word YouTube Community post with the full timestamp list embedded. Everything is saved as one row in Google Sheets with Status set to Ready β ready to copy and paste directly into YouTube. Built for YouTube creators, educators, and content teams who publish long tutorial videos and want chapter timestamps and a Community post generated automatically without manual scrubbing. What This Workflow Does Finds up to 15 section moments per video** β WayinVideo's Find Moments API scans the full tutorial based on your search query and returns timestamped moments with titles and descriptions Sorts all moments chronologically** β All returned moments are sorted by start time before being sent to GPT so the chapter list is always in the correct viewing order Generates formatted chapter timestamps** β GPT writes clean 3β6 word chapter titles for every moment with exact MM:SS values, always starting with 0:00 Introduction Writes a video description block** β A 3β4 sentence description introduces the video, mentions what viewers will learn, and includes the video URL Creates a YouTube Community post with timestamps embedded** β A 100β150 word post hooks the audience, highlights 2β3 things they will learn, embeds the full chapter list, and ends with a CTA and hashtags Saves everything in one Google Sheets row** β Formatted timestamps, description block, Community post, hashtags, total chapter count, total moments found, and estimated duration are all in one row per video Polls automatically until moments are ready** β Waits 90 seconds then checks every 30 seconds until WayinVideo finishes scanning the video Setup Requirements Tools Needed n8n instance (self-hosted or cloud) WayinVideo account with API access OpenAI account with GPT-4o-mini API access Google Sheets (one sheet with a tab named Timestamp Library) Credentials Required WayinVideo API key (pasted into 2. WayinVideo β Submit Find Moments and 4. WayinVideo β Get Moments Results) OpenAI API key Google Sheets OAuth2 > β οΈ WayinVideo API key appears in 2 steps β replace YOUR_WAYINVIDEO_API_KEY in both 2. WayinVideo β Submit Find Moments and 4. WayinVideo β Get Moments Results. Missing either one will cause the workflow to fail. 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 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 Find Moments β 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 Moments 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 Create your Google Sheet tab β Open your Google Sheet β add a tab named exactly Timestamp Library β add these 13 column headers in row 1: Video URL, Video Title, Channel Name, Video Category, Total Chapters, Total Moments Found, Video Duration (min), Formatted Timestamps, Video Description Block, Community Post, Hashtags, Generated On, Status Get your Google Sheet ID β Open your Google Sheet in a browser β copy the string between /d/ and /edit in the URL β this is your Sheet ID Connect Google Sheets β Open node 11. Google Sheets β Save Timestamp Library β click the document field β replace YOUR_GOOGLE_SHEET_ID by selecting your spreadsheet or entering the Sheet ID manually β 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 β Video URL + Details β open it in a browser to submit your first video How It Works (Step by Step) Step 1 β Form: Video URL + Details You open the form URL in a browser and fill in six fields: the YouTube video URL, the video title, your channel name, the video category (e.g. SEO Tutorial, Python Course), the target audience, and the section search query. The search query is the most important field β it tells WayinVideo what kind of moments to find. For a tutorial, a good query might be "step by step tutorial section" or "topic introduction and explanation". Step 2 β HTTP: WayinVideo β Submit Find Moments The video URL and search query are sent to WayinVideo's Find Moments API. The request asks for up to 15 matching moments with export disabled. A project name is auto-generated from the video title. WayinVideo accepts the job and returns a task ID. Step 3 β Wait: 90 Seconds The workflow pauses 90 seconds before the first status check, giving WayinVideo time to scan the full video. Step 4 β HTTP: WayinVideo β Get Moments Results A GET request checks the find-moments results endpoint using the task ID from step 2. It returns the current processing status and, once complete, the full clips array with title, description, timestamp, relevance score, and tags for each matched moment. Step 5 β IF: Find Moments Complete? This is the polling gate. If the status equals SUCCEEDED (YES path), the moments are ready and the workflow moves forward to sorting and aggregation. If still processing (NO path), the workflow routes to 6. Wait β 30 Seconds Retry which pauses 30 seconds then loops back to step 4. This repeats until SUCCEEDED. Step 6 β Wait: 30 Seconds Retry When results are not yet ready, the workflow waits 30 seconds then returns to step 4 for another check. The loop continues automatically. Step 7 β Code: Collect + Sort All Moments All moments from WayinVideo are sorted by start time in ascending order β chronological, not by relevance score β so the timestamps reflect the actual order they appear in the video. Each moment is formatted as Moment N: [MM:SS] Title β Description and joined into a single text block for GPT. Total moment count and estimated video duration are also calculated. This step produces one single output for GPT β not one per moment β which is what allows GPT to see all timestamps at once and generate a coherent chapter list. Step 8 β AI Agent: Generate Timestamps + Post GPT-4o-mini receives the complete sorted moments list and the full video context. It completes three tasks in one call. Task 1: generate formatted chapter timestamps using the exact MM:SS values from WayinVideo, adding 0:00 Introduction at the top, with clean 3β6 word chapter titles per line. Task 2: write a 3β4 sentence video description block that introduces the video, mentions what viewers will learn, references the chapters below, and includes the video URL. Task 3: write a 100β150 word YouTube Community post with a scroll-stopping hook, 2β3 specific learning points from the video, the full timestamp list embedded in the post body, a CTA to watch and comment, and 3β5 relevant hashtags. The output uses five labeled sections. Step 9 β OpenAI: GPT-4o-mini Model This is the language model powering the three-task generation. It runs with default settings for accurate, structured output. Step 10 β Code: Parse Timestamps Output All five labeled sections are extracted from the AI output using regex: FORMATTED_TIMESTAMPS, VIDEO_DESCRIPTION_BLOCK, COMMUNITY_POST, HASHTAGS, and TOTAL_CHAPTERS. If the timestamps section is empty, the step throws a clear error. All video metadata from step 7 is also packaged for the sheet row. Step 11 β Google Sheets: Save Timestamp Library One row is appended to your Timestamp Library tab with all 13 columns: video URL, video title, channel name, video category, total chapters, total moments found, estimated duration, formatted timestamps, video description block, Community post, hashtags, generation timestamp, and Status set to Ready. All three deliverables β timestamps, description, and Community post β are available in one row ready to copy and paste. Key Features β Up to 15 moments per video β The highest limit used across the WayinVideo workflow series β suited to longer tutorial videos with many distinct sections β Chronological sort before GPT β All moments are sorted by start time before being sent to GPT so the chapter list is always in viewing order β not relevance order β Three outputs in one GPT call β Chapter timestamps, video description block, and Community post are all generated together β saving API cost and ensuring they are all written from the same context β Community post includes timestamps embedded β The Community post does not just mention the video β it includes the full chapter list inside the post body so viewers see exactly what is covered β 0:00 Introduction always added β GPT is instructed to start every chapter list with a 0:00 Introduction entry even if no moment was found at the very beginning β Total chapter count logged β The sheet records the exact number of chapters generated so you can compare across videos without opening each timestamp block β One row per video β all deliverables in one place β Every field you need is in a single sheet row so your team can copy timestamps, description, and Community post without switching between files Customisation Options Increase the number of moments returned β In node 2. WayinVideo β Submit Find Moments, the limit is already set to the maximum of 15 β if your video has very densely packed sections, try a more specific search query to get the most relevant moments within that limit. Add a retry limit to stop infinite polling β Before node 6. Wait β 30 Seconds Retry, add a Set step that increments a poll counter, then add a second IF check to stop after 15 polls and send a Gmail error notification instead of looping indefinitely. Send the three outputs to Gmail for quick review β After node 11. Google Sheets β Save Timestamp Library, add a Gmail step that sends the formatted timestamps, description block, and Community post as one plain-text email so you can review and copy directly from your inbox. Add a Slack notification when timestamps are ready β After node 11. Google Sheets β Save Timestamp Library, add a Slack step that posts the video title, total chapter count, and a link to the Timestamp Library sheet to a #youtube-content channel so your team knows a new set of timestamps is ready. Use the description block to update a Google Doc β After node 11. Google Sheets β Save Timestamp Library, add a Google Docs append step that writes the video title, formatted timestamps, and description block to a running video notes document β building a permanent formatted archive of all your video descriptions. Troubleshooting Form submission not starting the workflow: Confirm the workflow is Active β inactive workflows do not receive form submissions Copy the Form URL fresh from node 1. Form β Video URL + Details after activating β URLs copied before activation will not work Make sure all six fields are filled in β all are marked required WayinVideo returning an error on submission: Confirm YOUR_WAYINVIDEO_API_KEY in node 2. WayinVideo β Submit Find Moments is replaced with your actual API key β not the placeholder Confirm the same replacement was made in node 4. WayinVideo β Get Moments 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 or request format is invalid No moments found or workflow stuck in polling loop: Check that the YouTube video URL is publicly accessible β private, unlisted-with-login, or removed videos will not be processed The section search query may be too vague β try more descriptive phrases like "tutorial step and code demo" instead of just "tutorial" Open the execution log of node 4. WayinVideo β Get Moments Results and inspect the raw response β WayinVideo may have returned FAILED with a specific error If the loop runs indefinitely, deactivate the workflow, fix the URL or query, and resubmit GPT not generating all five sections: 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 β Generate Timestamps + Post for the raw GPT output β if the FORMATTED_TIMESTAMPS section is missing, node 10. Code β Parse Timestamps Output throws an error If the moments list passed to GPT is very long (15 moments with long descriptions), the combined prompt may push against token limits β this is rare but can be resolved by using a slightly shorter search query to get fewer moments Google Sheets not saving the row: Confirm YOUR_GOOGLE_SHEET_ID in node 11. Google Sheets β Save Timestamp Library is replaced with your actual sheet ID from the URL Confirm the tab is named Timestamp Library exactly and all 13 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 WeblineIndia
AI Proposal Comparison & Gap Analysis Workflow for Salesforce CRM This workflow automatically analyzes newly uploaded proposals by comparing them with past winning proposals using AI. It extracts proposal content, identifies the client, fetches reference data from Google Sheets and generates actionable insights. These insights are saved in Salesforce and shared on Slack for team visibility. Quick Implementation Steps Connect Google Drive, Google Sheets, Salesforce, Slack and Groq AI credentials in your n8n account. Set your Google Drive folder to monitor proposal uploads. Ensure your Google Sheet contains winning proposals with status = Won. Activate the workflow. Upload a proposal file to trigger analysis automatically. What It Does This workflow automates the process of analyzing business proposals by leveraging AI and historical data. When a new proposal file is uploaded to a specific Google Drive folder, the workflow downloads and extracts its content. It then identifies the client name using a simple pattern from the text. At the same time, the workflow fetches past winning proposals from a Google Sheets database filtered by status. Both the current and past proposals are combined and sent to an AI model for comparison. The AI generates concise insights highlighting missing elements, weak positioning, pricing gaps and improvement suggestions. Finally, the insights are formatted and stored in Salesforce as an Opportunity record. A notification is sent to Slack, ensuring the team is informed and can act quickly to improve proposal quality. Who It's For Sales teams managing multiple proposals Business development professionals Proposal review and strategy teams Organizations using Salesforce CRM Teams looking to improve win rates using AI Requirements n8n account (self-hosted or cloud) Google Drive account (with folder for proposals) Google Sheets account (with winning proposals data) Salesforce account (Opportunity access enabled) Slack workspace (channel for notifications) Groq API credentials (for AI model access) How It Works & Set Up 1. Setup Google Drive Trigger Configure New Proposal Upload Trigger Select the folder where proposals will be uploaded Event: fileCreated 2. Download and Extract Proposal Use Download Proposal node to fetch file Use Read Proposal Text node to extract content 3. Extract Client Information Use Extract Client Info (Code node) Extract clientName using regex from text Store full proposal as currentProposal 4. Fetch Winning Proposals Configure Get Winning Proposal Data (Knowledge Base) Connect Google Sheet Filter where status = Won 5. Combine Data Use Combine Proposal Data (Merge node) Combine current proposal and past proposal 6. AI Analysis Use AI Proposal Gap Analyzer Provide prompt to compare proposals Generate structured insights (8β10 bullet points) 7. Format Output Use Format Analysis Output Map clientName and analysisSummary 8. Save to Salesforce Use Save Insights to Salesforce Create Opportunity Add insights in description 9. Prepare Final Output Use Prepare Final Output (Merge node) 10. Add Delay (Optional Control) Use Wait for Save node (2 seconds delay) 11. Send Slack Notification Use Send Notification to Slack Send formatted message with insights How To Customize Nodes Extract Client Info:** Modify regex if proposal format changes Google Sheets Node:** Change filter or add more columns AI Prompt:** Customize output format or analysis depth Salesforce Node:** Change stage, fields or object type Slack Node:** Update message format or channel Wait Node:** Adjust delay time if needed Add-ons Add email notification (Gmail node) Store results in Google Sheets for history Add error handling with IF node Add multiple proposal comparison logic Integrate dashboard (Notion, Airtable, etc.) Use Case Examples Improving proposal quality before client submission Training new sales team members using past wins Automating proposal review workflows Identifying common gaps in losing proposals Tracking proposal insights in CRM There can be many more use cases depending on how you extend this workflow. Troubleshooting Guide | Issue | Possible Cause | Solution | | --------------------------- | ------------------------------ | ----------------------------------------- | | No trigger on file upload | Incorrect folder selected | Verify Google Drive folder ID | | Client name not extracted | Proposal format mismatch | Update regex in Code node | | No data from Google Sheets | Filter mismatch (status = Won) | Check column name and values | | AI output empty | Prompt or input missing | Verify merged data structure | | Salesforce error | Invalid credentials or field | Check API credentials and field mapping | | Slack message not sent | Wrong channel or auth issue | Reconnect Slack credentials | | Workflow stops before Slack | Wait node misconfigured | Ensure correct connection after Wait node | Need Help? If you need assistance setting up this workflow, customizing nodes or adding advanced features, weβre here to help. Whether it's integrating additional tools, improving AI analysis or building custom automation workflows tailored to your business needs, feel free to reach out to our n8n developers at WeblineIndia. Get expert help to scale your automation and build powerful AI-driven workflows efficiently.
by Avkash Kakdiya
Quick overview This workflow receives inbound leads via webhook, validates and normalizes the data, scores and routes the lead to a sales rep, checks for duplicates and upserts the contact in HubSpot, drafts an outreach email with OpenAI, notifies the rep via Slack and Gmail, and logs the result to Google Sheets. How it works Receives a POST webhook request with inbound lead details. Validates required fields (like name and email) and returns a 400 JSON response if the payload is invalid. Normalizes lead fields (name, email, company, region, source, and company size), calculates a lead score and tier, and assigns the lead to a rep based on region and tier. Searches HubSpot for an existing contact by the lead data and flags the lead as a duplicate when a match is found. If the lead is new, requests an outreach email draft from the OpenAI Chat Completions API; otherwise, posts a duplicate warning to Slack. Upserts the contact in HubSpot for hot/warm leads or logs the cold lead to HubSpot, then notifies the assigned rep in Slack and emails them the AI draft via Gmail. Appends a routing log row to Google Sheets and returns a JSON webhook response with the assigned rep, tier, and duplicate status. Setup Configure the Webhook trigger URL (POST /inbound-lead) in your form, landing page, or source system to send the required lead fields. Add HubSpot OAuth2 credentials for searching and creating/updating contacts. Add Slack OAuth2 credentials and set the target channel/workspace used by the Slack notification and duplicate warning steps. Add Gmail OAuth2 credentials for sending the outreach draft to the assigned rep. Add an OpenAI API key via HTTP Header Auth (Bearer token) and confirm the model name in the OpenAI request. Add a Google Sheets Service Account credential, replace REPLACE_WITH_YOUR_SHEET_ID, and ensure the target sheet (e.g. Sheet1) has matching columns for the appended log fields.
by Akshay Chug
Quick overview This workflow starts when a GoHighLevel opportunity is marked Won, uses Anthropic Claude to generate a tailored welcome email and 6-task onboarding plan,creates tasks in GoHighLevel,then creates a Google Drive folder,sends the email via Gmail,schedules a kickoff in Google Calendar,posts a Slack alert, and logs details to Google Sheets. How it works Receives a webhook from GoHighLevel when an opportunity stage changes to Won. Extracts contact and deal details from the webhook payload, loads your onboarding configuration, and calculates a kickoff time two business days out. Sends the client context to Anthropic Claude to generate a JSON response containing a welcome email, an internal client summary, and six onboarding tasks with due-day offsets. Parses Claudeβs JSON and creates the six tasks in GoHighLevel via the LeadConnector API for the associated contact, then compiles a brief task summary. Creates a client folder in Google Drive, emails the client the Claude-written welcome message via Gmail including the Drive folder link, and schedules a kickoff event in Google Calendar. Posts an onboarding notification to a Slack channel, tags the GoHighLevel contact via the LeadConnector API, and appends the onboarding record (including drive link, kickoff date, and task count) to Google Sheets. Setup Create a GoHighLevel webhook for βOpportunity Stage Changed,β activate this workflow, and paste the n8n webhook URL into GoHighLevel. Add an Anthropic credential for the Claude Sonnet model and adjust the prompt to match your service offerings and task expectations. Connect Google credentials for Google Drive, Gmail, Google Calendar (and select your calendar ID), and Google Sheets (and set the document ID and sheet name for logging). Add a Slack credential and set the target channel ID, or disable the Slack step if you donβt want notifications. In the configuration code step, fill in your GoHighLevel (LeadConnector) API key, location ID, account manager details, Drive parent folder ID, booking link, and logging sheet identifiers.
by Incrementors
Description Submit up to 3 landing page URLs using a simple form and the workflow audits each one automatically. For every page, GPT-4o-mini scrapes the content, scores it across five dimensions, identifies the top conversion issue, and generates five specific page fixes. Every result is logged to Google Sheets and pages that score below your alert threshold trigger an automatic Gmail alert with the full breakdown. Built for marketing managers, agency owners, and growth teams who need structured, repeatable conversion audits without spending hours reviewing pages manually. What This Workflow Does Scrapes and cleans each page automatically** β Fetches the raw HTML for every URL submitted, strips all scripts and styles, and prepares clean text for AI analysis Scores pages across five CRO dimensions** β GPT-4o-mini rates each page on overall conversion potential, CTA strength, trust score, and message clarity on a 1β10 scale Generates a letter grade per page** β Assigns A+ through F based on the overall score so you can rank pages at a glance Produces five page-specific fixes** β Every fix references actual content from the page and is scoped to be doable within 1β2 days β no generic advice Runs each page independently** β All three pages are processed as separate audits so one slow page never blocks the others Logs every audit to Google Sheets** β Appends a 14-column row per page with all scores, top issue, quick win, fix list, and priority label Sends Gmail alerts only for low-scoring pages** β Pages below your score threshold get an immediate email with the full audit breakdown β pages that pass trigger no email Setup Requirements Tools Needed n8n instance (self-hosted or cloud) OpenAI account with GPT-4o-mini API access Google Sheets (one sheet with a tab named CRO Audit Dashboard) Gmail account (the account you want alerts sent from) Credentials Required OpenAI API key Google Sheets OAuth2 Gmail OAuth2 Estimated Setup Time: 10β15 minutes Step-by-Step Setup Import the workflow β Open n8n β Workflows β Import from JSON β paste the workflow JSON β click Import Fill in Config Values β Open node 2. Set β Config Values β replace all four placeholders: | Field | What to enter | |---|---| | PASTE_YOUR_GOOGLE_SHEET_ID_HERE | The ID from your Google Sheet URL (the string between /d/ and /edit) | | PASTE_YOUR_EMAIL_ADDRESS_HERE | The email address where CRO alerts should be sent | | PASTE_YOUR_NAME_HERE | Your name for the email sign-off | | scoreThreshold | Leave as 6 β pages scoring 5 or below get an alert. Change to 7 for stricter alerting or 5 for looser alerting | Connect OpenAI β Open node 7. OpenAI β GPT-4o-mini Model β click the credential dropdown β add your OpenAI API key β test the connection Create your Google Sheet tab β Open your Google Sheet β add a tab named exactly CRO Audit Dashboard β add these 14 column headers in row 1: Date, Page URL, Page Name, CRO Score, Grade, Top Issue, Quick Win, CTA Strength, Trust Score, Message Clarity, Priority, Fix List, Audited By, Logged At Connect Google Sheets β Open node 10. Google Sheets β Log CRO Audit β click the credential dropdown β add Google Sheets OAuth2 β sign in with your Google account β authorize access Connect Gmail β Open node 12. Gmail β Send CRO Alert β click the credential dropdown β add Gmail OAuth2 β sign in with the Gmail account you want to send alerts from β authorize access Activate the workflow β Toggle the workflow to Active β copy the Form URL from node 1. Form β Multi-Page CRO Audit β open it in a browser to submit your first audit How It Works (Step by Step) Step 1 β Form: Multi-Page CRO Audit You open the form URL in a browser and fill in your name, up to three page URLs with their names, and the business type (e.g. SaaS, Law Firm, E-commerce). Only Page 1 URL and name are required β Pages 2 and 3 are optional. Submitting the form starts the workflow. Step 2 β Set: Config Values Your Google Sheet ID, alert email, sender name, score threshold, and all form inputs are stored here. Each page URL and name is mapped to its own variable. The business type and auditor name are also captured here for use in the AI prompt and the sheet log. Step 3 β Code: Build Pages List The three possible page URLs are filtered to remove any blank entries. Only URLs that start with http are kept. If no valid URLs are found, the workflow stops with a clear error. Each valid page is then output as its own separate entry so every page runs through the full audit pipeline independently. This means if you submit 3 pages, the scraping, AI analysis, sheet logging, and Gmail alert steps run 3 times β once per page. Step 4 β HTTP: Scrape Landing Page For each page, an HTTP request fetches the raw HTML content with a 15-second timeout. The response is returned as plain text for the cleaning step. Step 5 β Code: Clean HTML to Text The raw HTML is cleaned by removing all script blocks, style blocks, and HTML comments. Tag closings for structural elements like divs, paragraphs, and headings are converted to line breaks to preserve readability. All remaining HTML tags are stripped, common HTML entities are decoded, and extra whitespace is collapsed. The result is capped at 4,000 characters β if the page is longer, a truncation note is added so the AI knows content was cut off. If the page returns less than 100 characters, the workflow throws an error rather than sending near-empty content to the AI. Step 6 β AI Agent: CRO Audit GPT-4o-mini receives the business type, page name, page URL, and cleaned page content. It returns nine structured fields: an overall score from 1β10, a letter grade, a CTA strength score, a trust score, a message clarity score, the single biggest conversion problem on the page, the fastest single fix to improve conversions, five page-specific improvements each doable in 1β2 days, and a priority label (CRITICAL, HIGH, MEDIUM, or LOW). Step 7 β OpenAI: GPT-4o-mini Model This is the language model powering the audit. It runs at temperature 0.3 for consistent, factual scoring and is capped at 800 tokens to keep each audit concise and costs predictable. Step 8 β Parser: Structured CRO Output This step enforces the exact nine-field schema GPT-4o-mini must return. It validates that all required fields are present and correctly typed before results move forward, preventing malformed AI output from reaching your sheet. Step 9 β Code: Prepare Audit Results The AI output is merged with all page metadata. Sub-scores are formatted as "X out of 10" for readability. The fix list is formatted as a numbered list β pipe-separated for the sheet column and line-separated for the email. A needsAlert flag is set to true if the overall score is below your configured threshold. The email subject and full email body are also assembled here, including all scores, the top issue, quick win, and all five fixes. Step 10 β Google Sheets: Log CRO Audit One row is appended to your CRO Audit Dashboard tab with all 14 columns populated. The Sheet log and the Gmail alert step both run at the same time β logging never delays the email. Step 11 β IF: Score Below Threshold? This is the alert gate. If the page score is below your threshold (YES path), the Gmail alert fires immediately. If the page passed the threshold (NO path), the workflow routes to 13. Set β No Alert Needed and ends silently for that page β no email is sent. Step 12 β Gmail: Send CRO Alert A plain-text alert email is sent to your configured address. It includes the page name, URL, overall score, grade, priority level, top issue, fastest fix, all five specific improvements, and the three sub-scores for CTA strength, trust, and message clarity. Step 13 β Set: No Alert Needed This step handles pages that passed the threshold. It sets a brief log message confirming the page scored above the threshold and no email was sent. Key Features β Batch audit up to 3 pages in one submission β Submit multiple URLs at once and each page gets its own independent audit without you having to run the workflow three times β Letter grade for instant ranking β A+ through F grades let you sort pages by quality at a glance without interpreting raw scores β Four sub-scores per page β CTA strength, trust score, and message clarity give you a breakdown of why a page scored the way it did β Five page-specific fixes every time β Every fix references actual content from that specific page, not generic CRO advice β each one is scoped to 1β2 days of work β Configurable alert threshold β Change one number in Config Values to define what counts as a failing score β lower for stricter monitoring, higher for looser β Structured output enforced β A schema parser validates all nine AI fields before anything reaches your sheet β no broken rows or missing scores β Sheet logs and Gmail run simultaneously β Both outputs fire at the same time so your dashboard is always current and alerts are never delayed β Silent pass for healthy pages β Pages above the threshold log to Sheets and stop β no noise, no email clutter for pages that are already performing well Customisation Options Lower the threshold for more aggressive alerting β In node 2. Set β Config Values, change scoreThreshold from 6 to 8 so any page scoring 7 or below triggers an email β useful for agencies running CRO campaigns where even average pages need attention. Add a Slack notification alongside Gmail β After node 9. Code β Prepare Audit Results, add an IF check for needsAlert === true and connect a Slack node to also post the page name, score, and top issue to a #cro-alerts channel so your team sees issues in real time without checking email. Increase the character limit for longer pages β In node 5. Code β Clean HTML to Text, change .substring(0, 4000) to 6000 or 8000 if your pages are content-heavy and you want GPT to see more of the page β note this will slightly increase OpenAI token usage per audit. Expand to 5 pages per submission β In node 3. Code β Build Pages List, add two more page objects following the same pattern as pages 1β3, and add corresponding fields to the form in node 1. Form β Multi-Page CRO Audit and Config Values in node 2. Send a weekly CRO summary email β Add a separate Schedule trigger that fires every Monday, reads the CRO Audit Dashboard sheet, counts pages by priority label from the past 7 days, and sends a weekly digest showing how many CRITICAL, HIGH, MEDIUM, and LOW pages were found. Troubleshooting Form submission not starting the workflow: Confirm the workflow is Active β inactive workflows do not receive form submissions Copy the Form URL fresh from node 1. Form β Multi-Page CRO Audit after activating β URLs copied before activation will not work Make sure at least one URL starts with http β node 3. Code β Build Pages List filters out any blank or invalid URLs Page scraping returning empty or very short content: Some pages block automated HTTP requests and return a 403 error or a redirect β check the execution log of node 4. HTTP β Scrape Landing Page for the response Try adding a User-Agent header to node 4: Name = User-Agent, Value = Mozilla/5.0 (compatible; n8n-bot/1.0) to bypass basic bot detection If the page uses JavaScript rendering (e.g. React or Vue), the HTML may be empty β these pages require a headless browser and cannot be scraped with a simple HTTP request OpenAI not generating audit results: Confirm the API key is connected in node 7. OpenAI β GPT-4o-mini Model and your account has available credits Check the execution log of node 6. AI Agent β CRO Audit for the raw GPT response If the schema parser in node 8. Parser β Structured CRO Output is throwing an error, the AI returned an unexpected format β re-run the audit to see if the issue is consistent Google Sheets not logging rows: Confirm the Google Sheets OAuth2 credential in node 10. Google Sheets β Log CRO Audit is connected and not expired β re-authorize if needed Check that PASTE_YOUR_GOOGLE_SHEET_ID_HERE in node 2. Set β Config Values has been replaced with your actual sheet ID from the URL Confirm the tab is named CRO Audit Dashboard exactly β capitalization must match sheetName in Config Values Verify all 14 column headers in row 1 match exactly: Date, Page URL, Page Name, CRO Score, Grade, Top Issue, Quick Win, CTA Strength, Trust Score, Message Clarity, Priority, Fix List, Audited By, Logged At Gmail alert not arriving for low-scoring pages: Confirm the Gmail OAuth2 credential in node 12. Gmail β Send CRO Alert is connected and authorized Check that PASTE_YOUR_EMAIL_ADDRESS_HERE in node 2. Set β Config Values has been replaced with your actual email address Check the execution log of node 11. IF β Score Below Threshold? to confirm the needsAlert value is true for the pages that should trigger an alert β if false, the score may be at or above the threshold Check your spam or promotions folder β automated Gmail OAuth2 messages sometimes land there on first send Support Need help setting this up or want a custom version built for your team or agency? π§ Email: info@incrementors.com π Website: https://www.incrementors.com/
by WeblineIndia
Smart Investor Profiling and Reporting Workflow This workflow is a comprehensive automation engine that bridges the gap between raw client data and expert-level financial advice. Upon receiving a new onboarding form from Google Sheets, the system fetches real-time market data via Alpha Vantage, uses Groq-powered AI to synthesize this data with the client's risk profile and generates a structured investment strategy. It then updates your internal CRM, alerts your team via Slack and emails a personalized, professional investment report directly to the clientβall in a matter of seconds. Quick Implementation Steps Import: Upload the JSON file into your n8n canvas. Connect**: Authenticate your Google Sheets, Alpha Vantage (HTTP Request), Groq, Slack and Gmail accounts. Prepare CRM: Create a Google Sheet with these headers: **Timestamp, Name, Age, Income, Profile Summary, Risk Category, Strategy, Email. Set Market Symbol: Open the **Fetch Market Data node and replace RELIANCE.BSE with your preferred stock or index symbol. Deploy: Click **Start Workflow to test, then set to 'Active' for real-time processing. What It Does The workflow functions as an intelligent middleman for financial advisory firms. It starts by capturing a lead's personal details (age, income, risk appetite) from an onboarding spreadsheet. To ensure the advice is timely, it immediately queries a market API to get the latest price trends and volatility metrics. This "dual-context" (client data + market data) is then fed into a high-performance Groq AI model. The AI generates a sophisticated output that includes a written investor profile, a risk classification and a specific portfolio allocation (Equity, Debt, Gold). To maintain data integrity, a structured parser ensures the AI's response is converted into clean data fields that update your master CRM automatically. Finally, the workflow handles the entire communication loop. It sends a highly formatted HTML email to the client containing their custom strategy, while simultaneously posting a detailed summary to your Slack channel. This ensures your team is instantly aware of new high-value leads and their specific needs. Who It's For Financial Advisors & Wealth Managers** who want to provide "instant-gratification" value to new leads. Investment Firms** looking to standardize their risk profiling using AI and real-time data. FinTech Startups** automating the transition from sign-up to personalized dashboard content. Brokerage Operations** teams needing to sync client onboarding with internal CRM databases and team alerts. Requirements to use this workflow n8n accouny: (Self-hosted or Cloud). Alpha Vantage API Key**: For fetching real-time market trends. Groq API Key**: To power the "Analyze Investor Profile" AI node. Google Account**: For Sheets (Onboarding/CRM) and Gmail (Client communication). Slack Workspace**: For internal team notifications. How It Works & Setup Guide 1. Triggering & Rate Control The workflow starts with a Manual Trigger or a Google Sheets fetch. The Rate Limit Control node is set to process one item at a time, ensuring you don't hit API limits on your Market or AI accounts during a bulk upload. 2. Market Intelligence The Fetch Market Data node uses an HTTP Request to pull live data. You must enter your Alpha Vantage API key in the apikey query parameter. The Process Market Data and Generate Market Insights nodes use JavaScript to determine if the current market is "Bullish" or "Bearish" and calculate volatility. 3. AI Analysis & Parsing The Analyze Investor Profile node sends all client and market variables to Groq. The Profile Data Parser ensures the AI's response follows a strict JSON schema, which is vital for the data to be saved correctly in your spreadsheet. 4. Storage & Communication The Update CRM node appends the AI's findings to your spreadsheet. Once the database is updated, the workflow branches to send a Slack Notification to your team and a Send Welcome Email to the client. How To Customize Nodes Change Market Focus: In the **Fetch Market Data node, change the symbol parameter to any ticker your firm specializes in (e.g., SPY for S&P 500). Modify AI Strategy: Edit the prompt in the **Analyze Investor Profile node to include your specific house views or investment products. Slack Channel: Re-select your preferred channel in the **Slack Notification node to ensure alerts go to the right team. Use Case Examples Automated Lead Magnets**: Offering a "Free AI Portfolio Review" on your website that delivers results instantly via email. Client Re-Profiling**: Periodically running the workflow for existing clients to see how their strategy should shift based on new market conditions. Scalable Onboarding**: Managing hundreds of new sign-ups during market volatility without increasing headcount. Advisor Assistance**: Using the AI-generated summary as a "cheat sheet" for advisors before they hop on a first call with a lead. Real-time Risk Alerts**: Notifying the team via Slack specifically when a "High Risk" investor joins during "High Volatility" market periods. Troubleshooting Guide | Issue | Possible Cause | Solution | | :--- | :--- | :--- | | Market Data fails | Invalid or missing API Key | Ensure your Alpha Vantage key is entered in the Fetch Market Data query parameters. | | AI output is "unstructured" | AI failed to follow JSON format | Ensure the Profile Data Parser has "Auto Fix" enabled to catch minor formatting errors. | | CRM not updating | Header mismatch | Verify that your Google Sheet has the exact headers: Timestamp, Name, Age, Income, Profile Summary, Risk Category, Strategy, Email. | | Emails not sending | Gmail OAuth issues | Re-authenticate your Gmail account in the n8n credentials settings. | Need Help? Building market-aware AI agents requires a high level of technical precision. If you need assistance configuring your API keys, customizing the investment logic or integrating this workflow with your existing tech stack, our n8n workflow development team at WeblineIndia is ready to help. Contact WeblineIndia to help you build, customize or scale your professional business automations today!
by Avkash Kakdiya
How it works This workflow automatically handles new GitHub issues by reading and understanding them using AI, then taking multiple actions simultaneously β creating tasks, sending notifications, and keeping everything organized β without any manual effort. Step-by-step Trigger & filter** GitHub Trigger β Listens for issue events on a GitHub repository. If β Filters to only process issues with the action opened. AI analysis** Message a model β Sends the issue title, body, and metadata to GPT-4.1-mini with a structured prompt to extract category, subcategory, severity, priority, estimated effort, assigned team, summary, and suggested action. Parse AI Response β Converts the raw AI text output into a clean structured JSON object and appends a formatted date. Parallel output actions** Append row in sheet β Logs all issue data and AI analysis into a Google Sheets tracker. Create a task β Creates a prioritized ClickUp task with full issue and AI analysis details. Send a message β Posts a formatted Slack alert to #github-alerts with issue details and AI analysis. Send a message1 β Sends an HTML-formatted email via Gmail with the full issue report and AI insights. Create a comment on an issue β Posts the AI analysis summary as a comment directly on the GitHub issue. HTTP Request β Applies AI-generated labels (category + severity) to the GitHub issue via the GitHub API. Why use this? Eliminates manual issue triage by using AI to instantly classify and prioritize every new issue Keeps the entire team informed across Slack, Email, and GitHub simultaneously Auto-creates ClickUp tasks so nothing falls through the cracks Logs every issue to Google Sheets for reporting and trend analysis Responds directly on GitHub so issue reporters get instant acknowledgment
by Shahzaib Anwar
Quick Overview This webhook-based workflow validates form submissions with Google reCAPTCHA, creates or updates a contact in HubSpot, checks for an existing open ticket, and either creates a new HubSpot ticket or flags it as a duplicate, then emails support and returns an HTML response to the requester. How it works Receives a POST request via a webhook containing the customer and complaint details. Verifies the request using Google reCAPTCHA and stops processing if the verification fails. Creates or updates the contact in HubSpot and retrieves any tickets associated with that contact. Looks up the pipeline stage of associated tickets and detects whether an open ticket already exists. If an open ticket exists, emails the support team with the duplicate details and returns an βalready loggedβ HTML response. If no open ticket exists, creates a new HubSpot ticket, patches the ticket to set the city property, and returns a βticket submittedβ HTML response. After returning the webhook response for a new ticket, sends a confirmation email to the customer and a detailed notification email to the support team via Gmail. Setup Add a HubSpot App Private Token credential and ensure the configured ticket pipeline ID, stage ID, and ticket owner ID match your HubSpot account. Replace the reCAPTCHA secret in the Google reCAPTCHA request and ensure your form sends the g-recaptcha-response field to the webhook. Configure the webhook URL in your form or source system to POST to /hubspot-ticket-webhook with the expected fields (email, first_name, last_name, phone, city, remarks, order_no). Set up Gmail credentials for the customer and CS team emails, and update sender/recipient addresses (for example, support@example.com and no-reply@example.com). Update placeholder values in the HTML/email content (YOUR_HUBSPOT_PORTAL_ID, example.com tracking URL, and YOUR_SUPPORT_PHONE) to match your environment.