by Rodrigue Gbadou
How it works Smart influencer discovery**: Automatically finds and qualifies influencers based on your criteria and target audience Automated outreach**: Sends personalized collaboration proposals with dynamic pricing and campaign details Campaign management**: Tracks deliverables, deadlines, and performance metrics in real-time ROI optimization**: Analyzes campaign performance and recommends budget allocation improvements Set up steps Social media APIs**: Connect Instagram, TikTok, YouTube APIs for influencer data collection Influencer databases**: Integrate with platforms like Upfluence, AspireIQ, or Grin Email automation**: Configure your email service for outreach campaigns Analytics tools**: Connect Google Analytics, social media insights for performance tracking Contract management**: Set up digital signature integration for collaboration agreements Payment systems**: Configure PayPal, Stripe for automated influencer payments Key Features ๐ฏ Smart matching**: AI-powered influencer discovery based on audience overlap and engagement quality ๐ Performance prediction**: Estimates campaign ROI before launch using historical data โก Automated outreach**: Personalized email sequences with dynamic pricing calculations ๐ Real-time tracking**: Live dashboard showing campaign progress and key metrics ๐ฐ Budget optimization**: Automatic budget reallocation based on performance data ๐ Relationship management**: Long-term influencer relationship tracking and nurturing ๐ฑ Multi-platform support**: Manages campaigns across Instagram, TikTok, YouTube simultaneously ๐จ Content approval**: Automated content review and approval workflows Campaign types supported Product launches**: Coordinated influencer campaigns for new product introductions Brand awareness**: Large-scale campaigns focused on reach and brand recognition Seasonal campaigns**: Holiday and event-specific influencer activations User-generated content**: Campaigns focused on authentic customer testimonials Event promotion**: Influencer partnerships for webinars, conferences, and live events Influencer qualification criteria Audience alignment**: Demographic and interest matching with your target market Engagement quality**: Authentic engagement rates and comment sentiment analysis Content quality**: Visual consistency and brand alignment assessment Collaboration history**: Previous brand partnerships and performance data Reach vs. engagement**: Optimal balance between follower count and engagement rates Performance metrics tracked Reach and impressions**: Total audience exposure across all platforms Engagement rates**: Likes, comments, shares, and saves per post Click-through rates**: Traffic driven to your website or landing pages Conversion tracking**: Sales and leads generated from influencer content Brand mention sentiment**: Positive vs. negative sentiment analysis Cost per engagement**: Efficiency metrics for budget optimization Automation features Influencer scoring**: Automatic ranking based on your custom criteria Outreach sequences**: Multi-touch email campaigns with follow-up automation Content reminders**: Automated deadline tracking and reminder notifications Performance alerts**: Real-time notifications for campaign milestones Payment processing**: Automatic invoice generation and payment scheduling Reporting automation**: Weekly and monthly performance reports This workflow revolutionizes influencer marketing by automating the entire process from discovery to payment, while providing data-driven insights for continuous optimization.
by Atta
Stop drowning in job applications. This workflow transforms your hiring process from a manual, time-consuming data-entry task into an automated, intelligent screening system. When a candidate applies via your Jotform, this workflow automatically: Downloads their PDF resume (even from private links). Extracts the text from the resume and reads their cover letter. Compares the application to the Notion job description using Gemini AI. Generates an "AI Fit Score" (0-100) and a concise summary. Filters out low-scoring applicants. Creates a new, fully detailed candidate page in your Notion database, linked to the correct job. Instantly alerts your hiring team on Slack with the candidate's score and summary. Sends an automated confirmation email to the candidate. Features Triggers on New Jotform Submissions: Kicks off the moment a candidate clicks "Apply Now." Handles Private Files: Securely downloads private resume files from Jotform using your API key. PDF Text Extraction: Automatically reads the text from any uploaded PDF resume. Deep AI Analysis: Uses Gemini AI to compare the candidate's resume and cover letter against the specific job description from Notion. Relational Database Linking: Automatically links the new candidate to the correct "Open Position" page in Notion. Automated Quality Filtering: An IF node stops low-scoring candidates from cluttering your database. Multi-Channel Communication: Provides instant feedback to your team (Slack) and the candidate (Email). Nodes Used ๐ฃ Jotform Trigger (Jotform Trigger) โ๏ธ Gmail (Send Confirmation Email) โฌ๏ธ HTTP Request (Download Resume PDF) ๐ Extract From File (Read Resume Text) ๐ Notion (Find Job in Notion) ๐๏ธ Merge (Combine Data) ๐ง AI Agent (AI Candidate Analysis) โ IF (Score > 40?) โ Notion (Create Candidate in Notion) ๐ฃ Slack (Alert Hiring Team) ๐ซ No Operation, do nothing (Ignore (Score < 40)) How to use this template This template requires manual setup due to Jotform's unique Question IDs (QIDs). Please follow these steps carefully. โ ๏ธ CRITICAL WARNING ON JOTFORM QIDs To get the file URL, this template requires you to turn "Resolve Data" OFF in the Jotform Trigger. This means the workflow uses Question IDs (e.g., q7_positionApplying, q8_typeA8) instead of human-readable labels. Your QIDs will be different from the ones in this template. You must run the trigger once, find your QIDs, and replace them in the downstream nodes. 1. Set up Jotform and Notion (See "More Information" section below) Before you start, create your Jotform form and your two Notion databases ("Open Positions" and "Candidates") as described at the end of this document. 2. Configure the Jotform Trigger Node Credentials: Connect your Jotform account. Form: Select your "Job Application" form. IMPORTANT: In the node Parameters, find the "Resolve Data" option and turn it OFF. Test: Run a test by submitting your form. Look at the output and write down your unique QIDs for each field (e.g., q3_fullName, q7_positionApplying, q8_typeA8, uploadYour). 3. Configure the Download Resume PDF (HTTP Request) Node Credentials: This node needs your Jotform API Key. Authentication: Query Auth Credential: Create new Header Auth credentials. Name: Jotform API Key (Query) Parameter Name: apiKey Parameter Value: [Paste your Jotform API Key here] URL: Replace uploadYour in the expression {{ $('Jotform Trigger').item.json.uploadYour[0] }} with the QID for your file upload field. 4. Configure the Find Job in Notion Node (See the "Required Notion Setup" section at the end of this document for detailed instructions on how to build this database) Credentials: Connect your Notion credentials. Database ID: Select your "Open Positions" database. Filter Value: Replace q7_positionApplying in the expression {{ $('Jotform Trigger').item.json.q7_positionApplying }} with the QID for your "Position" dropdown. 5. Configure the AI Candidate Analysis Node Credentials: Connect your Google AI (Gemini) credentials. Prompt: In the prompt, find the line for "Candidate's Cover Letter". Replace q8_typeA8 in the expression {{ $('Jotform Trigger').item.json.q8_typeA8 }} with the QID for your cover letter field. 6. Configure the IF (Score > 40?) Node No credentials needed. You can change the "Value 2" from 40 to any score you want to use as your quality filter. 7. Configure the Create Candidate in Notion Node (See the "Required Notion Setup" section at the end of this document for detailed instructions on how to build this database) This is the most important step. Connect your Notion credentials and select your "Candidates" database. You must go through every single property and replace my QIDs with your QIDs from the Jotform trigger. Candidate Name: {{ $('Jotform Trigger').item.json.q3_fullName.first }} ... (Replace q3_fullName) Email: {{ $('Jotform Trigger').item.json.q4_email }} (Replace q4_email) Phone: {{ $('Jotform Trigger').item.json.q5_phoneNumber?.full ? ... (Replace q5_phoneNumber) Position (Relation): This expression, {{ $('Find Job in Notion').item.json.id }}, is correct. AI Summary, Score, Skills: These expressions are also correct. Resume (File): In the URL field, replace uploadYour with your file QID. 8. Configure Communication Nodes Send Confirmation Email (Gmail): Connect your email credentials and customize the email body. Alert Hiring Team (Slack): Connect your Slack credentials and select your desired channel (e.g., #hiring). 9. Activate your Workflow\! Once all steps are configured and QIDs are replaced, save and activate your workflow. How to Adapt the Template Log Rejected Candidates: Connect the false (No) output of the IF (Score > 40?) node to a Google Sheets node to keep a log of all candidates who didn't meet the score threshold. Change the AI Prompt: Edit the prompt in the AI Candidate Analysis node to ask for different insights, such as "List 3 potential red flags" or "Estimate years of experience." Use a Different AI: Replace the Google AI node with an OpenAI or Claude node. Change Notifications: Swap the Slack node for Discord, Microsoft Teams, or a simple email notification. More Information About Jotform Jotform is a powerful and easy-to-use online form builder perfect for creating professional job application forms. Its flexibility with file uploads and webhooks makes it an ideal trigger for this n8n automation. If you don't have an account, you can get started using the link above. Required Jotform Fields Your Jotform must have these fields for the template to work: Full Name Email Phone Number (Can be optional) File Upload (Label: Upload Your Resume) Crucial: Set the file type option to pdf only. Dropdown (Label: Position Applying For) Crucial: The options (e.g., "Marketing Manager") must exactly match the page titles in your "Open Positions" Notion database. Long Text (Label: Summary / Cover Letter) Required Notion Setup This workflow requires two separate databases in Notion that are linked together. Both databases must be shared with your n8n integration. Database 1: "Open Positions" This database holds your job descriptions. The AI reads from this database to understand the job requirements. Create a new Table database in Notion named Open Positions. Create the following properties: Name (Title): This is the job title. It must exactly match the options in your Jotform dropdown (e.g., "Marketing Manager"). Job Description (Text): A text field where you will paste the full job description for the role. Database 2: "Candidates" This database will store every new applicant and their AI-generated score. Create a new Table database in Notion named Candidates. Create the following properties to store the data: Candidate Name (Title): This will be filled with the applicant's name from the form. Email (Email): Stores the candidate's email. Phone (Phone): Stores the candidate's phone number. Resume (File): Stores the link to the resume PDF. AI Summary (Text): Stores the 2-sentence summary from the AI. AI Fit Score (Number): Stores the 0-1S00 score from the AI. Key Skills (Multi-select): Stores the skills array generated by the AI. Position (Relation): This is the final, crucial property. Type: Select Relation. Database: In the menu, search for and select your "Open Positions" database. IMPORTANT: A toggle labeled "Show on 'Open Positions'" will appear. You must turn this toggle ON. This creates a two-way relation, which is required for n8n to see and use this property.
by Raphael De Carvalho Florencio
What this template does Transforms provider documentation (URLs) into an auditable, enforceable multicloud security control baseline. It: Fetches and sanitizes HTML Uses AI to extract security requirements (strict 3-line TXT blocks) Composes enforceable controls** (strict 7-line TXT blocks with true-equivalence consolidation) Builds the final baseline* (TXT or JSON, see *Outputs) with a Technology: header Returns a downloadable artifact via webhook and can append/create the file in Google Drive Why itโs useful Eliminates manual copy-paste and produces a consistent, portable baseline ready for review, audit, or enforcement toolingโideal for rapidly generating or refreshing baselines across cloud providers and services. Multicloud support The workflow is multicloud by design. Provide the target cloud in the request and run the same pipeline for: AWS, **Azure, GCP (out of the box) Extensible to other providers/services by adjusting prompts and routing logic How it works (high level) POST /create (Basic Auth) with { cloudProvider, technology, urls[] } Input validation โ generate uuid โ resolve Google Drive folder (search-or-create) Download & sanitize each URL AI pipeline: Extractor โ Composer โ Baseline Builder โ (optional) Baseline Auditor Append/create file in Drive and return a downloadable artifact (TXT/JSON) via webhook Request (webhook) Method: POST URL: https://<your-n8n>/webhook/create Auth: Basic Auth Headers: Content-Type: application/json Example input (Postman/CLI) { "cloudProvider": "aws", "technology": "Amazon S3", "urls": [ "https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html", "https://www.trendmicro.com/cloudoneconformity/knowledge-base/aws/S3/", "https://repost.aws/knowledge-center/secure-s3-resources" ] } Field reference cloudProvider (string, required) โ case-insensitive. Supported: aws, azure, gcp. technology (string, required) โ e.g., "Amazon S3", "Azure Storage", "Google Cloud Storage". urls (string\[], required) โ 1โ20 http(s) URLs (official/reputable docs). Optional (Google Drive destination): gdriveTargetId (string) โ Google Drive folderId used for append/create. gdrivePath (string) โ Path like "DefySec/Baselines" (folders are created if missing). gdriveTargetName (string) โ Folder name to find/create under root. Optional (Assistant overrides): assistantExtractorId, assistantComposerId, assistantBaselineId, assistantAuditorId (strings) Resolution precedence Drive: gdriveTargetId โ gdrivePath โ gdriveTargetName โ default folder. Assistants: explicit IDs above โ dynamic resolution by name (expects 1_DefySec_Extractor, 2_DefySec_Control_Composer, 3_DefySec Baseline Builder, 4_DefySec_Baseline_Auditor). Validation Rejects empty urls or non-http(s) schemes; normalizes cloudProvider to aws|azure|gcp. Sanitizes fetched HTML (removes scripts/styles/headers) before AI steps. Outputs Primary:* downloadable *TXT** file controls_<technology>_<timestamp>.txt (via webhook). Composer outcomes:** if no groups to consolidate โ NO_CONTROLS_TO_BE_CONSOLIDATED; if nothing valid remains โ NO_CONTROLS_FOUND.  JSON path:* when the Builder stage is configured for *JSON-only** output (strict schema), the workflow returns a .json artifact and the Auditor validates it (see next section).  Techniques used (from the built-in assistants) Provider-aware extraction with strict TXT contract (3 lines):* Extractor limits itself to the declared provider/technology, outputs only Description/Reference/SecurityObjective, and applies a *reflexive quality check** before emitting.  Normalization & strict header parsing:** Composer normalizes whitespace/fences, requires the CloudProvider/Technology header, and ignores anything outside the exact 3-line block shape.  True-equivalence grouping & consolidation:* Composer groups *only** when intent, enforcement locus/mechanism, scope, and mode/setting all matchโotherwise items remain distinct.  7-line enforceable control format:* Composer renders each (consolidated or unique) control in *exactly seven labeled lines** to keep results auditable and automatable.  Builder with JSON-only schema & technology inference:* Builder parses 7-line blocks, infers technology, consolidates true equivalents again if needed, and returns *pure JSON** matching a canonical schema (with counters in meta).  Self-evaluation loop (Auditor):* Auditor *unwraps transport, validates **schema & content, checks provider terminology/scope/automation, and returns either GOOD_ENOUGH or a JSON instruction set for the Builder to fix and re-emitโenabling reflective improvement.  Reference prioritization:** Across stages, official provider documentation is preferred in References (AWS/Azure/GCP).  Customization & extensions Prompt-reflective techniques:** keep (or extend) the Auditor loop to add more review passes and quality gates.  Compliance assistants:* add assistants to analyze/label controls for *HIPAA, PCI DSS, SOX** (and others), emitting mappings, gaps, and remediation notes. Implementation context:* feed internal implementation docs, runbooks, or *Architecture Decision Records (ADRs); use these as **grounding to generate or refine controls (works with local/self-hosted LLMs, too). Local/self-hosted LLMs:** swap OpenAI nodes for your on-prem LLM endpoint while keeping the pipeline. Provider-specific outputs:** extend the final stage to export Policy-as-Code or IaC snippets (Rego/Sentinel, CloudFormation Guard, Bicep/ARM, Terraform validations). Assistant configuration & prompts Full assistant configurations and prompts (Extractor, Composer, Baseline Builder, Baseline Auditor) are available here: https://github.com/followdrabbit/n8nlabs/tree/main/Lab03%20-%20Multicloud%20AI%20Security%20Control%20Baseline%20Builder/Assistants Security & privacy No hardcoded secrets in HTTP nodes; use n8nโs Credential Manager. Drive operations are optional and folder-scoped. For sensitive environments, switch to a local LLM and provide only sanitized/approved inputs. Quick test (curl) curl -X POST "https://<your-n8n>/webhook/create" \ -u "<user>:<pass>" \ -H "Content-Type: application/json" \ -d '{ "cloudProvider":"aws", "technology":"Amazon S3", "urls":[ "https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html" ] }' \ -OJ
by Khairul Muhtadin
This workflow automatically checks a list of desired domain names for availability every 30 minutes. Using the Porkbun API and Google Sheets, it instantly sends detailed notifications via Gmail and Discord the moment a domain becomes available, so you can secure it before anyone else. Why Use This Workflow? Time Savings: Eliminates hours of manual domain checking each week. Set your list once and let the automation monitor your targets 24/7. Competitive Edge: Gain a critical speed advantage in acquiring high-value or expiring domains the second they become available. Scalability: Effortlessly monitor hundreds of domains simultaneously without any extra effort or performance degradation. Ideal For Domain Investors:** Automatically track and snipe valuable expiring domains for their portfolio without constant manual checks. Marketing Agencies & SEO Specialists:** Secure brandable domains for new clients or build out private blog networks by catching domains as soon as they drop. Startups & Entrepreneurs:** Monitor desired brand names without the daily hassle, ensuring they get the perfect domain the moment it's available. How It Works Trigger: A schedule trigger initiates the workflow every 30 minutes. Data Collection: It retrieves a list of domains to monitor from a designated Google Sheet, specifically targeting rows marked as "no" for availability. Processing: The workflow iterates through each domain one by one. Intelligence Layer: It makes an API call to Porkbun to check the current availability of the domain. An IF node then determines if the domain is available (avail == yes). Output & Delivery: If a domain is available, the workflow sends a rich HTML email via Gmail and a formatted message to a Discord channel, complete with pricing details and a direct registration link. Storage & Logging: The Google Sheet is automatically updated to mark the domain as "available," preventing redundant notifications on future runs. Setup Guide Prerequisites | Requirement | Type | Purpose | |-------------|------|---------| | n8n instance | Essential | Workflow execution platform | | Porkbun Account | Essential | API Access for domain checks | | Google Cloud Platform | Essential | Storing domain list (Sheets) & sending alerts (Gmail) | | Discord Server | Optional | Real-time channel notifications | Installation Steps Import the JSON file to your n8n instance. Create a Google Sheet with two columns: Domain (e.g., example.com) and isAvailable (e.g., no). Configure credentials: Porkbun: Log in to Porkbun, go to API Access, create a new key, and copy the API Key and Secret Key into the HTTP Request nodes. A "Validate API KEY" node is included for testing your credentials. Google Sheets/Gmail: Authenticate your Google account for the Google Sheets and Gmail nodes. Discord: Create a Discord Bot and add the credentials to the Discord node. Update environment-specific values: Get Domains from Sheet: Enter your Google Sheet ID and select the correct sheet name. Send Email Alert: Set your recipient's email address in the "To" field. Send Discord Notification: Select your desired Server and Channel ID. Test execution: Add a domain you know is available to your Google Sheet (with isAvailable set to "no"). Run the workflow manually to verify that all connections work and you receive notifications. Technical Details Core Nodes | Node | Purpose | Key Configuration | |------|---------|-------------------| | Schedule Trigger | Initiates the workflow on a recurring basis. | Set the desired interval (default: 30 minutes). | | Google Sheets | Reads the domain list and updates its status. | Sheet ID, Sheet Name, and column mapping. | | SplitInBatches | Processes each domain from the list individually. | Batch size is set to 1 to check domains sequentially. | | HTTP Request | Queries the Porkbun API for domain availability. | Porkbun API endpoint and credentials. | | IF | Routes the workflow based on the API response. | Checks if response.avail equals "yes". | | Gmail | Sends a detailed email alert for available domains. | Recipient email, subject, and HTML body. | | Discord | Sends a concise notification to a Discord channel. | Server ID, Channel ID, and message content. | | Wait | Prevents API rate-limiting. | Pauses for 10 seconds between checking domains. | Workflow Logic The workflow is triggered by a schedule, fetching a list of domains from a Google Sheet. It uses the SplitInBatches node to loop through each domain sequentially. For every domain, it calls the Porkbun API. An IF node checks the response; if available, it triggers notifications and updates the Google Sheet. A Wait node is crucial for respecting API rate limits, ensuring the workflow runs smoothly even with large domain lists. Customization Options Basic Adjustments: Check Frequency**: Modify the "Schedule Trigger" node to run more or less frequently. Notification Channels**: Remove the Gmail or Discord nodes, or add new ones like Slack or Telegram. Email Content**: Customize the HTML in the Gmail node to match your branding. Advanced Enhancements: Auto-Registration**: Extend the workflow to use Porkbun's domain registration API endpoint to automatically purchase the domain when it becomes available (use with caution). Advanced Filtering**: Add logic to only send notifications for domains with specific TLDs (.com, .io, etc.) or that are not marked as "premium." Tiered Notifications**: Set up different notification channels based on the perceived value of the domain, sending high-priority alerts via SMS for critical domains. Troubleshooting Common Issues: | Problem | Cause | Solution | |---------|-------|----------| | Workflow fails at HTTP Request node | Invalid Porkbun API credentials. | Use the separate "Validate API KEY" node to test your keys directly. Regenerate them if needed. | | No domains are processed | Google Sheets node configuration error or the sheet is empty. | Verify the Sheet ID is correct and that the isAvailable column contains "no" for the domains you want to check. | | Authentication errors | Google or Discord credentials have expired or lack permissions. | Re-authenticate the respective nodes in the n8n credentials panel. | Created by: Khaisa Studio Category: Monitoring Tags: Porkbun, Domain, Automation, Google Sheets, Notifications Need custom workflows? Contact us Connect with the creator: Portfolio โข Workflows โข LinkedIn โข Medium โข Threads
by Abdullah Alshiekh
This workflow is designed to automate the initial screening process for your User-Generated Content (UGC) campaigns. It instantly calculates a performance score for every candidate using AI, filters out low-scoring applicants, and immediately initiates outreach to the qualified talent. ๐งฉ What Problem Does It Solve? Hiring managers waste valuable time manually reviewing hundreds of applications against a complex, weighted rubric, which leads to delays in contacting the best candidates. This workflow solves these by: Instant, Unbiased Scoring:** It uses an AI Agent (Google Gemini) to instantly assign a score (0โ10) based on specific criteria. Automatic Qualification:** It filters out unqualified candidates and automatically processes those who meet your minimum score requirement. Immediate Outreach:** It instantly sends acceptance emails to qualified candidates and notifies your internal HR team to follow up. Centralized Tracking:** It logs the candidate's data and their final AI score into a central Google Sheet for easy long-term tracking. ๐ ๏ธ How to Configure It 1.Jotform Setup: Connect your Jotform API credentials in n8n. Specify the ID of your candidate application form in the Jotform Trigger node. 2.AI Setup: Connect your Google Gemini API key. Review the scoring prompt in the AI Agent node and confirm that the point system matches your current campaign requirements. 3.Google Sheets Setup: Connect your Google Sheets API credentials. Replace the placeholder TEMPLATE_GOOGLE_SHEETS_DOCUMENT_ID with the actual ID of your candidate tracking spreadsheet. 4.Email Setup: Connect your Gmail API credentials. Replace the placeholder TEMPLATE_HR_EMAIL@yourcompany.com in the "Send Internal Notification (HR)" node with your team's correct contact email. โ๏ธ How It Works 1.Application Received: The Jotform Trigger instantly fires when a candidate submits their form. 2.AI Scores Candidate: The AI Agent uses the criteria prompt to calculate a definitive numerical score for the applicant. 3.Qualification Check: The If node checks if the score is 6 or higher. 4.If True (qualified): The candidate proceeds to the next steps. 5.If False (unqualified): The workflow stops for this candidate (or can be configured to send a rejection). 6.Record & Notify: The workflow saves the data to the Google Sheet and then simultaneously sends two emails: an acceptance email to the candidate and an internal notification to HR. ๐ฏ Perfect For UGC Campaigns:** Instantly qualify content creators for product reviews, endorsements, and social media ads based on objective, pre-defined rules. Influencer Marketing:** Automatically filter and prioritize micro- and nano-influencers who match all your specific demographic and product criteria. Mass Screening:** Use the AI to quickly narrow down a large pool of applicants, saving your recruiting team hours of manual data review and scoring. If you need any help Get in Touch
by Jitesh Dugar
Customer Onboarding Email Verification Automated email verification and welcome email workflow that validates new user signups, prevents fake emails, and creates a seamless onboarding experience with real-time team notifications. Features โ Real-time email validation with VerifiEmail API โ Automatic data sanitization (lowercase, trim whitespace) โ Smart typo detection and correction suggestions โ Disposable email domain blocking โ Professional HTML welcome emails with responsive design โ Automatic duplicate prevention in Google Sheets logging โ Real-time Slack notifications for sales/marketing teams โ MX record and SMTP deliverability checks What You Need Required Accounts/APIs: VerifiEmail API - For email validation (verifi.email) Gmail account (or SMTP server) - For sending welcome emails Google Sheets - For logging verified users Slack workspace - For team notifications (optional but recommended) Setup Instructions Create Google Sheet Create new spreadsheet named "Verified Users" Add headers: Name | Email | Status | Verified At | Original Email | Validation Score Connect Credentials Add VerifiEmail API key in n8n credentials Connect Gmail via OAuth2 (enable 2FA, generate app password if needed) Connect Google Sheets via OAuth2 Connect Slack workspace via OAuth2 Customize Email Template Open "Personalize Welcome Email" node Replace "Your Company" with your brand name (appears 3 times) Update CTA URLs: yourapp.com/dashboard โ Your actual dashboard URL yourapp.com/getting-started โ Your docs/guide URL yourapp.com/support โ Your support page URL Modify colors: Purple gradient #667eea to #764ba2 (line 37) Configure Slack Channel Create #new-signup channel in Slack (or use existing) Update channel in "Team Notification" node Test Workflow Activate workflow Copy webhook URL from Webhook node Test with: curl -X POST [webhook-url] -H "Content-Type: application/json" -d '{"name":"Test User","email":"test@gmail.com"}' Integrate with Your Signup Form Point form submission to webhook URL Ensure payload includes name and email fields Input Format Send POST request to webhook with this JSON: { "name": "John Doe", "email": "johndoe@gmail.com" } The workflow handles various input formats (nested in body field, query params, etc.) and sanitizes automatically. Output After execution, you'll get: Email validated via VerifiEmail API with deliverability score Welcome email sent to user with personalized greeting and CTAs User logged to Google Sheets with timestamp and validation details Slack notification sent to team with user details and status Invalid emails blocked with typo correction suggestions prepared For Valid Emails (~85-90%): Professional HTML welcome email delivered Entry added to "Verified Users" sheet Real-time Slack alert to #new-signup channel For Invalid Emails (~10-15%): Workflow stops with error message No email sent (prevents bounces) Typo suggestion prepared (e.g., gmial.com โ gmail.com) Customization Change Email Design: Edit the "Personalize Welcome Email" node HTML: Colors**: Change gradient in line 37: background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) Logo**: Add `` tag in header section Buttons**: Modify CTA text and links in lines 45-65 Footer**: Update copyright year and company name Modify Validation Rules: In "Prepare Correction Email" node, add more typo patterns: const commonTypos = { 'gmial': 'gmail', 'gmai': 'gmail', // Add your custom patterns: 'yourdomain': 'yourcorrectdomain' } Enable Correction Email Sending: Replace "Stop and Error" node with Gmail "Send Email" node: Connect from "Prepare Correction Email" Use {{ $json.email }} as recipient Use {{ $json.emailBody }} as message User receives helpful correction suggestion instead of silent failure Add More Notification Channels: After "Log Valid Users" node, add: Discord webhook for team notifications Microsoft Teams connector Email to sales@ or support@ Custom webhook to your CRM Log Invalid Attempts: Add Google Sheets node after "Prepare Correction Email": Create "Invalid Attempts" tab in same spreadsheet Log: Name, Email, Reason, Suggestion, Timestamp Analyze patterns weekly for form improvements Troubleshooting "undefined" error in Data Sanitization: Check webhook payload structure Verify name and email fields are present Test with the debug code provided in sticky notes All emails marked as invalid: Verify VerifiEmail API key is active Test API directly at verifi.email dashboard Welcome emails not sending: Confirm Gmail OAuth2 is connected (check for expired tokens) Verify sending limits not exceeded Check spam folder if testing with personal email Review Gmail "Sent" folder for delivery confirmation No Slack notifications: Verify OAuth2 connection is active Check bot has permission to post in #new-signup channel Confirm channel ID is correct Test Slack credentials in n8n Duplicate entries in Google Sheets: Verify "Email" is set as matching column Confirm operation is "Append or Update" not just "Append" Check Sheet1 has the exact column names expected High validation failure rate: Review invalid emails in execution logs Check for form submission issues (bots, testing) Verify VerifiEmail API is not blocking legitimate domains Performance Optimization For high-volume signups (>100/day): Switch Slack notifications to hourly digest Implement rate limiting on webhook Consider caching frequent domain validations Use Google Workspace for higher email sending limits Maintenance Weekly: Check VerifiEmail API usage and quota Review Slack notifications for anomalies Scan Google Sheets for data quality Test with sample signup Monthly: Archive old Google Sheets data (>90 days) Review invalid email patterns Update email template if needed Audit credential security Support For issues or questions, visit the n8n community forum.
by Julian Reich
This n8n template demonstrates how to automatically analyze all your accumulated notes from the past week and generate actionable insights, task lists, and priorities using AI. Use cases are many: Try automating weekly planning sessions, extracting action items from meeting notes, identifying recurring themes in your thoughts, or creating data-driven weekly reports for personal productivity tracking! Good to know ChatGPT analysis costs approximately $0.01-0.05 per week depending on the volume of notes The workflow uses advanced date filtering to process exactly 7 days of content Email sending requires SMTP configuration (Gmail, Outlook, etc.) Perfect companion:* Works seamlessly with the "Audio Notes to Google Docs*" workflow - it reads and analyzes all notes created by that system! How it works A schedule trigger runs every Sunday at your preferred time (default: 11 PM) The workflow reads your complete Google Doc containing all accumulated notes A smart filter function extracts only entries from the past 7 days using date stamp recognition The filtered content gets sent to ChatGPT which analyzes patterns and extracts: Actionable tasks for next week Important deadlines and appointments Key insights and learnings Top 3 priorities Category distribution (Work, Private, Health, etc.) A second AI call creates a personalized email summary with context and recommendations The structured analysis gets appended to your Google Doc as a weekly summary You receive a Telegram notification when the review is complete A detailed email report lands in your inbox with the full analysis and action items How to use The workflow runs automatically every Sunday - no manual intervention needed Adjust the schedule trigger to your preferred day/time for weekly planning Review the email summary and use the extracted tasks for your upcoming week planning The Google Doc serves as your permanent archive of weekly insights Requirements Google Docs API access to read your notes document OpenAI API account for ChatGPT analysis (GPT-4 recommended for best results) SMTP email configuration for sending summary reports Telegram Bot Token for notifications Prerequisite:* The *"Audio Notes to Google Docs**" workflow or similar system that creates timestamped entries Customising this workflow Modify the AI analysis prompt to focus on specific areas (business metrics, health tracking, learning goals) Add multiple analysis modes (daily, bi-weekly, monthly reviews) Include additional outputs like calendar event creation, task manager integration, or team sharing Connect to project management tools like Notion, Asana, or Monday.com for automatic task creation
by Oneclick AI Squad
Streamline invoice management with this automated n8n workflow. Triggered daily at 9 AM, it fetches pending invoices, filters overdue ones, uses AI to generate personalized reminders, and sends them to clients. It also tracks payments via webhooks, updates statuses, and provides daily summaries to the finance team, ensuring efficient cash flow oversight. Key Features Daily checks at 9 AM ensure timely invoice tracking. AI generates personalized reminders and payment confirmations. Real-time webhook integration for payment updates. Daily summaries and activity logs enhance financial visibility. Workflow Process Schedule Daily Check** runs every day at 9 AM to initiate the workflow. Fetch Pending Invoices** queries the database for unpaid invoices. Filter Overdue Invoices** separates overdue invoices based on due dates. Calculate Reminder Logic** applies smart logic for reminder timing and urgency. Prepare AI Prompt** formats data into a tailored prompt for AI. AI Agent for Generate Email** uses AI to create personalized reminder emails. Format Email** styles the email with HTML for a professional look. Send Email Reminder** delivers the reminder to clients. Update Reminder Status** logs the sent reminder in the database. Create Activity Log** generates a manual log for auditing. Save Input Log** archives raw input data for analysis. Generate Daily Summary** creates a report of daily metrics. Send Summary to Finance Team** emails the summary to the team. Webhook Payment Received** captures payment confirmations via POST. Update Payment Status** updates the invoice status to "paid" in the database. Webhook Response** sends an acknowledgment to the payment gateway. Webhook Logic Filtering** validates webhook data. Prepare AI Prompt (in payment branch)** formats payment data for AI. Chat Memory Tool (in payment branch)** maintains context for AI. Generate Email (in payment branch)** creates a payment confirmation email. Send Payment Confirmation** emails the confirmation to the client. Setup Instructions Import the workflow into n8n and configure database credentials (e.g., Google Sheets or SQL) for "Fetch Pending Invoices." Set up the AI service (e.g., OpenAI GPT) with an API key for email generation. Configure Gmail API Key for sending emails and Slack (if integrated) for team alerts. Test the workflow by adding overdue invoices and simulating a payment webhook. Adjust reminder logic and thresholds (e.g., 7 days overdue) as needed. Prerequisites Database access (e.g., Google Sheets OAuth2 or SQL credentials) OpenAI API key for AI email generation Gmail API Key for email notifications Payment gateway webhook integration (e.g., Stripe) Structured invoice data format Database Structure: Create a table/sheet with columns: Invoice ID Client Name Amount Due Date Status Reminder Sent Payment Date Modification Options Adjust the "Schedule Daily Check" to a different time (e.g., 8 AM IST). Customize "Calculate Reminder Logic" for escalation (e.g., multiple reminders). Modify AI prompts for branded or localized email content. Integrate with accounting software (e.g., QuickBooks) for real-time data. Enhance "Generate Daily Summary" with custom financial metrics. Discover more workflows โ Get in touch with us
by Intuz
This n8n template from Intuz provides a complete and automated solution for full-cycle invoicing, orchestrating a seamless flow between Airtable, QuickBooks, and Stripe. This is the ultimate sales-to-cash automation. When a deal in Airtable is marked "Approved for Invoicing," this workflow intelligently syncs customer data across QuickBooks and Stripe (creating them if they don't exist), generates an official QuickBooks invoice, creates a Stripe payment link, and then updates the original Airtable record with all the new IDs and links. Eliminate manual data entry and keep your systems perfectly in sync. Who's this workflow for? Finance, Accounting, and Operations Teams SalesOps and RevOps Teams Small Business Owners and Founders Agencies and Freelancers How It Works: 1. Airtable Trigger & Approval Gate: The workflow starts when a record in your Airtable base is updated. An If node immediately checks if the Status field is set to "Approved for Invoicing." If not, the workflow for that item stops. 2. Customer Sync (QuickBooks & Stripe): The workflow searches for the customer in both QuickBooks and Stripe using the details from Airtable. Using If nodes, it intelligently checks if the customer exists. If a customer is not found in either platform, it creates a new one. This "find-or-create" logic prevents duplicate records. 3. Update Airtable with IDs: Once the customer IDs from both QuickBooks and Stripe are secured (either found or newly created), the workflow updates the original Airtable record with these new IDs for future reference. 4. Generate Financials: Stripe Payment Link: It sends an HTTP request to Stripe to create a unique, ready-to-use payment link for the specified amount. QuickBooks Invoice: It fetches your product list from QuickBooks, finds the matching item from the Airtable record, and generates a formal, detailed invoice. 5. Close the Loop: In the final step, the workflow updates the Airtable record one last time to: Add the QuickBooks Invoice #. Add the Stripe Payment Link. Change the Status to "Invoiced." Step-by-Step Setup Instructions This is an advanced workflow. Follow these setup steps carefully. 1. Connect Your Credentials Airtable: Create and connect a Personal Access Token with data.records:read and data.records:write scopes. QuickBooks: Connect your QuickBooks Online account using OAuth2 credentials. Stripe: Connect your Stripe account using your Secret Key. 2. Airtable Base Setup (Crucial) Your Airtable base must have a table with the following columns. The names must match exactly: Deal Name (Text) Client Name (Text) Client Email (Email) Status (Single-select with options: Draft, Approved for Invoicing, Invoiced) QuickBooks Customer ID (Text) Stripe Customer ID (Text) Stripe Payment Link (URL) QuickBooks Invoice # (Text) Stripe Price Id (Text - The API ID of your price in Stripe, e.g., price_123...) Quantity (Number) Quickbooks Product Name (Text) Created (Created Time) - This is used by the trigger. 3. Configure the n8n Nodes All Airtable Nodes: In each Airtable node, select your Base and Table from the dropdown lists. Get all Quickbook products (HTTP Request Node): You must replace {YOUR_QUICKBOOKS_COMPANY_ID} in the URL with your actual QuickBooks Company ID (also known as a Realm ID). 4. Activate the Workflow Save the workflow and toggle the Active switch to "on". The workflow will now trigger whenever the Created field is updated for a record in your Airtable base. Customization Guidance Changing the Trigger Status: If you use a different status than "Approved for Invoicing," simply update the value in the "IF - Status Check" node. Modifying Invoice Details: You can customize the Description or other line item details in the "Create an invoice" (QuickBooks) node by pulling more fields from your Airtable record. Adding Email Notifications: To notify a customer when their invoice is ready, add a Gmail or SendGrid node after the last Airtable Update node. You can include the Stripe Payment Link and a PDF of the QuickBooks invoice directly in the email. Advanced Error Handling: For a production environment, consider connecting the false output of the various IF nodes or using the .onError() workflow setting to send a Slack or email alert if a customer can't be found or an API call fails. Support For further support, or to develop a custom workflow, reach out to: Website: https://www.intuz.com/services Email: getstarted@intuz.com LinkedIn: https://www.linkedin.com/company/intuz Get Started: https://n8n.partnerlinks.io/intuz For Custom Worflow Automation Click here- Get Started
by Rahul Joshi
Description Automate daily KPI tracking and reporting by integrating ClickUp tasks and Google Sheets lead data into a unified dashboard. This workflow computes performance metrics, analyzes sentiment, and delivers visualized reports to Slack and Gmail for instant team insights. ๐๐ฌ๐ง What This Template Does Triggers automatically every day using a cron scheduler. โฐ Fetches project task data from ClickUp, including status, priority, and assignee metrics. Retrieves lead generation data and responses from Google Sheets. Merges both data sources to create a unified performance dataset. Computes detailed KPI metrics (task completion, overdue %, sentiment analysis, response trends). Formats data for reporting and visualization. Posts a concise KPI summary snapshot to a designated Slack channel. Sends a professionally formatted HTML report via Gmail. Notifies your Slack channel instantly in case of any workflow errors. Key Benefits โ Eliminates manual KPI tracking and reporting. โ Combines ClickUp and Google Sheets data into one view. โ Provides real-time insights for decision-making. โ Automates daily updates for consistent visibility. โ Delivers both quick Slack summaries and detailed email reports. โ Built-in error alerting ensures uninterrupted automation. Features Scheduled daily cron trigger for automated execution. OAuth2-secured integrations with ClickUp, Google Sheets, Slack, and Gmail. Parallel data fetching for faster performance. Smart KPI calculations with sentiment and trend analysis. Custom HTML email template with visual charts and highlights. Slack snapshot notifications for instant updates. Error-handling mechanism with Slack alerts. Requirements ClickUp account with OAuth2 credentials. Google Sheets access with OAuth2 credentials. Slack API credentials with chat:write permission. Gmail OAuth2 credentials for report delivery. Target Audience Project managers tracking performance KPIs. Operations teams needing daily performance visibility. Marketing and sales teams monitoring task and lead metrics. Automation and analytics engineers building executive dashboards. Step-by-Step Setup Instructions Connect your ClickUp, Google Sheets, Slack, and Gmail accounts. ๐ Replace placeholder IDs (Sheet ID, Channel ID, Email) with your actual values. Adjust the cron trigger time as per your timezone. Test with sample data to confirm correct KPI calculations. Enable workflow to start daily automated execution. ๐
by Oneclick AI Squad
Optimize your performance review process with this automated workflow. Running daily at 8 AM, it retrieves scheduled reviews from a Google Sheet, validates upcoming sessions, processes each review, and sends email reminders to participants. It also updates Google Calendar events, notifies HR via Slack, and logs review statuses back into the sheet โ ensuring a seamless, tracked, and multi-channel communication experience. ๐ ๐ค What This Template Does Step 1: Triggers Daily Check at 8 AM to initiate the review process. โฐ Step 2: Gets Review Schedule by reading planned reviews from a Google Sheet. Step 3: Filters Upcoming Reviews to focus on sessions within the next 3 days. Step 4: Validates Reviews Scheduled? Ensures reviews exist and are ready to process. Step 5: Splits into Manual to handle each review individually. Step 6: Prepares Review Data for notifications and updates. Step 7: Branches actions: โโโ Sends Email Reminder to participants. โโโ Updates Calendar Event with the scheduled session. โโโ Notifies HR on Slack with review details. โโโ Updates Review Status in the Google Sheet with logged feedback. Key Benefits Automates daily review scheduling and reminders Ensures timely calendar updates and notifications Centralizes feedback logging in Google Sheets Enhances HR visibility with Slack alerts Reduces manual coordination efforts Improves review process consistency Features Daily trigger at 8 AM Google Sheet integration for review schedule Filtering for upcoming reviews (next 3 days) Validation of scheduled reviews Multi-channel notifications (email, Slack) Google Calendar event creation Real-time status updates in sheets Manual processing for individual reviews Requirements GOOGLE_SHEET_ID**: Your Google Sheet ID (structured as below) Credentials Needed:** Google Sheets OAuth2 Gmail API Key Google Calendar OAuth2 Slack Bot Token (with chat:write permissions) Customize:** โข Review schedule columns (e.g., Employee, Date, Reviewer, Status) โข Reminder email template โข Slack channel for HR notifications โข Calendar event duration Google Sheet Structure: Create a sheet with columns: Employee Name Review Date Reviewer Status Feedback Updated At Target Audience HR teams managing performance reviews ๐ฅ Managers scheduling regular check-ins โณ Organizations ensuring review compliance ๐ Remote teams needing centralized updates ๐ Companies prioritizing employee feedback ๐ Step-by-Step Setup Instructions Set up Google Sheet โโ Create a sheet with columns: Employee Name, Review Date, Reviewer, Status, Feedback, Updated At. โโ Replace YOUR_SHEET_ID in the workflow with your actual Sheet ID. Configure Daily Trigger โโ Set the "Daily Check at 8 AM" node to run at 8:00 AM IST (adjust for timezone if needed). Connect Google Calendar โโ Enable Google Calendar OAuth2 and select the relevant calendar (e.g., hr@company.com). Customize Review Filter โโ In "Filter Upcoming Reviews," set the range to check the next 3 days from today (e.g., October 24โ27, 2025). Set Up Notifications โโ Edit the "Send Email Reminder" template (e.g., include review date and link). โโ Configure "Notify HR on Slack" with your HR channel ID. Test the Flow โโ Add a test review entry in the sheet (e.g., date within 3 days). โโ Run manually or wait until 8 AM IST on October 25, 2025 โ Verify email, calendar event, Slack message, and sheet update. Go Live โโ Enable the daily trigger. โโ Monitor sheet and notifications for the first run. Workflow Complete! Reviews scheduled, reminders sent, and feedback logged โ all on autopilot. Metrics to Track: Reviews scheduled daily Reminder delivery success Calendar update rate Feedback logging completion
by Punit
HubSpot Customer Onboarding Automation Overview Streamline your customer onboarding process with this intelligent automation that triggers when new contacts are created in HubSpot. The workflow automatically sends personalized welcome emails, schedules onboarding calls, and assigns customer success managers - ensuring every new customer receives immediate attention and proper support. What This Workflow Does Core Features Real-time Contact Detection**: Monitors HubSpot for new contact creation events via webhooks Intelligent Email Generation**: Uses AI to create personalized welcome emails based on contact information Automated Calendar Scheduling**: Finds available time slots and schedules onboarding calls with new contacts Smart CSM Assignment**: Automatically assigns contacts to appropriate customer success managers Multi-channel Communication**: Sends HTML-formatted emails with professional styling Calendar Integration**: Full Google Calendar management with attendee invitations Business Value Instant Response**: New customers receive immediate welcome communication Personalization at Scale**: Each email is uniquely crafted based on contact details and company information Process Consistency**: Ensures every new contact follows the same high-quality onboarding process Resource Optimization**: Automatically schedules meetings in available time slots Customer Experience**: Professional, timely communication builds trust from day one Prerequisites Required Accounts & Credentials HubSpot Account with Developer API access for webhooks HubSpot Pro/Enterprise for OAuth2 API access OpenAI API access for AI-powered email generation Google Calendar account for meeting scheduling Gmail account for email delivery Public-facing n8n instance or n8n Cloud for webhook reception Technical Requirements HubSpot webhook subscription capabilities Google Workspace or personal Google account OpenAI API with GPT-4o access n8n instance with LangChain nodes package installed Setup Instructions Step 1: HubSpot Developer Setup Create HubSpot Developer Account: Go to HubSpot Developer Portal Create or access your developer account Navigate to Apps section Create Webhook Subscription: In HubSpot Developer Portal: Apps > Create App Configure webhook subscription for contact.creation events Set webhook URL to your n8n webhook endpoint Note the App ID and Developer API key Add HubSpot Developer Credentials: In n8n: Settings > Credentials > "HubSpot Developer API" Enter Developer API key and App ID Step 2: HubSpot OAuth2 Configuration Create OAuth2 App: In HubSpot Developer Portal: Create OAuth2 app Add required scopes: contacts.read contacts.write crm.objects.owners.read Add HubSpot OAuth2 Credentials: In n8n: Settings > Credentials > "HubSpot OAuth2 API" Complete OAuth authorization flow Step 3: OpenAI Configuration Get OpenAI API Key: Visit OpenAI Platform Create API key with GPT-4o model access Add OpenAI Credentials: In n8n: Settings > Credentials > "OpenAI API" Enter your API key Step 4: Google Calendar Setup Enable Google Calendar API: Go to Google Cloud Console Enable Google Calendar API Create OAuth2 credentials Add Google Calendar Credentials: In n8n: Settings > Credentials > "Google Calendar OAuth2 API" Complete OAuth authorization flow Step 5: Gmail Configuration Enable Gmail API: In Google Cloud Console: Enable Gmail API Use same OAuth2 credentials as Calendar Add Gmail Credentials: In n8n: Settings > Credentials > "Gmail OAuth2" Complete OAuth authorization Step 6: Customize Company Information Update "Enter your company data here" Node: company_name: "Your Company Name" sender_name: "Your Name" sender_email: "your-email@company.com" company_activity: "Your company description" Important: The sender_email must match your HubSpot user email and Google account email Step 7: Configure Calendar Settings Update Calendar Agent Tool: Verify calendar ID matches your Google Calendar Ensure proper timezone settings Test calendar access permissions Configuration Details Webhook Event Handling The workflow processes HubSpot webhook events: Event Type**: contact.creation Data Processing**: Extracts contact ID and subscription type Validation**: Ensures event is contact creation before proceeding AI Email Generation System The email generation process uses: Model**: GPT-4o-mini for cost-effective, high-quality content Structured Output**: JSON format with subject and body fields Personalization Variables**: Contact name, email, company information Template Consistency**: Maintains professional tone and branding Calendar Management Features The calendar agent provides: Event Creation**: With and without attendees Event Retrieval**: Find available time slots Event Updates**: Modify existing appointments Event Deletion**: Remove canceled meetings Smart Scheduling**: Automatically finds next available slot Contact Assignment Logic The CSM assignment process: Owner Lookup**: Retrieves all HubSpot owners Sender Matching**: Finds owner matching the configured sender email Contact Assignment**: Updates contact record with owner ID Usage Instructions Automatic Operation Activate Workflow: Toggle workflow to "Active" status Webhook automatically registers with HubSpot Test with New Contact: Create test contact in HubSpot Monitor n8n execution log Verify email delivery and calendar event creation Monitor Performance: Check HubSpot webhook delivery logs Review email delivery success rates Validate calendar event creation Manual Testing Create Test Contact: Add new contact in HubSpot with complete information Ensure contact has valid email address Monitor workflow execution Validate Outputs: Email: Check recipient inbox for welcome email Calendar: Verify meeting invitation sent and accepted HubSpot: Confirm contact owner assignment Logs: Review n8n execution for any errors Expected Outputs Personalized Welcome Email AI-generated email featuring: Subject Line**: Customized based on company and contact information Personalized Greeting**: Uses contact's first name and relevant details Company Introduction**: Includes sender name, company name, and business description Meeting Notification**: Mentions upcoming scheduled onboarding call Professional Formatting**: HTML-styled for professional appearance Scheduled Onboarding Call Google Calendar event with: Title**: Descriptive meeting title including contact name Attendees**: New contact automatically invited Timing**: Next available 1-hour slot in sender's calendar Location**: Virtual meeting details (if configured) Description**: Meeting purpose and agenda HubSpot Contact Updates Automated contact management: Owner Assignment**: Contact assigned to appropriate CSM Activity Logging**: Webhook event recorded in contact timeline Data Enrichment**: Additional contact information if available Calendar Tool Responses Structured responses from calendar operations: Success Confirmations**: Meeting created successfully Error Handling**: Clear error messages for failed operations Event Details**: Complete information about created/modified events Troubleshooting Common Issues HubSpot Webhook Not Triggering Cause: Webhook subscription not properly configured or n8n endpoint not accessible Solutions: Verify n8n webhook URL is publicly accessible Check HubSpot webhook subscription settings Confirm webhook is active in HubSpot Developer Portal Test webhook delivery using HubSpot's testing tools Contact Information Not Retrieved Cause: Insufficient HubSpot API permissions or invalid contact ID Solutions: Verify HubSpot OAuth2 scopes include contact read permissions Check contact ID extraction from webhook payload Ensure contact exists and is accessible via API Test contact retrieval manually Email Generation Failed Cause: OpenAI API issues or insufficient token limits Solutions: Check OpenAI API key validity and usage limits Verify GPT-4o model access permissions Review prompt complexity and token requirements Test AI generation with simpler prompts Calendar Event Creation Failed Cause: Google Calendar permissions or invalid calendar ID Solutions: Verify Google Calendar OAuth2 permissions Check calendar ID configuration matches sender email Ensure calendar is accessible and not restricted Test calendar operations manually Gmail Delivery Problems Cause: Authentication issues or email formatting problems Solutions: Check Gmail OAuth2 token validity Verify sender email matches authenticated account Review HTML formatting for email compatibility Test email delivery with simple text format Performance Optimization High Contact Volume Implement rate limiting for API calls Add error retry mechanisms with exponential backoff Monitor token usage and API quotas Consider batch processing for multiple contacts Large Calendar Schedules Optimize calendar queries with specific date ranges Implement caching for frequently accessed calendar data Add timeout handling for slow calendar operations Consider pagination for large event lists Customization Examples Different CRM Systems Replace HubSpot with alternative CRMs: Salesforce**: Use Salesforce webhook and contact management Pipedrive**: Implement Pipedrive person creation triggers Zoho CRM**: Configure Zoho webhook subscriptions Airtable**: Use Airtable as simple CRM with webhooks Alternative Email Providers Replace Gmail with other email services: SendGrid**: Use SendGrid for transactional emails Mailgun**: Implement Mailgun email delivery Microsoft Outlook**: Use Outlook for business email AWS SES**: Configure Amazon Simple Email Service Enhanced Email Content Improve email personalization: Company Research**: Add web scraping for company information Industry-Specific Templates**: Different emails for different industries Multi-language Support**: Detect contact language and localize content Dynamic Content**: Include relevant resources based on contact properties Advanced Calendar Features Extend calendar functionality: Buffer Time**: Automatically add buffer between meetings Meeting Types**: Different durations for different contact types Timezone Handling**: Automatic timezone detection and conversion Recurring Meetings**: Schedule follow-up meetings automatically Workflow Branching Add conditional logic: Contact Source**: Different flows for different lead sources Company Size**: Tailored onboarding for enterprise vs SMB Geographic Routing**: Regional CSM assignment Product Interest**: Specialized onboarding based on product selection Security Considerations API Security Store all credentials securely in n8n credential system Use OAuth2 authentication where available Regularly rotate API keys and refresh tokens Monitor API usage for unauthorized access Data Privacy Ensure compliance with data protection regulations (GDPR, CCPA) Implement data retention policies for contact information Consider data encryption for sensitive customer data Document data flows for privacy audits Webhook Security Implement webhook signature verification where supported Use HTTPS endpoints for all webhook URLs Monitor webhook delivery logs for suspicious activity Consider IP whitelisting for webhook sources Integration Considerations HubSpot Best Practices Rate Limiting**: Respect HubSpot API rate limits Error Handling**: Implement proper error responses for webhooks Data Sync**: Ensure data consistency between systems Backup Procedures**: Regular backup of workflow configurations Email Deliverability Authentication**: Implement SPF, DKIM, and DMARC records Content Quality**: Avoid spam triggers in email content List Management**: Respect unsubscribe requests Monitoring**: Track email delivery and engagement metrics Business Process Integration Sales Handoff Lead Qualification**: Integrate with lead scoring systems Sales Notification**: Alert sales team of high-value prospects CRM Updates**: Sync onboarding status with sales pipeline Activity Tracking**: Log all onboarding activities in CRM Customer Success Workflows Milestone Tracking**: Monitor onboarding progress Health Scoring**: Assess customer engagement levels Escalation Procedures**: Flag at-risk customers for intervention Success Metrics**: Track onboarding completion rates Support and Maintenance Regular Maintenance Monitor webhook delivery success rates Review email open and response rates Update AI prompts based on feedback Audit calendar scheduling efficiency Performance Monitoring Track workflow execution times and success rates Monitor API usage and costs across all services Review customer feedback on onboarding experience Analyze conversion rates from onboarding to activation Updates and Improvements Stay updated with API changes from integrated services Test workflow compatibility with platform updates Implement customer feedback and feature requests Document all customizations for team reference Cost Optimization API Usage Management Monitor OpenAI token consumption patterns Optimize prompts for efficiency and effectiveness Track Google API usage for calendar and email operations Implement usage alerts and budgets Alternative Approaches Consider using local AI models for email generation Implement template-based emails for cost reduction Use free tiers where available and appropriate Regular cost-benefit analysis of integrated services License and Attribution This workflow template is provided under MIT license. Calendar agent implementation inspired by Nate Herk's YouTube channel. Attribution to original creators appreciated when sharing or modifying. Users are responsible for compliance with all integrated services' terms of service and data handling requirements. Support Contact For customizations, troubleshooting, or additional workflow development: Email**: punit@geekfleet.dev Creator Profile**: n8n Creator Profile Specializations**: n8n, Make, LangChain, and LangGraph workflow development