by WeblineIndia
Send Automated Recruitment Rejection Emails with Google Sheets and Gmail at End-of-Day. Automatically reads a “Candidate Status” tab in Google Sheets every day at 18:00 Asia/Kolkata, filters rows with exact (case-sensitive) rejection statuses and sends one personalized rejection email per candidate via SMTP (Gmail). It rate-limits sends, supports DRY\_RUN previews and writes a timestamp back to rejection_sent_at to avoid duplicates. Who’s it for Recruiters needing consistent, respectful closure at day end. Teams tracking hiring outcomes in Google Sheets. Coordinators who prefer a scheduled, hands-off workflow with safeguards. How it works Cron (18:00 IST) triggers daily Google Sheets Read → loads Candidate Status tab Filter → keep rows where status REJECT_STATUS_CSV (exact match), with valid candidate_email and empty rejection_sent_at DRY\RUN? If true → output preview only; if false → proceed Rate limit → wait RATE_LIMIT_SECONDS (default 10s) between emails SMTP (Gmail) → send personalized email per row using templates Mark as sent → write current timestamp to rejection_sent_at How to set up Sheet & Columns**: Create “Candidate Status” tab with: candidate_name, candidate_email, role, status, recruiter_name, recruiter_email, company_name, interview_feedback (optional), template_variant (optional), language (optional), rejection_sent_at Credentials: Connect **Google Sheets (OAuth) and SMTP (Gmail) in n8n (use App Password if 2FA) Config (Set node)**: SPREADSHEET_ID SOURCE_SHEET = Candidate Status TIMEZONE = Asia/Kolkata REJECT_STATUS_CSV = e.g., Rejected SMTP_FROM = e.g., careers@company.com SUBJECT_TEMPLATE = Regarding your application for {{role}} at {{company_name}} HTML_TEMPLATE / TEXT_TEMPLATE RATE_LIMIT_SECONDS = 10 INCLUDE_WEEKENDS = true DRY_RUN = false Activate**: Enable the workflow Requirements Google Sheet with the “Candidate Status” tab and columns above. SMTP (Gmail) account for sending. n8n (cloud or self-hosted) with Google Sheets + SMTP credentials. How to customize Statuses**: REJECT_STATUS_CSV supports comma-separated exact values (e.g., Rejected,Not Selected) Templates**: Edit SUBJECT_TEMPLATE, HTML_TEMPLATE, TEXT_TEMPLATE Variables:** {{candidate_name}}, {{role}}, {{company_name}}, {{recruiter_name}}, and optional {{feedback_text}}/{{feedback_html}} from interview_feedback Schedule**: Change Cron time from 18:00 to your preferred hour Rate limit**: Tune RATE_LIMIT_SECONDS for SMTP policy Preview**: Set DRY_RUN=true for a safe, no-send preview Add-ons Dynamic Reply-To** per recruiter_email Localization/Variants** via language or template_variant columns Daily summary** email: sent/skip/error counts Validation & logging**: log invalid emails to another tab Gmail API**: swap SMTP with Gmail nodes if preferred Use Case Examples Daily round-up**: 18:00 IST closure emails for all candidates marked Rejected today Multi-brand hiring**: Switch company_name per row and personalize subject lines Compliance/logging**: DRY\RUN each afternoon, review, then flip to live sends Common troubleshooting No emails sent**: Ensure status exactly matches REJECT_STATUS_CSV (case-sensitive) and candidate_email is present Duplicates**: Verify rejection_sent_at is blank before run; workflow sets it after sending Blank variables**: Fill candidate_name, role, company_name, recruiter_name in the sheet SMTP errors**: Check credentials, sender permissions, and daily limits Timing**: Confirm workflow timezone Asia/Kolkata and Cron = 18:00 Need Help? Want us to tailor the template, add a summary report or wire up company-based variants? Contact our n8n automation engineers at WeblineIndia and we’ll plug it in.
by PDF Vector
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. Transform Research Papers into a Searchable Knowledge Graph This workflow automatically builds and maintains a comprehensive knowledge graph from academic papers, enabling researchers to discover connections between concepts, track research evolution, and perform semantic searches across their field of study. By combining PDF Vector's paper parsing capabilities with GPT-4's entity extraction and Neo4j's graph database, this template creates a powerful research discovery tool. Target Audience & Problem Solved This template is designed for: Research institutions** building internal knowledge repositories Academic departments** tracking research trends and collaborations R&D teams** mapping technology landscapes Libraries and archives** creating searchable research collections It solves the problem of information silos in academic research by automatically extracting and connecting key concepts, methods, authors, and findings across thousands of papers. Prerequisites n8n instance with PDF Vector node installed OpenAI API key for GPT-4 access Neo4j database instance (local or cloud) Basic understanding of graph databases At least 100 API credits for PDF Vector (processes ~50 papers) Step-by-Step Setup Instructions Configure PDF Vector Credentials Navigate to Credentials in n8n Add new PDF Vector credentials with your API key Test the connection to ensure it's working Set Up Neo4j Database Install Neo4j locally or create a cloud instance at Neo4j Aura Note your connection URI, username, and password Create database constraints for better performance: CREATE CONSTRAINT paper_id IF NOT EXISTS ON (p:Paper) ASSERT p.id IS UNIQUE; CREATE CONSTRAINT author_name IF NOT EXISTS ON (a:Author) ASSERT a.name IS UNIQUE; CREATE CONSTRAINT concept_name IF NOT EXISTS ON (c:Concept) ASSERT c.name IS UNIQUE; Configure OpenAI Integration Add OpenAI credentials in n8n Ensure you have GPT-4 access (GPT-3.5 can be used with reduced accuracy) Set appropriate rate limits to avoid API throttling Import and Configure the Workflow Import the template JSON into n8n Update the search query in the "PDF Vector - Fetch Papers" node to your research domain Adjust the schedule trigger frequency based on your needs Configure the PostgreSQL connection for logging (optional) Test with Sample Papers Manually trigger the workflow Monitor the execution for any errors Check Neo4j browser to verify nodes and relationships are created Adjust entity extraction prompts if needed for your domain Implementation Details The workflow operates in several stages: Paper Discovery: Uses PDF Vector's academic search to find relevant papers Content Parsing: Leverages LLM-enhanced parsing for accurate text extraction Entity Extraction: GPT-4 identifies concepts, methods, datasets, and relationships Graph Construction: Creates nodes and relationships in Neo4j Statistics Tracking: Logs processing metrics for monitoring Customization Guide Adjusting Entity Types: Edit the GPT-4 prompt in the "Extract Entities" node to include domain-specific entities: // Add custom entity types like: // - Algorithms // - Datasets // - Institutions // - Funding sources Modifying Relationship Types: Extend the "Build Graph Structure" node to create custom relationships: // Examples: // COLLABORATES_WITH (between authors) // EXTENDS (between papers) // FUNDED_BY (paper to funding source) Changing Search Scope: Modify providers array to include/exclude databases Adjust year range for historical or recent focus Add keyword filters for specific subfields Scaling Considerations: For large-scale processing (>1000 papers/day), implement batching Use Redis for deduplication across runs Consider implementing incremental updates to avoid reprocessing Knowledge Base Features: Automatic concept extraction with GPT-4 Research timeline tracking Author collaboration networks Topic evolution visualization Semantic search interface via Neo4j Components: Paper Ingestion: Continuous monitoring and parsing Entity Extraction: Identify key concepts, methods, datasets Relationship Mapping: Connect papers, authors, concepts Knowledge Graph: Store in graph database Search Interface: Query by concept, author, or topic Visualization: Interactive knowledge exploration
by Shadrack
How it works You have several resumes you need to review manually? well this workflows allows you to upload upto 20 bunches pdf at once. AI does the heavy lifting, saving time, reducing repetive tasks and achieving high accuracy. The job description and qualificattion goes under the agent System message. Setup steps. It will take you roughly 20minutes to finish setting up this workflow. n8n Form Allow multiple file submission JavaScript Code allow mapping of each file individually System message adjust the system message to fit the job description and qualification. Google Sheet make a copy
by Mohamed Abubakkar
How it works This workflow fully automates the reconciliation process between your Local Database transactions and Payment Gateway transactions. It compares both data sources, identifies mismatches, categorizes discrepancies, logs them into Google Sheets, generates a final summary, and sends an automated reconciliation report to your finance team. This ensures accurate, consistent, and error-free financial reporting without manual work. Key Features Automatic data extraction from two Google Sheets Transaction comparison with result categorization Duplicate detection Real-time discrepancy logging Summary generation and storage Automated email reporting Zero manual effort required Setup Steps 1. Connect Required Credentials You must connect the following credentials: Google Sheets (Service Account or OAuth) Email SMTP (Gmail or custom) 2. Replace Default Values Update the workflow with: Your Google Sheet IDs Your tab/sheet names SMTP email, sender, and recipient Optional: Custom domain or business branding 3. Customize Email Template Modify subject, message body, or formatting style based on your reporting standards. 4. Adjust Trigger You may choose: Manual Trigger Cron Trigger for daily/weekly reconciliation Webhook Trigger integrated with your system Detailed Process Flow 1. Fetch Local & Payment Gateway Transactions The workflow reads all transaction records from the Local Database Sheet and Payment Gateway Sheet. 2. Compare both Transactions Using the compare operation, the workflow splits result into a. Valid Transactions b. Invalid Transactions c. Amount Differences Transactions d. Missing Transactions 3. Duplicate Transaction Detection The workflow scans local transactions to detect duplicate transaction and logs them seperately 5. Logging Transactions Each category is appended to its respective Google Sheet: DuplicateData AmountDifference DataNotInsert Reconciliation Summary RealData 6. Count all categories The workflow counts: Number of valid transactions Number of invalid transactions Number of missing transactions Number of Amount mismatch transactions The final summary row is appended to a dedicated Reconciliation Summary Sheet. 7. Send Final Email Report The finance team receive a email of final summary report. Final Output At the end the workflow, you get: Fully categorized reconciliation logs Complete Summary Stored Sheets Email Report Clean audit ready data
by Mr Shifu
AI NETWORK DIAGRAM PROMPT GENERATOR Template Description This workflow automates the creation of network diagram prompts using AI. It retrieves Layer-2 topology data from AWX, parses device relationships, and generates a clean, structured prompt ready for Lucidchart’s AI diagram generator. How It Works The workflow triggers an AWX Job Template that runs commands such as show cdp neighbors detail. After the job completes, n8n fetches the stdout, extracts neighbor relationships through a JavaScript parser, and sends the structured data to an LLM (Gemini). The LLM transforms the topology into a formatted prompt you can paste directly into Lucidchart to instantly generate a visual network diagram. Setup Steps Configure AWX: Ensure your Job Template runs the required network commands and produces stdout. Obtain your AWX base URL, credentials, and Job Template ID. Add Credentials in n8n: Create AWX API credentials. Add Google Gemini credentials for the LLM node. Update Workflow Nodes: Insert your AWX URL and Job Template ID in the “Launch Job” node. Verify endpoints in the “Job Status” and “Job Stdout” nodes. Run the workflow: After execution, copy the generated Lucidchart prompt and paste it into Lucidchart’s AI to produce the network diagram.
by Daniel
Daily AI News Digest from Hacker News with GPT Summaries and Email Delivery Automate your daily AI news briefing: fetch AI-tagged stories from Hacker News, filter for the last 24 hours, scrape and summarize with GPT, then deliver a clean HTML email digest—no manual curation needed. What It Does Runs on schedule to fetch up to 1000 Hacker News stories tagged "AI", filters for today's posts, loops through each to scrape content from source URLs, generates concise AI summaries via OpenAI GPT, aggregates into a styled HTML newsletter, and sends via email. Setup Requirements Credentials Needed: OpenAI API Key**: Get from platform.openai.com/api-keys, add as "OpenAI" credential in n8n SMTP Server**: Configure email credentials (Gmail, Zoho, etc.) in n8n's SMTP settings Configuration Steps: Import workflow JSON into n8n Add OpenAI credential to "GPT 5 pro" node Add SMTP credential to "Send email" node Update fromEmail and toEmail fields in "Send email" node Set schedule in "start" trigger node (default: daily) Activate workflow Key Features Smart Filtering**: Fetches 1000 stories, filters last 24 hours using date expressions AI Summarization**: GPT generates heading + 2-sentence summaries with links Reliable Scraping**: HTTP requests with markdown conversion for clean LLM input Batch Processing**: Loops through items, processes sequentially Responsive Design**: Mobile-friendly HTML email template with inline CSS Aggregation**: Combines all summaries into single digest Customization Options Change Keywords**: Modify "AI" filter in "Get many items" node Adjust Timeframe**: Edit date filter in "Today" node Tweak Summaries**: Customize GPT prompt in "News Summary Agent" node Email Styling**: Update HTML/CSS in "Send email" node Schedule**: Change frequency in "start" trigger Use Cases Personal daily AI briefings for researchers/developers Team knowledge sharing via automated newsletters Content curation for blogs or social media Trend monitoring for marketers Troubleshooting No stories returned**: Check HN API limits, verify keyword filter Scraping failures**: Some sites block bots—proxy noted in workflow but may need updates Email not sending**: Verify SMTP credentials and test connection Poor summaries**: Adjust GPT prompt or switch model Execution Time: 2-10 minutes depending on story count
by Oneclick AI Squad
This n8n workflow automatically tracks hotel room prices, detects price drops, and sends real-time email alerts with savings calculations. It continuously monitors multiple hotels and room types to help travelers, businesses, and agents secure the best rates. Key Features Automatically checks hotel prices every 6 hours Monitors multiple hotels and room categories Detects and alerts when prices drop Compares old vs new pricing and highlights savings Sends beautiful HTML email alerts Logs price history for long-term insights Shows availability changes and urgency indicators Price Drop Triggers Alerts are sent when: Price decreases by any amount Price drops by a certain percentage (configurable) Room becomes available again after being sold out Email Alert Includes | Field | Details | | --------------------- | ------------------------------- | | Hotel Name & Location | ✅ | | Room Type & Plan | ✅ | | Old Price | Shown with strikethrough | | New Price | Highlighted for visibility | | Savings Amount | ₹ / $ value difference | | Savings % | Percentage change | | Booking Link | Direct hotel booking / OTA link | | Urgency Badge | Shows limited-time availability | Workflow Logic Schedule Trigger Runs every 6 hours (configurable) Fetch Hotel Price API Calls hotel booking / OTA / aggregator API Compare With Stored Price Retrieves previous price from database/storage Detect Price Drop & Availability Change Save Latest Price Updates price history record Send Email Alert Sends formatted HTML email with price drop details Log Notification Maintains complete log of events Setup Requirements | Step | Action | | ---- | ------------------------------------------- | | 1 | Schedule Trigger (cron: every 6 hours) | | 2 | Add Hotel API / scraping source credentials | | 3 | Set up database or Google Sheet for storage | | 4 | Configure SMTP for emails | | 5 | Enter agent / user email address | | 6 | Populate hotel & room watchlist | | 7 | Test and verify price comparison logic | Best Use Cases Travel agencies Corporate travel teams Personal trip planning Hotel revenue analysts Price intelligence dashboards Extension Ideas WhatsApp and Telegram alerts Push notifications to mobile apps Google Sheets dashboard Slack alerts for teams Price trend charts (Grafana / Google Charts) Integration with GPT for smart recommendations
by Anoop
Who’s it for Solo founders and spreadsheet gremlins who track everything in Notion and want crisp Telegram pings without opening a single page. What it does This workflow runs on daily, weekly, and monthly schedules, queries multiple Notion databases, summarizes key numbers, formats human‑readable messages, and sends them to Telegram. Out of the box it sends: Daily: *Total Expenses Today* (sum of Debit in **Financial Transaction since start of day). Weekly: *Total Expenses This Week*, *Monthly Budget Left/Spent* per budget item, *Financial Obligations due* (from **Scheduler). Month End (28th by default)*: *Total Expenses This Month, Total Income This Month, Funds status. Month Start: *Liquidity snapshot* — balances for **Liquid and Semi Liquid assets (from Assets and Liabilities). Messages are built via Code nodes (simple JS) and delivered to Telegram. How it works (nodes & flow) Schedule Triggers**: Daily, Weekly, Monthly (start & end). Notion queries** (selected DBs): Financial Transaction: filters on Created time, Type = Debit/Invoice. Budget: Currently Applicable = true, Payment Schedule Type = Monthly, formula: Monthly Budget Left. Income: month-to-date Created time filter. Funds: reads Amount Left, Amount Spent, Amount Needed. Scheduler: Next Date on or before now, Type = Financial, Repeat Type != off. Assets and Liabilities: Liquidity = Liquid or Semi Liquid. Summarize nodes**: sum property_cost / property_balance fields. Set/Code nodes**: reshape Notion properties (e.g., property_next_date.start → next-date) and format text blocks like: Total Expenses Today - Rs X Monthly Budget Left - <list> Invoices still to pay - <list> Funds Info - spent/needed Liquidity Balance - <list> Telegram**: sends the composed message to chatId. > Tip: If your Notion property names differ, adjust the filters and Set node mappings accordingly. Requirements n8n (Cloud or self‑hosted) Notion workspace with Personal Finance System Notion template cloned into your workspace. Telegram account (for bot + chat) Setup (quick) Telegram Create a bot via @BotFather → get Bot Token. Get your Chat ID (n8n Telegram Trigger “Run once”, then message your bot, copy chat.id). In the Telegram Send node, set chatId (or use an env var/secret). Notion Create an Internal Integration, copy the token, and share each DB with the integration. In the Notion nodes, select your Notion credential and map the DB IDs (already present in the JSON). n8n Credentials Notion API credential: paste the integration token. Telegram API credential: paste Bot Token and set chatId in the node or via expression. Time windows Daily: on_or_after: $now.startOf('day') Weekly: on_or_after: $now.startOf('week') Monthly: on_or_after: $now.startOf('month') Monthly end trigger runs on day 28 by default — change in the Schedule node. Customization Change the date ranges, add currency symbol, or swap summaries for tables. Add more filters (labels, categories) to the Notion nodes. Replace Telegram with Slack/Email by swapping the final node. To avoid “expects dateTime but got object”, convert $now to string: {{$now.toISO()}} or parse Notion dates with DateTime.fromISO(...) as needed. Example messages Total Expenses Today - Rs 1,840 Monthly Budget Left - 3 1) Groceries: Rs 4,500 2) Dining Out: Rs 1,200 3) Utilities: Rs 800 Invoices still to pay - 2 1) Figma Pro: Rs 3,000 2) AWS: Rs 2,450 Why this is useful Keeps your spend & cash visibility tight without opening Notion. Turns your financial system into low‑effort telemetry — you just look at Telegram. Credentials you’ll likely name in n8n Notion**: Notion account Telegram**: Accountant AI > Works great with the “Personal Finance System” style schemas. Adjust property keys (property_*) if your Notion columns differ.
by Robin Geuens
Overview Every day, this workflow scrapes LinkedIn jobs based on your keywords, saves them in a Google Sheet, and sends them by email. How it works The workflow runs every day at noon. The Apify node sends a request to a LinkedIn scraper actor on Apify, which scrapes and returns the data. The code node formats the data we want and builds the HTML needed to make the emails look good. We use inline if statements for cases where the salary isn't listed or the job doesn’t say if it’s on-site, remote, or hybrid. At the same time, we add the LinkedIn jobs we scraped to a Google Sheet so we can check them later. We combine everything into one list. The Gmail node uses the map() function to list all the items we scraped and formatted. It customizes the subject line and heading of the email to include the current date. Setup steps Create a new Google Sheet and add the headers you want. Adjust the Google Sheets node to use your newly created Sheet. Customize the JSON in the Get LinkedIn jobs node. Note that this workflow currently uses the LinkedIn Jobs Scraper - No Cookies actor on Apify. Leave date_posted as is. Adjust keywords to change the job you want to scrape. You can use Boolean operators like AND or NOT in your search. Adjust limit to the number of jobs you want to scrape. Adjust location to match your location. Leave sort as is to get the most recent jobs first. (Optional) Edit the HTML in the code node to change how the listings will look in the email. Add your email to the Gmail node. Requirements Apify account Apify community node installed. If you don’t want to install the community node, you can use a regular HTTP node and call the HTTP directly. Check their API docs to see what endpoint to call. Google Sheets API enabled in Google Cloud Console and credentials added to n8n Gmail API enabled in Google Cloud Console credentials added to n8n Possible customizations Add full job descriptions to the Google Sheet and email Continue the flow to create a tailored CV for each job Use AI to read the job descriptions and pull out the key skills the job posting is asking for
by Meak
Google Sheets → Personalized Email Reply Automation with OpenAI + Gmail Most teams reply to inbound leads manually — copying info from a CRM, drafting a response, and hitting send. This workflow automates lead intake, draft generation, and sending — directly from a Google Sheet trigger. Benefits Pull new leads and context automatically from Google Sheets Generate professional HTML replies with OpenAI Personalize each response using lead name, intent, and message Send replies via Gmail with your real display name + signature Save hours per week on repetitive inbox work How It Works Manual trigger starts the workflow Reads rows from Google Sheets (Email, First Name, Intent, Message) Fetches Gmail sendAs to capture display name for signature Calls OpenAI model (via n8n LangChain node) to generate HTML reply Sends email via Gmail node with subject = "Re:" + Intent and HTML body Continues for each row, even if one fails (alwaysOutputData enabled) Who Is This For Founders handling inbound leads manually SDRs and sales teams replying to prospects Agencies wanting consistent, on-brand email responses Setup Connect Google Sheets (replace with your Document ID + Sheet Name) Connect Gmail (OAuth2) and enable sendAs retrieval Add OpenAI API credentials (choose GPT-4/5 or Claude model) Set Gmail node emailType = html for proper formatting Test with a few leads before running in bulk ROI & Monetization Save 3–5 hours per week on manual email drafting Use as a client-facing “Inbox Automation” service Bundle with CRM sync or Zapier handoff for $500–$2k/month retainers Strategy Insights In the full walkthrough, I show how to: Build this system step by step in n8n Craft prompts that output clean HTML with signature Handle edge cases (missing fields, null intents) gracefully Turn this into a recurring email automation offer Check Out My Channel For more advanced AI automation systems that generate real business results, check out my YouTube channel where I share the exact strategies I use to build automation agencies, sell high-value services, and scale to $20k+ monthly revenue.
by Kaden Reese
Sync Open House Leads to HubSpot CRM Automatically capture and sync every open house visitor from SignSnapHome.com directly into HubSpot with intelligent lead scoring, automated follow-up emails, and comprehensive contact enrichment. Full Blog Writeup and Setup Video Overview This n8n workflow connects SignSnapHome (open house sign-in app) directly to HubSpot CRM. Every visitor who signs in at your open house is automatically created or updated as a contact in HubSpot, scored as HOT/WARM/COLD lead, and sent a personalized thank you email. Full Setup Tutorial: https://youtu.be/5GrrojIXr40 Perfect for: Real estate agents, brokerages, property managers, and home builders using SignSnap Home for open house sign-ins. Key Features Intelligent Lead Scoring (0-100 points) Base score: 50 points No real estate agent: +30 points High rating (4-5): +20 points Low rating (1-2): -20 points No buyer agreement: +10 points Final status: HOT (70+), WARM (50-69), COLD (0-39), OPEN (40-49) Automated Email Follow-Up Immediate personalized thank you email Conditional messaging based on agent status Different content for leads without agents (offers home buying assistance) Always includes invitation to ask questions Smart Contact Management UPSERT functionality (updates existing or creates new - no duplicates) Sets lifecycle stage to "Lead" Tags source as "Open House" with SignSnap attribution Comprehensive notes with visit details and scoring Flexible Custom Field Support Automatically detects ANY custom fields from your form No workflow modification needed for new fields Formats field names nicely (snake_case → Title Case) Workflow Structure Nodes: Webhook: SignSnap Home - Receives POST data Parse SignSnap Data - Processes and scores leads Has Email? - Validates required field Create/Update HubSpot Contact - Upserts contact Send Thank You Email - Automated follow-up Log Missing Email - Error handling Flow: SignSnap → Parse & Score → Email Check → HubSpot + Email └→ Log Error Setup Instructions Prerequisites SignSnap Home account HubSpot account (free or paid) SMTP email service (Gmail, SendGrid, etc.) n8n instance (self-hosted or cloud) Configuration Steps Configure HubSpot Credentials Add HubSpot OAuth2 credential in n8n Follow OAuth flow to connect Configure Email Credentials Add SMTP credential in n8n Test connection Update Email Settings Open "Send Thank You Email" node Change fromEmail to your address Customize footer if desired Activate & Connect Activate workflow in n8n Copy webhook URL Go to SignSnapHome.com → Settings → Automations Paste webhook URL Enable "Send on each submission" Optional: Custom HubSpot Properties Create these properties in HubSpot (Settings → Properties) for enhanced tracking: last_open_house_property (Text) - Property address visited last_open_house_date (Date) - Visit timestamp has_real_estate_agent (Dropdown) - Yes/No/Not specified property_interest_rating (Number) - 1-5 scale lead_score (Number) - Calculated score lead_status (Dropdown) - HOT/WARM/COLD/OPEN Note: Workflow functions without these - they enhance reporting only. What Gets Synced To HubSpot: Email, first name, last name, phone Lifecycle stage: "Lead" Lead source: "Open House" Visit details in notes (property, date, agent status, rating) Lead score and status All custom form fields Email Sent: Personalized greeting with first name Thank you for visiting [property] Conditional offer to help (if no agent) Invitation to ask questions Professional signature Lead Scoring Logic | Factor | Points | Reasoning | |--------|--------|-----------| | Base | 50 | Starting point | | No Agent | +30 | Available, not represented | | Rating 4-5 | +20 | High interest | | Rating 1-2 | -20 | Low interest | | No Buyer Agreement | +10 | Not contractually bound | Email Personalization Without Agent: > Hi [Name]! Thank you for visiting [Property] today. Our team would love to help you on your home buying journey! We specialize in this area and can provide exclusive listings and personalized service. If you have any questions... With Agent: > Hi [Name]! Thank you for visiting [Property] today. If you have any questions about this property or would like to schedule another viewing, please don't hesitate to reply... Error Handling No Email Provided: Cannot create HubSpot contact (email required) Lead logged to error output Can connect to Google Sheets or alert system Recommendation: Make email required in SignSnap Customization Ideas Auto-assign to agent - Match property to territory Create deals - Automatic deal creation for HOT leads Add to lists - Property-specific list segmentation Trigger workflows - HubSpot nurture sequences SMS follow-up - Add Twilio for text messages Photo upload - Attach guest photos to contacts Troubleshooting "Invalid email" - Check SignSnap email validation "Property doesn't exist" - Create custom property or remove from config "Authentication failed" - Reconnect HubSpot OAuth2 "No contacts appearing" - Check execution history, verify email provided "Email not sending" - Verify SMTP credentials and FROM address Analytics & Reporting Create these HubSpot reports: Open house conversion funnel Property performance by address Lead quality distribution (HOT/WARM/COLD) Agent performance metrics Source ROI analysis Use Cases Solo agents: Instant lead capture and follow-up Real estate teams: Centralized lead database Brokerages: Multi-agent, multi-property tracking Property managers: Attendance monitoring Home builders: Model home visitor capture Technical Details Endpoint: /signsnap-hubspot Method: POST Content-Type: application/json Processing Time: <2 seconds Error Rate: <1% (typically missing email only) Why Use This Workflow Zero manual data entry Instant lead scoring and prioritization Automated multi-channel follow-up No transcription errors Scales to unlimited open houses Works for solo agents or large teams Tags real-estate crm hubspot lead-management open-house signsnap automation contact-sync email-automation lead-scoring Difficulty: Intermediate Nodes: 6 Services: SignSnap Home, HubSpot, SMTP Setup Time: ~15 minutes
by Emir Belkahia
Newsletter Quality Assurance with LLM Judge This sub-workflow validates newsletter quality before sending to customers. It's triggered by the main newsletter workflow and acts as an automated quality gate to catch data issues, broken layouts, or missing content. Who's it for E-commerce teams who want to automate newsletter quality checks and prevent broken or incomplete emails from reaching customers. Perfect for ensuring consistent brand quality without manual review. How it works Receives newsletter HTML - Triggered by parent workflow with the generated newsletter content Sends to test inbox - Delivers newsletter to LLM Judge's Gmail inbox to validate actual rendering Retrieves rendered email - Fetches the email back from Gmail to analyze how it actually renders (catches Gmail-specific issues) AI-powered validation - GPT-5 analyzes the newsletter against quality criteria: Verifies all 6 product cards have images, prices, and descriptions Checks layout integrity and date range formatting Detects broken images or unprocessed template variables Validates sale prices are lower than original prices Decision gate - Based on Judge's verdict: PASS: Returns approval to parent workflow → sends to customers BLOCK: Alerts admin via email → requires human review Set up steps Setup time: ~5 minutes Connect your Gmail account for sending test emails Update the Judge's email address in "Send newsletter to LLM Judge" node Update the admin alert email in error handling nodes Connect your OpenAI API credentials (GPT-5 recommended for heavy HTML processing) (Optional) Adjust quality thresholds in the Judge's system prompt Requirements Gmail account for test sends and retrieving rendered emails OpenAI API key (GPT-5 recommended) Parent workflow that passes newsletter HTML content How to customize Adjust validation strictness**: Modify the Judge's system prompt to change what triggers BLOCK vs PASS Change product count**: Update prompt if your newsletters have different numbers of products Add custom checks**: Extend the system prompt with brand-specific validation rules Modify alert recipients**: Update email addresses in error handling nodes 💡 Pro tip: The workflow validates the actual Gmail-rendered version to catch image loading issues and ensure consistent customer experience.