by Rahul Joshi
📊 Description Streamline sales prioritization by automatically identifying, scoring, and routing high-value leads from GoHighLevel CRM to your sales team. This workflow scores contacts daily, flags top prospects, alerts sales reps in Slack, logs data to Google Sheets, and schedules instant follow-ups in Google Calendar — ensuring no valuable lead slips through the cracks. 🚀📈 What This Template Does Triggers daily at 8:00 AM to fetch all contacts from GoHighLevel CRM. ⏰ Processes lead data and extracts key details from custom fields. 🧩 Calculates lead scores using your predefined CRM field mappings. 🔢 Filters out incomplete or invalid contacts to ensure clean data flow. 🧼 Identifies high-value leads with a score above 80 for immediate attention. 🎯 Sends real-time Slack alerts to sales teams with contact and lead score details. 💬 Logs high-priority leads into a dedicated Google Sheet for tracking and analytics. 📊 Creates automatic Google Calendar follow-up events within 1 hour of detection. 📅 Key Benefits ✅ Automatically surfaces top leads for faster follow-up ✅ Keeps sales teams aligned through instant Slack alerts ✅ Eliminates manual data review and prioritization ✅ Centralizes performance tracking via Google Sheets ✅ Ensures consistent follow-up with Google Calendar scheduling ✅ Fully customizable lead score threshold and timing Features Daily scheduled trigger (8:00 AM) GoHighLevel CRM integration for contact retrieval Smart lead scoring via custom field mapping Conditional filtering for high-value leads Slack alert system for real-time engagement Google Sheets logging for transparency and analytics Auto-created Google Calendar events for follow-ups Requirements GoHighLevel API credentials with contact read permissions Slack Bot token with chat:write access Google Sheets OAuth2 credentials Google Calendar OAuth2 credentials Defined custom fields for Lead Score and Assigned Representative in GoHighLevel Target Audience Sales and business development teams tracking high-value leads Marketing teams optimizing lead qualification and follow-up Agencies using GoHighLevel for CRM and lead management Operations teams centralizing sales activity and analytics Step-by-Step Setup Instructions Connect your GoHighLevel OAuth2 credentials and ensure contact API access. Replace placeholder custom field IDs (Lead Score & Assigned Rep) in the Code node. Add your Slack channel ID for team notifications. Connect your Google Sheets document and replace its Sheet ID in the workflow. Link Google Calendar for automatic follow-up event creation. Adjust the lead score threshold (default: 80) if needed. Run a manual test to verify data flow, then enable the daily trigger for automation.
by Paolo Ronco
Sync n8n Workflow Schedules to Google Calendar Reads every workflow on your n8n instance every 30 minutes, extracts their schedule triggers, and keeps a matching recurring event on Google Calendar — one event per workflow, forever in sync. How it works Schedule Trigger (30 min) → GET /api/v1/workflows — fetch all workflows → Code: parsing — extract scheduleTrigger / cron nodes → Sheets: Lookup — read saved state (schedule, On Calendar, EventID) → Code: detect changes — create / update / skip ├─ create → build RRULE payload → Create event → write EventID to Sheets └─ update → delete old event (parallel) + create new event → write to Sheets State is stored in a Google Sheets tab (n8n Scheduling). The sheet acts as the single source of truth between runs. What gets a Calendar event | Schedule type | Result | | -------------------------------------- | ---------------------------------------------------------- | | Daily | DAILY recurring event | | Weekly (with or without specific days) | WEEKLY recurring event | | Monthly | MONTHLY recurring event | | Hourly | 1 DAILY event at 00:MM (not 24 — avoids GCal rate limit) | | Cron / minutely | Skipped — not supported by Google Calendar RRULE | | This workflow itself | Always skipped | Prerequisites n8n instance with API enabled Google Cloud project with: Service Account (for Sheets — never expires) OAuth 2.0 client (for Google Calendar — expires periodically) A Google Sheets spreadsheet shared with the Service Account A Google Calendar to write events to Credentials | n8n credential type | Used for | | -------------------------- | ------------------------------------------ | | n8n API | Reading the workflow list | | Google Calendar OAuth2 API | Creating / deleting Calendar events | | Google Service Account | Reading and writing the Sheets state store | > ⚠️ The Google Calendar OAuth2 credential expires. Reconnect it from Settings → Credentials when Calendar nodes start failing. Setup Full step-by-step setup in documentation.md. Known limits OAuth token expiry breaks sections D/E silently — set up the error workflow to get notified Hourly schedules map to a single daily event (label includes ogni ora :MM) The disconnected Webhook sub-flow (section F) is a manual maintenance utility — not part of the main pipeline
by vinci-king-01
Property Listing Aggregator with Microsoft Teams and Baserow ⚠️ COMMUNITY TEMPLATE DISCLAIMER: This is a community-contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the ScrapeGraphAI community node installed in your n8n instance before using this template. This workflow automatically aggregates commercial real-estate listings from multiple broker and marketplace websites, stores the fresh data in Baserow, and pushes weekly availability alerts to Microsoft Teams. Ideal for business owners searching for new retail or office space, it runs on a timetable, scrapes property details, de-duplicates existing entries, and notifies your team of only the newest opportunities. Pre-conditions/Requirements Prerequisites An n8n instance (self-hosted or n8n.cloud) ScrapeGraphAI community node installed A Baserow workspace & table prepared to store property data A Microsoft Teams channel with an incoming webhook URL List of target real-estate URLs (CSV, JSON, or hard-coded array) Required Credentials ScrapeGraphAI API Key** – Enables headless scraping of listing pages Baserow Personal API Token** – Grants create/read access to your property table Microsoft Teams Webhook URL** – Allows posting messages to your channel Baserow Table Schema | Column Name | Type | Notes | |-------------|---------|--------------------------------| | listing_id| Text | Unique ID or URL slug (primary)| | title | Text | Listing headline | | price | Number | Monthly or annual rent | | sq_ft | Number | Size in square feet | | location | Text | City / neighborhood | | url | URL | Original listing link | | scraped | Date | Timestamp of last scrape | How it works This workflow automatically aggregates commercial real-estate listings from multiple broker and marketplace websites, stores the fresh data in Baserow, and pushes weekly availability alerts to Microsoft Teams. Ideal for business owners searching for new retail or office space, it runs on a timetable, scrapes property details, de-duplicates existing entries, and notifies your team of only the newest opportunities. Key Steps: Schedule Trigger**: Fires every week (or on demand) to start the aggregation cycle. Load URL List (Code node)**: Returns an array of listing or search-result URLs to be scraped. Split In Batches**: Processes URLs in manageable groups to avoid rate-limits. ScrapeGraphAI**: Extracts title, price, size, and location from each page. Merge**: Reassembles batches into a single dataset. IF Node**: Checks each listing against Baserow to detect new vs. existing entries. Baserow**: Inserts only brand-new listings into the table. Set Node**: Formats a concise Teams message with key details. Microsoft Teams**: Sends the alert to your designated channel. Set up steps Setup Time: 15-20 minutes Install ScrapeGraphAI node: In n8n, go to “Settings → Community Nodes”, search for “@n8n-nodes/scrapegraphai” and install. Create Baserow table: Follow the schema above. Copy your Personal API Token from Baserow profile settings. Generate Teams webhook: In Microsoft Teams, open channel → “Connectors” → “Incoming Webhook”, name it, and copy the URL. Open the workflow in n8n and set the following credentials: ScrapeGraphAI API Key Baserow token (Baserow node) Teams webhook (Microsoft Teams node) Define target URLs: Edit the “Load URL List” Code node and add your marketplace or broker URLs. Adjust schedule: Double-click the “Schedule Trigger” and set the cron expression (default: weekly Monday 08:00). Test-run the workflow manually to verify scraping and data insertion. Activate the workflow once results look correct. Node Descriptions Core Workflow Nodes: stickyNote** – Provides inline documentation and reminders inside the canvas. Schedule Trigger** – Triggers the workflow on a weekly cron schedule. Code** – Holds an array of URLs and can implement dynamic logic (e.g., API calls to get URLs). SplitInBatches** – Splits URL list into configurable batch sizes (default: 5) to stay polite. ScrapeGraphAI** – Scrapes each URL and returns structured JSON for price, size, etc. Merge** – Combines batch outputs back into one array. IF** – Performs existence check against Baserow’s listing_id to prevent duplicates. Baserow** – Writes new records or updates existing ones. Set** – Builds a human-readable message string for Teams. Microsoft Teams** – Posts the summary into your channel. Data Flow: Schedule Trigger → Code → Split In Batches → ScrapeGraphAI → Merge → IF → Baserow IF (new listings) → Set → Microsoft Teams Customization Examples Add additional data points (e.g., number of parking spaces) // In ScrapeGraphAI "Selectors" field { "title": ".listing-title", "price": ".price", "sq_ft": ".size", "parking": ".parking span" // new selector } Change Teams message formatting // In Set node return items.map(item => { const l = item.json; item.json = { text: 🏢 ${l.title} — ${l.price} USD\n📍 ${l.location} | ${l.sq_ft} ft²\n🔗 <${l.url}|View Listing> }; return item; }); Data Output Format The workflow outputs structured JSON data: { "listing_id": "12345-main-street-suite-200", "title": "Downtown Office Space – Suite 200", "price": 4500, "sq_ft": 2300, "location": "Austin, TX", "url": "https://broker.com/listings/12345", "scraped": "2024-05-01T08:00:00.000Z" } Troubleshooting Common Issues ScrapeGraphAI returns empty fields – Update CSS selectors or switch to XPath; run in headless:true mode. Duplicate records still appear – Ensure listing_id is truly unique (use URL slug) and that the IF node compares correctly. Teams message not delivered – Verify webhook URL and that the Teams connector is enabled for the channel. Performance Tips Reduce batch size if websites block rapid requests. Cache previous URLs to skip unchanged search-result pages. Pro Tips: Rotate proxies in ScrapeGraphAI for larger scraping volumes. Use environment variables for credentials to simplify migrations. Add a second Schedule Trigger for daily “hot deal” checks by duplicating the workflow and narrowing the URL list.
by WeblineIndia
Android Feature Flag Cleanup Automation This workflow automatically scans an Android GitHub repository, detects feature flags used in the codebase, compares them with Firebase Remote Config flags, identifies unused flags and sends a weekly cleanup report to Slack. This workflow runs every week and checks Android source files (.kt / .java) inside your GitHub repository. It finds possible feature flags used in code, compares them with Firebase Remote Config flags and highlights flags that may no longer be used. It then builds a clean summary report and sends the result to Slack for team review. You receive: Weekly automated Android flag audit** Unused Firebase flag detection** Slack summary report for cleanup review** Better visibility of active vs stale flags** Ideal for Android teams who want cleaner Firebase Remote Config management. Quick Start – Implementation Steps Login to your n8n account. Add your GitHub credential in n8n. Update repository owner, repo name and branch. Add Slack credentials and choose a channel. Add Firebase Remote Config API later (currently test data supported). Activate workflow for weekly automation. What It Does This workflow automates Android feature flag cleanup: Runs automatically every week. Connects to GitHub repository. Fetches all Android .kt and .java files. Reads source code files. Detects possible feature flags inside code. Loads Firebase Remote Config flags. Compares code flags vs Firebase flags. Finds unused Firebase flags. Creates final summary report. Sends report to Slack. This helps teams remove stale flags and maintain clean configuration. Who It's For This workflow is ideal for: Android development teams Tech leads QA teams DevOps / Release teams Firebase Remote Config users Teams maintaining multiple feature flags Requirements to Use This Workflow To run this workflow, you need: n8n account (cloud or self-hosted) GitHub repository access** Slack workspace** Firebase Remote Config project** (optional initially) Basic understanding of Android source files How It Works Weekly Trigger – Workflow starts automatically every week. Load Settings – Reads repository and workflow settings. Connect GitHub – Fetches project files. Filter Android Files – Only .kt and .java files selected. Read Code – Downloads and decodes file content. Detect Flags – Finds feature flags from source code. Load Firebase Flags – Uses Firebase Remote Config flags. Compare Flags – Finds used and unused flags. Create Report – Builds totals and cleanup summary. Send Slack Alert – Posts report to team channel. Setup Steps Import the workflow JSON into n8n. Open Workflow Settings node. Enter: GitHub Owner GitHub Repo Branch Name Connect GitHub credentials. Connect Slack credentials. Select Slack channel. Replace mock Firebase flags with real Firebase API later. Activate workflow. How To Customize Nodes Customize Scan Schedule Change Cron node: Weekly Daily Monthly Customize File Types Change file filter: .kt .java .xml .gradle Customize Flag Detection Improve regex to detect: BuildConfig.FEATURE_* RemoteConfig.getString() Custom wrappers Customize Slack Alerts You may add: Emojis Mentions Team tags Priority warnings Add-Ons (Optional Enhancements) You can extend this workflow to: Create Jira cleanup tickets Update Google Sheets catalog Create GitHub PR with markdown report Track first seen / last seen flags Team ownership by prefix Strict aging rules (30+ days unused) Multi-repository scanning Use Case Examples 1. Firebase Cleanup Remove old Remote Config flags not used in app code. 2. Weekly Engineering Report Send flag health report to Slack. 3. Release Readiness Check unused experiments before release. 4. Tech Debt Reduction Keep feature flag system clean and manageable. 5. Multi-Team Visibility Know which flags are active or stale. Troubleshooting Guide | Issue | Possible Cause | Solution | |------|----------------|----------| | No files found | Wrong repo/branch | Check settings | | Slack message failed | Wrong credentials | Reconnect Slack | | No flags detected | Regex too strict | Improve detection logic | | Too many files | Large repo | Reduce scan scope | | Firebase data empty | API not connected | Use mock data or fix API | | Workflow not running | Disabled trigger | Enable Cron node | Need Help? If you need help customizing this workflow by adding Jira, Google Sheets, GitHub PR creation, real Firebase API integration or scaling for enterprise use then our n8n workflow developers at WeblineIndia can help build an advanced production-ready version.
by Nikan Noorafkan
🛍️ Google Shopping Feed Optimization with Channable + Relevance AI + Google Merchant API 🚀 Automate, Optimize & Sync Your Product Feeds at Scale 🧩 Overview This workflow automates Google Shopping Feed Optimization using Channable, Relevance AI, and the Google Merchant API. It runs daily, enhancing product titles and descriptions, validating feed quality, assigning custom campaign labels, and syncing the optimized feed with Google Merchant Center. The system ensures every product listing meets Google’s content standards, is SEO-friendly, and ready for high-performance Shopping campaigns. 🧠 Key Benefits ✅ Automated daily product feed optimization ✅ AI-enhanced titles and descriptions (via Relevance AI) ✅ Google Merchant API integration (latest version) ✅ Quality scoring and error detection before sync ✅ Custom campaign labels for segmented bidding ✅ Slack alerts for issues and daily summaries ✅ 100% no-code deployment with scalable batch processing ⚙️ System Architecture | Component | Purpose | | ----------------------------- | -------------------------------------------------------- | | n8n | Workflow automation and orchestration | | Channable | Product feed source (can replace with any eCommerce API) | | Relevance AI | AI title and description optimization | | Google Merchant API (NEW) | Product publishing and validation | | Slack | Alerts and reporting | | Cron Trigger | Daily schedule (6 AM sync) | 🧭 Workflow Logic (Visual Summary) Daily Trigger (06:00 AM) ⬇️ 1️⃣ Get Product Feed (Channable) Fetches product data for optimization. ⬇️ 2️⃣ Data Quality Checks Validates titles, GTINs, pricing, categories, and descriptions. Assigns quality scores. ⬇️ 3️⃣ Split Products Breaks the all_products array into single items for AI processing. ⬇️ 4️⃣ Optimize Title (Relevance AI Tool) Enhances product titles for SEO, clarity, and Google compliance. ⬇️ 5️⃣ Generate Description (Relevance AI Tool) Creates 300–400 character, benefit-focused product descriptions. ⬇️ 6️⃣ Assign Custom Labels Adds five segmentation labels: margin, performance, seasonality, stock level, and category. ⬇️ 7️⃣ Aggregate Products Combines optimized items into one unified dataset. ⬇️ 8️⃣ Upload to Merchant Center (NEW Merchant API) Publishes products via Google’s latest /products endpoint. ⬇️ 9️⃣ Check Product Status Verifies successful uploads and identifies disapprovals. ⬇️ 🔍 Analyze Product Issues Summarizes errors and warnings from Merchant API results. ⬇️ ⚖️ IF Disapprovals Found → 🚨 Send Slack alert for issues → ✅ Otherwise, post success summary 🧩 Environment Variables Set these under n8n → Settings → Variables → Add Variable | Variable | Example | Purpose | | ----------------------------------- | -------------------------------------------------- | -------------------------------- | | CHANNABLE_API_URL | https://api.channable.com/v1 | Channable API base | | CHANNABLE_COMPANY_ID | 12345 | Company ID in Channable | | CHANNABLE_PROJECT_ID | abcd | Project ID | | FEED_ID | shopping-feed | Feed endpoint | | RELEVANCE_AI_API_URL | https://api-f1db6c.stack.tryrelevance.com/latest | Relevance AI API base | | RELEVANCE_TOOL_TITLE_OPTIMIZER_ID | tQy48Ld8n0zp | Relevance AI Title Tool ID | | RELEVANCE_TOOL_DESCRIPTION_ID | hJ9bT01r8Lqf | Relevance AI Description Tool ID | | MERCHANT_API_URL | https://merchantapi.googleapis.com/content/v2.1 | Google Merchant API base | | MERCHANT_ACCOUNT_ID | 123456789 | Merchant Center account ID | | SLACK_CHANNEL | #shopping-feed-automation | Slack channel for reports | 🔑 Credential Setup | Service | Type | Setup | | ------------------- | ---------------- | -------------------------------------------------------------- | | Relevance AI | HTTP Header Auth | Header → Authorization: Bearer {{$env.RELEVANCE_AI_API_KEY}} | | Channable | HTTP Header Auth | Header → Authorization: Bearer {{$env.CHANNABLE_API_TOKEN}} | | Google Merchant | Google OAuth2 | Scopes: • https://www.googleapis.com/auth/content | | Slack | Slack API | Add chat:write Bot Token Scope | 🧱 Node-by-Node Breakdown | Node | Description | Key Action | | ----------------------------- | ---------------------------------------- | ----------------------------------------------------------- | | Daily Trigger (6 AM) | Starts workflow every morning | cron: 0 6 * * * | | Get Product Feed | Fetches products from Channable | GET {{$env.CHANNABLE_API_URL}}/.../feeds/{{$env.FEED_ID}} | | Data Quality Checks | Validates GTINs, titles, pricing, images | Returns quality_score + all_products | | Split Products | Splits array into individual products | Operation: splitOut, Field: all_products | | Optimize Title | Calls Relevance AI title tool | /tools/{{$env.RELEVANCE_TOOL_TITLE_OPTIMIZER_ID}}/trigger | | Generate Description | Calls Relevance AI description tool | /tools/{{$env.RELEVANCE_TOOL_DESCRIPTION_ID}}/trigger | | Assign Custom Labels | Adds 5 Smart Bidding Labels | Margin, performance, seasonality, stock, category | | Aggregate Products | Combines optimized product data | For batch upload | | Upload to Merchant Center | Posts via NEW Merchant API | /accounts/{id}/products | | Check Product Status | Retrieves upload results | Lists disapproved or pending items | | Analyze Product Issues | Summarizes product disapprovals | Returns disapproval_count and warnings | | IF Disapprovals Found | Conditional routing | Sends alert or success message | | Slack - Alert | Sends error summary to Slack | Includes product name and issue detail | | Slack - Success Summary | Posts daily completion message | Includes counts and optimizations applied | 🧰 Testing Procedure 1️⃣ Temporarily disable the cron schedule 2️⃣ Run manually using “Execute Workflow” 3️⃣ Start with 3–5 products 4️⃣ Check: Slack → Success message Google Merchant → Updated products n8n Execution logs → No failed nodes Once validated → Re-enable the 6 AM trigger 🧾 Example Output Slack Success Message ✅ Shopping Feed Optimization Complete 📊 Summary: • Total Products Processed: 135 • Products with Quality Issues: 12 • Disapprovals: 0 • Warnings: 3 🎯 Optimizations Applied: • Titles optimized for SEO • Descriptions enhanced • Custom labels added API: NEW Merchant API (merchantapi.googleapis.com) Next Run: Tomorrow 6 AM Timestamp: 2025-10-22T06:00:00Z Slack Alert Message 🚨 Merchant Center Disapprovals Alert Total Disapprovals: 5 Total Warnings: 2 Critical Issues: • Product: Wireless Headphones (ID: 4829) Issue: Missing GTIN • Product: Yoga Mat Eco (ID: 7350) Issue: Invalid price Action Required: Review disapproved products in Merchant Center. Timestamp: 2025-10-22T06:00:00Z 📊 Success Metrics | Metric | Goal | | ---------------------------- | ------------------- | | Feed approval rate | ≥ 90% | | AI optimization success rate | ≥ 95% | | Manual review reduction | 80% | | Daily automation uptime | 99.9% | | Scalable throughput | 5,000+ products/day | 🧩 Maintenance Schedule | Frequency | Task | | ------------- | ------------------------------ | | Daily | Monitor Slack alerts | | Weekly | Check disapproval logs | | Monthly | Refresh API tokens | | Quarterly | Tune AI prompts and thresholds | 🪜 Next Steps ✅ Deploy workflow in production 📈 Connect to your performance dashboard 🌍 Extend to multi-language feeds (Relevance AI translations) 💡 Add conversion optimization loop in Google Ads 🔗 References n8n Documentation Relevance AI Documentation Google Merchant API Docs Channable Help Center 🎉 Conclusion You now have a production-grade, AI-driven Shopping Feed Optimization workflow built on: Channable** for structured data ingestion Relevance AI** for content intelligence Google Merchant API** for publishing n8n** as the automation engine 💡 Result: A fully autonomous product feed system that self-improves daily, keeping your listings compliant, optimized, and performing at scale.
by Muhammad Mahamid
📋 Weekly Standup with AI Summary — Telegram + Google Sheets Automate your weekly team standups end-to-end. Bot asks each team member three questions on Telegram, waits for responses, then AI summarizes the entire team's update and sends a clean executive summary to the team lead. All logged to Google Sheets for history. Why This Is Useful Standups are essential but consume hours every week. Slack/Teams threads get messy. Calendar invites get ignored. This template runs your standup automatically — questions go out Monday at 9 AM, the team replies on their phone via Telegram, and by lunchtime the team lead has a clean AI-generated summary. No more "what did everyone do last week?" meetings. No more chasing replies. No more manually writing summaries. How It Works Monday 9 AM — workflow triggers automatically (or run manually anytime) Bot sends questions to each team member privately on Telegram Team replies to the bot with their update (1-2 minute task per person) Workflow waits 4 hours (configurable) for everyone to respond AI reads all responses and generates an executive summary Team lead receives the formatted summary on Telegram Everything logged to Google Sheets for history What You Need Telegram bot** — free, 2 minutes via @BotFather Groq API key** — free, no credit card required (console.groq.com) Google Sheet** with a tab named Standup_Log Smart Features 🤖 AI-Generated Executive Summary Powered by Groq's llama-3.1-8b-instant (free tier). Every summary follows the same structured format: 📌 KEY ACCOMPLISHMENTS LAST WEEK bullet point 1 bullet point 2 🎯 THIS WEEK'S PLAN bullet point 1 bullet point 2 🚧 BLOCKERS & RISKS list any blockers, or "None reported" 💪 TEAM HEALTH One sentence assessment: on track / needs attention / at risk Consistent format means leads can scan summaries in seconds across weeks. 🔄 Smart Retry on Rate Limits When Groq hits rate limits (429), the workflow waits and retries automatically. Up to 2 retries per call. Falls back to raw responses if AI is unavailable — never breaks. 📊 Built-in Tracking Standup_Log sheet** — every "sent" event tracked Missing members** flagged in summary (⚠️ Missing: Sarah, Omar) Response count** shown (👥 Responded: 4/5) Run history** queryable for trends over time 🛡️ Resilient by Design continueOnFail on all Telegram and Sheets nodes One member's network error doesn't break the rest AI failure falls back to raw text — team lead still gets the data Manual trigger lets you test anytime without waiting for Monday Customizable Questions** — edit all three in the Settings node Schedule** — change the cron (default: 0 9 * * 1 = Monday 9 AM) Wait time** — default 4 hours, change to whatever suits your team AI model** — swap to any Groq-supported model in the AI node Team size** — works with 1 to 50+ members (just add chat IDs) Setup Time 10 minutes: Create a Telegram bot via @BotFather (get token) Each team member sends /start to your bot once Get each person's chat ID via @userinfobot Import the JSON into n8n Paste credentials in ⚙️ Settings Connect Telegram credential and Google Sheets credential Click ▶️ Manual Test to verify Activate the workflow Setup Step-by-Step 1. Create Your Bot Open @BotFather on Telegram → /newbot → choose a name → copy the token (looks like 7654321:AAGfHJ...). 2. Get Team Chat IDs Each team member opens @userinfobot → /start → copies the Id: number. Important: every team member must send /start to your bot once before the bot can message them. This is a Telegram security policy. 3. Configure ⚙️ Settings | Field | Example | |---|---| | team_chat_ids | 123456789,987654321,555555555 | | team_names | Ahmad,Sarah,Omar | | team_lead_chat_id | 123456789 (whoever gets the summary) | | question_1, _2, _3 | Customize for your team | | telegram_bot_token | Token from @BotFather | | groq_api_key | Free key from console.groq.com | 4. Connect Credentials 📲 Send to Team** → add Telegram credential (token from step 1) 📲 Send Summary to Lead** → same credential 💾 Log Sent** → add Google Sheets credential, select tab Standup_Log 5. Test Click ▶️ Manual Test → you'll get the standup questions on Telegram → reply to the bot → wait 4 hours (or temporarily change to 2 minutes for testing) → receive AI summary. Use Cases Distributed teams** across timezones — async standups via Telegram Engineering teams** — fast 1-minute updates instead of 30-minute meetings Sales teams** — weekly pipeline updates auto-summarized for the manager Remote startups** — keep founders informed without daily syncs Agency project teams** — stakeholder updates compiled automatically Architecture ⏰ Every Monday 9 AM ──→ ▶️ Manual Test ─────────→ ⚙️ Settings ↓ 📝 Prepare Messages ↓ 📲 Send to Team (Telegram) ↓ 💾 Log Sent (Google Sheets) ↓ ⏳ Wait 4 Hours ↓ 📥 Fetch Responses (Telegram getUpdates) ↓ 🤖 AI Summarize (Groq + retry) ↓ 📲 Send Summary to Lead (Telegram) 10 nodes. Single workflow. Production-ready. Monthly Cost $0. Telegram bots are free. Groq's free tier handles 14,400 requests/day on llama-3.1-8b-instant — way more than weekly standups need. Google Sheets is free. What You Get A team that runs itself. Standups happen on autopilot. The team lead gets a structured weekly summary with zero manual effort. New team members ramp up faster because every week's update is searchable in Google Sheets. Time saved per week: 30-45 minutes per team member + 2-3 hours for the team lead.
by Omer Fayyaz
This n8n template implements a Calendly Booking Link Generator that creates single-use, personalized booking links, logs them to Google Sheets, and optionally notifies a Slack channel Who's it for This template is designed for teams and businesses that send Calendly links proactively and want to generate trackable, single-use booking links on demand. It’s perfect for: Sales and SDR teams** sending 1:1 outreach and needing unique booking links per prospect Customer success and support teams** who want prefilled, one-click rescheduling or follow-up links Marketing and growth teams** that want UTM-tagged booking links for campaigns Ops/RevOps** who need a central log of every generated link for tracking and reporting How it works / What it does This workflow turns a simple HTTP request into a fully configured single-use Calendly booking link: Webhook Trigger (POST) Receives JSON payload with recipient details: name, email, optional event_type_uri, optional utm_source Configuration & Input Normalization Set Configuration extracts and normalizes: recipient_name, recipient_email requested_event_type (can be empty) utm_source (defaults to "n8n" if not provided) Calendly API – User & Event Types Get Current User calls GET /users/me using Calendly OAuth2 to get the current user URI Extract User stores user_uri and user_name Get Event Types calls GET /event_types?user={user_uri}&active=true to fetch active event types Select Event Type: Uses requested_event_type if provided, otherwise selects the first active event type Stores event type URI, name, and duration (minutes) Create Calendly Single-Use Scheduling Link Create Single-Use Link calls POST /scheduling_links with: owner: selected event type URI owner_type: "EventType" max_event_count: 1 (single use) Build Personalized Booking URL Build Personalized Link: Reads the base booking_url from Calendly Appends query parameters to prefill: name (encoded) email (encoded) utm_source Stores: base_booking_url personalized_booking_url recipient_name, recipient_email event_type_name, event_duration link_created_at (ISO timestamp) Optional Logging and Notifications Log to Google Sheets (optional but preconfigured): Appends each generated link to a “Generated Links” sheet Columns: Recipient Name, Recipient Email, Event Type, Duration (min), Booking URL, Created At, Status Notify via Slack (optional): Posts a nicely formatted Slack message with: recipient name & email event name & duration clickable booking link API Response to Caller Respond to Webhook returns a structured JSON response: success booking_url (personalized) base_url recipient object event object (name + duration) created_at expires explanation ("Single-use or 90 days") The result is an API-style service you can call from any system to generate trackable, single-use Calendly links. How to set up 1. Calendly OAuth2 setup Go to calendly.com/integrations or developer.calendly.com Create an OAuth2 application (or use an existing one) In n8n, create Calendly OAuth2 credentials: Add client ID, client secret, and redirect URL as required by Calendly Connect your Calendly user account In the workflow, make sure all Calendly HTTP Request nodes use your Calendly OAuth2 credential 2. Webhook Trigger configuration Open the Webhook Trigger node Confirm: HTTP Method: POST Path: generate-calendly-link Response Mode: Response Node (points to Respond to Webhook) Copy the Production URL from the node once the workflow is active Use this URL as the endpoint for your CRM, outbound tool, or any system that needs to request links Expected request body: { "name": "John Doe", "email": "john@example.com", "event_type_uri": "optional", "utm_source": "optional" } If event_type_uri is not provided, the workflow automatically uses the first active event type for the current Calendly user. 3. Google Sheets setup (optional but recommended) Create a Google Sheet for tracking links Add a sheet/tab named e.g. “Generated Links” Set the header row to: Recipient Name, Recipient Email, Event Type, Duration (min), Booking URL, Created At, Status In n8n: Create Google Sheets OAuth2 credentials Open the Log to Google Sheets node Update: documentId → your spreadsheet ID sheetName → your tab name (e.g. “Generated Links”) 4. Slack notification setup (optional) Create a Slack app at api.slack.com Add Bot Token scopes (for basic posting): chat:write channels:read (or groups:read if posting to private channels) Install the app to your workspace and get the Bot User OAuth Token In n8n: Create a Slack API credential using the bot token Open the Notify via Slack node Select your credential Set: select: channel channelId: your desired channel (e.g. #sales or #booking-links) 5. Test the workflow end-to-end Activate the workflow Use Postman, curl, or another system to POST to the webhook URL, e.g.: { "name": "Test User", "email": "test@example.com" } Verify: The HTTP response contains a valid booking_url A new row is added to your Google Sheet (if configured) A Slack notification is posted (if configured) Requirements Calendly account* with at least one *active event type** n8n instance** (cloud or self-hosted) with public access for the webhook Calendly OAuth2 credentials** configured in n8n (Optional) Google Sheets account and OAuth2 credentials (Optional) Slack workspace with permissions to install a bot and post to channels How to customize the workflow Input & validation Update the Set Configuration node to: Enforce required fields (e.g. fail if email is missing) Add more optional parameters (e.g. utm_campaign, utm_medium, language) Add an IF node after the Webhook Trigger for stricter validation and custom error responses Event type selection logic In Select Event Type: Change the fallback selection rule (e.g. pick the longest or shortest duration event) Add logic to map a custom field (like event_key) to specific event type URIs Link parameters & tracking In Build Personalized Link: Add additional query parameters (e.g. utm_campaign, source, segment) Remove or rename existing parameters if needed If you don’t want prefilled name/email, remove those query parameters and just keep tracking fields Google Sheets logging Extend the Log to Google Sheets mapping to include: utm_source or other marketing attributes Sales owner, campaign name, or pipeline stage Any additional fields you compute in previous nodes Slack notification formatting In Notify via Slack: Adjust the message text to your team’s tone Add emojis or @mentions for certain event types Include utm_source or other metadata for debugging and tracking Key features Single-use Calendly links** – each generated link is limited to one booking (or expires after ~90 days) Prefilled recipient details** – name and email are embedded in the URL, making it frictionless to book Webhook-first design** – easily call this from CRMs, outreach tools, or any external system Central link logging** – every link is stored in Google Sheets for auditing and reporting Optional Slack alerts** – keep sales/support teams notified when new links are generated Safe error handling** – HTTP nodes are configured with continueRegularOutput to avoid hard workflow failures Example scenarios Scenario 1: Sales outreach A CRM workflow triggers when a lead moves to “Meeting Requested”. It calls this n8n webhook with the lead’s name and email. The workflow generates a single-use Calendly link, logs it to Sheets, and posts to Slack. The CRM sends an email to the lead with the personalized booking link. Scenario 2: Automated follow-up link A support ticket is resolved and the system wants to offer a follow-up call. It calls the webhook with name, email, and a dedicated event_type_uri for “Follow-up Call”. The generated link is logged and returned via API, then included in an automated email. Scenario 3: Campaign tracking A marketing automation tool triggers this webhook for each contact in a campaign, passing utm_source (e.g. q1-outbound). The workflow adds utm_source to the link and logs it in Google Sheets. Later, you can analyze which campaigns generated the most completed bookings from single-use links. This template gives you a reliable, reusable Calendly link generation service that plugs into any part of your stack, while keeping tracking, logging, and team visibility fully automated.
by Abdullah Alshiekh
🧩 What Problem Does It Solve? In real estate, inquiries come from many sources and often require immediate, personalized attention. Brokers waste significant time manually: Qualifying leads:** Determining if a prospect's budget, neighborhood, and needs match available inventory. Searching listings:** Cross-referencing customer criteria against a large, static database. Data entry:** Moving contact details and search summaries into a CRM like Zoho. Initial follow-up:** Sending an email to confirm the submission and schedule the next step. 🛠️ How to Configure It Jotform & CRM Setup Jotform Trigger:** Replace the placeholder with your specific Jotform ID. Zoho CRM:** Replace the placeholder TEMPLATED_COMPANY_NAME with your actual company name. Gmail:** Replace the placeholder Calendly link YOUR_CALENDLY_LINK in the Send a message node with your real estate consultant's booking link. Database & AI Setup Google Sheets:** Replace YOUR_GOOGLE_SHEET_DOCUMENT_ID and YOUR_SHEET_GID_OR_NAME in both Google Sheets nodes. Your listings must be structured with columns matching the AI prompt (e.g., bedrooms, rent, neighborhoods). AI Models:** Ensure your Google Gemini API key is linked to the Google Gemini Chat Model node. AI Agent Prompt:** The included prompt contains the exact matching and scoring rules for the AI. You can edit this prompt to refine how the AI prioritizes factors like supplier_rating or neighborhood proximity. 🧠 Use Case Examples Small Startups:** Collect High-Quality Leads: New inquiries must be quickly logged for sales follow-up, but manual entry is slow. B2B Sales:** High-Value Lead Enrichment: Need to prioritize leads that match specific product requirements and budget tiers. Travel/Hospitality:** Personalized Itinerary Matching: Quickly match customer preferences (e.g., dates, group size, activity level) to available packages. E-commerce:** Manual Product Recommendation: Sales teams manually recommend expensive, configurable items (e.g., furniture, specialized equipment). If you need any help Get in Touch
by Rahul Joshi
Description Never miss a lead again with this SLA Breach Alert automation powered by n8n! This workflow continuously monitors your Google Sheets for un-replied leads and automatically triggers instant Telegram alerts, ensuring your team takes immediate action. By running frequent SLA checks, enriching alerts with direct Google Sheet links, and sending real-time notifications, this automation helps prevent unattended leads, reduce response delays, and boost customer engagement. What This Template Does 📅 Runs every 5 minutes to monitor SLA breaches 📋 Fetches lead data (status, contact, timestamps) from Google Sheets 🕒 Identifies leads marked “Un-replied” beyond the 15-minute SLA 🔗 Enriches alerts with direct Google Sheet row links for quick action 📲 Sends Telegram alerts with lead details for immediate response Step-by-Step Setup Prepare Your Google Sheet Create a sheet with the following columns (minimum required): Lead Name Email Phone Status (values: Replied, Un-replied) Timestamp (time of last update/reply) Set Up Google Sheets in n8n Connect your Google account in n8n. Point the workflow to your sheet (remove any hardcoded document IDs before sharing). Configure SLA Check Use the IF node to filter leads where: Status = Un-replied Time since timestamp > 15 minutes Enrich Alerts with Links Add a Code node to generate direct row links to the sheet. Set Up Telegram Bot Create a Telegram bot via @BotFather. Add the bot to your team chat. Store the botToken securely (remove chatId before sharing templates). Send Alerts Configure the Telegram node in n8n to send lead details + direct Google Sheet link. Customization Guidance Adjust the SLA window (e.g., 30 minutes or 1 hour) by modifying the IF node condition. Add more fields from Google Sheets (e.g., Company, Owner) to enrich the alert. Replace Telegram with Slack or Email if your team prefers a different channel. Extend the workflow to auto-assign leads in your CRM once alerted. Perfect For Sales teams that need to respond to leads within strict SLAs Support teams ensuring no customer request is ignored Businesses aiming to keep lead response times sharp and consistent
by Fabian Herhold
Who's it for Sales teams, BDRs, account managers, and customer success professionals who want to show up prepared for every meeting. Perfect for anyone using Calendly who wants to automate prospect research and never walk into a call blind again. Watch the full tutorial here: What it does This workflow automatically researches your meeting attendees the moment they book through Calendly. It combines multiple AI agents to gather comprehensive intelligence: Company Research**: Uses Perplexity AI to validate company details, recent news, funding, leadership changes, and business signals LinkedIn Analysis**: Leverages RapidAPI to analyze the person's profile, recent posts, comments, and engagement patterns from the last 60-90 days Signal Detection**: Identifies hiring signals, growth indicators, and potential risks with confidence scoring Meeting Prep**: Synthesizes everything into personalized talking points, conversation starters, and strategic recommendations The final research brief gets delivered directly to your Slack, saving 30-45 minutes of manual research per meeting. How it works Someone books a meeting via your Calendly (must include LinkedIn URL in booking form) Main AI Agent extracts company domain from email and coordinates three specialist research agents Company Agent researches business intel via Perplexity Person Agent analyzes LinkedIn activity using 4 different RapidAPI endpoints Signal Agent identifies business opportunities and risks Comprehensive meeting brief gets sent to your Slack channel Requirements API Credentials needed: Calendly API (for webhook trigger) OpenAI API key (GPT-4 recommended for orchestration) Perplexity API key (for web research) RapidAPI subscription (for LinkedIn data endpoints) Slack bot token (for output delivery) Important: Your Calendly booking form must include a LinkedIn URL field to get optimal results. How to set up Configure Calendly: Add the Calendly trigger node with your API credentials Update Slack destination: Modify the final Slack node with your user ID or channel Add API keys: Configure all the API credentials in their respective nodes Test the workflow: Book a test meeting through Calendly to verify the complete flow Customize prompts: Adjust the AI agent prompts based on your specific industry or use case The workflow uses structured JSON output with confidence scoring and source citation for reliable, actionable intelligence. How to customize the workflow Change output destination**: Replace Slack with email, Teams, or CRM integration Modify research depth**: Adjust the AI prompts to focus on specific industries or company types Add more signals**: Extend the Signal Research Agent to detect additional business indicators Integrate with CRM**: Add nodes to automatically update contact records in your sales system Schedule follow-ups**: Connect to calendar tools to automatically schedule research updates The modular design makes it easy to adapt for different sales processes and research requirements.
by Olivier
This template syncs prospects from ProspectPro into HubSpot. It checks if a company already exists in HubSpot (by ProspectPro ID or domain), then updates the record or creates a new one. Sync results are logged back in ProspectPro with tags to prevent duplicates and mark errors, ensuring reliable and repeatable integrations. ✨ Features Automatically sync ProspectPro prospects to HubSpot companies Smart search logic: match by ProspectPro ID first, then by domain Creates new HubSpot companies when no match is found Updates existing HubSpot companies with latest ProspectPro data Logs sync results back into ProspectPro with tags (HubspotSynced, HubspotSyncFailed) Extendable and modular: use as a trigger workflow or callable sub-flow ⚙ Requirements n8n instance or cloud workspace Install the ProspectPro Verified Community Node ProspectPro account & API credentials (14-day free trial) HubSpot account with OAuth2 app and API credentials 🔧 Setup Instructions Import the template and set your credentials (ProspectPro, HubSpot). Connect to a trigger (e.g., ProspectPro "New website visitor") or call as a sub-workflow. Add a propery to Hubspot for the ProspectPro ID if you don't already have one Adjust sync logic in the "Continue?"-node and HubSpot fields to match your setup. Optional: extend error handling, add Slack/CRM notifications, or sync back HubSpot data into ProspectPro. 🔐 Security Notes Prevents re-processing of failed syncs using the HubspotSyncFailed tag Error branches included for failed updates/creates Manual resolution required if sync errors persist 🧪 Testing Run with a ProspectPro ID of a company with a known domain Check HubSpot for creation or update of the company record Verify updated tags (HubspotSynced / HubspotSyncFailed) in ProspectPro 📌 About ProspectPro ProspectPro is a B2B Prospecting Platform for Dutch SMEs. It helps sales teams identify prospects, track website visitors, and streamline sales without a full CRM. Website: https://www.prospectpro.nl Platform: https://mijn.prospectpro.nl API docs: https://www.docs.bedrijfsdata.nl Support: https://www.prospectpro.nl/klantenservice Support hours: Monday–Friday, 09:00–17:00 CET 📌 About HubSpot HubSpot is a leading CRM platform offering marketing, sales, and customer service tools. It helps companies manage contacts, automate workflows, and grow their customer base. Website: https://www.hubspot.com Developer Docs: https://developers.hubspot.com
by Stephan Koning
Who’s it for This workflow is for contractors, freelancers, local service businesses, and small teams that receive leads and customer requests through Gmail but do not have a dedicated sales or admin team. What it does This template turns Gmail into an AI lead desk and follow-up tracker. It filters inbox noise, reads real customer emails, and classifies each message by urgency, intent, sentiment, department, technical details, and business value. Each email gets a color-coded response deadline: RED: critical issue, respond within 1 hour ORANGE: urgent lead or follow-up, respond within 4 hours YELLOW: standard lead or request, respond within 24 hours GREEN: low-priority message, respond within 48 hours The first workflow watches Gmail, retrieves and cleans the email, classifies it with AI, and publishes the structured case to Redis. The second workflow listens for Redis events and logs each case to Supabase/PostgreSQL as a lightweight CRM and follow-up dashboard. Requirements Gmail OAuth2 credentials Groq API credentials Redis credentials Supabase/PostgreSQL credentials Optional Mem0 API credentials How to customize Update the blocked Gmail labels, AI prompt, response deadlines, Redis channel, Supabase schema, owner alert logic, and dashboard views to match your business process.