by David Ashby
Complete MCP server exposing all Beeminder Tool operations to AI agents. Zero configuration needed - all 4 operations pre-built. ⚡ Quick Setup Need help? Want access to more workflows and even live Q&A sessions with a top verified n8n creator.. All 100% free? Join the community Import this workflow into your n8n instance Activate the workflow to start your MCP server Copy the webhook URL from the MCP trigger node Connect AI agents using the MCP URL 🔧 How it Works • MCP Trigger: Serves as your server endpoint for AI agent requests • Tool Nodes: Pre-configured for every Beeminder Tool operation • AI Expressions: Automatically populate parameters via $fromAI() placeholders • Native Integration: Uses official n8n Beeminder Tool tool with full error handling 📋 Available Operations (4 total) Every possible Beeminder Tool operation is included: 🔧 Datapoint (4 operations) • Create datapoint for goal • Delete a datapoint • Get many datapoints for a goal • Update a datapoint 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: • Resource IDs and identifiers • Search queries and filters • Content and data payloads • Configuration options Response Format: Native Beeminder Tool API responses with full data structure Error Handling: Built-in n8n error management and retry logic 💡 Usage Examples Connect this MCP server to any AI agent or workflow: • Claude Desktop: Add MCP server URL to configuration • Custom AI Apps: Use MCP URL as tool endpoint • Other n8n Workflows: Call MCP tools from any workflow • API Integration: Direct HTTP calls to MCP endpoints ✨ Benefits • Complete Coverage: Every Beeminder Tool operation available • Zero Setup: No parameter mapping or configuration needed • AI-Ready: Built-in $fromAI() expressions for all parameters • Production Ready: Native n8n error handling and logging • Extensible: Easily modify or add custom logic > 🆓 Free for community use! Ready to deploy in under 2 minutes.
by Nick Saraev
Google Maps Email Scraper System Categories: Lead Generation, Web Scraping, Business Automation This workflow creates a completely free Google Maps email scraping system that extracts unlimited business emails without requiring expensive third-party APIs. Built entirely in N8N using simple HTTP requests and JavaScript, this system can generate thousands of targeted leads for any industry or location while operating at 99% free cost structure. Benefits Zero API Costs** - Operates entirely through free Google Maps scraping without expensive third-party services Unlimited Lead Generation** - Extract emails from thousands of Google Maps listings across any industry Geographic Targeting** - Search by specific cities, regions, or business types for precise lead targeting Complete Automation** - From search query to organized email list with minimal manual intervention Built-in Data Cleaning** - Automatic duplicate removal, filtering, and data validation Scalable Processing** - Handle hundreds of businesses per search with intelligent rate limiting How It Works Google Maps Search Integration: Uses strategic HTTP requests to Google Maps search URLs Processes search queries like "Calgary + dentist" to extract business listings Bypasses API restrictions through direct HTML scraping techniques Intelligent URL Extraction: Custom JavaScript regex patterns extract website URLs from Google Maps data Filters out irrelevant domains (Google, schema, static files) Returns clean list of actual business websites for processing Smart Website Processing: Loop-based architecture prevents IP blocking through intelligent batching Built-in delays and redirect handling for reliable scraping Processes each website individually with error handling Email Pattern Recognition: Advanced regex patterns identify email addresses within website HTML Extracts contact emails, info emails, and administrative addresses Handles multiple email formats and validation patterns Data Aggregation & Cleaning: Automatically removes duplicate emails across all processed websites Filters null entries and invalid email formats Exports clean, organized email lists to Google Sheets Required Google Sheets Setup Create a Google Sheet with these exact column headers: Search Tracking Sheet: searches - Contains your search queries (e.g., "Calgary dentist", "Miami lawyers") Email Results Sheet: emails - Contains extracted email addresses from all processed websites Setup Instructions: Create Google Sheet with two tabs: "searches" and "emails" Add your target search queries to the searches tab (one per row) Connect Google Sheets OAuth credentials in n8n Update the Google Sheets document ID in all sheet nodes The workflow reads search queries from the first sheet and exports results to the second sheet automatically. Business Use Cases Local Service Providers** - Find competitors and potential partners in specific geographic areas B2B Sales Teams** - Generate targeted prospect lists for cold outreach campaigns Marketing Agencies** - Build industry-specific lead databases for client campaigns Real Estate Professionals** - Identify businesses in target neighborhoods for commercial opportunities Franchise Development** - Research potential markets and existing competition Market Research** - Analyze business density and contact information across regions Revenue Potential This system transforms lead generation economics: $0 per lead vs. $2-5 per lead from paid databases Process 1,000+ leads daily without hitting API limits Sell as a service for $500-2,000 per industry/location Perfect for agencies offering lead generation to local businesses Difficulty Level: Intermediate Estimated Build Time: 1-2 hours Monthly Operating Cost: $0 (completely free) Watch My Complete Build Process Want to watch me build this entire system live from scratch? I walk through every single step - including the JavaScript code, regex patterns, error handling, and all the debugging that goes into creating a bulletproof scraping system. 🎥 Watch My Live Build: "Scrape Unlimited Leads WITHOUT Paying for APIs (99% FREE)" This comprehensive tutorial shows the real development process - including writing custom JavaScript, handling rate limits, and building systems that actually work at scale without getting blocked. Set Up Steps Basic Workflow Architecture: Set up manual trigger for testing and Google Sheets integration Configure initial HTTP request node for Google Maps searches Enable SSL ignore and response headers for reliable scraping URL Extraction Code Setup: Configure JavaScript code node with custom regex patterns Set up input data processing from Google Maps HTML responses Implement URL filtering logic to remove irrelevant domains Website Processing Pipeline: Add "Split in Batches" node for intelligent loop processing Configure HTTP request nodes with proper delays and redirect handling Set up error handling for websites that can't be scraped Email Extraction System: Implement JavaScript code node with email-specific regex patterns Configure email validation and format checking Set up data aggregation for multiple emails per website Data Cleaning & Export: Configure filtering nodes to remove null entries and duplicates Set up "Split Out" node to aggregate emails into single list Connect Google Sheets integration for organized data export Testing & Optimization: Use limit nodes during testing to prevent IP blocking Test with small batches before scaling to full searches Implement proxy integration for high-volume usage Advanced Optimizations Scale the system with: Multi-Page Scraping:** Extract URLs from homepages, then scrape contact pages for more emails Proxy Integration:** Add residential proxies for unlimited scraping without rate limits Industry Templates:** Create pre-configured searches for different business types Contact Information Expansion:** Extract phone numbers, addresses, and social media profiles CRM Integration:** Automatically add leads to sales pipelines and marketing sequences Important Considerations Rate Limiting:** Built-in delays prevent IP blocking during normal usage Scalability:** For high-volume usage, consider proxy services for unlimited requests Compliance:** Ensure proper usage rights for extracted contact information Data Quality:** System includes filtering but manual verification recommended for critical campaigns Check Out My Channel For more advanced automation systems and business-building strategies that generate real revenue, explore my YouTube channel where I share proven automation techniques used by successful agencies and entrepreneurs.
by Mario
Purpose This workflow snippet allows for advanced error catching during retry attempts. There are cases, where you want to check if an item exists first, so you can determine the following actions. Some API’s do not support an endpoint (e.g. Todoist: completed tasks) to do so, which is why you would work with the error branch, only that this does not work well in combination with the retry functionality. How it works Instead of the builtin retry function of a Node a custom loop is used, to get more granular control in between the iterations If the main executed node fails, the error can be filtered for an expected error, which can trigger a separate action The retries only happen, if an unexpected error happened The workflow only stops, if the defined amount of retries exceeded Setup Copy the nodes into your existing workflow Replace the “Replace me” placeholder with the Node you want to apply the retry logic on Follow the sticky notes for more instructions and optional settings
by Tiartyos
Voice Cloning Workflow - Zyphra Zonos API Who is this for? This workflow is designed for developers, content creators, and businesses looking to automate high-quality voice synthesis using AI voice cloning technology. What problem does this solve? It automates the process of generating natural-sounding speech from text using a sample voice file, eliminating the need for manual voice recording and providing consistent voice output for applications like audiobooks, virtual assistants, or content localization. What this workflow does The workflow receives text and voice cloning parameters via webhook, reads a sample voice file from your storage, sends the data to Zyphra's Zonos API for voice synthesis, and saves the generated audio file to your specified output location. Prerequisites You'll need: API key from Zyphra (obtain from https://playground.zyphra.com/settings/api-keys) Account registration at https://playground.zyphra.com Sample voice file stored on accessible disk/cloud storage n8n instance running with webhook capabilities Setup Configure your Zyphra API key in the "Call Zyphra Clone API" node under Header Parameters (Name: X-API-Key, Value: your-api-key) Ensure your sample voice files are accessible at the paths you'll specify Test the webhook endpoint is accessible Supported Audio Formats The API supports multiple output formats through the mime_type parameter: WebM** (default) - audio/webm Ogg** - audio/ogg WAV** - audio/wav MP3** - audio/mp3 or audio/mpeg MP4/AAC** - audio/mp4 or audio/aac Usage Example Endpoint: POST http://localhost:5678/webhook-test/voice-clone Headers: Content-Type: application/json Request Body: { "text": "Hello there! This voice sounds just like the sample!", "speaking_rate": 18, "sample_voice_path": "/data/output/sampleVoice.wav", "output_path": "/data/output/", "language_iso_code": "en-us", "mime_type": "audio/wav", "model": "zonos-v0.1-transformer", "emotion": { "happiness": 0.8, "neutral": 0.3, "sadness": 0.05, "disgust": 0.05, "fear": 0.05, "surprise": 0.05, "anger": 0.05, "other": 0.5 } } Parameters Required Parameters text**: Text to synthesize into speech sample_voice_path**: Path to your voice sample file output_path**: Directory where generated audio will be saved Optional Parameters (with defaults) speaking_rate**: 15 - Speech speed language_iso_code**: "en-us" - Language code mime_type**: "audio/wav" - Output audio format model**: "zonos-v0.1-transformer" - AI model to use emotion**: Object with emotion levels (0-1 scale)
by David Olusola
AI-Powered Airtable Contact Manager Overview The AI-Powered Airtable Contact Manager is an intelligent n8n workflow that enables AI assistants to seamlessly manage contact data in Airtable through natural language interactions. Using the Model Context Protocol (MCP), this workflow bridges the gap between conversational AI and structured data management. How It Works This workflow creates a powerful AI-to-database interface that allows users to manage their Airtable contacts through natural language commands. Here's the complete flow: 1. AI Interaction Layer Users interact with an AI assistant using natural language Examples: "Add John Doe to contacts", "Find all contacts assigned to Sarah", "Show me contact details for ID xyz" 2. MCP Server Trigger The AI assistant processes the user's request and identifies the needed operation Sends structured commands to the n8n workflow via the MCP (Model Context Protocol) Acts as the intelligent routing system for all contact operations 3. Airtable Operations The workflow provides four core contact management functions: 🔍 Get Record: Retrieves specific contact details using a Record ID Input: Record ID from AI Output: Complete contact information (Name, Email, Assignee, Status) ➕ Create Record: Adds new contacts to the database Input: Contact details (Name, Email, Assignee) Output: New record with auto-generated ID and default status 🗑️ Delete Record: Removes contacts permanently Input: Record ID to delete Output: Confirmation of successful deletion 🔎 Search Records: Finds contacts using flexible criteria Input: Airtable formula for filtering Output: All matching contact records 4. Smart Data Handling The workflow uses AI-powered field mapping with $fromAI() functions Automatically extracts relevant information from natural language requests Maintains data integrity with proper field validation Setup Steps Prerequisites n8n instance (cloud or self-hosted) Airtable account with API access MCP-compatible AI system Step 1: Airtable Preparation Create Airtable Base: Set up a new base or use existing one Note your Base ID (starts with app) Set Up Contact Table: Create a table with these fields: Name (Single line text) email (Email) Assignee (Single line text) Status (Single select: Todo, In progress, Done) Note your Table ID (starts with tbl) Generate API Token: Go to https://airtable.com/developers/web/api/introduction Create a personal access token with full permissions Save this token securely Step 2: n8n Configuration Import Workflow: Copy the enhanced JSON workflow Import into your n8n instance Configure Airtable Credentials: Go to Credentials in n8n Create new "Airtable Personal Access Token" credential Enter your Airtable API token Name it "full access" (or update credential references in workflow) Update Base and Table IDs: Replace YOUR_AIRTABLE_BASE_ID with your actual Base ID (starts with app) Replace YOUR_AIRTABLE_TABLE_ID with your actual Table ID (starts with tbl) Update in all four Airtable nodes Update Credential References: Replace your-airtable-credential-id with your actual credential ID Or rename your credential to match "Airtable API Token" Step 3: MCP Integration Configure MCP Server: Set up your MCP server to communicate with n8n Replace your-webhook-path-here and your-webhook-id-here with your actual webhook details Configure your AI system to use this workflow Update Node IDs (Optional): The workflow uses placeholder node IDs for privacy n8n will auto-generate new IDs when you import No action needed unless you're referencing specific nodes Test the Integration: Activate the workflow in n8n Test each operation through your AI interface Verify data flows correctly between AI and Airtable Step 4: Customization (Optional) Add More Fields: Extend the Airtable schema as needed Update the Create Record node field mappings Modify the Search Record filters Enhanced Error Handling: Add error handling nodes Set up notifications for failed operations Implement retry logic for reliability Usage Examples Once set up, users can interact with the system naturally: Creating Contacts: "Add Sarah Johnson with email sarah@company.com, assign to Mike" "Create a new contact for David Wilson, email david@startup.io" Finding Contacts: "Show me all contacts assigned to Jennifer" "Find contacts with status 'In progress'" "Search for contacts with gmail addresses" Managing Records: "Get details for contact rec123ABC" "Delete the contact with ID rec456DEF" "Update John's status to Done" Benefits Natural Language Interface**: No technical knowledge required Automated Data Entry**: Reduces manual work and errors Flexible Searching**: Find contacts using any criteria AI-Powered**: Leverages advanced language understanding Scalable**: Easily extend with more operations Integrated**: Works seamlessly with existing Airtable workflows Technical Notes Uses n8n's $fromAI() function for intelligent data extraction Implements MCP for standardized AI-to-automation communication Supports Airtable's formula syntax for complex searches Maintains security through proper credential management Designed for high reliability with error handling capabilities This workflow transforms contact management from a manual, time-consuming task into an effortless, conversational experience powered by AI.
by David Ashby
Complete MCP server exposing 2 Wayback API operations to AI agents. ⚡ Quick Setup Need help? Want access to more workflows and even live Q&A sessions with a top verified n8n creator.. All 100% free? Join the community Import this workflow into your n8n instance Credentials Add Wayback API credentials Activate the workflow to start your MCP server Copy the webhook URL from the MCP trigger node Connect AI agents using the MCP URL 🔧 How it Works This workflow converts the Wayback API into an MCP-compatible interface for AI agents. • MCP Trigger: Serves as your server endpoint for AI agent requests • HTTP Request Nodes: Handle API calls to https://api.archive.org • AI Expressions: Automatically populate parameters via $fromAI() placeholders • Native Integration: Returns responses directly to the AI agent 📋 Available Operations (2 total) 🔧 Wayback (2 endpoints) • GET /wayback/v1/available: GET /wayback/v1/available • POST /wayback/v1/available: POST /wayback/v1/available 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: • Path parameters and identifiers • Query parameters and filters • Request body data • Headers and authentication Response Format: Native Wayback API responses with full data structure Error Handling: Built-in n8n HTTP request error management 💡 Usage Examples Connect this MCP server to any AI agent or workflow: • Claude Desktop: Add MCP server URL to configuration • Cursor: Add MCP server SSE URL to configuration • Custom AI Apps: Use MCP URL as tool endpoint • API Integration: Direct HTTP calls to MCP endpoints ✨ Benefits • Zero Setup: No parameter mapping or configuration needed • AI-Ready: Built-in $fromAI() expressions for all parameters • Production Ready: Native n8n HTTP request handling and logging • Extensible: Easily modify or add custom logic > 🆓 Free for community use! Ready to deploy in under 2 minutes.
by David Ashby
Complete MCP server exposing 2 CarbonDoomsDay API operations to AI agents. ⚡ Quick Setup Need help? Want access to more workflows and even live Q&A sessions with a top verified n8n creator.. All 100% free? Join the community Import this workflow into your n8n instance Credentials Add CarbonDoomsDay credentials Activate the workflow to start your MCP server Copy the webhook URL from the MCP trigger node Connect AI agents using the MCP URL 🔧 How it Works This workflow converts the CarbonDoomsDay API into an MCP-compatible interface for AI agents. • MCP Trigger: Serves as your server endpoint for AI agent requests • HTTP Request Nodes: Handle API calls to https://api.carbondoomsday.com/api • AI Expressions: Automatically populate parameters via $fromAI() placeholders • Native Integration: Returns responses directly to the AI agent 📋 Available Operations (2 total) 🔧 Co2 (2 endpoints) • GET /co2/: Get CO2 Measurement by Date • GET /co2/{date}/: CO2 measurements from the Mauna Loa observatory. This data is made available through the good work of the people at the Mauna Loa observatory. Their release notes say: These data are made freely available to the public and the scientific community in the belief that their wide dissemination will lead to greater understanding and new scientific insights. We currently scrape the following sources: [co2_mlo_weekly.csv] [co2_mlo_surface-insitu_1_ccgg_DailyData.txt] [weekly_mlo.csv] We have daily CO2 measurements as far back as 1958. Learn about using pagination via [the 3rd party documentation]. [co2_mlo_weekly.csv]: https://www.esrl.noaa.gov/gmd/webdata/ccgg/trends/co2_mlo_weekly.csv [co2_mlo_surface-insitu_1_ccgg_DailyData.txt]: ftp://aftp.cmdl.noaa.gov/data/trace_gases/co2/in-situ/surface/mlo/co2_mlo_surface-insitu_1_ccgg_DailyData.txt [weekly_mlo.csv]: http://scrippsco2.ucsd.edu/sites/default/files/data/in_situ_co2/weekly_mlo.csv [the 3rd party documentation]: http://www.django-rest-framework.org/api-guide/pagination/#pagenumberpagination 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: • Path parameters and identifiers • Query parameters and filters • Request body data • Headers and authentication Response Format: Native CarbonDoomsDay API responses with full data structure Error Handling: Built-in n8n HTTP request error management 💡 Usage Examples Connect this MCP server to any AI agent or workflow: • Claude Desktop: Add MCP server URL to configuration • Cursor: Add MCP server SSE URL to configuration • Custom AI Apps: Use MCP URL as tool endpoint • API Integration: Direct HTTP calls to MCP endpoints ✨ Benefits • Zero Setup: No parameter mapping or configuration needed • AI-Ready: Built-in $fromAI() expressions for all parameters • Production Ready: Native n8n HTTP request handling and logging • Extensible: Easily modify or add custom logic > 🆓 Free for community use! Ready to deploy in under 2 minutes.
by Mutasem
How it works This workflow adds a priority to each Todoist item in your inbox, based on a list of projects that you add in the workflow. Setup Add your Todoist credentials Add your OpenAI credentials Set your project names and add priority
by Joseph LePage
✨😃 Automated Workflow Backups to Google Drive This workflow automates the process of backing up your n8n workflows to Google Drive daily. It creates timestamped folders, saves workflows as JSON files, and manages old backups by retaining only the most recent seven days of data. Notifications are sent via Telegram to keep you informed of the backup status. How It Works Backup Creation Process 🗂️ Triggering Backups**: The workflow starts with either a manual trigger or a scheduled trigger that runs daily. Folder Creation**: Creates a new folder in Google Drive with a timestamped name (e.g., n8n-Workflow-Backups-YYYY-MM-DD). Workflow Retrieval**: Fetches all workflows from your n8n instance. File Conversion**: Converts each workflow into a JSON file for storage. File Upload**: Saves the JSON files into the newly created Google Drive folder. Backup Management 🔄 Folder Search**: Searches for existing backup folders in Google Drive with names matching n8n-Workflow-Backups. Retention Policy**: Identifies folders older than seven days using a custom JavaScript function and deletes them permanently to free up space. Notifications 📲 Telegram Alerts**: Sends a message via Telegram once the backup process is complete, including the folder name and a link to access it in Google Drive. Setup Steps API Configuration 🔑 Google Drive Integration: Set up Google Drive OAuth2 credentials in n8n. Specify the root folder or desired location for backups. n8n API Access: Configure n8n API credentials to allow fetching workflows. Telegram Notifications: Add your Telegram bot credentials and chat ID for notification delivery. Workflow Customization ⚙️ Define the schedule for automatic backups (e.g., daily at midnight). Adjust the retention period if you need more or fewer days of backups. Customize the Telegram message format as needed. Testing & Deployment 🚀 Run the workflow manually to verify folder creation and file uploads. Check that old folders are deleted correctly after seven days. Confirm Telegram notifications are sent with accurate details. Use Case Scenarios This workflow is perfect for teams or individuals who want to ensure their n8n workflows are securely backed up and organized. It is especially useful for: Protecting against accidental data loss. Automating routine administrative tasks. By combining automated backups, retention management, and real-time notifications, this workflow ensures your n8n workflows are always safe and accessible!
by David Ashby
Complete MCP server exposing 3 Background Removal API operations to AI agents. ⚡ Quick Setup Need help? Want access to more workflows and even live Q&A sessions with a top verified n8n creator.. All 100% free? Join the community Import this workflow into your n8n instance Credentials Add Background Removal API credentials Activate the workflow to start your MCP server Copy the webhook URL from the MCP trigger node Connect AI agents using the MCP URL 🔧 How it Works This workflow converts the Background Removal API into an MCP-compatible interface for AI agents. • MCP Trigger: Serves as your server endpoint for AI agent requests • HTTP Request Nodes: Handle API calls to https://api.remove.bg/v1.0 • AI Expressions: Automatically populate parameters via $fromAI() placeholders • Native Integration: Returns responses directly to the AI agent 📋 Available Operations (3 total) 🔧 Account (1 endpoints) • GET /account: Fetch Account Balance 🔧 Improve (1 endpoints) • POST /improve: Submit Image for Improvement 🔧 Removebg (1 endpoints) • POST /removebg: Remove Image Background 🤖 AI Integration Parameter Handling: AI agents automatically provide values for: • Path parameters and identifiers • Query parameters and filters • Request body data • Headers and authentication Response Format: Native Background Removal API responses with full data structure Error Handling: Built-in n8n HTTP request error management 💡 Usage Examples Connect this MCP server to any AI agent or workflow: • Claude Desktop: Add MCP server URL to configuration • Cursor: Add MCP server SSE URL to configuration • Custom AI Apps: Use MCP URL as tool endpoint • API Integration: Direct HTTP calls to MCP endpoints ✨ Benefits • Zero Setup: No parameter mapping or configuration needed • AI-Ready: Built-in $fromAI() expressions for all parameters • Production Ready: Native n8n HTTP request handling and logging • Extensible: Easily modify or add custom logic > 🆓 Free for community use! Ready to deploy in under 2 minutes.
by Bela
How it works: Webhook URL that responds to Requests with an AI generated Image based on the prompt provided in the URL. Setup Steps: Ideate your prompt URL Encode The Prompt (as shown in the Template) Authenticate with your OpenAI Credentials Put together the Webhook URL with your prompt and enter into a webbrowser In this way you can expose a public url to users, employee's etc. without exposing your OpenAI API Key to them. Click here to find a blog post with additional information.
by InfyOm Technologies
✅ What problem does this workflow solve? Tired of the back-and-forth involved in scheduling meetings? This workflow lets you offer a seamless, voice-based appointment booking experience. It automatically checks your Cal.com availability and either books a meeting or helps the caller choose another time—powered by ElevenLabs for a human-like voice interaction. ⚙️ What does this workflow do? Receives an inbound voice call (e.g., from a website or IVR system). Uses ElevenLabs to drive the voice interaction with natural, AI-generated speech. Checks real-time availability from your Cal.com calendar. Books a meeting if a slot is available. If not, asks the user to suggest a new time and checks availability again. Confirms the appointment with a verbal response and optional email or SMS. 🔧 Setup 🧠 ElevenLabs Custom Tools Setup Add two tools in Custom Tools in ElevenLabs with the following details. Name: bookSlot Description: Use this tool when the user confirms their slot and appointment. When you have the proper name and email of theirs. POST: {n8n_webhook_url} Name: checkAvailableSlot Description: Use this slot to check Available slots in our calendar. POST: {n8n_webhook_url} 🗣 ElevenLabs Prompt Configuration First Message: Thanks for calling InfyOm Technologies. How can I help you? Use the following System Prompt: 1. Personality You are a clear, helpful, and respectful assistant focused solely on booking appointments for clients. Identity**: A virtual appointment scheduler. Core Traits**: Polite, efficient, conversational, respectful. Role**: Guide users through choosing a time, checking availability, and finalizing the booking. 2. Tone Your tone is polite, professional, and engaging—friendly enough to feel human, but focused enough to stay on task. Use conversational cues like “Okay,” “Got it,” “Sounds good,” etc. Maintain a warm but efficient pace. Speak clearly and respectfully at all times. Ensure the conversation is on both topics. 3. Goal Your task is to book an appointment for the client. Step-by-step Conversation Flow Greeting & Purpose Greet politely and state the purpose. Example: “Hi! I’m here to help you book an appointment.” Request Preferred Time Ask: “Can you please tell me your preferred time slot for the appointment?” Understand the user's date, and if it is not clear, then ask for the full date with month and year. Check Availability Use the checkAvailableSlot tool with the user’s preferred time. If the slot is available: Confirm with the user: “That slot is available. Should I go ahead and book it for you?” If the user agrees, → Use bookSlot. If the slot is not available: Say: “It looks like that time isn’t available... Would you like to look for the same time on the next day?” Handle Next-Day Option If the user agrees, check availability for the same time on the next day using checkAvailableSlot. If available, → confirm and use bookSlot. If not, → politely inform and ask for a different time. Close the Call Confirm the booking if done. Example: “Great! Your appointment is booked. Thank you and have a wonderful day!” 4. Guardrails Do not** discuss anything unrelated to appointment booking. If the user asks for something outside your scope: Say: “I’m only here to help with appointment bookings. For other questions, please contact our support team.” Never speculate about unavailable data or functions. Never ask for a date format from the User, like Say date in Day Month and Year format. If you can't understand the user's date, then say Please speak the full date. 5. Tools You can use the following tools to help book appointments: checkAvailableSlot: Use this to check if the user’s requested time is open. bookSlot: Use this to confirm the appointment after the user agrees. End call Always says Thanks for reaching out to us. Have a nice day. 📅 Cal.com API Setup Go to cal.com and generate an API Key. Create new Cal API credentials in n8n. Set this API Key in the credentials. 🧠 How it Works ☎️ 1. Incoming Call An inbound call is received by the system, and the user begins the conversation with your voice AI agent. 🧏 2. Voice Interaction via ElevenLabs The caller is greeted and asked for their preferred appointment time. All conversations are powered by natural AI speech from ElevenLabs. 🗓 3. Availability Check (Cal.com) The requested time is validated against your Cal.com availability: ✅ If available, the appointment is booked instantly. ❌ If unavailable, the agent informs the caller and asks for another time. 🔁 4. Retry Loop (If Slot Unavailable) If the initial slot is unavailable: The agent asks for a new preferred time. The process repeats until a valid slot is found or a fallback message is delivered. ✅ 5. Appointment Confirmation Once booked, the AI confirms the appointment verbally. You may also configure it to send: 📧 Email confirmations 📱 SMS reminders (optional) 👤 Who can use it? This is perfect for: 🧑⚕️ Clinics or Therapists 🧑💼 Consultants & Coaches 🏢 Sales Teams 🧠 AI-first SaaS Tools If your business relies on scheduled meetings and you'd like to automate bookings using a conversational voice experience, this is your go-to no-code solution.