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 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 Cheng Siong Chin
How It Works This workflow automates real-time energy grid telemetry ingestion, compliance validation, and multi-channel reporting for grid operators, energy managers, and compliance teams. Telemetry data arrives via webhook and is routed to a central Coordination Agent with persistent memory. Four specialised AI sub-agents operate in parallel: Grid Signal Agent (validates signals via Telemetry Validation Tool and parses structure), Compliance Agent (checks against compliance history), Reporting Agent (generates structured reports), and Notification Agent (triggers Slack alerts). Results flow into a Prepare Telemetry Storage node, then branch into three outputs, validated telemetry stored to a grid database, compliance alerts prepared and stored, and email reports dispatched. This eliminates manual grid monitoring, accelerates anomaly response, and maintains a continuous compliance audit trail across energy infrastructure. Setup Steps Configure webhook URL in Grid Telemetry Webhook node. Set AI model credentials (OpenAI/Anthropic) in all agent and model nodes. Connect Slack credentials and target channel to Slack Notification Tool node. Configure email credentials in Send Report Email node. Connect database/Google Sheets credentials. Prerequisites Slack workspace and bot token Email account (SMTP or Gmail OAuth2) Database or Google Sheets for telemetry and alert storage Use Cases Real-time anomaly detection and alerting across smart grid sensor networks Automated regulatory compliance reporting for energy grid operators Customisation Extend Compliance Agent thresholds to match regional grid standards Replace Slack with Teams or PagerDuty for incident escalation Benefits Eliminates manual telemetry review — processes grid events at machine speed
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 Arbaz Asif
Overview: Automated Occasion Wisher How it works Runs daily to check if today matches any birthday, anniversary, or special occasion in your Google Sheet AI Agent reads the sheet and returns a list of users having a special occasion to wish with details and a personalized wishing message If there is no one to wish, no email is sent. If there are multiple people to wish, multiple personalized emails are sent Setup steps Connect your Google Sheet containing columns as: Name, Occasion_Date, Email, Occasion_Type, Relationship, Personal_Note Insert the AI prompt ensuring strict JSON output (list format only) Configure the Email node for sending the final message Customization Edit AI prompt to change message tone, length, or emojis Add support for multiple reminder styles (e.g., early notification) Extend with logging, Slack alerts, or saving sent email history
by Matt
This workflow automates the repair request process between tenants and building managers, keeping all updates organized in a single spreadsheet. It is composed of two coordinated workflows, as two separate triggers are required — one for new repair submissions and another for repair updates. A Unique Unit ID that corresponds to individual units is attributed to each request, and timestamps are used to coordinate repair updates with specific requests. General use cases include: Property managers** who manage multiple buildings or units. Building owners** looking to centralize tenant repair communication. Automation builders** who want to learn multi-trigger workflow design in n8n. ⚙️ How It Works Workflow 1 – New Repair Requests Behind the Scenes: A tenant fills out a Google Form (“Repair Request Form”), which automatically adds a new row to a linked Google Sheet. Steps: Trigger: Google Sheets rowAdded – runs when a new form entry appears. Extract & Format: Collects all relevant form data (address, unit, urgency, contacts). Generate Unit ID: Creates a standardized identifier (e.g., BUILDING-UNIT) for tracking. Email Notification: Sends the building manager a formatted email summarizing the repair details and including a link to a Repair Update Form (which activates Workflow 2). Workflow 2 – Repair Updates Behind the Scenes:\ Triggered when the building manager submits a follow-up form (“Repair Update Form”). Steps: Lookup by UUID: Uses the Unit ID from Workflow 1 to find the existing row in the Google Sheet. Conditional Logic: If photos are uploaded: Saves each image to a Google Drive folder, renames files consistently, and adds URLs to the sheet. If no photos: Skips the upload step and processes textual updates only. Merge & Update: Combines new data with existing repair info in the same spreadsheet row — enabling a full repair history in one place. 🧩 Requirements Google Account (for Forms, Sheets, and Drive) Gmail/email node connected for sending notifications n8n credentials configured for Google API access ⚡ Setup Instructions (see more detail in workflow) Import both workflows into n8n, then copy one into a second workflow. Change manual trigger in workflow 2 to a n8n Form node. Connect Google credentials to all nodes. Update spreadsheet and folder IDs in the corresponding nodes. Customize email text, sender name, and form links for your organization. Test each workflow with a sample repair request and a repair update submission. 🛠️ Customization Ideas Add Slack or Telegram notifications for urgent repairs. Auto-create folders per building or unit for photo uploads. Generate monthly repair summaries using Google Sheets triggers. Add an AI node to create summaries/extract relevant repair data from repair request that include long submissions.
by browseract
This workflow creates a fully automated B2B lead generation & outreach pipeline. It combines BrowserAct (for scraping) with Google Gemini AI (for writing) to automate the entire prospecting process. It takes a search request via a Form, scrapes verified leads from Apollo.io, uses AI to write a personalized cold email for EACH lead, saves everything to Google Sheets, and notifies you via Gmail when the batch is done. How it works Form Trigger:** You input the Target Role (e.g., "Engineer") and Location (e.g., "New York"). BrowserAct Automation:** Triggers a remote browser to search Apollo.io and extract contact details (Name, Job, Company, Email). AI Email Drafter:* *Google Gemini** reads the lead's info and automatically generates a personalized cold email draft tailored to their role and company. Data Merging:** Seamlessly combines the scraped contact info with the AI-generated email content. Google Sheets Storage:** Appends the full profile + the AI email draft into your spreadsheet. Email Notification:* Sends you a summary report via *Gmail** listing who was scraped and confirming the job is finished. Set up steps BrowserAct Configuration Double-click the "Run a workflow" node and paste your specific BrowserAct Workflow ID. Google Sheets Setup Create a new Google Sheet. Crucial: Add these headers in the first row: id, name, email, job_title, profile_url, company, location, email_draft. Update the "Save to Google Sheets" node to select this file. Credentials BrowserAct Account Google Gemini (PaLM) API (for AI generation) Google Sheets (Service Account or OAuth2) Gmail (OAuth2 - for notifications)
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 Ian Kerins
Overview This n8n template automates finding real estate agents in any city using Google Maps. It deep-scrapes listings via ScrapeOps Proxy, deduplicates results against Google Sheets, saves fresh leads, and sends alerts via Gmail and Slack — all triggered from a simple web form. Who is this for? Real estate marketing agencies building targeted agent lead lists PropTech companies prospecting realtors in new cities or regions Sales teams running outreach campaigns targeting real estate agencies Anyone who needs structured local real estate agent data from Google Maps What problem does it solve? Manually searching Google Maps for real estate agents, copying contact details, and checking for duplicates is slow and inconsistent. This workflow automates the entire process — from search to deduplication to saved leads — so you get fresh, structured agent data with zero manual effort. How it works A web form captures the target city. ScrapeOps Proxy scrapes Google Maps for real estate agents in that city. Each listing is deep-scraped for full details: phone, website, rating, reviews, and address. Results are compared against existing Google Sheet entries to remove duplicates. Only new leads are saved to the sheet. Gmail and Slack alerts notify you of new leads instantly. Set up steps (~10–15 minutes) Register for a free ScrapeOps API key: https://scrapeops.io/app/register/n8n Add ScrapeOps credentials in n8n. Docs: https://scrapeops.io/docs/n8n/overview/ Duplicate the Google Sheet template and connect it to the Read Previous Entries and Save New Leads nodes. Configure Gmail credentials in the Send Gmail Alert node and set your recipient. Configure Slack credentials in the Send Slack Alert node and set your channel. Open the form URL, enter a city, and run. Pre-conditions Active ScrapeOps account (free tier available): https://scrapeops.io/app/register/n8n ScrapeOps community node installed in n8n: https://scrapeops.io/docs/n8n/overview/ Google Sheets credentials configured in n8n Duplicated Google Sheet template with correct column headers Gmail credentials for alert emails Slack credentials for channel notifications Disclaimer This template uses ScrapeOps as a community node. You are responsible for complying with Google's Terms of Use, robots.txt directives, and applicable laws in your jurisdiction. Scraping targets may change at any time; adjust render, scroll, and wait settings and parsers as needed. Use responsibly and only for legitimate business purposes.
by Shinji Watanabe
Who’s it for Teams that capture leads with Typeform and want a plug-and-play flow to validate emails, enrich profiles in Vero, send a Gmail welcome, and log activity to Google Sheets with a Slack heads-up. Ideal for growth, sales, and marketing ops. What it does / How it works When a Typeform response arrives, the workflow: Validates the email format. Maps answers into a clean contact object. Upserts the contact in Vero (email as ID). Checks a qualification score; if qualified, sends a personalized Gmail welcome. Logs the outcome (timestamp, contact, score, status, action) to Google Sheets. Notifies Slack with a concise summary. Optional branches log and/or notify on invalid email or low score. How to set up In Configuration (Set), fill placeholders: typeformFormId, qualificationScore, slackChannel, sheetId, sheetName, gmailFrom, gmailSubject, sourceTag. Connect credentials for Typeform, Vero, Gmail, Google Sheets, Slack. Map your Typeform fields (email, name, company, score, consent) if labels differ. Requirements Active accounts: Typeform, Vero, Gmail, Google Sheets, Slack. Do not hardcode secrets in HTTP or Code nodes; use n8n credentials. Replace any sample IDs/emails/channels with your own. Customize the workflow Tune qualificationScore. Edit the Gmail template (subject/body variables). Add more attributes to the Vero upsert. Expand logging columns in Sheets. Split Slack notifications (e.g., triage channel for invalid/low-score leads).
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 Axiomlab.dev
This workflow allows users to extract potential leads from their inboxes. The idea of a reverse outreach is based on the notion that the next big client/customer/partner might be sitting in your inbox waiting to be mined. This automation has two workflows, one that extracts from the historical emails, and the other is a scheduled event, default set to run everyday morning. The workflow intelligently filters out emails from personal domains, system addresses (no-reply, updates), and generic company inboxes (info@, support@). The remaining emails are parsed to extract key information—company name, email address, domain, and subject—which is then stored in a Google Sheets spreadsheet. The Google Sheets node is configured to append or update based on the email address, ensuring that you never store duplicate entries. Finally, you will get a slack message with key information about the lead. 🚀 How it works Manual Trigger: A manual click initiate will fetch all historical emails. the limit set to 500, which you can increase up to 5000 Periodic Trigger: The workflow is triggered by time, default is set to daily fetch. Code nodes: Three Code nodes filter the emails based on custom rules - personal domains, system addresses, generic inboxes. Google Sheets: The processed data is sent to a Google Sheets spreadsheet. The append or update operation automatically handles whether to create a new row or update an existing one based on the email address, preventing duplicates. 🔑 Required Credentials Google (Gmail): To access your Gmail account and retrieve email messages. Google Sheets: To connect to your spreadsheet. Slack Bot: To Send message in a designated slack channel 🛠️ Setup Instructions Configure Gmail Trigger: Connect your Google cloud account credential in Gmail and Google sheet nodes. Choose the schedule to run the Email fetch node that periodically watch for new emails. Configure Code Node: This node is pre-configured with the filtering logic. You can customize the lists of personal, blocked, or generic email parts to fit your needs. Configure Google Sheets Node: Connect your Google Sheets credentials. Create a Spreadsheet with the following columns company_name, email, domain, subject, date_received Enter the Spreadsheet ID of your target spreadsheet in the Google sheet node along with the Sheet Name (e.g., Leads). And that should do it! Now run the manual trigger workflow and see the lead information showing up in your selected Slack Channel and also in the populated google sheet.