by Giannis Kotsakiachidis
π¦ GoCardless β Maybe Finance β Automatic Multi-Bank Sync & Weekly Overview πΈ Whoβs it for π€ Freelancers, founders, households, and side-hustlers who work with several bank accounts but want one, always-up-to-date budget inside Maybe Financeβno more CSV exports or copy-paste. How it works / What it does βοΈ Schedule Trigger (cron) fires every Monday π (switch to Manual Trigger while testing) Get access token β fresh 24 h GoCardless token π Fetch transactions for each account: Revolut Pro Revolut Personal ABN AMRO (add extra HTTP Request nodes for any other GoCardless-supported banks) Extract booked β keep only settled items ποΈ Set transactions β¦ β map every record to Maybe Financeβs schema π Merge all arrays into one payload π Create transactions to Maybe β POSTs each item via API π Resend Email β sends you a βWeekly transactions overviewβ π§ All done in a single run β your Maybe dashboard is refreshed and you get an inbox alert. How to set up π οΈ Import the template into n8n (cloud or self-hosted). Create credentials GoCardless secret_id & secret_key Maybe Finance API key (Optional) Resend API key for email notifications One-time GoCardless config (run the blocks on the left): /token/new/ β obtain token /institutions β find institution IDs /agreements/enduser/ β create agreements /requisitions/ β get the consent URL & finish bank login /requisitions/{id} β copy the GoCardless account_ids Create the same accounts in Maybe Finance and run the HTTP GET request in the purple frame and copy their account_ids. Open each Set transactions β¦ node and paste the correct Maybe account_id. Adjust the Schedule Trigger (e.g. daily, monthly). Save & activate π Requirements π n8n 1.33 + GoCardless app (secret ID & key, live or sandbox) Maybe Finance account & API key (Optional) Resend account for email How to customize β¨ Include pending transactions**: change the Item Lists filter. Add more banks**: duplicate the βGet β¦ transactionsβ β βExtract bookedβ β βSet transactionsβ path and plug its output into the Merge node. Different interval**: edit the cron rule in Schedule Trigger. Disable emails**: just remove or deactivate the Resend node. Send alerts to Slack / Teams**: branch after the Merge node and add a chat node. Happy budgeting! π°
by Candice Capelle
Who is this template for? This template is for everyone who has to take notes during a call: Talent Acquisition Managers / Talent Acquisition Specialists / Recruiters HR professionals Sales teams, customer success teams Product teams / User Experience Designers / anyone conducting user research interviews Use case This workflow allows specific events created on Google Calendar (or any other meeting scheduling tool like Calendly) to trigger the duplication and renaming of a specific template document. Example: For each new screening call that is scheduled in your calendar, you want to create a draft of your screening interview template for the role, titled "{Name of the candidate} | {Date of the interview}", and located in your Google Drive in a specific folder This workflow could then be extended to copy the link to the file on a Notion database that is shared with the team (check "To go further" section). This workflow ensures that if you're jumping from calls to calls, you're already set up to take notes, and every document is tidied up and sorted in a structured way! How it works The workflow starts when a new event is created in Google Calendar The Filter node then selects a specific type of events, depending on a chosen pattern (title includes a specific term, organizer is X, attendees include Y, etc.) The workflow then searches for a specific folder in your Google Drive, where the file you want to duplicate is located The workflow then searches for the specific file you want to duplicate The last step allows to duplicate and rename the file with variables from your Google Calendar event Set up Set up credentials for Google Calendar, Google Drive, and Google File. You'll need a Google Workspace account. Set up the Filter node with the pattern you want to look for to retreive specific events in your calendar Set up the Google Drive you want to search in Set up the Google File you want to duplicate Set up variable at the last step to rename your duplicated file however you want it, or add a description To go further Here's a few idea to enhance this workflow depending on your specific needs: Instead of a filter, separate your flow depending on your use case (ex: you have want to fetch different templates depending on the type of call it'll be). Switch Google Calendar for another trigger (Calendly, Hubspot..) 10 minutes before the event, send the duplicate Google File to the meeting organizer through Slack The day after the event, if the event hasn't been cancelled, add the link to the Google File to your ATS, Hubspot, etc.
by algopi.io
Who is this template for? This workflow template is designed for Marketing and pre-Sales to get prospects from a form like Tally, decline data in the famous opensource CRM (SuiteCRM), synchronize contact in Brevo with linking the id from CRM, and then notify in NextCloud. Bonus : validate email with ++CaptainVerify++ and notify in NextCloud depending on response How it works For each submission in the form, a webhook is triggered. A check of the email is done with CaptainVerify. Depending on the response, and if it is ok, then a Lead is created in SuiteCRM. Else, a message in your selected discussion is sent. As the lead has been created, we can create a contact in Brevo (for future campain), ank link this contact with the lead_id from the CRM in a dedicated field. Finaly, a message in your selected discussion in NextCloud informs you about the lead. Set up instructions Complete the Set up credentials step when you first open the workflow. You'll need a CaptainVerify account (Api Key), a dedicated SuiteCRM user with Oauth, a Brevo account (Api Key) and a Nextcloud account. Set up the Webhook in the form's tool of your choice (why not Tally ?). Set each node with the explanations in sticky Notes. Enjoy ! Template was created in n8n v1.44.1
by Prompt and Paste
Transform your lead generation process with this powerful n8n workflow that automatically captures form submissions from Google Forms and creates organized lead cards in Trello. π― Who Is This For? This workflow is perfect for: Sales teams who need to quickly organize and track incoming leads. Marketing professionals running lead generation campaigns Small business owners wanting to streamline their customer acquisition process Consultants and service providers collecting client information through forms Anyone who wants to eliminate manual data entry between forms and project management tools π οΈ Tools Involved & Prerequisites Required Tools: n8n Google Forms - for lead capture forms Trello - for lead management and organization Prerequisites: Active Google account with Forms access Trello account with board creation permissions βοΈ How It Works This workflow automatically transforms Google Form submissions into organized Trello cards for lead management: Form Trigger: When someone submits your Google Form, the workflow instantly captures all their information Data Mapping: The system takes the form responses and maps them to the appropriate Trello card fields Trello Card Creation: Each lead becomes a structured Trello card with the person's name and company as the title, plus all form data organized in custom fields π Setup Instructions Import the workflow template into your n8n instance Access the set up instructions here: https://www.notion.so/Google-Forms-to-Trello-Automation-Setup-Instructions-213718e8c6ba807f9972ff2f81f1057a?source=copy_link
by Javier Hita
Who is this for? This workflow is perfect for sales teams, business development professionals, recruitment agencies, and fractional CFO service providers who need to identify and qualify companies actively hiring. Whether you're prospecting for new clients, building a database of potential customers, or researching market opportunities, this automated solution saves hours of manual research while delivering high-quality, AI-analyzed leads. What problem is this workflow solving? Finding qualified prospects in the finance sector is time-consuming and often inefficient. Traditional methods involve: Manually browsing LinkedIn job postings for hours Difficulty distinguishing between genuine opportunities and recruitment spam Inconsistent lead categorization and qualification Risk of contacting the same companies multiple times Lack of structured data for sales team follow-up This workflow automates the entire lead generation process, from data collection to AI-powered qualification, ensuring you focus only on the most promising opportunities. What this workflow does This comprehensive lead generation system performs six key functions: Automated LinkedIn Job Scraping: Uses Apify's reliable LinkedIn Jobs Scraper to extract detailed job postings for finance positions, including company information, job descriptions, and contact details. Smart Data Processing: Removes duplicates, filters companies by size, and structures data for consistent analysis across all leads. Intelligent Lead Categorization: Compares new leads against your existing database to optimize processing and avoid duplicate work. AI-Powered Qualification: Leverages OpenAI's GPT-4 Mini to analyze each lead and determine: Company Category: Consumer companies, Fractional CFO services, Recruiting agencies, or Other Finance Role Validation: Confirms the position is genuinely finance-related Seniority Level: Entry, Mid, Senior, Director, or C-Level classification Job Summary: Concise description for quick sales team review Automated Database Management: Stores qualified leads in Airtable with comprehensive profiles, preventing duplicates while maintaining data integrity. Lead Scoring & Routing: Prioritizes leads based on processing status and qualification results for efficient sales team follow-up. Setup Prerequisites You'll need accounts for three services: Airtable** (Free tier supported) - For lead storage and management Apify** (14-day free trial available) - For LinkedIn job scraping OpenAI** (Pay-per-use) - For AI-powered lead analysis Step 1: Create Required Credentials Apify API Credential Sign up for an Apify account at apify.com Navigate to Settings β Integrations β API tokens Create a new API token In n8n, create a new Apify API credential with your token OpenAI API Credential Create an account at platform.openai.com Generate an API key in the API section In n8n, create a new OpenAI credential with your key Airtable Personal Access Token Go to airtable.com/create/tokens Create a personal access token with the following scopes: data.records:read data.records:write schema.bases:read In n8n, create a new Airtable Personal Access Token credential Step 2: Set Up Airtable Base Create a new Airtable base with the following structure: Table Name: Qualified Leads Required Fields: Company Name (Single line text) Job Title (Single line text) Is Finance Job (Checkbox) Seniority Level (Single select: Entry, Mid, Senior, Director, C-Level) Company Category (Single select: Consumer, Recruiting, Fractional CFO, Other) Job Summary (Long text) Company LinkedIn (URL) Job Link (URL) Posted Date (Date) Location (Single line text) Industry (Single line text) Company Employees (Number) Step 3: Configure the Workflow Import the Workflow: Copy the JSON and import it into your n8n instance Update Credentials: Replace placeholder credential IDs with your actual credential IDs in: "Scrape LinkedIn Jobs" node (Apify credential) "OpenAI GPT-4 Mini" node (OpenAI credential) "Save to Airtable" and "Get Existing Leads" nodes (Airtable credential) Configure Airtable Connection: Update the base ID and table ID in both Airtable nodes Set Search Parameters: In the "Edit Variables" node, configure: linkedinUrls: Your target LinkedIn job search URLs maxEmployees: Maximum company size filter (default: 200) batchSize: Processing batch size for API efficiency (default: 5) Step 4: Test the Workflow Start with a small test by setting count: 50 in the HTTP Request node Use a specific LinkedIn job search URL (e.g., "CFO jobs in New York") Execute the workflow manually and verify results in your Airtable base Review the AI categorization accuracy and adjust prompts if needed How to customize this workflow to your needs Targeting Different Roles Modify the LinkedIn search URLs in the "Edit Variables" node to target different positions: "https://www.linkedin.com/jobs/search/?keywords=Controller" "https://www.linkedin.com/jobs/search/?keywords=Finance%20Director" "https://www.linkedin.com/jobs/search/?keywords=VP%20Finance" Adjusting Company Size Filters Change the maxEmployees parameter to focus on different company segments: Startups: 1-50 employees SMBs: 51-500 employees Enterprise: 500+ employees Customizing AI Analysis Enhance the GPT-4 prompt in the "AI Lead Analyzer" node to include: Industry-specific criteria Geographic preferences Technology stack requirements Company growth stage indicators Integration Options Extend the workflow by adding: Slack notifications** for new qualified leads Email alerts** for high-priority prospects CRM integration** (Salesforce, HubSpot, Pipedrive) Lead enrichment** with additional data sources Scheduling Automation Set up the workflow to run automatically: Daily**: For active prospecting campaigns Weekly**: For ongoing market research Monthly**: For periodic database updates Performance & Cost Optimization API Efficiency**: The workflow processes leads in batches to optimize API usage Smart Deduplication**: Avoids re-processing existing leads to reduce costs Configurable Limits**: Adjust batch sizes and employee count filters based on your needs Expected Costs**: Approximately $0.05-$0.20 per 100 analysed leads (OpenAI costs) Troubleshooting Common Issues: Rate Limiting**: Increase delays between API calls if you encounter rate limits Data Quality**: Review LinkedIn search URLs for relevance to your target market AI Accuracy**: Adjust prompts if categorisation doesn't match your criteria Airtable Errors**: Verify field names match exactly between workflow and base structure Support Resources: Apify LinkedIn Scraper Documentation OpenAI API Documentation Airtable API Reference Transform your lead generation process with this powerful, AI-driven workflow that delivers qualified prospects ready for immediate outreach.
by Risper
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. How It Works This n8n workflow automatically discovers high-quality business leads from Reddit posts by analysing posts across targeted subreddits. Loads your business profile from a connected Google Sheet. Uses AI to identify relevant subreddits where your potential customers engage. Generates intent-based Reddit search queries based on your services, keywords, and client pain points. Searches Reddit in real time using the generated queries. Classifies posts based on whether they show lead potential. Analyses high-potential posts for service-fit, urgency, and estimated value. Filters and scores leads to prioritize high-conversion opportunities. Saves the most promising leads to a dedicated Google Sheet. Sends Slack alerts to notify your sales team for immediate follow-up. Requirements Before using this workflow, ensure the following services are connected and configured: Google Sheets (OAuth2): Reads your business profile and writes qualified leads Reddit (OAuth2) Perform Reddit post searches based on generated queries Google Gemini API Analyse posts, generate queries, and extract insights Slack API : Notify your team with qualified lead summaries Google Sheets Setup You will need two Google Sheets: Business Profile Sheet (Input) This sheet contains a single row describing your service business. The workflow reads this to generate relevant subreddit selections and search queries. Required Fields (as headers in row 1): profession industry primary_services service_keywords target_client_profile pain_points intent_signals urgency_indicators price_range Reddit Leads Sheet (Output) This sheet stores high-quality Reddit posts identified as potential leads. The workflow appends or updates rows based on post_id to avoid duplication. Expected Columns: post_id post_url post_title post_post post_subreddit post_date
by Stefan
Track n8n Node Definitions from GitHub and Export to Google Sheets Overview This workflow automatically retrieves and processes metadata from the official n8n GitHub repository, filters all available .node.json files, parses their structure, and appends structured information into a Google Sheet. Perfect for developers, community managers, and technical writers who need to maintain up-to-date information about n8n's evolving node ecosystem. Setup Instructions Prerequisites Before setting up this workflow, ensure you have: A GitHub account with API access A Google account with Google Sheets access An active n8n instance (cloud or self-hosted) Step 1: GitHub API Configuration Navigate to GitHub Settings β Developer Settings β Personal Access Tokens Generate a new token with public_repo permissions Copy the generated token and store it securely In n8n, create a new "GitHub API" credential Paste your token in the credential configuration and save Step 2: Google Sheets Setup Create a new Google Sheets document Set up the following column headers in the first row: node (Column A) - Node identifier/name nodeVersion (Column B) - Version of the node codexVersion (Column C) - Codex version number categories (Column D) - Node categories credentialDocumentation (Column E) - Credential documentation URL primaryDocumentation (Column F) - Primary documentation URL Note down the Google Sheets document ID from the URL Configure Google Sheets OAuth2 credentials in n8n Step 3: Workflow Configuration Import the workflow into your n8n instance Update the following placeholder values: Replace YOUR_GOOGLE_SHEETS_DOCUMENT_ID with your actual document ID Replace YOUR_WEBHOOK_ID if using webhook functionality Configure the GitHub API credentials in the HTTP Request nodes Set up Google Sheets credentials in the Google Sheets nodes Share your Google Sheets document with the email address associated with your Google OAuth2 credentials Grant "Editor" permissions to allow the workflow to write data Google Sheets Template Details The workflow creates a structured dataset with these columns: node**: Node identifier (e.g., n8n-nodes-base.slack) nodeVersion**: Version of the node (e.g., 1.0.0) codexVersion**: Codex version number (e.g., 1.0.0) categories**: Node categories (e.g., Communication, Productivity) credentialDocumentation**: URL to credential documentation primaryDocumentation**: URL to primary node documentation Customization Options Modifying Data Extraction You can customize the "Format Data" node to extract additional fields: Add new assignments in the Set node Modify the column mapping in the Google Sheets node Update your spreadsheet headers accordingly Changing Update Frequency To run this workflow on a schedule: Replace the Manual Trigger with a Cron node Set your desired schedule (e.g., daily, weekly) Configure appropriate timing to avoid API rate limits Adding Filters Customize the "Filter Node Files" code node to: Filter specific node types Include/exclude certain categories Process only recently updated nodes Features Fetches all node definitions from the n8n-io/n8n repository Filters for .node.json files only Downloads and parses metadata automatically Extracts key fields like node names, versions, categories, and documentation URLs Appends structured data to Google Sheets with batch processing Includes error handling and retry mechanisms Clears existing data before appending new information for fresh results Use Cases This workflow is ideal for: Track changes in official n8n node definitions over time Audit node categories and documentation links for completeness Build custom dashboards from node metadata Community management and documentation maintenance Integration planning and compatibility analysis
by Mychel Garzon
Quick overview This workflow runs monthly to query KPI data from Google BigQuery, generates a narrative with Anthropic Claude, fills a Google Docs report template, exports it as a PDF, archives it to OneDrive, emails it via Microsoft Outlook, and posts a summary to Microsoft Teams. How it works A schedule trigger fires on the 1st of every month at 07:00 and calculates the start and end dates of the previous full calendar month. Four parallel BigQuery queries fetch revenue KPIs, top product categories, weekly sales trend, and top customers for that period. Each result set is tagged with a source label before merging. All tagged rows are combined and aggregated into a single structured report payload containing KPI summaries, ranked tables, and company metadata. The payload is split across two concurrent branches: one sends it to a Claude Sonnet LLM chain to generate an executive narrative with five sections (summary, revenue analysis, category insights, customer insights, and recommendation), and the other creates a named copy of a Google Docs template in your reports folder. Once both branches complete, the narrative is merged into the report payload and the replacement requests for all template placeholders are constructed. The Google Docs node applies all replacements in a single batchUpdate call, then the file is exported as a PDF via Google Drive. The finished PDF is archived to OneDrive, emailed via Outlook with the report attached, and a formatted KPI summary card is posted to a Microsoft Teams channel. Setup Set the following n8n environment variables before activating: GCP_PROJECT_ID, BQ_DATASET, GDOCS_TEMPLATE_FILE_ID, GDRIVE_REPORTS_FOLDER_ID, ONEDRIVE_REPORTS_FOLDER_ID, REPORT_RECIPIENTS, TEAMS_TEAM_ID, and TEAMS_CHANNEL_ID. Connect a Google BigQuery credential and update the four SQL queries to match your dataset, table name, and column names. Connect an Anthropic API credential to the Claude Chat Model sub-node, then manually wire its output to the ai_languageModel input (bottom connector) of the Create AI Narrative with Claude node on the canvas. Connect Google Drive and Google Docs OAuth2 credentials. In Google Drive, create a master report template Doc containing the placeholder strings listed in the Customization section, note its file ID from the URL, and set GDOCS_TEMPLATE_FILE_ID accordingly. Connect Microsoft OneDrive, Outlook, and Teams OAuth2 credentials. Retrieve your Teams team ID and channel ID using the Microsoft Graph Explorer and set the corresponding environment variables. Requirements Google Cloud project with BigQuery enabled and an orders table matching the SQL schema in the workflow Google Workspace account (Drive and Docs OAuth2 access) Anthropic API key Microsoft 365 account with OneDrive, Outlook, and Teams access Customization To change the reporting cadence, update the cron expression in the schedule trigger: 0 7 * * 1 for weekly or 0 7 * * * for daily. To adapt the SQL queries to your schema, replace orders, order_total, customer_id, is_new_customer, created_at, and product_category with your actual column names. To change the AI model, update the model field in the Claude Chat Model sub-node. To add more KPI sections, extend the SQL queries, the aggregation code in Consolidate BigQuery Data, and the replacements array in Construct Replacement Requests.
by Incrementors
Description Activate this workflow once and every Friday at 5PM it automatically pulls your week's meeting data from Fireflies, calculates seven metrics, and emails a formatted report to your manager inbox. It tracks total meetings, total hours, average duration, busiest day, top participant, and longest meeting β plus a day-by-day breakdown and a numbered list of every meeting. Every week's summary is also logged to Google Sheets so you can track meeting load trends over time. Built for team leads, operations managers, and founders who want visibility into meeting time without manually checking Fireflies each week. What This Workflow Does Runs automatically every Friday** β Fires at 5PM every week so your end-of-week report arrives without any manual trigger Calculates seven meeting metrics** β Computes total meetings, total hours, average duration, busiest day, top participant, longest meeting, and a day-by-day breakdown from raw Fireflies data Identifies the busiest day** β Counts meetings per day of the week and surfaces which day had the most meetings and exactly how many Finds the top participant** β Counts how many meetings each person attended and surfaces the most-present person across the week Logs one summary row to Google Sheets** β Appends a 9-column weekly record for trend tracking so you can compare meeting load week over week Emails a formatted plain-text report** β Sends the full report with all metrics, daily breakdown, and numbered meeting list to your manager email automatically Exits cleanly with no meetings** β If no meetings were recorded this week, the workflow stops silently without sending an empty email Setup Requirements Tools Needed n8n instance (self-hosted or cloud) Fireflies.ai account with API access Google Sheets (one sheet with a tab named Weekly Meeting Report) Gmail account (used to send the weekly report) Credentials Required Fireflies API key (pasted into 2. Set β Config Values) Google Sheets OAuth2 Gmail OAuth2 Estimated Setup Time: 10β15 minutes Step-by-Step Setup Import the workflow β Open n8n β Workflows β Import from JSON β paste the workflow JSON β click Import Get your Fireflies API key β Log in to fireflies.ai β Settings β Integrations β copy your API key Fill in Config Values β Open node 2. Set β Config Values β replace all placeholders: | Field | What to enter | |---|---| | YOUR_FIREFLIES_API_KEY | Your Fireflies API key from step 2 | | YOUR_GOOGLE_SHEET_ID | The ID from your Google Sheet URL (the string between /d/ and /edit) | | Weekly Meeting Report | Leave as-is, or change to match your sheet tab name exactly | | manager@yourcompany.com | The email address where the weekly report should be sent | | YOUR NAME | The sender name shown in the email sign-off | | YOUR COMPANY NAME | Your company name (shown in the email subject and body) | Create your Google Sheet β Open Google Sheets β add a tab named exactly Weekly Meeting Report β add these 9 column headers in row 1: Week, Total Meetings, Total Hours, Avg Duration (min), Busiest Day, Top Participant, Longest Meeting, All Participants, Logged At Connect Google Sheets β Open node 6. Google Sheets β Log Weekly Summary β click the credential dropdown β add Google Sheets OAuth2 β sign in with your Google account β authorize access Connect Gmail β Open node 7. Gmail β Send Weekly Report β click the credential dropdown β add Gmail OAuth2 β sign in with the Gmail account you want to send reports from β authorize access Activate the workflow β Toggle the workflow to Active β it will run automatically every Friday at 5PM > β οΈ To test immediately β Click on node 1. Schedule β Every Friday 5PM and use the manual Execute option to trigger a test run without waiting for Friday. How It Works (Step by Step) Step 1 β Schedule: Every Friday 5PM This step fires the workflow automatically every Friday evening at 5PM. No manual trigger is needed. Once the workflow is active, it runs on its own every week. Step 2 β Set: Config Values Your Fireflies API key, Google Sheet ID, sheet tab name, manager email, sender name, company name, and the 7-day date window are stored here. The week start and end dates are calculated automatically from today's date so you never need to update them manually. Step 3 β HTTP: Fetch Transcripts A request is sent to the Fireflies API using your API key. It retrieves the 100 most recent transcripts from your account β title, date, duration, and participants for each. Fetching 100 ensures meetings from busy weeks are not missed during the 7-day filter. Step 4 β Code: Calculate Meeting Metrics The 100 transcripts are filtered to only those recorded in the past 7 days. If no meetings are found, a hasMeetings: false flag is set and the result passes to the gate check. For weeks with meetings, seven metrics are calculated: total meeting count, total minutes and hours, average duration per meeting, busiest day of the week with count, top participant with count, longest meeting with title and duration, and a full list of all unique participants. A day-by-day breakdown is assembled showing meeting count and total minutes per day, sorted chronologically. A numbered meeting list is also built showing each meeting's date, title, and duration, sorted most recent first. Step 5 β IF: Meetings Found? This is the gate check. If meetings were found (YES path), the workflow continues to log and email the report. If no meetings were found this week (NO path), the workflow routes to 8. Set β No Meetings Skip and stops cleanly β no email is sent, no empty row is logged. Step 6 (No path) β Set: No Meetings Skip This step handles the empty-week case. It sets a brief message confirming no meetings were found and the workflow ends here for that run. Step 6 β Google Sheets: Log Weekly Summary One row is appended to your Weekly Meeting Report tab with all 9 columns: the week date range, total meetings, total hours, average duration, busiest day, top participant, longest meeting, all participants combined, and the logged-at timestamp. This runs before the email so the sheet is always up to date even if the email step fails. Step 7 β Gmail: Send Weekly Report A plain-text email is sent to your manager email address. The subject includes your company name and the week date range. The body contains the full summary section (all seven metrics), the day-by-day breakdown, the complete numbered meeting list, and a sign-off with your name and company. A footer notes that data has been logged to Google Sheets and that the report was auto-generated every Friday. The final result: every Friday evening your manager receives a clean, complete meeting hours report in their inbox β and one row is added to your Google Sheet for trend tracking. Key Features β Fully automated Friday delivery β Fires at 5PM every Friday with zero manual input after setup β Seven metrics calculated automatically β Total meetings, hours, average duration, busiest day, top participant, longest meeting, and daily breakdown β all from a single Fireflies API call β Top participant tracking β Counts appearances across all meetings and surfaces the most-present person so you can spot meeting bottlenecks β Trend-ready Google Sheets log β One row per week means you can chart meeting load trends, spot overloaded weeks, and compare month over month β Plain-text email format β Renders cleanly in any email client without HTML formatting issues β 100-transcript buffer β Fetches 100 recent transcripts to ensure high-volume weeks are never truncated during the 7-day filter β Clean empty-week exit β No meetings this week means a clean stop β no empty email, no blank Sheets row, no errors β Chronological daily breakdown β Day-by-day data is sorted by date, not alphabetically, so the breakdown reads naturally from Monday to Friday Customisation Options Change the report delivery day and time β In node 1. Schedule β Every Friday 5PM, edit the cron expression 0 17 * * 5 to change when the report fires. For example, 0 8 * * 1 sends a Monday morning summary of last week's meetings instead. Extend the date window to 30 days for a monthly report β In node 2. Set β Config Values, change {days: 7} in both the weekStart and sevenDaysAgoMs fields to {days: 30} and adjust the schedule to monthly for a full meeting hours report. Add a Slack summary alongside the email β After node 6. Google Sheets β Log Weekly Summary, add a Slack node that posts a short 3-line summary (total meetings, total hours, busiest day) to a #operations or #team-leads channel so the team sees it without checking email. Filter to specific meeting types only β In node 4. Code β Calculate Meeting Metrics, add a keyword filter on the meeting title before calculating metrics β for example, only include meetings with "client" or "sync" in the title to separate client time from internal meetings. Add a meeting-load alert β In node 4. Code β Calculate Meeting Metrics, add a check: if totalHours exceeds a threshold (e.g. 20 hours), set a heavyWeek flag to true. Then add an IF check after step 4 that sends an additional Slack or email alert flagging the overloaded week before the normal report runs. Troubleshooting Workflow not triggering on Friday: Confirm the workflow is toggled to Active β inactive workflows do not run on a schedule Check the cron expression in node 1. Schedule β Every Friday 5PM is exactly 0 17 * * 5 β any accidental edit breaks the schedule To test immediately, click on node 1 and use the manual Execute option Fireflies returning no transcripts or an auth error: Confirm YOUR_FIREFLIES_API_KEY in node 2. Set β Config Values is replaced with your actual key β not the placeholder text Get your key from fireflies.ai β Settings β Integrations β API Key If your team recorded more than 100 meetings in the past week, increase the limit value in node 3. HTTP β Fetch Transcripts from 100 to a higher number in the GraphQL query body Google Sheets not logging rows: Confirm the Google Sheets OAuth2 credential in node 6. Google Sheets β Log Weekly Summary is connected and not expired β re-authorize if needed Check that YOUR_GOOGLE_SHEET_ID in node 2. Set β Config Values matches the ID in your sheet URL exactly Confirm the tab is named Weekly Meeting Report exactly β capitalization must match sheetName in Config Values Verify all 9 column headers in row 1 match exactly: Week, Total Meetings, Total Hours, Avg Duration (min), Busiest Day, Top Participant, Longest Meeting, All Participants, Logged At Email not being received: Confirm the Gmail OAuth2 credential in node 7. Gmail β Send Weekly Report is connected and authorized with the correct sending account Check that manager@yourcompany.com in node 2. Set β Config Values is replaced with the actual recipient email address Check your spam or promotions folder β automated emails from Gmail OAuth2 sometimes land there on first send Check the execution log of node 7 for any error message from the Gmail API Metrics showing wrong totals or missing meetings: Confirm your n8n instance timezone is set correctly β the 7-day filter uses millisecond timestamps and timezone mismatches can cause meetings to fall outside the window If meetings are missing, check that the Fireflies transcripts were fully processed before Friday 5PM β transcripts still processing at trigger time will not appear in the results Check the execution log of node 4. Code β Calculate Meeting Metrics to see the raw list of meetings that passed the filter Support Need help setting this up or want a custom version built for your team or agency? π§ Email: info@incrementors.com π Website: https://www.incrementors.com/
by Lhoussaine Ait Aissa
Quick overview This workflow captures inbound form submissions, cleans and enriches the lead data, uses Google Gemini to score fit against your ideal customer profile, upserts the contact in HubSpot, and emails the sales owner via Gmail only when the lead meets a defined βhotβ threshold. How it works Receives a new inbound lead submission from an n8n Form trigger. Normalizes the lead details by validating and lowercasing the email, extracting the company domain, detecting free email providers, and backfilling company/website when missing. Sends the cleaned lead plus your ICP description to Google Gemini to return a JSON verdict with a fit score, segment, reasoning, and a suggested email opener. Parses the model response defensively, calculates whether the lead is βhotβ based on the score threshold, disqualification flag, and email validity, and falls back to a safe default if the response is unreadable. If the email is valid, creates or updates the contact in HubSpot (matched by email) and writes the leadβs message, score, segment, and lifecycle stage to the contact properties. If the lead is hot, builds an HTML alert and sends it to the configured sales owner via Gmail; otherwise it finishes without sending an alert. Setup Create a HubSpot Private App token with crm.objects.contacts.read and crm.objects.contacts.write scopes and add it to an n8n HubSpot credential. Add credentials for Google Gemini (Chat Model) and Gmail, and select the correct account for sending alerts. In the configuration step, set sales_owner_email, hot_score_threshold, and your icp_description to match your routing rules. Ensure your HubSpot account has the contact properties used in the upsert mapping (for example message, lead status, lifecycle stage, website, company, and phone).
by Avkash Kakdiya
How it works This workflow automatically generates personalized follow-up messages for leads or customers after key interactions (e.g., demos, sales calls). It enriches contact details from HubSpot (or optionally Monday.com), uses AI to draft a professional follow-up email, and distributes it across multiple communication channels (Slack, Telegram, Teams) as reminders for the sales team. Step-by-step 1. Trigger & Input Schedule Trigger β Runs automatically at a defined interval (e.g., daily). Set Sample Data β Captures the contactβs name, email, and context from the last interaction (e.g., βhad a product demo yesterday and showed strong interestβ). 2. Contact Enrichment HubSpot Contact Lookup β Searches HubSpot CRM by email to confirm or enrich contact details. Monday.com Contact Fetch (Optional) β Can pull additional CRM details if enabled. 3. AI Message Generation AI Language Model (OpenAI) β Provides the underlying engine for message creation. Generate Follow-Up Message β Drafts a short, professional, and friendly follow-up email: References previous interaction context. Suggests clear next steps (call, resources, etc.). Ends with a standardized signature block for consistency. 4. Multi-Channel Communication Slack Reminder β Posts the generated message as a reminder in the sales teamβs Slack channel. Telegram Reminder β Sends the follow-up draft to a Telegram chat. Teams Reminder β Shares the same message in a Microsoft Teams channel. Benefits Personalized Outreach at Scale β AI ensures each follow-up feels tailored and professional. Context-Aware Messaging β Pulls in CRM details and past interactions for relevance. Cross-Platform Delivery β Distributes reminders via Slack, Teams, and Telegram so no follow-up is missed. Time-Saving for Sales Teams β Eliminates manual drafting of repetitive follow-up emails. Consistent Branding β Ensures every message includes a unified signature block.
by Servify
This n8n template demonstrates how to build an autonomous AI assistant that handles real business tasks through natural conversation on Telegram. The example shows meeting scheduling with CRM lookup and calendar management, but the architecture supports any business automation you can imagine - simply add tools and the AI learns to use them automatically. Use cases are many: Try automating appointment scheduling, customer support tickets, invoice generation, lead qualification, email management, report generation, data entry, or task coordination! Good to know OpenAI API costs are minimal at ~$0.001 per conversation with GPT-4o-mini The AI agent makes autonomous decisions and can chain multiple tool calls to complete complex tasks Conversation context is not persisted between sessions (can be extended with a memory database) Calendar availability is checked for business hours (9 AM - 4 PM) by default The workflow assumes contacts are stored in Google Sheets with Name and Email columns This is production-ready code that can be deployed immediately for real business use How it works User sends a natural language message to the Telegram bot requesting a meeting The workflow extracts message content, chat ID, and user information CRM database is loaded from Google Sheets containing contact information The AI agent analyzes the request and autonomously decides which tools to use AI searches CRM for contacts, checks Google Calendar availability, and proposes 3 available time slots User confirms their preferred time through conversational reply Upon confirmation, the workflow creates a Google Calendar event with both parties invited A professional confirmation email is automatically sent via Gmail to the meeting attendee The entire multi-step process executes autonomously through simple conversation How to use Set up a Google Sheet as your CRM with columns: Name, Email, Phone Create a Telegram bot via BotFather and get your bot token Import this workflow and connect your credentials (Telegram, OpenAI, Google Sheets, Calendar, Gmail) Replace placeholder IDs with your actual Google Sheet ID and Calendar ID in the workflow nodes Activate the workflow to start listening for Telegram messages Test with: "Schedule a meeting with [contact name] tomorrow at 2 PM" Customize the AI Agent system prompt to match your scheduling preferences and timezone Requirements Telegram Bot Token (free from BotFather) OpenAI API account with GPT-4o-mini access Google Sheets OAuth2 credentials for CRM database access Google Calendar OAuth2 credentials for availability checking and event creation Gmail OAuth2 credentials for sending confirmation emails Customising this workflow Add new tools (APIs, databases, services) and the AI automatically learns to use them - no code changes needed Replace Telegram with Slack, WhatsApp, or SMS for different communication channels Extend capabilities beyond scheduling: invoice generation, customer support, lead qualification, report generation Connect external systems like HubSpot, Salesforce, QuickBooks, Asana, or custom APIs Add conversation memory by integrating a vector database for context-aware multi-turn conversations Implement approval workflows where AI drafts actions for human review before execution Build multiple specialized assistants with different tools and expertise for various business functions