by Cheng Siong Chin
How It Works Consolidates daily revenue from Stripe, PayPal, Shopify, and bank feeds into a single system. The workflow automatically normalizes data across payment sources, uses AI to categorize income transactions, calculates reporting-period totals, and generates tax-compliant CSV and XML submissions. Designed for e-commerce businesses, SaaS companies, and multi-channel retailers managing complex revenue streams, it eliminates manual reconciliation, reduces filing errors, and speeds up financial reporting by automating the entire pipeline from data collection to government submission. Setup Steps Connect Stripe/PayPal/Shopify accounts with API keys to respective nodes. Configure bank feed authentication Set OpenAI credentials for AI Income Categorizer node. Link Google Drive and Gmail Add government tax API endpoint and authentication credentials. Prerequisites Stripe, PayPal, Shopify, or bank APIs; OpenAI account; Google Workspace; Use Cases Quarterly tax preparation for e-commerce; multi-channel revenue reconciliation; Customization Modify normalization rules per jurisdiction; add expense categories to AI prompt; Benefits Eliminates manual reconciliation; reduces tax filing time by 80%; improves accuracy;
by Atharva
π§Ύ AI Proposal Generator Engine An n8n-based automation that generates client proposals from a form, lets you review everything in one place, and sends the proposal only when you approve it. βοΈ What It Does The AI Proposal Generator Engine creates proposals directly from an n8n Form. All proposal content and a draft email are generated automatically using OpenAI. Google Sheets is used only as a database, where you: Review the generated proposal Review the draft email Control when the proposal is sent by updating the status No proposal is sent until it is manually marked as READY. π‘ Use Cases | Use Case | Description | | --------------------- | ---------------------------------------------------------- | | Sales Calls | Generate proposals immediately after a call using the form | | Freelancers | Create clean, repeatable proposals without manual writing | | Agencies | Standardize proposals while keeping them client-specific | | Approval Flow | Review proposal and email before sending | | Fast Turnaround Deals | Reduce proposal creation time from hours to minutes | | Team Workflows | Use Sheets as a simple approval and tracking layer | π§ Setup 1οΈβ£ Google Credentials Go to Google Cloud Console and create a Web App (OAuth). Enable these APIs: Google Sheets Google Drive Gmail In n8n, select this Google credential inside: Google Sheets nodes Google Drive nodes Gmail nodes Use the same credential everywhere. 2οΈβ£ Google Drive Structure Create this folder setup in Google Drive. You can use the provided templates or your own. Proposal Generator Engine/ βββ Template 1 (Slides) βββ Template 2 (Slides) βββ Template 3 (Slides) βββ Proposal Generation Tracker (Sheets) βββ Generated Proposals/ 3οΈβ£ Google Sheets Node Open the Proposal Generation Tracker and copy the Sheet ID from the URL. Paste this ID into the Google Sheets node in n8n. This sheet is used only to: Store generated proposal links Store email drafts Control send status 4οΈβ£ Slides and Drive Nodes Copy the Slides template ID you want to use and paste it into the Copy Template node. Copy the folder ID of Generated Proposals and paste it into the Move File / Folder field. 5οΈβ£ OpenAI Key Create an OpenAI credential in n8n using your API key. Select this credential in all GPT nodes. You can edit prompts to match your proposal style and tone. π Workflow Summary Proposal details are collected using an n8n Form OpenAI generates structured proposal content A Google Slides template is copied and filled A proposal email draft is generated Proposal link and email draft are saved in Google Sheets with status WAITING You review the proposal and email Status is changed to READY Proposal is converted to PDF and sent via Gmail Proposal is stored in Google Drive and status is updated to SENT π Support & Contact π§ Email: atharvapj5@gmail.com π LinkedIn: https://www.linkedin.com/in/atharva-jaiswal/ π Book a support call: https://calendly.com/atharvapj5/30min
by Jameson Kanakulya
π¨ Template Overview This comprehensive n8n workflow automates the complete process of generating professional interior design moodboards from concept to client delivery. Users submit a design brief through a form, and the system automatically generates 12 AI-powered images, compiles them into a beautifully formatted two-page PDF moodboard, and emails the final deliverable. Key Features: Form-based design brief submission AI-powered image prompt generation (12 detailed prompts per project) Automated image generation via Hugging Face API Nextcloud cloud storage with public URL sharing Professional two-page HTML/PDF moodboard creation Automated email delivery with PDF attachment Technologies Used: Claude Sonnet 4 (OpenRouter), Google Gemini 2.5 Pro, Hugging Face FLUX.1-schnell, Nextcloud, Gotenberg PDF Service, Gmail βοΈ Self-Hosted Requirements This template requires the following self-hosted or third-party services: Nextcloud Instance** - For cloud file storage and public URL generation Gotenberg PDF Service** - For HTML to PDF conversion (can be self-hosted via Docker) OpenRouter API Access** - For Claude Sonnet 4 AI agent Google Gemini API Access** - For secondary AI processing Hugging Face API Access** - For FLUX.1-schnell image generation Gmail Account** - For email delivery (or any SMTP service) π Setup Instructions Step 1: Configure API Credentials OpenRouter (Claude Sonnet 4) Sign up at openrouter.ai Generate an API key Add credentials to the "OpenRouter Chat Model" node Google Gemini API Visit Google AI Studio Create an API key Add credentials to the "Google Gemini Chat Model1" node Hugging Face API Register at huggingface.co Generate an access token from Settings β Access Tokens Add credentials to the "Image Generator" node using HTTP Header Auth Header name: Authorization, Value: Bearer YOUR_TOKEN Nextcloud Set up a Nextcloud instance or use a hosted provider Generate an app password from Settings β Security Configure credentials in all Nextcloud nodes: "Create a folder" "Upload Image" "Share a file" Gotenberg PDF Service Self-host using Docker: docker run --rm -p 3000:3000 gotenberg/gotenberg:8 Or use a hosted instance Update the URL in the "PDF creator" node Configure HTTP Basic Auth credentials if required Gmail Enable 2-Factor Authentication on your Google account Generate an App Password from Google Account settings Add OAuth2 credentials to the "Send PDF" node Step 2: Customize Workflow Settings Email Extractor Node Review the stripPlus variable (default: true) This removes "+tag" portions from email addresses for folder naming Nextcloud Folder Structure Default path: /moodboard/{username}/ Modify in "Create a folder" node if needed Image Generator Settings Model: FLUX.1-schnell (fast generation, good quality) Adjust model in "Image Generator" node if needed Alternative models: FLUX.1-dev, Stable Diffusion XL PDF Generation Settings Default timeout: 360 seconds Page size: A4 (210mm Γ 297mm) Adjust in "PDF creator" node headers if needed Step 3: Test the Workflow Activate the Form Open the "Moodboard Form" node Copy the webhook URL Access the form in your browser Submit a Test Request Fill in the form fields: Title: Short, descriptive name (e.g., "Modern Minimalist Bedroom") Description: Detailed design brief with colors, materials, mood, lighting Email: Your test email address Submit and monitor workflow execution Verify Each Stage Check Nextcloud folder creation Monitor image generation progress (12 images) Review HTML moodboard generation Confirm PDF creation Check email delivery Step 4: Configure Form Embedding (Optional) Embed the form on your website: <iframe src="YOUR_N8N_FORM_WEBHOOK_URL" width="100%" height="800" frameborder="0"> </iframe> π Workflow Structure 1. Form Input & Data Extraction Moodboard Form** - Collects project title, description, and user email Email Extractor** - Extracts username from email for folder organization 2. Storage Setup Create a Folder** - Creates personalized Nextcloud directory using email username 3. AI Concept Generation Conceptualization Agent** (Claude Sonnet 4) - Analyzes design brief and generates 12 detailed image prompts (300-500 words each) Images 1-11: Individual design elements (furniture, materials, details, styling) Image 12: Comprehensive 3D rendered view integrating all elements 4. Image Processing Loop Concept Splitter** - Separates 12 prompts into individual items Loop Over Items** - Processes each prompt sequentially: Image Generator - Sends prompt to Hugging Face FLUX.1-schnell API Upload Image - Stores generated image in Nextcloud folder Share a File - Creates public shareable URL Set Image Title and URL - Formats data for aggregation 5. URL Collection URL Aggregate** - Combines all 12 public image URLs Clean URLs** - Extracts and formats URLs into a structured list 6. Moodboard Compilation Moodboard Generator Agent** (Google Gemini 2.5 Pro) - Creates professional two-page HTML document: Page 1: Visual moodboard with all 12 images (Image #12 prominently featured 2-3x larger) Page 2: Administrative summary with design overview, color palette, materials, and project details 7. PDF Generation & Delivery Binary Converter** - Transforms HTML to base64-encoded binary format PDF Creator** - Converts HTML to print-ready PDF via Gotenberg service Send PDF** - Emails final moodboard PDF to user π― Node Descriptions Moodboard Form Collects moodboard generation requests for any design topic. Users input a title, detailed description (colors, materials, patterns, textures, lighting), and email address for delivery. Email Extractor Extracts the username portion from email addresses, optionally stripping "+tags" for clean folder naming and user identification. Create a Folder Creates a dedicated Nextcloud folder using the extracted email username, organizing moodboard outputs by user. Conceptualization Agent AI agent that analyzes design briefs to generate 12 detailed image prompts (300-500 words each). Performs conceptual analysis of styles, colors, materials, and spatial requirements, outputting structured JSON. Concept Splitter Splits the 12 generated image prompts into individual items for parallel processing through the image generation pipeline. Loop Over Items Processes each prompt sequentially, generating images, uploading to Nextcloud, and creating public URLs. Image Generator Sends detailed prompts to Hugging Face FLUX.1-schnell API for AI-powered image generation, transforming written design concepts into high-quality visuals. Upload Image Uploads each generated moodboard image to the user's Nextcloud folder with appropriate naming conventions. Share a File Creates publicly shareable Nextcloud links for each uploaded image, enabling external viewing without authentication. Set Image Title and URL Formats image metadata (title and URL) for downstream aggregation. URL Aggregate Combines all 12 image URLs into a single consolidated output for moodboard compilation. Clean URLs Extracts and formats URLs from the aggregated data into a clean, structured list with count. Moodboard Generator Agent Transforms design concepts into professional two-page HTML moodboards. Analyzes project details and 12 image URLs, selecting appropriate visual styles. Creates artistic Page 1 with Image #12 as hero element, and comprehensive Page 2 with design documentation. Binary Converter Prepares HTML for PDF conversion by transforming it into binary format with proper encoding and filename ("index.html") for Gotenberg compatibility. PDF Creator Converts HTML moodboard into print-ready PDF with proper A4 dimensions, page breaks, and high-quality image resolution. Send PDF Emails the finalized PDF moodboard to the user's submitted email address with project details and PDF attachment. π¨ Customization Options Design Styles The Moodboard Generator Agent automatically selects from 10 layout styles: Modern Sectional Grid Material Board Collage Editorial Magazine Clean Minimalist Split-Screen Dramatic Asymmetric Feature Centered Showcase Modular Block System Organic Flow Layered Depth Image Generation Models Replace FLUX.1-schnell with alternatives in the "Image Generator" node: black-forest-labs/FLUX.1-dev - Higher quality, slower stabilityai/stable-diffusion-xl-base-1.0 - Classic SD XL Email Templates Customize the email message in the "Send PDF" node to include: Brand messaging Next steps Support contact information Pricing information π Troubleshooting Images Not Generating Verify Hugging Face API token is valid Check API rate limits and quotas Increase timeout in "Image Generator" node (default: unlimited) PDF Generation Fails Ensure Gotenberg service is accessible Verify HTML output contains all 12 image URLs Check timeout settings (default: 360s) Review Gotenberg logs for specific errors Nextcloud Upload Errors Confirm folder creation succeeded Verify Nextcloud credentials and permissions Check available storage space Ensure WebDAV is enabled Email Not Received Verify Gmail OAuth2 credentials Check spam/junk folders Confirm email address is valid Review Gmail API quotas π Performance Notes Average execution time**: 5-8 minutes (depends on image generation) Image generation**: ~20-30 seconds per image (12 images = 4-6 minutes) PDF generation**: ~30-60 seconds Total data processed**: ~15-25 MB per workflow execution π Security Considerations Store all API keys in n8n credentials (never hardcode) Use environment variables for sensitive configuration Implement rate limiting on the form webhook Consider adding CAPTCHA to prevent abuse Regularly rotate API keys and passwords Use HTTPS for all external communications π License & Attribution This template is provided as-is for the n8n community. Feel free to modify and adapt to your needs. AI Models Used: Claude Sonnet 4 (Anthropic via OpenRouter) Google Gemini 2.5 Pro (Google) FLUX.1-schnell (Black Forest Labs via Hugging Face) π€ Support & Contributions For questions or improvements, please reach out through the n8n community forum or submit issues/PRs to enhance this template. Created by: Jameson Kanakulya Template Version: 1.0 Last Updated: November 2025
by Dean Pike
LinkedIn URL β Scrape β Match β Screen β Decide, all automated This workflow automatically processes candidate LinkedIn profiles shared via Telegram, intelligently matches them to job descriptions, performs AI-powered screening analysis, and sends actionable summaries to your team in Telegram. Good to know Handles LinkedIn profile scraping via Apify API (extracts full profile data including experience, education, skills) Built-in spam prevention: limits users to 3 LinkedIn profile submissions Two-stage JD matching: prioritizes role mentioned in candidate's Telegram message, falls back to LinkedIn profile analysis if needed Uses Google Gemini API for AI screening (generous free tier and rate limits, typically enough to avoid paying for API requests - check latest pricing at Google AI Pricing and rate limits documentation) Automatic polling mechanism checks Apify extraction status up to 10 times (15-second intervals) Complete audit trail logged in Google Sheets with unique submission IDs Who's it for Hiring teams and recruiters who want to streamline first-round screening for candidates who share LinkedIn profiles directly. Perfect for companies accepting applications via messaging platforms (Telegram, WhatsApp, etc.), especially useful fortech-savvy audiences and remote/global hiring. How it works Telegram bot receives message containing LinkedIn profile URL from candidate Validates URL format and checks spam prevention (max 3 submissions per Telegram username) Sends confirmation message to candidate and notifies internal talent team via Telegram group Extracts clean LinkedIn URL and initiates Apify scraping job Polls Apify API up to 10 times (15-second intervals) until profile extraction completes AI agent matches candidate to best-fit job description by analyzing Telegram message context first (if candidate mentioned a role), or LinkedIn profile content as fallback (selects up to 3 potential JD matches) If multiple JDs matched, second AI agent selects the single best fit based on detailed profile analysis AI recruiter agent analyzes LinkedIn profile against selected JD and generates structured screening report (strengths, weaknesses, risk/reward factors, overall fit score 0-10 with justification) Logs complete analysis to Google Sheets tracker with unique submission ID Sends formatted summary to Telegram group with candidate details, matched JD, and overall fit score Requirements Telegram Bot Token (Create bot via @BotFather) Apify account with API token (Sign up for free tier) Google Drive account (OAuth2) Google Sheets account (OAuth2) Google Gemini API key (Get free key here) Google Drive folder for Job Descriptions (as PDFs or Google Docs) Telegram group for internal talent team notifications How to set up Create Telegram bot and internal Telegram chat group with new bot: Message @BotFather on Telegram Send /newbot and follow instructions to create your bot Save the API token provided Create Telegram group chat and invite your new bot + invite the @GetIDs bot Note down the group chat ID (How to get group chat ID) Setup Apify: Sign up at Apify Get your API token from Settings Note: Free tier includes sufficient scraping credits for testing and production ($0.01 per successful LinkedIn profile enriched, a free monthly limit of $5.00) - LinkedIn profile scraper "actor" details Create Google Sheet: Create new sheet named "LinkedIn Profile AI Candidate Screening" Add columns: Submission ID, Date, LinkedIn Profile URL, First Name, Last Name, Email (if known), Telegram Username, Strengths, Weaknesses, Risk Factor, Reward Factor, JD Match, Overall Fit, Justification Copy the spreadsheet ID from URL Setup Google Drive folder: Create folder named "Job Descriptions" Upload your JD files (PDFs or Google Docs) with clear, descriptive filenames Copy the folder ID from URL Configure workflow nodes: In "Receive Telegram Msg to Recruiter Bot" node: Add Telegram API credentials In "Extract LinkedIn Profile Information" node: Replace YOUR_APIFY_API_TOKEN with your Apify token In "Check LinkedIn Profile Extraction Status" node: Replace YOUR_APIFY_API_TOKEN with your Apify token In "Get Fully Extracted LinkedIn Profile Data" node: Replace YOUR_APIFY_API_TOKEN with your Apify token In "Access JD Files" node: Update folder ID to your "Job Descriptions" folder In "Get All Rows Matching Telegram Username" node: Select your Google Sheet In "Add Candidate Analysis in GSheet" node: Select your Google Sheet and verify column mappings In "Send Msg to Internal Talent Group" node: Update chat ID to your Telegram group chat ID In "Send Review Completed Msg to Talent Group" node: Update chat ID and Google Sheet URL Add your company description: In "JD Matching Agent" system message: Replace company description with your details In "Detailed JD Matching Agent" system message: Replace company description with your details In "Recruiter Scoring Agent" system message: Update company description Test the workflow: Send a LinkedIn profile URL to your bot from Telegram Monitor execution to ensure all nodes run successfully Check Google Sheets for logged results Activate workflow Customizing this workflow Change spam limits: Edit "Spam Check: Sent <4 LinkedIn Profiles?" node to adjust maximum submissions (currently 3) Adjust polling attempts: Edit "Checked 10x for LinkedIn Profile Data?" node to change maximum polling attempts (currently 10) or modify wait time in "Wait for LinkedIn Profile" node (currently 15 seconds) Change JD matching logic: Edit "JD Matching Agent" node prompt to adjust how LinkedIn profiles are matched to roles (e.g., weight current role vs. overall experience) Modify screening criteria: Edit "Recruiter Scoring Agent" node system message to focus on specific qualities (culture fit, leadership potential, technical depth, industry experience, etc.) Add more messaging platforms: Add nodes to support WhatsApp, Discord, or other messaging platforms using similar URL-based triggers Customize Telegram messages: Edit notification nodes to change formatting, add emojis, or include additional candidate data Auto-proceed logic: Add IF node after screening to auto-proceed candidates with fit score above threshold (e.g., 8+/10) and trigger different notification paths Add candidate responses: Connect nodes to automatically message candidates back via Telegram (confirmation, rejection, interview invite) Add interview scheduling: For approved candidates, send Telegram message with Cal.com or Calendly link so they can book their interview Enrich with additional data: Add nodes to cross-reference candidate data with other sources (GitHub, Twitter/X, company websites) Multi-language support: Add translation nodes to support candidates submitting profiles in different languages Add human approval step: Create buttons in Telegram group messages for instant Approve/Reject decisions that update Google Sheets Pro tip: Add your Telegram bot to your company's careers page with instructions like: "Want fast-track screening? Share your LinkedIn profile with our AI recruiter: @YourBotName" Troubleshooting Telegram bot not responding: Ensure bot token is correct in "Receive Telegram Msg to Recruiter Bot" node, and users have sent /start to your bot at least once "LinkedIn profile URL invalid" error: Check that candidates are sending full URLs in format https://www.linkedin.com/in/username (not shortened links or text without URL) Apify extraction failing: Verify Apify API token is correctly set in all three HTTP Request nodes ("Extract LinkedIn Profile Information", "Check LinkedIn Profile Extraction Status", "Get Fully Extracted LinkedIn Profile Data") LinkedIn extraction timeout: Increase polling attempts in "Checked 10x for LinkedIn Profile Data?" node (currently 10) or increase wait time in "Wait for LinkedIn Profile" node (currently 15 seconds) Spam check blocking valid users: Check "Get All Rows Matching Telegram Username" node is pointing to correct Google Sheet, and adjust limit in "Spam Check: Sent <4 LinkedIn Profiles?" node if needed JD matching returns no results: Check "Access JD Files" node folder ID points to your Job Descriptions folder, and JD files are named clearly (e.g., "Marketing Director JD.pdf") JD matching is not relevant for my company: Update the "Company Description" in the System Messages in all three AI agent nodes ("JD Matching Agent", "Detailed JD Matching Agent", "Recruiter Scoring Agent") "Can't find matching JD": Ensure candidate's Telegram message mentions role name OR their LinkedIn profile clearly indicates relevant experience for available JDs Google Sheets errors: Verify sheet name is "LinkedIn Profile AI Candidate Screening" and column headers exactly match workflow expectations (Submission ID, Date, LinkedIn Profile URL, First Name, Last Name, etc.) Telegram group notifications not appearing: Verify chat ID is correct in "Send Msg to Internal Talent Group" and "Send Review Completed Msg to Talent Group" nodes (use negative number for group chats, e.g., -4954246611) Missing candidate data in Google Sheets: LinkedIn profile may be incomplete - verify Apify successfully extracted data by checking "Get Fully Extracted LinkedIn Profile Data" node output Loop counter not working: Check "Restore Loop Counter" code node references correct node names ("Checked 10x for LinkedIn Profile Data?" and "Initialize Loop Counter to Poll for Completion") 401/403 API errors: Re-authorize all OAuth2 credentials (Google Drive, Google Sheets) and verify Apify and Telegram API tokens are valid AI analysis quality issues: Edit system prompts in "JD Matching Agent", "Detailed JD Matching Agent", and "Recruiter Scoring Agent" nodes to refine screening criteria and provide more context about your hiring needs Gemini API rate limit errors: Check your usage at Google AI Studio and consider upgrading to paid tier if exceeding free tier limits (see rate limits documentation) Sample Outputs Google Sheets - LinkedIn AI Candidate Screening - sample Telegram messages between AI recruiter bot and job applicant Telegram messages from AI recruiter bot in internal group chat
by isaWOW
You activate this workflow once and it checks your Google reviews every morning at 9AM without any action from you. It fetches your latest reviews, classifies them as positive or negative, and uses GPT-4o-mini to write a personalised reply draft for each one. You receive a clean daily email with all drafts ready to copy and paste straight into your Google Business Profile. Built for local business owners, agencies, and reputation managers who want to stay on top of reviews without checking manually every day. What This Workflow Does Fetches live reviews daily β Pulls your latest Google reviews from the Places API every morning so you never miss a new one. Classifies each review automatically β Separates positive reviews (4β5 stars) from negative reviews (1β3 stars) so the AI writes the right tone for each. Skips days with no activity β If no reviews exist for your business, the workflow stops cleanly and sends no email β no noise in your inbox. Generates personalised reply drafts β GPT-4o-mini writes a unique reply for every review, referencing the reviewer's name and specific comments. Handles negative reviews professionally β Negative replies include a sincere apology and an offline resolution offer β never defensive or argumentative. Delivers a formatted daily digest β Gmail sends one clean email with a summary count and all reply drafts β plus step-by-step instructions for posting them. Setup Requirements Tools and accounts needed: n8n instance (self-hosted or cloud) Google Cloud account with Places API enabled (for fetching reviews) Your Google Place ID (identifies your specific business listing) OpenAI account with API access (for GPT-4o-mini) Gmail account for sending the daily digest (OAuth2 credential) Estimated Setup Time: 12β18 minutes Step-by-Step Setup Import the workflow β Open n8n β Workflows β Import from JSON. Paste the workflow JSON and import. Confirm all 9 nodes are connected in sequence. Find your Google Place ID β Go to developers.google.com/maps/documentation/places/web-service/place-id and use the Place ID Finder. Search for your business name and copy the Place ID shown. You will paste this into the config step below. Get your Google Places API key β Go to console.cloud.google.com. Create or select a project. Enable the Places API. Go to APIs & Services β Credentials β Create Credentials β API Key. Copy your new API key. Edit your config values β Open the 2. Set β Config Values node. This is the only node you need to change. Replace all five placeholders: | Field | What to enter | |---|---| | YOUR_GOOGLE_PLACE_ID | Your Place ID from step 2 | | YOUR_GOOGLE_PLACES_API_KEY | Your API key from step 3 | | YOUR BUSINESS NAME | Your business name as it appears on Google | | owner@yourbusiness.com | The email address to receive daily reports | | YOUR NAME | Your name β appears at the end of every reply draft | > β οΈ The Google Places API key is used directly in the URL of the 3. HTTP β Fetch Google Places Reviews node via the config values. Ensure you replace it in 2. Set β Config Values only β it flows through automatically. Connect your OpenAI API key β Go to Credentials β New β OpenAI API in n8n. Paste your API key from platform.openai.com. Open the 7. OpenAI β GPT-4o-mini Model node and select this credential. Connect your Gmail credential β Go to Credentials β New β Gmail OAuth2 in n8n. Complete the OAuth flow with the Gmail account you want to send reports from. Open the 9. Gmail β Send Review Report node and select this credential. Activate the workflow β Toggle the workflow to Active. It will now run automatically every day at 9AM. How It Works (Step by Step) Step 1 β Schedule Trigger (Every Day 9AM) The workflow fires automatically each morning using a daily cron schedule. No manual action is needed once the workflow is active. Step 2 β Set (Config Values) Five configuration values are stored here: your Place ID, Google Places API key, business name, owner email, and owner name. Every other step in the workflow reads from this single location. Step 3 β HTTP Request (Google Places API) A GET request is sent to the Google Places Details API using your Place ID and API key. It asks for the business name, overall star rating, and all available reviews. The raw response is passed to the next step. Step 4 β Code (Parse and Classify Reviews) A script reads the raw API response and extracts every review. It separates reviews into two groups: positive (4β5 stars) and negative (1β3 stars). It also builds a clean numbered text summary of all reviews β including author name, star rating, review text, and recency β ready for the AI to read. If the API returns zero reviews, the step sets a hasReviews: false flag and passes a fallback message forward. Step 5 β IF Check (Are There Reviews?) This step checks the hasReviews flag from Step 4. If it is true, the workflow continues to the AI reply generation. If it is false β meaning no reviews were found β the workflow stops here completely and no email is sent. This prevents empty or useless emails on quiet days. Step 6 β AI Agent (Generate Reply Drafts) GPT-4o-mini receives the full review summary along with your business name, overall rating, and owner name. It writes one reply draft for every review in the list. Positive reply drafts thank the reviewer by name, reference something specific they mentioned, and invite them back. Negative reply drafts open with a sincere apology, acknowledge the concern without excuses, and offer to resolve the issue offline. Every reply ends with your name in a Best regards, sign-off. Step 7 β OpenAI Model (GPT-4o-mini) This is the language model powering the AI Agent in Step 6. It runs at a temperature of 0.7 for natural, human-sounding replies and has a 1,000-token output limit β enough for a full set of reply drafts. Step 8 β Set (Prepare Email Fields) The AI-generated reply drafts, email subject line, recipient address, and review counts are assembled into one item. The subject line dynamically includes your business name, the total number of reviews found, and your current overall star rating. Step 9 β Gmail (Send Review Report) Gmail sends the final daily digest to your inbox. The email opens with a summary showing how many positive and negative reviews were found. It then lists all reply drafts one after another, each labelled with the review number, sentiment, and reviewer name. The email closes with a three-step guide for posting replies on Google Business Profile. Key Features β Zero-maintenance daily monitoring β Checks your reviews every morning at 9AM with no login or manual trigger required. β Smart stop on quiet days β The IF check ensures no email is sent when there are no reviews β your inbox only receives reports that matter. β Tone-matched reply drafts β Positive reviews get warmth and appreciation. Negative reviews get calm professionalism. The AI uses the right tone automatically. β Reviewer name personalisation β Every reply draft opens by addressing the reviewer by their actual name β not a generic greeting. β Review count in subject line β The email subject dynamically shows how many reviews were found and your current rating β you know what to expect before opening it. β Copy-paste ready format β Drafts are delivered in a clean numbered format with posting instructions included β no reformatting needed before you use them. β Single config node β All five business-specific values live in one place. Switching this workflow to a different business takes under two minutes. Customisation Options Change the daily send time β In the 1. Schedule β Every Day 9AM node, edit the cron expression 0 9 * * * to any time you prefer. For example, 0 7 * * * sends at 7AM, or 0 18 * * * sends at 6PM. Adjust the negative review word limit β In the 6. AI Agent β Generate Reply Drafts node, change under 70 words in the prompt to any length that fits your brand voice β shorter for a concise tone, longer for a more detailed response. Add a CC recipient β In the 9. Gmail β Send Review Report node, expand the options and add a CC email address to copy an agency manager or team member on every daily digest. Filter only new reviews by date β In the 4. Code β Parse and Classify Reviews step, add a date filter using the time field from each review object to only process reviews posted in the last 24 hours β avoiding repeat drafts for old reviews. Deploy for multiple locations β Duplicate the workflow in n8n and update the 2. Set β Config Values node for each business or location. Each copy runs independently on the same daily schedule. Troubleshooting HTTP node returns a 403 or REQUEST_DENIED error: Check that the Places API is enabled in your Google Cloud Console project Verify that YOUR_GOOGLE_PLACES_API_KEY has been replaced in 2. Set β Config Values with your actual API key Confirm your API key has no IP or referrer restrictions that would block n8n server requests No reviews found even though reviews exist on Google: Verify that YOUR_GOOGLE_PLACE_ID is correct β search for your exact business at developers.google.com/maps/documentation/places/web-service/place-id and re-copy the ID Note that the Google Places API returns a maximum of 5 most recent reviews β this is an API limitation, not a workflow issue Run the workflow manually and inspect the output of 3. HTTP β Fetch Google Places Reviews to view the raw API response AI Agent produces empty or broken reply drafts: Confirm the 7. OpenAI β GPT-4o-mini Model credential is valid and your OpenAI account has available API credits Check the execution log for 6. AI Agent β Generate Reply Drafts for any OpenAI error messages If the review text field is empty for some reviews, the AI may produce shorter or generic replies β this is expected Gmail node fails to send the digest: Confirm your Gmail OAuth2 credential is connected and not expired in the 9. Gmail β Send Review Report node Check that owner@yourbusiness.com has been replaced with a valid real email address in 2. Set β Config Values Re-authenticate the Gmail credential if you see an authorisation error Workflow does not run at 9AM: Confirm the workflow is toggled to Active β saved workflows do not run on schedule unless activated Check your n8n instance timezone settings β the 9AM schedule runs based on your server's timezone, not your local time Support Need help setting this up or want a custom version built for your team or agency? π§ Email:info@isawow.com π Website:https://isawow.com
by Rahul Joshi
Description Automatically generate and distribute detailed End-of-Day (EOD) reports combining task progress from ClickUp and opportunity data from GoHighLevel. This workflow uses AI to analyze daily performance, summarize key metrics, identify blockers, and deliver polished reports directly to Slack, Email, and Google Drive. βοΈππ¬ What This Template Does Triggers automatically every weekday at 6:00 PM (MonβFri). β° Fetches all completed ClickUp tasks and won GoHighLevel opportunities for the day. π₯ Merges and transforms both datasets into a unified structure. π Uses Azure OpenAI GPT-4 to analyze performance and generate structured summaries. π€ Formats three output versions β Slack (Markdown), Email (HTML), and Google Drive (Text). π§Ύ Routes and sends reports automatically to connected channels. π€ Uploads the generated text report to Google Drive with timestamped filenames. βοΈ Key Benefits β Saves time by automating daily performance reporting. β Unifies task and deal data into a single AI-generated summary. β Provides real-time visibility into productivity and outcomes. β Delivers beautifully formatted, channel-specific reports. β Maintains historical reports in Google Drive for reference. β Helps managers identify wins, blockers, and next steps quickly. Features Automated scheduling via cron (MonβFri, 6 PM). ClickUp task and GHL opportunity integration for daily data sync. AI-powered analysis for contextual, actionable summaries. Dynamic formatting for Slack, Email, and Drive outputs. Parallel routing for simultaneous delivery across platforms. No manual steps β runs fully hands-free after setup. Requirements ClickUp OAuth2 credentials for task retrieval. GoHighLevel OAuth2 credentials for deal data. Azure OpenAI GPT-4 API credentials. Slack Bot credentials for message posting. SMTP (Gmail/Outlook) credentials for email reports. Google Drive OAuth2 credentials for report upload. Target Audience π― Sales, marketing, and operations teams tracking daily performance. π Project managers monitoring team productivity and blockers. π€ Client success teams summarizing EOD outcomes for leadership. π§ Business automation teams seeking end-of-day visibility. Step-by-Step Setup Instructions Connect ClickUp, GoHighLevel, Slack, Gmail/SMTP, and Google Drive credentials. π Set your team, space, folder, and list IDs in the ClickUp node. π Update your Slack channel ID in the Slack node configuration. π¬ Configure your email sender and recipients in the email node. π§ (Optional) Modify the cron expression for different reporting times. β° Test the workflow manually once, then activate for automated EOD execution. β
by Sona Labs
Sona-Powered AI Sales Research & Personalized Email Automation π― Overview Automatically research B2B leads and generate personalized outreach emails by reading prospects from Google Sheets, enriching with company data from Sona Enrich, analyzing insights with AI, and creating custom emails β so you can scale personalized outreach to target accounts. You'll be able to automatically enrich company data for target accounts, use AI to identify pain points and opportunities, generate personalized email copy, and sync everything back to your sheet with ready-to-send Gmail compose links. β¨ What This Workflow Does Smart Lead Processing - Reads leads from Google Sheets and filters unprocessed contacts Deep Company Intelligence - Enriches each lead using Sona's API (industry, tech stack, revenue, employee count, social profiles) AI-Powered Research - GPT-4 analyzes company data to identify pain points, growth opportunities, and personalization hooks Email Generation - Creates 120-150 word personalized emails with curiosity-driven subject lines Automated Sync - Updates Google Sheets with research insights and one-click Gmail compose links π₯ Key Features Structured AI Output** - Consistent, high-quality research and copy generation Zero Manual Work** - Processes 20-50 leads per hour completely hands-free Email Generation - Creates 120-150 word personalized emails with curiosity-driven subject lines Gmail Integration** - Pre-filled send links for instant outreach Progress Tracking** - Real-time status updates in Google Sheets πΌ Perfect For Sales teams doing cold outreach SDRs needing personalized emails at scale Agencies managing client prospecting Founders building their pipeline π What You'll Need 1. Sona API Key Get yours at sonalabs.com Provides company data enrichment Add to HTTP Request node header: x-api-key: YOUR_KEY 2. OpenAI API Key Get from platform.openai.com Uses GPT-4.1-mini for research and email generation Add credentials in n8n 3. Google Sheets Setup Create a spreadsheet with these columns: Input columns:** Website Domain, Company Name, Contact Name, Email, Industry Status column:** Research Status (leave empty for new leads) Auto-populated:** Pain Points, Key Insight, Email Subject, Email Body, Send Email Link, Generated Date, Sent Status 4. Google Sheets API Enable in Google Cloud Console Set up OAuth2 with spreadsheets permission Add your spreadsheet ID to workflow nodes π Setup Instructions Import workflow into n8n Add credentials: Sona API key (HTTP Request node) OpenAI API credentials Google Sheets OAuth2 Update spreadsheet ID in all Google Sheets nodes Customize AI prompts (optional) to match your offering Test with 2-3 leads before running full list Execute workflow - it processes leads automatically in batches π Expected Output Each processed lead gets: Pain points** (3-5 identified challenges) Growth opportunities** (2-3 actionable insights) Personalization hooks** (3-4 talking points) Email subject line** (max 8 words, curiosity-driven) Email body** (120-150 words, consultative tone) Gmail compose link** (one-click to send) Fit score** (High/Medium/Low) Processing time: 30-60 seconds per lead π How It Works Step 1: Data Input & Filtering Reads all leads from Google Sheets and filters out already-processed leads (those with a value in "Research Status" column). Step 2: Company Data Enrichment Updates status to "Pending" in Google Sheets Searches Sona database using domain or email 5-tier smart matching algorithm finds best company match Retrieves firmographic data and technology stack Step 3: AI Company Research GPT-4.1-mini analyzes company data to generate: Specific pain points based on industry, size, tech stack Growth opportunities and market positioning Personalization hooks from company description Recommended outreach tone and CTA One-liner insight for email opening Step 4: Personalized Email Generation AI crafts cold email following best practices: Curiosity-driven subject line (max 8 words) Opens with personalization hook showing research References ONE specific pain point Focuses on tangible outcomes (not product features) Natural CTA without being pushy Professional but conversational tone Step 5: Data Output & Loop Formats all data for Google Sheets Creates Gmail compose link with pre-filled content Updates sheet with complete results Sets status to "Completed" Waits 2 seconds, then processes next lead β‘ Pro Tips Start small:** Test with 5-10 leads to validate personalization quality Review first emails:** Adjust AI prompts if tone needs calibration Clean your data:** Better input domains = better Sona matches Monitor fit scores:** Focus manual review on High/Medium fits Use status column:** Easily re-run workflow for new leads only Connect CRM:** Use webhooks to push data to Salesforce/HubSpot π― Use Cases Sales Team Automation Process 100+ leads overnight with personalized research and emails ready by morning. Agency Client Work Deliver custom prospecting campaigns with unique emails for each client's target accounts. Founder Outreach Build pipeline systematically with AI-researched, personalized emails at scale. SDR Productivity Give SDRs pre-researched talking points and draft emails to speed up their workflow 10x. π Expected Results Email personalization:** 10x better than templates Time saved:** 5-10 minutes per lead β 30 seconds automated Response rates:** 2-3x higher with AI-researched insights Scalability:** Process 50-100 leads per day hands-free π§ Customization Options Change AI model:** Swap GPT-4.1-mini for GPT-4 or other models Adjust email length:** Modify prompt to generate shorter/longer emails Add more enrichment:** Chain additional API calls (Clearbit, Apollo, etc.) Multi-language:** Update prompts for outreach in other languages Custom tone:** Adjust system prompts for industry-specific voice Webhook triggers:** Replace manual trigger with scheduled runs or form submissions π Troubleshooting No Sona data found? Verify API key is correct Check domain format (remove http://, trailing slashes) Fallback uses first search result if no exact match AI output not formatted correctly? Structured Output Parser ensures valid JSON Check OpenAI API key and model availability Google Sheets not updating? Verify OAuth2 credentials are connected Check spreadsheet ID matches your sheet Ensure column names match exactly (case-sensitive) Rate limits? Sona: 3 second delay between requests (built-in) OpenAI: Adjust batch size or add longer waits Google Sheets: No limit for standard usage π Template Information Category:** Sales & Marketing Difficulty:** Intermediate Setup Time:** 5-10 minutes Run Time:** 30-60 seconds per lead Cost:** Pay-per-use (Sona API + OpenAI tokens) Updated:** December 2025
by Avkash Kakdiya
How it works The workflow detects incoming job-application emails, extracts resumes, and parses them for AI analysis. It evaluates each candidate against three open roles and assigns a fit score with structured reasoning. Low-scoring applicants are stored for review, while strong candidates move into an automated scheduling flow. The system checks availability on the next business day, books the slot, sends a confirmation email, and records all details in Airtable. Step-by-step Detect and collect job-application data Gmail Trigger1** β Monitors inbox for all new emails. Message a model2** β Classifies whether the email is a job application. If2** β Continues only when the AI result is YES. Get a message1** β Fetches the full message and attachments. Upload file1** β Uploads the resume to Google Drive. Extract from File1** β Converts the PDF resume into text. Analyze the resume and evaluate fit Available Positions1** β Defines the three open roles. Message a model3** β Produces recommended role, fit score, strengths, gaps, skills, and reasoning. If3** β Routes candidates based on fit_score β₯ 8. Create a record3** β Stores lower-scoring applicants in Airtable. Get Next Business Day1** β Calculates the schedule window for qualified candidates. Check availability on the next business day AI Agent1** β Orchestrates availability search using calendar nodes. Get Events1** β Retrieves events for the target day. Check Availability1** β Evaluates free 1-hour slots. OpenAI Chat Model2** β Reasoning engine for the agent. Structured Output Parser1** β Returns clean JSON with start_time and end_time. OpenAI Chat Model3** β Supports structured parsing. Schedule the interview and notify the candidate Create an event1** β Books the interview in Google Calendar. Send a message1** β Sends an HTML confirmation email to the candidate. Create a record2** β Saves shortlisted candidate and interview data in Airtable. Why use this? Removes manual screening by automating email intake and resume parsing. Ensures consistent AI-based role matching and scoring. Books interviews automatically using real calendar availability. Keeps all applicant and scheduling data organized in Airtable. Provides a fully hands-off, end-to-end hiring pipeline.
by Ranjan Dailata
Who this is for This workflow is designed for teams that collect feedback or survey responses via Jotform and want to automatically: Analyze sentiment (positive, neutral, negative) of each response. Extract key topics and keywords from qualitative text. Generate AI summaries and structured insights. Store results in Google Sheets and n8n DataTables for easy reporting and analysis. Use Cases Customer experience analysis Market research & survey analysis Product feedback clustering Support ticket prioritization AI-powered blog or insight generation from feedback What this workflow does This n8n automation connects Jotform, Google Gemini, and Google Sheets to turn raw responses into structured insights with sentiment, topics, and keywords. Pipeline Overview Jotform β Webhook β Gemini (Topics + Keywords) β Gemini (Sentiment) β Output Parser β Merge β Google Sheets Jotform Trigger Captures each new submission from your Jotform (e.g., a feedback or survey form). Extracts raw fields ($json.body.pretty) such as name, email, and response text. Format Form Data (Code Node) Converts the Jotform JSON structure into a clean string for AI input. Ensures the text is readable and consistent for Gemini. Topics & Keyword Extraction (Google Gemini + Output Parser) Goal: Identify the main themes and important keywords from responses. { "topics": [ { "topic": "Product Features", "summary": "Users request more automation templates.", "keywords": ["AI templates", "automation", "workflow"], "sentiment": "positive", "importance_score": 0.87 } ], "global_keywords": ["AI automation", "developer tools"], "insights": ["Developers desire more creative, ready-to-use AI templates."], "generated_at": "2025-10-08T10:30:00Z" } Sentiment Analyzer (Google Gemini + Output Parser) Goal: Evaluate overall emotional tone and priority. { "customer_name": "Ranjan Dailata", "customer_email": "ranjancse@gmail.com", "feedback_text": "Please build more interesting AI automation templates.", "sentiment": "positive", "confidence_score": 0.92, "key_phrases": ["AI automation templates", "developer enablement"], "summary": "Customer requests more AI automation templates to boost developer productivity.", "alert_priority": "medium", "timestamp": "2025-10-08T10:30:00Z" } Merge + Aggregate Combines the topic/keyword extraction and sentiment output into a single structured dataset. Aggregates both results for unified reporting. Persist Results (Google Sheets) Writes combined output into your connected Google Sheet. Two columns recommended: feedback_analysis β Sentiment + Summary JSON topics_keywords β Extracted Topics + Keywords JSON Enables easy visualization, filtering, and reporting. Visualization (Optional) Add Sticky Notes or a logo image node in your workflow to: Visually describe sections (e.g., βSentiment Analysisβ, βTopic Extractionβ). Embed brand logo: Example AI Output (Combined) { "feedback_analysis": { "customer_name": "Ranjan Dailata", "sentiment": "positive", "summary": "User appreciates current templates and suggests building more advanced AI automations.", "key_phrases": ["AI automation", "developer templates"] }, "topics_keywords": { "topics": [ { "topic": "AI Template Expansion", "keywords": ["AI automation", "workflow templates"], "sentiment": "positive", "importance_score": 0.9 } ], "global_keywords": ["automation", "AI development"] } } Setup Instructions Pre-requisite If you are new to Jotform, Please do signup using Jotform Signup For the purpose of demonstation, we are considering the Jotforms Prebuilt New Customer Registration Form as a example. However, you are free to consider for any of the form submissions. Step 0: Local n8n (Optional) If using local n8n, set up ngrok: ngrok http 5678 Use the generated public URL as your Webhook URL base for Jotform integration. Step 1: Configure the Webhook Copy the Webhook URL generated by n8n (e.g., /webhook-test/f3c34cda-d603-4923-883b-500576200322). You can copy the URL by double clicking on the Webhook node. Make sure to replace the base url with the above Step 0, if you are running the workflow from your local machine. In Jotform, go to your form β Settings β Integrations β Webhooks β paste this URL. Now, every new form submission will trigger the n8n workflow. Step 2: Connect Google Gemini Create a Google Gemini API Credential in n8n. Select the model models/gemini-2.0-flash-exp. Step 3: Create Data Storage Create a DataTable named JotformFeedbackInsights with columns: feedback_analysis (string) topics_keywords (string) Step 4: Connect Google Sheets Add credentials under Google Sheets OAuth2. Link to your feedback tracking sheet. Step 5: Test the Workflow Submit a form via Jotform. Check results: AI nodes return structured JSON. Google Sheet updates with new records. Customization Tips Change the Prompt You can modify the topic extraction prompt to highlight specific themes: You are a research analyst. Extract main topics, keywords, and actionable insights from this feedback: {{ $json.body }} Extend the Output Schema Add more fields like: { "suggested_blog_title": "", "tone": "", "recommendations": [] } Then update your DataTable or Sheets schema accordingly. Integration Ideas Send sentiment alerts to Slack for high-priority feedback. Push insights into Notion, Airtable, or HubSpot. Generate weekly reports summarizing trends across all submissions. Summary This workflow turns raw Jotform submissions into actionable insights using Google Gemini AI β extracting topics, keywords, and sentiment while automatically logging everything to Google Sheets.
by Avkash Kakdiya
How it works This workflow automatically generates and sends personalized sales proposals when a new row is added to Google Sheets. It uses AI to create proposal content, updates contact details in HubSpot, and generates a formatted document. The document is converted into a PDF and emailed to the client. This eliminates manual proposal writing and ensures fast, consistent delivery. Step-by-step Capture lead and generate AI content** Google Sheets Trigger β Detects new form submissions in your sheet. Loop Over Items β Processes each new entry individually. Message a model β Uses Gemini AI to generate the proposal content. Code in JavaScript β Cleans and splits AI output into structured fields. Create contact and generate document** Create or update a contact β Stores or updates client data in HubSpot. Copy file β Duplicates a proposal template from Google Drive. Update a document β Replaces placeholders with real client and AI data. Download file β Converts the final document into a PDF file. Send proposal to client** Send a message β Emails the generated PDF proposal to the client. Why use this? Automatically generates professional proposals without manual writing Ensures consistent formatting using templates and placeholders Saves time by combining CRM, AI, and document creation Improves response speed for leads and increases conversion chances Scales easily for handling multiple client requests simultaneously
by Gracewell
Who Is This For? This workflow is designed for educators, universities, examination departments, and EdTech institutions that need a faster, smarter, and standardized way to prepare exam question papers. What Problem Does This Solve? Creating balanced, outcome-based question papers can take hours or even days of manual effort. Faculty often struggle to: Ensure syllabus coverage across units Maintain Bloomβs Taxonomy alignment Keep a consistent difficulty balance Format papers in institution-specific templates How it works This workflow automatically generates an exam question paper based on syllabus topics submitted via a form and sends it to the entered email address. Hereβs the flow in simple steps: Form Submission β A student or faculty fills out a form with subject code, syllabus topics, and their email. AI Question Generation β The workflow passes the syllabus to AI agents (Part A with 2 Marks, Part B with 13 Marks, and Part C with 14 Marks) to create question sets. The marks and the no. of question generated can be customized according to the convenience. Merging Questions β All AI-generated questions are combined into a single structured document. Format into HTML β The questions are formatted into a clean HTML exam paper (can also be extended to PDF). Send by Emailβ The formatted exam paper is sent to the userβs email (with option to CC/BCC). Set up steps Connect Accounts Connect your OpenAI (or LLM) credentials for AI-powered question generation. Connect your Gmail (or preferred email service) to send emails. Prepare Form Create an n8n form trigger with required fields: Subject with Code Syllabus for Unit 1, 2, 3β¦ Email to receive the paper Customize Question Generation Modify the AI prompts for Parts A, B, and C to fit your syllabus style (e.g., 2-mark, 13-mark, 14-mark). Format the Exam Paper Adjust the HTML template to match your institutionβs exam paper layout. Test & Deploy Submit a test form entry. Check the received email to ensure formatting looks good. Deploy the workflow to production for real usage. Need help customizing? βοΈ Contact Me πΌ LinkedIn
by Databox
Stop spending hours manually pulling paid ads data. This workflow connects to Databox via MCP, auto-discovers every connected paid platform, fetches 6 key metrics, and delivers a consolidated weekly report to Slack and email - every Monday at 9 AM, completely hands-free. Who's it for Performance marketers** managing campaigns across multiple platforms Marketing managers** who need a weekly cross-platform overview Agencies** automating paid ads reporting for clients How it works Schedule Trigger fires every Monday at 9 AM AI Agent connects to Databox via MCP and discovers all connected paid platforms (Google Ads, Facebook Ads, LinkedIn Ads, TikTok Ads, and 6 more) Fetches Spend, Clicks, CPC, CTR, Impressions, and Conversions for this week and last week Calculates week-over-week changes and formats two outputs - a Slack summary and a color-coded HTML email Delivers both simultaneously Requirements Databox account** with at least one paid ads platform connected (free plan works) OpenAI API key (or Anthropic) Slack account Gmail account How to set up Click Databox MCP Tool - set Authentication to OAuth2 and authorize Add your OpenAI API key to the Chat Model node Connect Slack and update the channel ID in the Send to Slack node Connect Gmail and set the recipient address in the Send Email node Activate - your first report arrives next Monday