by WeblineIndia
Weekly hiring‑manager snapshot from Breezy HR to email (pipeline, next‑week interviews, stuck) This workflow sends each hiring manager a single weekly email with an overview of their open roles: pipeline totals, a per‑position summary, interviews scheduled next week and stuck candidates (no movement ≥ 7 days). It queries Breezy HR using your API token, detects the HM via each position’s team (falling back to a simple map when unavailable), aggregates results and emails one digest per HM. The job runs Mondays at 07:30 Asia/Kolkata, includes a DRY_RUN preview and rate‑limits sends. Who’s it for Hiring managers who want a once‑a‑week snapshot instead of many separate updates. Talent/recruiting teams using Breezy HR who need pipeline hygiene and next‑week readiness at a glance. Ops partners who prefer a standardized email with HTML tables and a text fallback. How it works Cron (Mon 07:30 IST) triggers weekly. Breezy → Positions: Fetch open positions (configurable). Find HM: For each position, read the position team and look for a member with a “hiring manager” role; if none, use the fallback map. Candidates per position: Fetch candidates, compute stage counts and mark stuck where last activity ≥ STUCK_AFTER_DAYS. Events per position: Fetch events and keep those that look like interviews scheduled next calendar week. Aggregate per position → Group by hiring manager → Build one HTML digest per HM. DRY_RUN? If true, output a preview only; otherwise send emails with a small delay between each. How to set up Credentials in n8n HTTP Header Auth for Breezy HR: set Authorization: Bearer <YOUR_TOKEN> in a credential (don’t hardcode in the node). SMTP (Gmail) to send digests. Open “Set: Config” (single place to edit) BREEZY_API_BASE = https://api.breezy.hr/v3 COMPANY_ID = your Breezy company ID TIMEZONE = Asia/Kolkata INCLUDE_ONLY_OPEN = true (use STATE_FILTER = open) USE_BREEZY_HM_DETECTION = true HM_FALLBACK_MAP_JSON = e.g., { "Default": "hm@example.com", "Java TL": "javatl@company.com" } STUCK_AFTER_DAYS = 7 INTERVIEW_EVENT_KEYWORDS_CSV = interview SMTP_FROM = sender address SUBJECT_TEMPLATE = Weekly HM snapshot {{range}} — {{positions_count}} roles, {{candidates_count}} candidates INTRO_TEMPLATE / OUTRO_TEMPLATE DRY_RUN = false (set true to preview) RATE_LIMIT_EMAIL_SECONDS = 5 Activate the workflow. Requirements Breezy HR API token with access to positions, teams, candidates and events. SMTP (Gmail) account to send emails. n8n (cloud or self‑hosted) with HTTP Header Auth and SMTP credentials. How to customize Schedule:** Change Cron to your preferred day/time. Scope:** Set INCLUDE_ONLY_OPEN=false to include other position states. Interview detection:** Edit INTERVIEW_EVENT_KEYWORDS_CSV to match your account’s event labels. Stuck threshold:** Adjust STUCK_AFTER_DAYS (e.g., 10 or 14). Templates:** Update SUBJECT_TEMPLATE, INTRO_TEMPLATE, OUTRO_TEMPLATE. Fallback mapping:** Expand HM_FALLBACK_MAP_JSON for positions lacking team data. Add‑ons Slack delivery:** Post a weekly summary to a channel or DM the HM alongside the email. CSV attachments:** Attach per‑HM CSV of positions/candidates for offline work. Manager CC:** CC a recruiting lead or HRBP for visibility on key roles. Writeback:* Log weekly metrics to *Google Sheets** for dashboards. Custom windows:** Use a different future window (e.g., interviews in the next 2 weeks). Use Case Examples Busy HMs* who want one email showing *where to focus** for the coming week. Recruiting Ops* keeping tabs on *pipeline health** and stalled candidates. Leadership reviews** where weekly snapshots feed into Monday stand‑ups. Common troubleshooting | Issue | Possible Cause | Solution | |---|---|---| | No emails sent | DRY_RUN=true | Set DRY_RUN=false to send. | | Missing HM recipients | Team endpoint returned no “hiring manager” and fallback map not configured | Add position→email in HM_FALLBACK_MAP_JSON (or set a better default). | | Interviews list is empty | Different event label in your Breezy account | Add your labels to INTERVIEW_EVENT_KEYWORDS_CSV (comma‑separated). | | Stuck candidates not flagged | Threshold too high or activity timestamps missing | Lower STUCK_AFTER_DAYS or verify candidate activity data. | | API errors | Bad token or insufficient scopes | Recreate the Breezy credential with a valid Bearer token. | | Emails fail to send | SMTP auth/quota issues | Check SMTP credentials/from‑address permissions and provider limits. | Need Help? If you’d like help tuning the interview filters, changing the grouping logic, or adding Slack/CSV writebacks, feel free to reach out our n8n experts at WeblineIndia. We'll be happy to help you tailor this to your stack.
by David Olusola
💰 Auto-Send PDF Invoice When Stripe Payment is Received This workflow automatically generates a PDF invoice every time a successful payment is received in Stripe, then emails the invoice to the customer via Gmail. Perfect for freelancers, SaaS businesses, and service providers who want to automate billing without manual effort. ⚙️ How It Works Stripe Payment Webhook Listens for successful payment events (payment_intent.succeeded). Triggers the workflow whenever a new payment is made. Normalize Payment Data A Code node extracts and formats details like: Payment ID Amount & currency Customer name & email Payment date Description Generates a unique invoice number. Generate Invoice HTML A Code node builds a professional invoice template in HTML. Data is dynamically inserted (amount, customer info, invoice number). Output prepared for PDF generation. Send Invoice Email The Gmail node sends an email to the customer. Invoice is attached as a PDF file. Includes a confirmation message with payment details. 🛠️ Setup Steps 1. Stripe Webhook In your Stripe Dashboard: Navigate to Developers → Webhooks Add a new endpoint with your Webhook URL from the n8n Webhook node. Select event: payment_intent.succeeded 2. Gmail Setup In n8n, connect your Gmail OAuth2 credentials. Emails will be sent directly from your Gmail account. 3. Customize Invoice Open the Generate Invoice HTML node. Replace "Your Company Name" with your actual business name. Adjust invoice branding, colors, and layout as needed. 📧 Example Email Sent Subject: Invoice INV-123456789 - Payment Confirmation Body: Dear John Doe, Thank you for your payment! Please find your invoice attached. Payment Details: Amount: USD 99.00 Payment ID: pi_3JXXXXXXXX Date: 2025-08-29 Best regards, Your Company Name (Attached: invoice_INV-123456789.pdf) ⚡ With this workflow, every Stripe payment automatically creates and delivers a polished PDF invoice — no manual work required.
by vinci-king-01
How it works This workflow automatically monitors government regulatory changes and provides comprehensive compliance tracking and executive alerts. Key Steps Scheduled Monitoring - Runs daily at 9 AM to check for new regulatory changes from government sources. AI-Powered Scraping - Uses ScrapeGraphAI to extract regulatory information from Federal Register and government websites. Impact Assessment - Analyzes each regulation for business impact, risk factors, and compliance requirements. Compliance Tracking - Creates detailed tracking records with assigned teams, deadlines, and action items. Executive Alerts - Sends prioritized alerts to relevant teams based on impact level and urgency. Set up steps Setup time: 10-15 minutes Configure ScrapeGraphAI credentials - Add your ScrapeGraphAI API key for web scraping capabilities. Set up email connections - Configure email service to send executive alerts to compliance and legal teams. Customize monitoring targets - Update the government website URLs to monitor specific agencies or regulatory bodies. Adjust alert recipients - Configure email distribution lists for different impact levels (Critical, High, Medium, Low). Set up compliance tracking - Integrate with your project management system for task assignment and progress tracking. Key Features Automated Impact Assessment** - Uses AI to evaluate regulatory impact on your business sectors Priority-Based Alerts** - Sends urgent notifications for critical regulations requiring immediate attention Compliance Task Generation** - Automatically creates compliance checklists and action items Team Assignment** - Routes regulations to appropriate teams based on impact level Deadline Tracking** - Monitors comment deadlines, effective dates, and review timelines
by Easy8.ai
Use this workflow to enrich lead records from Easy Redmine with Lusha data and sync updated fields back to the CRM. About Workflow This workflow connects Easy Redmine CRM with Lusha via API to enrich lead records. It fetches lead data from Easy Redmine, queries Lusha for matching contact information, transforms the results (e.g., phone, employee count, LinkedIn), and updates the original records in Easy Redmine CRM automatically. Use Case Built for CRM and sales teams using Easy Redmine, this automation replaces manual Lusha lookups and lead updates. It ensures that enriched data is consistently added to your CRM—boosting lead quality and reducing data maintenance time. How it works Schedule Trigger** => Runs daily at a set hour (e.g., 10:00) Get Leads from Easy Redmine** => Pulls leads via saved query (e.g., today's leads) using the easy_leads resource Split Out** => Breaks down the batch of leads into single records for enrichment Get Data from Lusha** => Sends HTTP requests to Lusha’s API using lead fields (email, name, company) Filter Leads Found in Lusha** => Skips leads with missing or failed Lusha enrichment Contact Data Transformation for CRM** => Maps and transforms contact data: Extracts phones, email, LinkedIn, job info Converts employee ranges like [1000, 5000] into 5000 Flattens nested Lusha response into CRM-friendly format Update Leads in Easy Redmine CRM** => Sends a PUT request to update each lead How to use Import the workflow into your n8n instance Set credentials for: Easy Redmine API Lusha API (HTTP Header Auth) Update the Get Leads from Easy Redmine node with your query ID Ensure Lusha API fields (email, name, company) match available lead fields Adjust the transformation logic in the Code node if needed Update the custom field ID in the final PUT request if your CRM uses different IDs Test with sample data before activating the automation Example Use Cases Sales Intelligence**: Enrich new leads with verified phone and social info CRM Hygiene**: Keep records consistent and complete without manual edits Lead Scoring**: Add employee count and LinkedIn for better segmentation Requirements Easy Redmine API access Lusha API access API credentials for both platforms Customization Options Add more fields from Lusha (job title, company website, etc.) Include error notifications if updates fail Add filters to target only leads missing phone or LinkedIn info Use Merge node if fetching multiple lead segments Workflow Improvement Suggestions Rename technical node labels for better readability Secure credentials via environment variables or vault Handle rate limits or retries if using large lead batches This workflow automates lead enrichment, ensuring CRM records are updated with accurate, verified data—without the manual copy-paste.
by Paolo Ronco
Automated Certificate Creation & Verification (PDF Template-based) 🔍 Overview This n8n workflow provides a complete end-to-end system for creating, distributing, and verifying digital certificates, using PDF Generator API templates instead of raw HTML. It is designed as a production-ready MVP, fully functional and tested, that can be imported and adapted with minimal configuration. The workflow exposes public endpoints to: generate personalized certificates as PDFs assign unique Certification IDs email certificates automatically verify certificate authenticity via API 🎯 Typical use cases This workflow is ideal for: training providers and academies online courses and bootcamps internal company certifications workshops and events proof-of-completion documents Any scenario where certificates must be generated automatically and verified reliably. ⚙️ What this workflow does 1️⃣ Certificate creation (Webhook) Endpoint POST /certifications2 When triggered, the workflow: Receives candidate data (name, surname, course, email) Generates a unique Certification ID Ensures the ID does not already exist Stores certificate data in an n8n Data Table Generates a PDF using a PDF Generator API template Sends the certificate via email as a PDF attachment 2️⃣ PDF generation (Template-based) Instead of HTML, the workflow sends a JSON payload to a predefined PDF template. Example payload: { "Candidate": "John Doe", "CourseName": "Advanced n8n Automation", "DueDate": "2025-01-10", "ID": "LQ4Z5H8R2A1F" } The PDF layout (fonts, colors, logos, formatting) is fully managed via the PDF Generator API Template UI, keeping the workflow clean and maintainable. 3️⃣ Email delivery Uses Gmail OAuth2 Sends a customizable email Attaches the generated certificate PDF automatically 4️⃣ Certificate verification Endpoint GET /certificationscheck?id=CERTIFICATION-ID This endpoint: checks if the Certification ID exists returns validation status and candidate info Example response (valid): { "ok": true, "name": "John", "surname": "Doe" } This enables public, API-based certificate verification. 🛠 Requirements Before importing the workflow, you need: n8n instance (cloud or self-hosted) n8n Data Table with the following fields: Name (string) Surname (string) CertificationID (string) PDF Generator API account Gmail OAuth2 credentials Ability to expose webhook endpoints publicly 🚀 Setup guide Step 1 – Import the workflow Open n8n Go to Workflows → Import Paste the provided workflow JSON Step 2 – Configure the Data Table Create (or reuse) an n8n Data Table with these fields: | Field | Type | | --------------- | ------ | | Name | string | | Surname | string | | CertificationID | string | Update the following nodes to reference your Data Table: Insert_Certification Find_Certification_By_ID Find_Certification_By_ID1 Step 3 – Configure PDF Generator API Create a PDF template in PDF Generator API Add placeholders such as: {Candidate} {CourseName} {DueDate} {ID} In n8n, set credentials on the Generate a PDF document node ⚠️ Placeholder names must exactly match the JSON keys used in the workflow. Step 4 – Configure email credentials Open the Email Certificate node Set Gmail OAuth2 credentials Customize subject and message body if needed Step 5 – Activate the workflow Click Activate Your endpoints are now live: /certifications2 /certificationscheck 🧪 Status & notes This workflow is an MVP, but already production-ready Designed to be: modular reusable easy to extend Recommended version for new implementations HTML-based version is kept only for reference/backward compatibility 💡 Customization ideas You can easily extend this workflow by: adding QR codes to certificates storing additional metadata integrating with LMS platforms adding a public verification webpage switching email provider
by Automate With Marc
Automate Video Generation with Sora 2 & Veo 3.1 - For Beginners Kick-start AI video generation in n8n with two popular paths: OpenAI Sora 2 and Google Veo 3.1 (via Wavespeed). This beginner-friendly template lets you type a prompt in Chat Trigger, then automatically: Call Sora 2 to generate a short 720p clip and email the MP4. Call Veo 3.1 through Wavespeed, poll until ready, and email the result link. 🎥 Watch the full step-by-step build: https://www.youtube.com/watch?v=qjFWfYvHxlY What this template does Chat input → Two video routes run in parallel: Sora 2 route: HTTP Request (POST /v1/videos) → HTTP Request (GET /videos/{id}/content) → Gmail (attach MP4). Veo 3.1 route (Wavespeed): HTTP Request (POST /google/veo3.1/text-to-video) → poll result with HTTP Request (GET /predictions/{id}/result) inside a Wait + IF loop → Gmail (send result URL). Includes pinned sample prompt for a marketing use case. Uses Sticky Notes to explain each lane and link to the tutorial. Why it’s useful (for beginners) No code required: fill credentials, paste your prompt, run. Side-by-side comparison: learn how Sora 2 vs Veo 3.1 flows differ (direct file vs polled URL). Email delivery built-in: get outputs in your inbox for quick review. Requirements OpenAI API key with access to Sora 2 video endpoint. Wavespeed API key (for Veo 3.1). Google Gmail OAuth2 (to send yourself the results). n8n (self-hosted or Cloud), with internet access. Note: Replace any placeholder or demo credentials after import. Never commit real keys to public templates. Credentials to set in n8n HTTP Header Auth – OpenAI Sora 2 Header Name: Authorization Value: Bearer YOUR_OPENAI_API_KEY HTTP Header Auth – Wavespeed Header Name: Authorization Value: Bearer YOUR_WAVESPEED_API_KEY Gmail OAuth2 Connect your Google account. In the two Gmail nodes, change “sendTo” to your email. How it works (nodes overview) When chat message received (Chat Trigger) Receives your chatInput prompt. Veo 3.1 lane (top) HTTP Request — Post to Wavespeed POST https://api.wavespeed.ai/api/v3/google/veo3.1/text-to-video Body params (editable): aspect_ratio, duration, generate_audio, prompt, resolution. Wait 1 Minute → HTTP Request — Get result Polls GET /api/v3/predictions/{id}/result. IF (status === "completed") True → Gmail — Send Video Result to Email (sends the output URL). False → Wait another 60 secs → back to Wait 1 Minute (poll again). Sora 2 lane (bottom) HTTP Request — POST /v1/videos (OpenAI) Multipart form: prompt={{$json.chatInput}}, model="sora-2-pro", size="1280x720", seconds="8". HTTP Request — GET /v1/videos/{id}/content Downloads the MP4 as binary (video.mp4). Gmail — Send Video to Email Attaches video.mp4 and emails it to you. Setup (step-by-step) Import the template into n8n. Open each HTTP Request node and select the correct HTTP Header Auth credentials. Open both Gmail nodes and: Select your Gmail OAuth2 credential. Change “sendTo” to your email. (Optional) Tweak defaults: Sora 2: size (e.g., 1920x1080), seconds (e.g., 5–10). Veo 3.1 via Wavespeed: aspect_ratio (9:16, 16:9, 1:1), duration, resolution. Wait timing and max polling passes (add an extra IF to stop after N attempts). Execute Workflow and enter your prompt in the Chat window. Customization tips Different delivery: swap Gmail for Google Drive, Slack, or Telegram nodes. Approval loop: after email, branch to a Slack approval step before archiving the file. Brand presets: store common prompt fragments (tone, overlays, logo instructions) in an Item Lists/Set node and merge into the main prompt. Content length: Sora and Veo costs/latency grow with duration—start short (5–8s), then iterate. Troubleshooting 403/401 errors: re-check API keys and header names (Authorization: Bearer …). Empty Veo output: confirm polling loop runs until status = completed; inspect the GET result JSON path used in email (data.outputs[0]). Sora content fetch fails: ensure the second GET uses the returned id path and outputs binary video.mp4. Email not received: verify Gmail OAuth2 scope and recipient; check n8n executions for errors. NSFW/safety blocks: refine the prompt to avoid restricted content.
by Maksudur Rahman
How it works Trigger: When a new meeting is booked in Cal.com. Date Check: The workflow calculates how many days remain before the meeting date. Email Scheduling: Depending on the time left, it sends a series of pre-written “warm-up” emails using Gmail, designed to set expectations and build interest in your offering. Timing Control: Emails are automatically spaced out to ensure natural engagement before the meeting. How to set up Connect your Cal.com API key to authenticate and trigger on new bookings. Connect your Google account to enable Gmail email sending. Customize the email messages in the Set or Send Email nodes to match your brand voice and tone. Test with internal bookings to ensure correct timing and delivery before activating for clients. Requirements Cal.com account with API access. Google account connected to Gmail node. Active n8n instance (self-hosted or cloud). How to customize Adjust email spacing or timing by modifying the Wait nodes. Edit the email copy for different purposes (e.g., sales, onboarding, consultation). Add conditional logic to send different warm-up sequences for specific meeting types or durations.
by Atta
Stop manually searching Google for sales leads. Start listening to the internet. This advanced workflow automatically identifies, qualifies, and enriches high-value leads by searching for their digital footprints (i.e., specific technology use or public directories). It uses a robust Find/Create/Conditional Update database pattern to prevent duplicates and ensure you only spend credits on enriching incomplete records. The workflow provides a fully persistent lead record, updating the same Airtable row as new data is found across multiple search steps. ✨ Key Features Persistent Data Integrity: Uses a dedicated Loop Over Items structure to run the Find/Create/Update logic sequentially for every lead, guaranteeing no data is lost or duplicated. Conditional Enrichment: A smart gate checks the Airtable record: if the high-value email field is empty, the workflow proceeds to the expensive scraping steps. If it is already complete, it skips the scrape. Targeted Scraping: Executes precise Google Dorks (via Decodo) to find initial leads and then targets the specific Contact Us page for deep email extraction. Database-as-a-State-Machine: Airtable acts as the single source of truth, logging the initial lead status and updating the same row across several enrichment phases. Final Output: Delivers the fully enriched lead data (Domain, Primary Email, Contact Page URL) to a final notification channel. ⚙️ How it Works (The Find/Create/Update Loop) Search & Filter: The workflow is manually triggered and uses the Config variables to execute a wide-scope Google Search via Decodo. The results are filtered into a clean array of unique domains. Loop & Check: The Loop Over Items node starts. Inside, the Airtable Read node checks the database for the current lead's domain. Create/Update: If the lead is NEW, the workflow creates a record (Airtable: Create Lead). If the lead EXISTS, the record is updated (Airtable: Update Lead). Data Merger: The Data Merger: ID Finalizer node consolidates the workflow, ensuring the unique Airtable Record ID is passed to the next step, regardless of whether the lead was created or updated. Conditional Enrichment: The If: Enrichment Needed? node checks the existing Primary Email status. If it's empty, the item proceeds to the deep scraping pipeline (Decodo: Email Search → Decodo: Scrape Contact Page). Final Update: The final node updates the Airtable record with the high-quality email address found from the deep scrape. 📥 Decodo Node Installation The Decodo node is used three times in this workflow for precision scraping and searching. Find the Node: Click the + button in your n8n canvas. Search: Search for the Decodo node and select it. Credentials: When configuring the first Decodo node, use your API key (obtained with the 80% discount coupon). 🎁 Exclusive Deal for n8n Users To run this workflow, you require a robust scraping provider. We have secured a massive discount for Decodo users: Get 80% OFF the 23k Advanced Scraping API plan. Coupon Code: ATTAN8N Sign Up Here: Claim 80% Discount on Decodo 🛠️ Setup Instructions This template requires specific node configuration and Airtable fields. Credentials: Obtain API keys for Decodo (using the coupon above) and Airtable. Airtable Setup (Schema): Create an Airtable base with a 'Leads' table. It must include these fields for mapping: Domain (Single Line Text - Primary Field) Primary Email (Email) Contact Page URL (URL) Source URL (URL) Lead Type (Single Select: Paid Ad Lead, Organic Lead) Status (Single Select: New Lead, Updated, Enrichment Complete) Global Configuration: Open the Config: Set Search Params node. Customize the following fields: tech_footprint: e.g., "We use Klaviyo" target_industry: e.g., site:promarketer.ca ➕ How to Adapt the Template Change Database:* Replace the *Airtable* nodes with *Postgres, **Notion, or Google Sheets for logging, adapting the field mappings. Final Notification:* Add a *Slack* or *Gmail** node to alert the sales team immediately upon successful enrichment. Multi-Step Enrichment:** Integrate a service like Hunter.io or Clearbit to find key employee names and titles before the final database update. Adjust Scoring:* Add an *If Node* after the deep scrape to set a *Lead Score based on whether a direct email (sales@) was found versus a general contact page link. Add AI Lead Scoring:* Integrate a *Gemini* or *OpenAI** node after the deep scraping step to assign an "AI Score" (1-100) based on lead quality (e.g., domain authority, quality of the extracted email), before the final update.
by Sènato Julien KOUKPONOU
Who’s it for This workflow is ideal for community managers, event organizers, and businesses that regularly manage multiple WhatsApp groups. If you have a growing list of invitation codes stored in Google Sheets, this automation helps you automatically join groups, update statuses, and track results without manual work. How it works / What it does The workflow connects Google Sheets with WhatsApp through an automation sequence: Reads the list of invitation codes from a Google Sheet. Processes the first 50 unused codes per run. Validates group links via a Fetch groups node. Attempts to join each group using the Join group node. Updates the sheet with the join status (success or failure). Logs successful joins in a tracking list for easy follow-up. This ensures a fully automated way to manage WhatsApp group invitations while keeping your data organized in Google Sheets. How to set up Prepare a Google Sheet with invitation codes and a status column. Configure the Google Sheets node with read and write access. Set up your fetch-groups and join-group credentials. Adjust the Schedule Trigger to define how often the workflow should run. Test with a few sample codes before scaling. Requirements n8n (self-hosted or cloud). Google Sheets API credentials. WhatsApp integration (via \[Evolution API] or another community node — self-hosted only). How to customize the workflow Change the batch size (default: 50 codes per run). Add error handling or retry logic for invalid links. Send real-time notifications (Slack, email, or Telegram) after each join. Extend your Google Sheet schema with extra details (e.g., group category, campaign, date joined).
by Paul Abraham
This n8n template demonstrates how to automatically generate accurate subtitles from any video and optionally translate them into other languages. By combining FFmpeg, OpenAI Whisper, and LibreTranslate, this workflow turns video audio into ready-to-use .srt subtitle files that can be delivered via email. Use cases Auto-generate subtitles for training or educational videos Translate videos into multiple languages for global reach Create accessibility-friendly content with minimal effort Build a backend for media platforms to process subtitles automatically Good to know This workflow requires a self-hosted n8n instance since it uses the Execute Command node. FFmpeg is used for audio extraction and must be installed on the host machine. OpenAI Whisper (Local) is used for transcription, providing highly accurate speech-to-text results. LibreTranslate is used for translating subtitles into other languages. How it works Webhook Trigger – Starts when a video URL is received. Download Video – Fetches the video file from the provided link. Extract Audio (FFmpeg) – Separates audio from the video file. Run Whisper (Local) – Transcribes the extracted audio into text subtitles. Read SRT File – Loads the generated .srt subtitle file. Merge Paths – Combines both original and translated subtitle flows. Translate Subtitles (LibreTranslate) – Translates the .srt file into the target language. Write Translated SRT – Creates a translated .srt file for delivery. Send a Message (Gmail) – Sends the final subtitle file (original or translated) via email. How to use Clone this workflow into your self-hosted n8n instance. Ensure FFmpeg and Whisper are installed and available via your server’s shell path. Add your LibreTranslate service credentials for translation. Configure Gmail (or another email service) to send subtitle files. Trigger the workflow by sending a video URL to the webhook, and receive subtitle files in your inbox. Requirements Self-hosted n8n instance FFmpeg installed and available on the server OpenAI Whisper (Local) installed and callable via command line LibreTranslate service with API credentials Gmail (or any email integration) for delivery Customising this workflow Replace Gmail with Slack, Telegram, or Drive uploads for flexible delivery. Switch LibreTranslate with DeepL or Google Translate for higher-quality translations. Add post-processing steps such as formatting .srt files or embedding subtitles back into the video. Use the workflow as a foundation for building a multi-language subtitle automation pipeline.
by Easy8.ai
Sync New Calendly Bookings to Esko CRM with Comment, Sales Activity, and Outlook Email Intro/Overview This automation workflow automatically syncs newly scheduled Calendly meetings into Easy Redmine CRM. When a meeting is booked via Calendly, it finds the associated lead in Easy Redmine CRM using the invitee’s email address and logs both a comment and a sales activity in the lead’s record. In addition, the workflow sends an email in Microsoft Outlook, ensuring the account manager can check and knows about the meeting. Ideal for sales teams and customer success managers, this workflow ensures your CRM and calendar stay updated with every new meeting—no manual entry required. How it works Calendly Trigger Watches for invitee.created events (newly booked meetings) Authenticates with Calendly via OAuth2 Get ID from email Sends a GET request to Easy Redmine CRM to search for a lead using the invitee’s email Extracts the lead ID, required for further CRM actions Add Comment Posts a comment to the lead’s record in Easy Redmine CRM The comment includes: Invitee’s full name Scheduled date/time of the meeting Meeting description Sales Activity POST Creates a new sales activity in Easy Redmine CRM under the same lead Includes structured details: Invitee’s name Meeting date and time Description of the meeting Send an email Sends a notification email in Microsoft Outlook Maps the name, start time, and description using dynamic values from the Calendly booking Ensures the account manager is informed about the scheduled meeting How to Use Import the workflow Copy or download the JSON of this workflow In your n8n editor, click Import Workflow and paste/upload the JSON Set up credentials Calendly API: Use OAuth2 credentials Ensure proper scopes for reading event data Follow n8n’s setup guide: https://docs.n8n.io/integrations/builtin/credentials/calendly/ Easy Redmine CRM: Add credentials using an API token or OAuth2, depending on your CRM setup Microsoft Outlook: Set up OAuth2 credentials and connect your Outlook email Assign and configure nodes Calendly Trigger: Confirm it’s set to listen for invitee.created Get ID from email: Update the GET request URL to match your Easy Redmine CRM lead search endpoint Ensure it uses the invitee’s email from the trigger Add Comment & Sales Activity POST: Use your Easy Redmine CRM’s correct endpoints Map dynamic fields like lead ID, name, meeting time, and description Send email notification: Set up your preferred Outlook email Map meeting details into email body (e.g. name, time, description) Timezone and formatting If needed, use a Code node to convert the meeting time if your CRM or Outlook expects a specific format or timezone Test the workflow Schedule a test meeting via Calendly using an email tied to an existing CRM lead Check Easy Redmine CRM to confirm: A comment was added A sales activity was created under the correct lead Check Outlook to confirm: An email notification was received Example Use Cases Sales Enablement Log every discovery or demo call automatically, helping reps track all activity in one place Block time in calendars without double-booking risk Customer Success Keep onboarding and check-in meetings logged, improving visibility across the team Ensure calendar events are created for every scheduled session Lead Qualification Identify engaged leads based on bookings and trigger follow-up sequences Requirements Calendly account with API access Easy Redmine CRM user with API access Microsoft Outlook account with email access Customization (Optional) Add Filters Use IF or Switch nodes to handle only specific event types (e.g., demo calls vs intro calls) Extend Comments Include additional data from Calendly like meeting location or answers to custom questions
by Lucas Peyrin
How it works This workflow is your automated sales assistant, designed to intelligently qualify incoming leads and route them to the most appropriate follow-up channel. It uses the powerful BANT (Budget, Authority, Need, Timing) framework, powered by Google Gemini AI, to score leads as 'hot', 'mid', or 'cold', ensuring your sales team focuses on the most promising opportunities. Here's a step-by-step breakdown: Lead Capture: A public Form Trigger collects essential lead information, including their name, email, what they want to build, their budget, desired start time, and job role. These questions are specifically designed to gather BANT data. AI Lead Scoring: The collected data is sent to Google Gemini. A detailed prompt instructs the AI to act as a Lead Scoring Expert, evaluating each BANT component individually and then assigning an overall 'hot', 'mid', or 'cold' score based on predefined criteria. Intelligent Routing: A Switch node acts as the central router. Based on the AI's 'hot', 'mid', or 'cold' score, the workflow directs the lead down one of three distinct follow-up paths. Hot Leads (Calendar Booking): For highly qualified 'hot' leads, the workflow immediately redirects them to your calendar booking link, making it easy for them to schedule a direct conversation. Mid Leads (WhatsApp Engagement): For 'mid' priority leads, Google Gemini generates a personalized, pre-filled WhatsApp message summarizing their inquiry. The lead is then redirected to a WhatsApp chat with your sales team, allowing for quick, informal engagement. Cold Leads (Nurturing Email): For 'cold' leads who might be in an early research phase, Google Gemini crafts a helpful, non-salesy follow-up email. This email provides valuable resources (like templates or community links) and is sent via Gmail, keeping them engaged without pressure. Set up steps Setup time: ~10-15 minutes This workflow requires connecting your Google AI and Gmail accounts, and customizing several nodes to fit your sales process. Get Your Google AI API Key: Visit Google AI Studio at aistudio.google.com/app/apikey. Click "Create API key in new project" and copy the key. In the workflow, select the Score Lead node. Click the Credential dropdown and select + Create New Credential. Paste your key into the API Key field and Save. Repeat this for the Write Placeholder WA Message and Write Follow up Email nodes, selecting the credential you just created. Connect Your Gmail Account: Select the Send Follow up Email with Gmail node. Click the Credential dropdown and select + Create New Credential to connect your Google account. Follow the prompts to grant n8n access. Customize Lead Scoring Criteria: Go to the Score Lead node. In the Text parameter, carefully review and adapt the BANT Criteria Mapping and Scoring Logic to align with your specific sales process and ideal customer profile. This is crucial for accurate lead qualification. Configure Follow-up Channels: Hot Leads: Select the Calendar Booking Link node. Update the redirectUrl parameter with your personal or team's calendar booking link (e.g., Calendly, Chili Piper). Mid Leads: Select the Phone Number node. Set the whatsapp_phone value to your company's WhatsApp phone number (e.g., +15551234567). You can also customize the pre-filled WhatsApp message by adjusting the prompt in the Write Placeholder WA Message node. Cold Leads: Select the Redirect to Website node. Update the redirectUrl parameter to your company's main website or a relevant resource page (e.g., a free templates page, a blog post). You can also customize the email content and resources shared by adjusting the prompt in the Write Follow up Email node. Activate and Test: Activate the workflow using the toggle at the top right. Go to the Lead Contact Form node and click the "Open Form URL" button. Submit several test applications with different answers (e.g., one "hot" lead, one "mid", one "cold") to ensure the AI scores them correctly and they are routed to the appropriate follow-up action. Start qualifying and engaging your leads more effectively!