by Daniel Rosehill
Who's it for This workflow is perfect for individuals, small businesses, or households who need to: Automatically process and categorize expense receipts Extract structured data from invoices and receipts using AI Store receipts in multiple locations (Google Drive and S3) Send automated email notifications with expense details Send documents to accounting systems via email hooks How it works This comprehensive expense processing workflow combines AI-powered document analysis with automated file management and notifications. Here's the complete flow: Form Submission: Users submit expenses through a web form with receipt upload and category selection (Personal, Business, or Shared/Home) AI Document Processing: The workflow extracts text from PDF receipts using OCR, then uses Google Gemini AI to parse and structure the data into a standardized JSON format including vendor details, amounts, dates, and categorization Smart Routing: Based on the expense category, receipts are automatically routed to different processing paths with category-specific folder organization Multi-Destination Storage: Receipts are uploaded to: Google Drive (organized by year/month folders) S3 cloud storage buckets Different destinations based on expense type Email Notifications: Sends formatted HTML email notifications with complete expense details and links to stored receipts Accounting System Integration: Automatically forwards business expenses to accounting systems via email hooks (customizable per user requirements) Requirements Credentials needed: Google Gemini API**: For AI-powered document analysis Google Drive OAuth2**: For personal and business drive access Gmail OAuth2**: For sending email notifications S3 Storage**: For cloud backup (AWS S3, Wasabi, etc.) Services used: Google Drive (multiple accounts supported) Google Gemini AI Gmail S3-compatible storage Form trigger webhook How to set up Step 1: Configure Credentials Set up Google Gemini API credentials in n8n Configure Google Drive OAuth2 for both personal and business accounts Add Gmail OAuth2 credentials Set up S3 storage credentials Step 2: Update Configuration Replace all placeholder values: YOUR_GEMINI_CREDENTIAL_ID with your Gemini credential ID YOUR_PERSONAL_GDRIVE_CREDENTIAL_ID with personal Drive credential YOUR_BUSINESS_GDRIVE_CREDENTIAL_ID with business Drive credential YOUR_GMAIL_CREDENTIAL_ID with Gmail credential YOUR_S3_CREDENTIAL_ID with S3 credential Update Google Drive folder structure: Replace YOUR_BUSINESS_DRIVE_ID and YOUR_SHARED_DRIVE_ID with actual drive IDs Update the JavaScript code in the three Code nodes with your actual folder mapping Configure email addresses: Replace user@example.com with your notification email Replace receipts@paperless-service.com with your accounting system's email hook (this is a mail hook for uploading documents to small business accounting systems - can be modified per user requirements) Update S3 bucket names: Replace business-expenses, personal-expenses, and shared-expenses with your bucket names Step 3: Set Up Folder Structure Create organized folder structures in your Google Drives: Drive Root/ ├── 2024/ │ ├── January/ │ ├── February/ │ └── ... (all months) ├── 2025/ │ ├── January/ │ └── ... (all months) └── 2026/ └── ... (all months) Step 4: Test the Workflow Activate the workflow Submit a test expense through the form Verify files are uploaded to correct locations Check email notifications are received How to customize the workflow Expense Categories Modify the form dropdown options and conditional logic to add/remove expense categories: Edit the "On form submission" node form fields Update the IF condition nodes for routing Add new processing paths as needed AI Processing Schema Customize the structured output parser schema to extract different fields: Modify the JSON schema in the "Structured Output Parser" node Update the AI system prompt for different extraction requirements Add new fields for specific business needs Storage Destinations Add or modify storage locations: Duplicate upload nodes for additional cloud services Modify folder organization logic in Code nodes Add new conditional routing for different storage rules Email Templates Customize the HTML email template: Edit the email message content in the Gmail node Add/remove expense fields in the table Modify styling and branding Folder Organization Update the JavaScript code in Code nodes to match your folder structure: Modify the CSV data with your actual folder IDs Change the date-based organization logic Add custom folder naming conventions Integration Extensions Extend the workflow with additional integrations: Add Slack notifications Connect to accounting software (QuickBooks, Xero) Integrate with expense management platforms Add approval workflows for business expenses
by NodeAlchemy
This n8n template demonstrates how to use AI to capture, qualify, and route inbound leads automatically from email or web forms. It extracts key business information using AI, scores the lead based on your ideal customer profile, creates CRM records, notifies your team on Slack, and logs all activity—including failures—to Google Sheets. Use cases include: automating sales inboxes, qualifying form leads for agencies or SaaS products, routing high-fit prospects to the right territory owner, and keeping your sales and ops teams aligned without manual data entry. Good to know The OpenAI model is used for lead data extraction and will incur a small cost per run depending on volume. This workflow supports either Salesforce or HubSpot as the CRM system—select which one in the configuration node. You’ll need valid credentials for Gmail (or another email service), OpenAI, Slack, Google Sheets, and your chosen CRM before running. How it works Triggers: A Gmail trigger polls for new inbound emails. A Webhook node receives submissions from any online form. Both sources merge into a single pipeline. Validation: Incoming data is checked for required fields (email or text). Invalid entries are routed to the Dead Letter Queue (DLQ) for review. AI Extraction: The OpenAI node extracts structured fields like company name, size, industry, role, region, problem statement, and budget signals from free-form text. Parsing & Scoring: The AI output is parsed, then a code node calculates a 0–100 lead score based on transparent criteria—industry, size, role, problem clarity, and budget mentions. It also assigns a lead tier (Hot, Warm, Cold, Unqualified). CRM Routing: Depending on your configuration, the workflow creates a Salesforce lead (default) or can be easily adapted for HubSpot. Territory or CRM owner routing can be extended here. Slack Notification: A rich Slack message summarizes the lead score and reasoning and includes a “Create intro email” button for quick action. Logging: All successful leads are logged to Google Sheets for reporting. Any failed or invalid leads are logged separately to the DLQ tab for auditing. How to use Configure your credentials for Gmail, OpenAI, Slack, Google Sheets, and your CRM. Open the Workflow Configuration node and fill in your target industries, buyer roles, company size, Slack channel ID, Google Sheets URL, and CRM choice. Create corresponding tabs in your Google Sheet for Leads and DLQ. Test by sending a sample email or form submission, then watch the workflow extract, score, route, and notify automatically. Requirements OpenAI account for text extraction Gmail (or other email provider) for the email trigger Slack for lead notifications Google Sheets for logging leads and DLQ entries Salesforce or HubSpot account for CRM integration Customizing this workflow This template can be expanded in many ways: Add HubSpot routing on the first Switch output. Integrate a Slack button handler to auto-generate intro emails. Add retry and backoff logic for resilience. Modify the scoring rubric in the code node to match your unique ICP. Connect additional sources, such as LinkedIn forms or landing page builders, for omnichannel lead capture.
by Yusuke Yamamoto
This n8n template demonstrates how to use AI to fully automate the generation and scheduling of X (formerly Twitter) content based on a specific, predefined persona. Use cases are many: It's perfect for social media marketers looking to streamline content creation, individual experts building a consistent brand voice, or businesses aiming to drive traffic to specific services with a steady stream of relevant content. Good to know The AI model used in this workflow (via OpenRouter) requires an API key and will incur costs based on usage (typically a few cents per generation). The Blotato node used for posting is a third-party community node and requires a separate Blotato account. How it works This workflow is divided into two main processes: Content Generation and Content Posting. Content Generation Process: A Schedule Trigger kicks off the workflow every 4 hours. An AI Agent (LangChain) generates a post based on a detailed prompt defining a persona, purpose, and rules. A Code node refines the AI's output, ensuring the text ends naturally. The generated post is then saved to a Google Sheet with a "Not Posted" status, creating a content queue. Content Posting Process: The workflow retrieves one "Not Posted" item from the Google Sheet. An IF node checks the post's category to determine if an image is required. If an image is needed, it searches for and retrieves a matching image file from a specified Google Drive folder. The Blotato node posts the text (and image, if applicable) to the designated X (Twitter) account. A confirmation email is sent via Gmail to notify stakeholders of the successful post. Finally, the Google Sheet status is updated to "Completed" to prevent duplicate posts. How to use You can test the workflow anytime using the manual trigger. For production, adjust the posting frequency in the "Trigger: Every 4 Hours" node. The quality of the generated content is determined by the prompt. Edit the system message within the "AI: Generate X Post Content" node to customize the persona, purpose, tone of voice, etc. To generate posts with images, you must upload image files to the specified Google Drive folder. The filename must exactly match the post's category name (e.g., Evidence-based_Graph.png). Requirements An OpenRouter account (or another AI service account) for the LLM. A Blotato account for social media posting. A Google account for content management, image storage, and notifications (Sheets, Drive, Gmail). Customising this workflow Expand the workflow to post to other social media platforms supported by Blotato, such as Facebook or LinkedIn. Instead of posting immediately, add a human-in-the-loop approval step by sending the AI-generated draft to Slack or email for review before publishing. Replace the Schedule Trigger with a Webhook Trigger to generate and post relevant content based on external events, such as "when a new blog post is published."
by Atta
What it does Customer support calls contain a wealth of valuable feedback and urgent issues, but manually reviewing audio files is inefficient. This workflow acts as an AI assistant for your call log, transforming unstructured audio recordings into structured, actionable data. It provides a clean summary, sentiment analysis, and a list of required actions for every call, eliminating the need for manual listening and ensuring key insights are never missed. How it works The workflow runs on a schedule to fully automate the call analysis process from start to finish. Fetch New Recordings: The workflow triggers on a schedule (e.g., every 5 minutes), searches a designated Google Drive folder for new call recordings, and downloads any new files it finds. Transcribe Audio: Each audio file is sent to the ElevenLabs API to be converted from speech to a text transcript. The result is then formatted into a conversational, multi-speaker format. AI-Powered Analysis: The transcript is passed to a Google Gemini node, which is prompted to return a structured JSON object. This JSON contains a complete analysis of the call, including speaker identification (agent_name, client_name), a summary, the client_sentiment, a call_topic, a department_tag, and a list of action_items. Log the Results: The complete, structured analysis output from Gemini is appended as a new row in a Google Sheet, creating a centralized log with all the extracted call details and the full transcript. Take Action: The workflow uses conditional logic based on the detected sentiment: Negative Sentiment: If a call was negative, an immediate alert containing the call summary and action items is sent to a manager's group on Telegram. Positive Sentiment: If a call was positive, a kudos message is sent to the support team's Telegram channel to celebrate good work. File Management: After processing, the original audio file is automatically moved to a separate "Processed" folder in Google Drive to ensure it isn’t analyzed again. Setup Instructions To configure this workflow, you will need to set up your file storage in Google Drive, create a Google Sheet for logging, and configure credentials for all connected services. Required Credentials Google: You will need Google OAuth2 credentials that have permission for Google Drive, Google Sheets, and the Google AI (Gemini) APIs. ElevenLabs: Sign up for an account at ElevenLabs and get your API Key. You will add this directly into the HTTP Request node for transcription. Telegram: Create a bot using the BotFather in Telegram to get your Bot Token. You will also need the specific Chat ID for the managers' channel and the team's channel. Step-by-Step Configuration Google Drive: Create two folders in your Google Drive: one named "Company - Support Call Recordings" and another named "Processed Recordings". Copy the unique Folder ID from the URL for each and paste it into the respective Google Drive nodes. Google Sheets: Create a new Google Sheet to log the results. In the first row, create the following headers exactly as written: Recording File, Sentiment, Department, Topic, Agent, Client, Summary, Actions, and Fulltext. Copy the Sheet ID from the URL and paste it into the "Log Recording Analysis" (Google Sheets) node. ElevenLabs Node: In the "Convert Speech To Text" (HTTP Request) node, make sure the URL is set to the correct ElevenLabs API endpoint for speech-to-text. Add your ElevenLabs API Key to the authentication header. Telegram Nodes: In the "Send Alert To Managers" node, enter the Chat ID for your managers' group. In the "Send Kudos to Team" node, enter the Chat ID for the main team channel. How to Adapt the Template This workflow is a powerful starting point. Based on your specific needs, you can customize the inputs, the AI analysis, the logging method, and the final actions. Input Method Change File Source:* Instead of Google Drive, you can adapt the workflow to fetch recordings from other services like *Dropbox, **OneDrive, or a custom FTP server. Use a Webhook:* Replace the *Schedule Trigger* with a *Webhook Trigger** to process calls in real-time as they are added from your call software (if it supports webhooks). Final Actions Create Service Tickets:* This is a key area for customization. Replace the *Telegram* nodes with nodes for ticketing systems. For a negative call, you can automatically create a high-priority ticket in *Jira, **Zendesk, or ServiceNow. Create Tasks:* For calls with specific action items, use a node like *Asana, **Trello, or Todoist to automatically create a task and assign it to the correct team member. Send Email Notifications:* Use the *Send Email** node to dispatch summaries and alerts to stakeholders who are not on Telegram. Logging and Analysis Log to a Database:* Instead of Google Sheets, you can use a *Postgres, **MySQL, or Data Warehouse node to log the structured data for more advanced business intelligence and dashboarding. Customize the AI Prompt:** The prompt in the Google Gemini node is the "brain" of the operation. It specifically instructs the AI to return a JSON object with a predefined structure. To change what data is extracted, you can modify this structure in the prompt. For example, you could add a new key-value pair like "competitor_mentioned": "Name of competitor if mentioned, otherwise null" to the JSON structure. The current workflow asks the AI to populate a JSON object like this: { "speaker_identification": { "agent": "speaker_id", "agent_name": "The agent's name", "client": "client_id", "client_name": "The client's name" }, "summary": "A concise summary.", "client_sentiment": "Positive, Negative, or Neutral", "call_topic": "A brief phrase for the topic.", "department_tag": "The most relevant department.", "action_items": [ "A list of actionable tasks." ] } Change AI or STT Service:* You can swap out the *Google Gemini* node for an *OpenAI* node, or change the *HTTP Request* node to use a different transcription service like *AssemblyAI* or *Deepgram**.
by Jitesh Dugar
Meeting Minutes & Action Item Tracker Fully automated meeting documentation workflow that uses AI to transform raw transcripts into professional PDFs and actionable tasks. Features AI-powered summary generation (GPT-4) Automatic action item extraction with assignees, deadlines, and priorities Professional PDF generation with custom styling Multi-channel distribution (Email, Slack, Google Drive) Task creation in Google Tasks Personalized notifications to each assignee Deadline tracking and urgency detection Setup Instructions REQUIRED CREDENTIALS: OpenAI API - Get from Gmail OAuth2 - Connect your Google account Google Drive OAuth2 - Same Google account Google Tasks OAuth2 - Same Google account Slack OAuth2 - Connect your workspace htmlcsstopdf API - Get from CONFIGURATION STEPS: WEBHOOK: Note your webhook URL after activation EMAIL NODES: "Email All Participants": Uses participants array from input "Send Individual Task Emails": Change @yourcompany.com to your domain GOOGLE DRIVE: Select folder where PDFs should be stored Recommended: Create "Meeting Minutes" folder SLACK: Select channel for team notifications Recommended: Create #meeting-notes channel GOOGLE TASKS: Select task list where tasks should be created Default list works fine TESTING: Use the webhook URL with sample meeting data Check execution log for any errors Verify PDF in Google Drive Check emails were sent Confirm tasks created in Google Tasks Example Input Format POST : Headers: Content-Type: application/json Body: { "title": "Weekly Team Standup", "date": "2025-09-29", "participants": [ "john@company.com", "sarah@company.com", "joe@company.com" ], "duration": "30 minutes", "transcript": "John started the meeting by discussing the progress on the API development. Sarah mentioned that she's working on the dashboard and needs to prepare mockups by Thursday. The team agreed that Sarah will review the API documentation before the client demo on Friday. Akshita confirmed she finished the database schema redesign and needs to schedule a meeting with DevOps team by next Monday to discuss production deployment." } This will generate: Professional PDF with summary and action items Emails to all participants Individual task emails to John, Sarah, and Joe Tasks in Google Tasks Slack notification Output After execution, you'll get: Professional PDF stored in Google Drive Email sent to all participants with meeting overview Individual emails to each assignee with their tasks Slack notification with summary and download link Tasks created in Google Tasks with deadlines CUSTOMIZATION: Modify PDF styling in "Generate PDF Document" node Adjust email templates in Gmail nodes Change AI prompts in OpenAI nodes for different output Modify priority/deadline logic in "Parse and Enrich Data" Troubleshooting Workflow stops at validation: Ensure transcript has >50 words Check that webhook payload is correctly formatted No PDF generated: Verify htmlcsstopdf API credentials Check API usage limits Tasks not created: Verify deadline format is YYYY-MM-DD Check Google Tasks API connection Emails not sending: Confirm Gmail OAuth2 is connected Check that email addresses are valid Support For issues or questions, visit the n8n community forum. License MIT License - Feel free to modify and share!
by Jitesh Dugar
Automated Pre-Issued Workshop Certificate Generator Description: This workflow automates the entire pre-issuance process of workshop participation certificates. When an attendee submits a registration form via a webhook, the workflow validates the data, verifies the attendee’s email, generates a unique Certificate ID and QR code, creates a styled certificate image, stores it on Google Drive, emails the certificate to the attendee, logs all details in Google Sheets, and notifies organizers via Slack — all fully automated. This template is ideal for institutions, event teams, training organizations, hackathons, and workshops that want to automate certificate issuing and remove manual processing. Key Features: Webhook-based registration intake** Required field + email validation using VerifiEmail API** Auto-generated Certificate ID, QR code, and verification URL** Dynamic HTML-to-Image certificate generation** Automatic email delivery with certificate attachment (Gmail)** Auto-upload certificate to Google Drive** Real-time Slack notification for organizers** Registration + certificate logging in Google Sheets** Instant webhook response with certificate metadata** How It Works (Short Summary): Webhook Trigger receives registration details. Validator checks for mandatory fields (name, email, event). Email verification ensures the email is deliverable. Certificate generation creates unique ID + QR + HTML. HTML-to-Image converts the certificate to PNG. Upload to Google Drive stores the certificate file. Email node sends the certificate to the attendee. Google Sheets logs the registration + certificate details. Slack message notifies organizers instantly. Webhook response returns success JSON. Use Cases: Workshops Webinars Training sessions Bootcamps Corporate events Hackathons Student registrations Event ticketing / entry pass systems Required Credentials: VerifiEmail API** – email validation at verifi.email HTMLCSStoImage API** – convert certificate HTML to PNG at htmlcsstoimg.com Gmail OAuth2** – send certificate emails Google Drive OAuth2** – store certificate files Google Sheets OAuth2** – logging Slack API** – organizer notifications Setup Instructions: Import this template into your n8n instance. Open the Webhook node and copy the generated webhook URL. Use this URL in your registration form / frontend / Postman. Add all required credentials in the Credentials Manager. Customize certificate HTML (colors, branding, logos) if needed. Test with a sample POST request containing all required fields: name email event date time venue organization designation Enable the workflow. Input Format (POST Body Required): { "name": "John Doe", "email": "john@example.com", "event": "AI Workshop 2025", "date": "25 Nov 2025", "time": "10:00 AM", "venue": "Auditorium Hall", "organization": "Tech University", "designation": "Student" } Output (Webhook Response): { "success": true, "message": "Registration successful! Certificate sent to your email.", "certificateId": "CERT-12345-ABCD", "verifyUrl": "https://workshopverify.com/cert?id=CERT-12345-ABCD" } Why This Workflow is Useful: Eliminates manual certificate design & sending Ensures professional, consistent certificates Reduces event staff workload Guarantees accurate data logging Provides instant attendee confirmation Enhances event experience with automation
by WeblineIndia
Zoho CRM - Smart Meeting Scheduler This workflow automatically schedules meetings for new Zoho CRM leads by detecting their timezone, checking the sales rep’s Google Calendar, generating conflict-free time slots, creating a Zoom meeting and sending a personalized AI-generated email to the lead. If no slots are available, it sends a fallback message to the lead without updating Zoho CRM. When a meeting is created, all details are logged inside Zoho CRM for visibility. ⚡ Quick Implementation Steps (Fast Start Guide) Import the workflow JSON into n8n. Configure Zoho CRM, Google Calendar, Gmail, Zoom OAuth and Gemini AI credentials. Update meeting duration, working hours, buffer time and search window. Set email recipient to the lead’s email instead of test/static values. Add the webhook URL to Zoho CRM → Automation → Webhooks. Test with a new lead and activate the workflow. 📘 What It Does This workflow automates scheduling for new Zoho CRM leads. As soon as a lead is created, it retrieves full lead and owner details, detects the lead’s timezone and checks the assigned sales rep’s upcoming Google Calendar events. This helps identify when the rep is available. Using your settings—working hours, meeting duration, buffer before/after and days to evaluate—the system generates valid meeting time slots with no conflicts. If suitable slots exist, it authenticates with Zoom and creates a meeting for the earliest option, then generates a polished HTML invitation using Gemini AI and emails it to the lead. This ensures a fast, smart and personalized lead engagement process. If no slots exist, the workflow sends a fallback email informing the lead that no availability is open in the next few days. In this branch, Zoho CRM is not updated, because no meeting was scheduled. 🎯 Who’s It For This workflow is perfect for: Sales teams managing high inbound volume CRM managers automating lead qualification & engagement SaaS companies scheduling demos automatically Agencies booking consultation calls Any team struggling with timezone-based scheduling manually 🔧 Requirements to Use This Workflow Platform Requirements n8n (Cloud or self-hosted) Required Integrations Zoho CRM OAuth2 Google Calendar OAuth2 Gmail OAuth2 Zoom OAuth (account-level) Gemini AI / Google PaLM API Required Lead Fields Email (mandatory for sending the invite) Country / State (for timezone detection) Lead Owner (to fetch rep details) 🔄 How It Works Zoho CRM Webhook triggers when a new lead is created. Workflow fetches full lead and owner details. Detects the lead’s timezone using country/state mapping. Fetches the sales rep’s availability from Google Calendar. Generates valid time slots based on working hours, buffers and meeting duration. If slots exist: Authenticate with Zoom Create a Zoom meeting Generate personalized HTML invite using Gemini AI Send email to the lead Log meeting details in Zoho CRM If no slots exist: Generate fallback message Send fallback email to the lead (Zoho CRM is NOT updated in this path) 🛠️ Setup Steps (Configuration Guide) 1. Import Workflow Go to: n8n → Workflows → Import and upload the JSON file. 2. Add Required Credentials Configure the following inside n8n: Zoho CRM OAuth Google Calendar OAuth Gmail OAuth Zoom OAuth Gemini AI API key 3. Update Workflow Configuration Node Set: Meeting duration Buffer before/after Working hours Days to look ahead Default meeting provider (Zoom) 4. Fix Email Recipient In Send Meeting Invite node, set: sendTo = {{$('Detect Lead Timezone').item.json.Email}} yaml Copy code 5. Update Google Calendar Email/ID Ensure the calendar ID matches the sales rep’s Google Calendar. 6. Add Webhook in Zoho CRM Navigate to: Setup → Automation → Webhooks → Create Webhook → Lead Created Paste the webhook URL from n8n. 7. Test the Automation Verify: Correct timezone detection Calendar availability check Zoom meeting creation AI email sent to the lead Zoho CRM updated only when meeting is created 8. Activate Workflow Enable the workflow for live operation. 🧩 How To Customize Nodes 1. Adjust Meeting Logic Modify the Workflow Configuration node to change: Slot duration Buffer time Working hour ranges Days to consider 2. Expand Timezone Detection Edit the Detect Lead Timezone node to add new countries/states. 3. Personalize Email Content Update the prompt inside the Generate Personalized Invite node. 4. Add New Regions Duplicate timezone logic for new regions (Australia, Middle East, etc.) 5. Replace Zoom Swap Zoom with Google Meet, Microsoft Teams or Zoho Meeting. ➕ Add-Ons (Optional Enhancements) Auto-book calendar events when lead confirms a slot WhatsApp notifications via Twilio or Gupshup Slack/Email internal alerts for reps Follow-up reminder emails Log lead activity to Google Sheets Attach downloadable ICS calendar file 💼 Use Case Examples SaaS demo scheduling Consultation & discovery calls Global timezone-based sales teams Onboarding/support calls Event follow-up scheduling (And many more…) 🩻 Troubleshooting Guide | Issue | Possible Cause | Solution | |-------|----------------|----------| | Lead not receiving email | Gmail OAuth expired / wrong email field | Reconnect Gmail OAuth & fix sendTo value | | Wrong time slots | Incorrect timezone detection | Update mapping in Detect Lead Timezone | | Zoom meeting not created | Invalid/expired Zoom OAuth | Reconnect Zoom credentials | | CRM not updated after fallback email | Expected behavior | No CRM update when slots don’t exist | | Workflow not triggering | Missing Zoho webhook | Re-add webhook | | Empty AI email | Gemini key incorrect | Reconfigure Gemini credentials | 🤝 Need Help? If you want assistance setting up, customizing or extending this workflow, the n8n automation team at WeblineIndia is here to help. We specialize in: Advanced automation workflows Multi-timezone scheduling systems CRM-integrated AI communication Custom Zoho + n8n development End-to-end automation architecture 👉 Contact WeblineIndia for expert workflow development and enhancements.
by Gerald Denor
Unleash the power of AI to automate your job search, tailor your applications, and boost your chances of landing your dream job! This comprehensive workflow handles everything from finding relevant job postings to generating personalized resumes and cover letters. Use cases are many: Automate your entire job application process:** Spend less time searching and more time preparing for interviews. Tailor your resume and cover letter for every application:** Maximize your ATS compatibility and stand out to recruiters. Efficiently track your applications:** Keep all your job search activities organized in one place. Discover new job opportunities:** Leverage the Adzuna API to find relevant listings. Good to know: Free Adzuna API:* This workflow utilizes the *free Adzuna API, making job search capabilities accessible without initial cost. OpenRouter Chat Model Costs:** AI model usage (for resume rewriting and cover letter generation) will incur costs based on the OpenRouter pricing model. Please check OpenRouter's official website for updated pricing information. Model Availability:** The AI models used may have geo-restrictions. If you encounter a "model not found" error, it might not be available in your country or region. How it works: Webhook Trigger: The workflow is initiated via a webhook, allowing you to trigger it manually or integrate it with other systems (e.g., a form submission with your desired job title and resume). Resume Extraction: Your uploaded resume (e.g., PDF) is automatically extracted into a readable text format. Job Search (Adzuna API): Using the provided job title, the workflow queries the Adzuna API to fetch relevant job postings. Job Filtering: Duplicate job listings are filtered out to ensure you receive unique opportunities. Job Info Extraction: Key details like job description, company name, and job URL are extracted from each posting. Skills Extraction (AI): An AI model (OpenRouter) analyzes the job description to identify the top skills and qualifications required. Resume Match Scoring (AI): Your resume is compared against the extracted job skills by an AI model, generating a compatibility score (1-5). Conditional Resume & Cover Letter Generation: If the resume match score is satisfactory (≥ 3): Tailored Resume Generation (AI): An AI model rewrites your resume, specifically highlighting the skills and experience most relevant to the target job, in an ATS-friendly and human-readable JSON/HTML format. Personalized Cover Letter Generation (AI): A custom cover letter is drafted by AI, uniquely tailored to the job description and your newly optimized resume, generated as well-formatted HTML. Google Sheets Integration: The generated cover letter, tailored resume, job URL, and application status are automatically updated in your designated Google Sheet for easy tracking. Gmail Notification: A personalized email containing the generated cover letter, tailored resume, and a direct link to the job posting on Adzuna is sent to your specified email address. Webhook Response: A final text response is sent back via the webhook, summarizing the sent application materials. How to use: Manual Trigger:** The workflow is set up with a manual trigger (Webhook) for initial testing and demonstration. You can easily replace this with an n8n form, a scheduled trigger, or integrate it into your existing tools. Input:** Provide your desired job search keyword and your resume (e.g., as a PDF) to the webhook. Review & Apply:** Review the AI-generated cover letter and tailored resume sent to your email, then proceed to apply for the job using the provided Adzuna link. Requirements: n8n Instance:** A running n8n instance (self-hosted or cloud). Adzuna API Key:** A free Adzuna API key (easily obtainable from their developer portal). OpenRouter Account:** For AI model access (costs apply based on usage). Google Sheets Account:** To store and track your job applications. Gmail Account:** To send automated application emails. Customizing this workflow: This workflow is highly customizable. You can: Integrate with other job boards (e.g., LinkedIn, Indeed) using their APIs. Add more sophisticated AI models or custom prompts for even finer control over resume and cover letter generation. Connect to other services for CRM, calendar management, or applicant tracking. Implement different filtering criteria for job postings. Expand the data stored in your Google Sheet (e.g., interview dates, feedback). Start automating your job search today and streamline your path to career success!
by Trung Tran
SmartSupport Flow: Auto-Handle IT Requests from Email to JIRA with Slack notification Watch the demo video below: Who’s it for > This workflow is built for lean IT teams, office managers, and business operators who receive support requests via email and want to automate ticket creation, smart AI resolution advice, and seamless communication with both users and internal teams, all without lifting a finger. If your team is tired of manually triaging inbox requests, this AI-powered flow will transform your support handling process. How it works / What it does Trigger on New Email: Uses Gmail Trigger to detect new support request emails. Fetch Email Content: Retrieves the full message body and metadata. Check for Duplication: Skips processing if the email has already been handled (based on READ/UNREAD label). Mark as Read: Updates Gmail to mark the email as processed. Extract Structured Request: Uses the Support Request Reader Agent powered by OpenAI to extract: Request title Request description Requested by Department Category and priority Create Jira Ticket: A main issue is created in Jira using the structured request. Generate AI-Based Solution: Invokes the IT Support Advisor Agent to propose resolution(s). Post Comment to Jira: Adds the suggested solution(s) to the issue as a comment. Notify IT Team: Sends the ticket and context to a Slack channel for visibility and action. (Optional) Send Email to Requester: Currently deactivated. Can be enabled to acknowledge receipt. How to set up Gmail Integration Connect Gmail in the “Gmail Trigger” and “Get Email Content” nodes. OpenAI Configuration Use OpenAI API credentials in both the Reader and Advisor agent models. Jira Integration Authenticate your Jira account. Set project key and issue fields in the “Create Main Issue” node. Slack Notification Configure Slack connection and select a target channel. Set up Jira, Slack, Email Set your company Jira based URL, IT Support slack channel and IT Support email in the Edit Fields (Set) node (Optional) Email Acknowledgment Provide SendGrid credentials and email template in the “Send email to requester” node if re-enabled. Requirements Gmail API access with appropriate permissions OpenAI account with API access (for GPT-4 or GPT-3.5) Jira instance with project and permission to create/comment on issues Slack workspace and Webhook or OAuth setup n8n instance running with all above integrations configured How to customize the workflow Enhance Email Deduplication**: Adjust the deduplication logic to use message-id, threadId, or custom headers. Expand Reader Agent**: Configure the LLM to extract more details such as asset tags, urgency levels, or locations. Tailor Advisor Agent**: Adjust prompt to generate multiple solutions, troubleshooting guides, or internal references. Routing by Department**: Add logic to forward requests to different teams based on the request category or department. Enable Email Acknowledgment**: Activate and customize the email notification step to inform requesters that their issue is being handled.
by ueharayuuki
This workflow provides a comprehensive weather reporting system with two main functionalities: a scheduled daily summary and an interactive AI agent for dynamic queries. Who's it for? This template is ideal for anyone who wants to stay updated on the weather, from individuals planning their day to teams needing automated daily briefings. It's also a great example for developers and n8n users who want to explore the capabilities of AI Agents and integrating external APIs in their workflows. What it does / How it works This workflow operates in two distinct modes: Scheduled Daily Summary: The workflow triggers automatically every day at 9:00 AM (customizable) or can be run manually. It fetches the latest weather data for a specified location (default is near Chiba, Japan) from the Open-Meteo API. It then formats a message with the day's maximum and minimum temperatures. Finally, it sends this summary to a designated Gmail address and a Slack channel. AI-Powered Forecasts via Chat: When you send a message to the Chat Trigger webhook, it activates the AI Agent. The AI Agent, powered by an OpenAI model, understands natural language questions like "What's the humidity right now?" or "Will it be warmer tomorrow?". The agent uses an HTTP Request tool to fetch real-time, specific data from the weather API to answer your question. The generated answer is then sent back to you via both Gmail and Slack. How to set up Configure Credentials: Add your credentials for OpenAI, Gmail, and Slack in the credentials menu. Set Your Location: In the Fetch Weather Data and HTTP Request Tool for AI nodes, update the latitude and longitude in the URL to your desired location. Update Email and Slack: In the Send Email Summary and Send AI Response via Email nodes, change the recipient email address to your own. In the Send Slack Summary and Send AI Response via Slack nodes, select your desired Slack channel. Adjust the Schedule: Modify the Schedule Trigger node to change the time or frequency of the daily summary. Activate the Workflow: Click the "Active" toggle in the top-right corner to enable the workflow. How to customize the workflow Change the Message:** You can easily customize the notification message in the Format Daily Summary node (for the summary) and in the Send... nodes for both flows. Add More Data:** The Open-Meteo API provides a wealth of data. You can fetch additional information like precipitation, wind speed, or UV index by modifying the URL in the HTTP Request nodes. Integrate Other Services:** Add other notification nodes like Discord, Telegram, or Microsoft Teams to send the weather reports to more platforms.
by Muhammad Farooq Iqbal
This n8n template demonstrates how to create consistent character videos using AI image and video generation. The workflow generates photorealistic videos featuring the same character across different poses, locations, and outfits, maintaining perfect character consistency throughout cinematic transitions. Use cases are many: Create consistent character content for social media, generate cinematic videos for brand campaigns, produce lifestyle content with the same character, automate video content creation for TikTok/Instagram, create character-based storytelling videos, or scale video production with consistent visual identity! Good to know The workflow maintains perfect character consistency across frames using reference images Uses multiple AI services: GPT-4o for prompt generation, Google Nano Banana Edit for image generation, and Veo 3.1 for video creation Features 100 unique locations (beaches, cities, cafes, rooftops, etc.) and 15 different poses KIE.AI pricing: Check current rates for Veo 3.1 and Nano Banana Edit models Processing time: ~5-10 minutes per complete video (depends on AI service queue) Output format: 9:16 aspect ratio videos optimized for TikTok/Instagram Automatically generates social media content (titles, descriptions, hashtags) using GPT-4o Includes AI disclosure labels for TikTok compliance How it works Location & Pose Selection: Randomly selects one location from 100 options and 3 unique poses from 15 options AI Story Creation: GPT-4o generates cinematic prompts for first frame, last frame, and video motion while maintaining character identity from reference images Start Frame Generation: Google Nano Banana Edit creates the first frame image with character in initial pose, location, and outfit End Frame Generation: Nano Banana Edit generates the final frame using start frame as reference, changing only pose/expression while maintaining consistency Video Generation: Veo 3.1 creates smooth cinematic video transition between frames with natural character movement Content Creation: GPT-4o generates engaging title, description, and hashtags for social media Auto-Publishing: Automatically posts to TikTok (with AI disclosure) and Instagram, plus sends previews via Telegram The workflow ensures the same character appears in both frames with identical facial features, hair, skin tone, and overall appearance, while only pose and expression change. The video features dynamic camera movements (arc shots, dolly pushes, crane rises, etc.) for cinematic quality. How to use Setup Credentials: Configure OpenAI API, KIE.AI API, Blotato API, and Telegram Bot credentials Add Reference Images: Update the 5 reference image URLs in the "Create Start Frame" node with your character images Configure Social Media: Set up Blotato accounts for TikTok and Instagram posting Set Telegram Chat ID: Replace YOUR_TELEGRAM_CHAT_ID with your Telegram chat ID for previews Deploy Workflow: Import the template and activate the workflow Trigger Generation: Use the schedule trigger (default: every 6 hours) or replace with manual/webhook trigger Receive Content: Get previews via Telegram and published posts on TikTok & Instagram Pro tip: The workflow uses 5 reference images to maintain character consistency. For best results, use clear, high-quality photos of your character from different angles. The workflow automatically handles character identity preservation across all generated content. Requirements OpenAI API** account for GPT-4o prompt generation and social media content creation KIE.AI API** account for Veo 3.1 video generation and Google Nano Banana Edit image generation Blotato API** account for TikTok and Instagram posting automation Telegram Bot** setup for preview delivery (optional but recommended) n8n** instance (cloud or self-hosted) Reference Images:** 5 high-quality images of your character (URLs or hosted images) Customizing this workflow Character Variations: Modify the reference images to create videos with different characters while maintaining the same workflow structure. Location Customization: Edit the location pool in the "Code in JavaScript" node to add or modify locations (currently 100 options). Pose Library: Expand or customize the pose library in the JavaScript code node (currently 15 poses with detailed guidance). Social Media Platforms: Add more platforms by duplicating the Blotato nodes and configuring additional accounts (YouTube, Facebook, etc.). Content Style: Adjust GPT-4o prompts in "Story Creator Agent" and "Title Description" nodes to change content tone, style, or language. Scheduling: Replace the schedule trigger with webhook, form, or manual trigger based on your needs. Video Settings: Modify Veo 3.1 parameters (aspect ratio, watermark, seeds) in the "Veo 3.1" node for different output formats. Batch Processing: Add loops to generate multiple videos with different location/pose combinations automatically.
by Omer Fayyaz
This workflow automatically captures, enriches, scores, and routes website leads in real-time, scheduling high-intent prospects for demos within minutes instead of hours—dramatically improving conversion rates by eliminating response delays. What Makes This Different: Real-Time Lead Processing** - Captures and processes leads instantly from website forms with zero delay Intelligent Fit Scoring** - Automatically scores leads 0-100 based on company size, seniority, and revenue Dual-Track Routing** - High-intent leads (60+) get fast-track treatment, others follow standard nurture Live Calendar Integration** - Shows actual available Calendly slots, not fake placeholders Automated Sales Alerts** - Posts rich lead details to Slack with booking links instantly Smart Follow-Up** - Sends fallback email if sales team doesn't respond within 10 minutes Complete CRM Automation** - Creates HubSpot contacts and deals automatically with enriched data Full Audit Trail** - Logs everything to Google Sheets for analytics and reporting Key Benefits of Instant Lead Response: Speed** - Minutes from form submission to scheduled demo, not hours or days Conversion** - Respond while leads are hot, dramatically improving booking rates Automation** - Zero manual work—enrichment, scoring, routing, and follow-up all automatic Intelligence** - Data-driven scoring ensures sales focuses on best-fit prospects Accountability** - Complete logging shows response times and follow-up actions Scalability** - Handles unlimited lead volume without adding sales admin work Who's it for This template is designed for B2B SaaS companies, sales teams, and revenue operations professionals who need to convert website leads faster. It's perfect for organizations that lose deals due to slow response times, want to prioritize high-intent prospects, need to automate CRM data entry, or want to ensure no hot lead falls through the cracks while sales is busy. How it works / What it does This workflow creates an end-to-end lead-to-meeting pipeline that automatically processes inbound leads and schedules high-intent prospects for demos. The system: Receives lead submissions via webhook from website forms or chat widgets Normalizes data from different form providers into a standard format Enriches contact information using Clearbit to get company size, revenue, job title, and industry Calculates fit score (0-100) based on company metrics: size (40 pts), seniority (30 pts), revenue (30 pts) Routes intelligently - High-intent leads (60+) → fast track | Standard leads → nurture channel Creates CRM records - Automatically creates/updates HubSpot contact and deal with enriched data Fetches real availability - Gets actual available Calendly demo slots via API (next 7 days) Alerts sales team - Posts formatted message to Slack with lead details and booking links Monitors response - Waits 10 minutes and checks if sales replied in Slack thread Sends fallback email - Automatically emails lead with self-service booking link if no response Logs everything - Records all data to Google Sheets for reporting and analytics Key Innovation: Smart Follow-Up Automation - Unlike basic lead capture workflows, this system ensures accountability by automatically following up with leads if the sales team is unavailable, preventing lost opportunities while maintaining a professional response time. How to set up 1. Configure API Credentials Add the following credentials in n8n: Clearbit (Lead Enrichment) Create account at clearbit.com Generate API key from Settings → API Add as "Clearbit API" credential in n8n HubSpot (CRM Integration) Create private app in HubSpot Settings → Integrations → Private Apps Grant scopes: crm.objects.contacts.write, crm.objects.deals.write Copy app token Add as "HubSpot App Token" credential in n8n Calendly (Calendar Availability) Create OAuth app at calendly.com/integrations/api_webhooks Configure OAuth2 credentials in n8n Set environment variable: CALENDLY_USER_URI with your user URI Get this from: https://api.calendly.com/users/me (returns your user URI) Slack (Team Notifications) Create Slack app at api.slack.com/apps Add Bot Token Scopes: channels:read, chat:write, channels:history Install app to workspace and copy Bot User OAuth Token Add as "Slack API" credential in n8n Update channel names in nodes: change "hot-leads" and "leads" to your actual channel names SendGrid (Email Fallback) Create account at sendgrid.com Generate API key from Settings → API Keys Verify sender email address Add as "SendGrid API" credential in n8n Update "from" email in "Send Fallback Email" node Google Sheets (Activity Logging) Create Google Cloud project and enable Sheets API Configure OAuth2 credentials in n8n Create a Google Sheet with columns matching the workflow Replace YOUR_GOOGLE_SHEET_ID in "Log to Google Sheets" node with your actual sheet ID 2. Customize Fit Scoring Logic Edit the "Calculate Fit Score" node to match your ideal customer profile: Default Scoring: Company size 50-5,000 employees = 40 points Executive/Director seniority = 30 points Annual revenue ≥ $1M = 30 points Total possible:* 100 points | *High-intent threshold:** 60+ points To Customize: Adjust company size ranges based on your target market Change seniority requirements (C-level, VP, Manager, etc.) Modify revenue thresholds Update the 60-point threshold for high-intent routing 3. Set Up Webhook Endpoint Get Webhook URL: Activate the workflow Copy webhook URL from "Lead Form Webhook" node URL format: https://your-n8n-instance.com/webhook/demo-request Configure Form Provider: Point your website form POST request to the webhook URL Send JSON body with fields: email, name, company, phone, utm_source, utm_campaign, page_url, message Or map your existing form fields to these names in "Normalize Lead Data" node Example Form Integration: // HTML Form fetch('https://your-n8n.com/webhook/demo-request', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ email: 'lead@company.com', name: 'John Doe', company: 'Acme Inc', phone: '+1234567890', utm_source: 'google', page_url: window.location.href }) }) 4. Test the Workflow Initial Test: Activate the workflow Submit test lead via webhook (use Postman or curl) Verify Clearbit enrichment returns data Check HubSpot for created contact and deal Confirm Slack notification appears in correct channel Verify Google Sheet receives log entry Response Test: Wait 10 minutes after Slack notification Check if "Check Slack Replies" detects no response Verify fallback email sends via SendGrid Confirm lead receives booking email with Calendly link Calendly Test: Verify "Get Calendly Event Types" finds your Demo event Check "Get Available Demo Slots" returns actual time slots Confirm booking URLs work and pre-fill time selection 5. Monitor and Optimize Key Metrics to Track: Time from form submission to Slack notification (target: <30 seconds) Sales response rate within 10 minutes Fallback email send rate (lower is better) High-intent lead conversion rate (booked → closed) Average fit score of closed deals Optimization Tips: Adjust fit score weights based on actual conversion data Tune the 60-point threshold for high-intent routing Customize Slack message format for your team's workflow Modify wait time (10 minutes) based on team availability Add custom fields to Google Sheet for additional tracking Requirements n8n Instance: n8n Cloud or self-hosted (v1.0+) Code node execution enabled Webhook functionality active External Services: Clearbit** - Enrichment API (paid service, free trial available) HubSpot** - CRM with API access (free tier available) Calendly** - Scheduling platform with API access (paid plans) Slack** - Workspace with bot integration capability SendGrid** - Email API (free tier: 100 emails/day) Google Sheets** - Google account with Sheets API enabled Technical Requirements: Public webhook endpoint (HTTPS) Environment variable support for sensitive data OAuth2 authentication capability Minimum 256MB RAM for code node execution Data Privacy: Ensure GDPR/CCPA compliance for lead data storage Review data retention policies for all connected services Configure appropriate data handling in Google Sheets Add privacy policy link to email templates Tips and best practices Fit Scoring: Start with default scoring, then optimize based on actual conversion data Review monthly: which scores convert best? Adjust weights accordingly Consider adding industry filters for vertical-specific targeting Test different thresholds (50, 60, 70) to find optimal balance Lead Response: Keep 10-minute wait time during business hours Consider longer wait for after-hours leads (use schedule trigger) Customize Slack urgency based on fit score (🔥 for 80+, ⚡ for 60-79) Add @mentions in Slack for specific team members based on lead attributes Calendar Management: Use dedicated "Demo" event type in Calendly for consistent detection Ensure event name includes "demo" (case-insensitive) for workflow to find it Set appropriate buffer times between meetings in Calendly settings Review availability regularly to maintain high slot count Error Handling: All critical nodes have onError: continueRegularOutput to prevent workflow stops Monitor execution logs daily for failed enrichments or CRM errors Set up n8n error workflow to alert on consistent failures Keep fallback booking URL updated in case Calendly API fails Performance: Webhook responds immediately (within 2 seconds) even while processing continues Clearbit enrichment can take 3-5 seconds—this is expected Consider batching Google Sheets updates if processing >100 leads/day Monitor n8n resource usage; Code nodes can be memory-intensive Privacy and Compliance: Add unsubscribe link to fallback emails Include data handling disclosure in form Set Google Sheet permissions appropriately (team only) Review Clearbit's data sources for compliance requirements Configure data retention in HubSpot to match your policy Customization Ideas: Add SMS notification for ultra-high fit scores (90+) Integrate with territory routing (route to specific sales rep by region) Add lead source scoring (paid > organic > referral) Create separate tracks for different product lines Build competitor mention detection in form messages Add qualification questions that influence fit score