Automated appointment approval system with GPT-4 Mini, JotForm, and Telegram
AI Powered All Purpose Appointment System via JotForm
What This Workflow Does
This template automates the entire appointment request lifecycle using AI. When someone submits an appointment request through JotForm, the system automatically sends details for approval, generates personalized confirmation or rejection emails using OpenAI, and maintains records—all without manual intervention.
Whether you're running a clinic, consulting business, training center, or any service-based operation, this workflow eliminates repetitive email writing and ensures consistent, professional communication. It's fully customizable to work with any appointment form structure.
Who's It For
- Service providers (consultants, trainers, coaches)
- Healthcare professionals
- Educational institutions
- Salon and wellness businesses
- Event coordinators
- Any business handling appointment requests at scale
How It Works
- Form Submission – Appointment request arrives via JotForm
- Data Extraction – System pulls name, email, phone, date, time, and visit type
- Approval Request – Details are sent to Telegram for review and approval
- AI Email Generation – OpenAI creates personalized confirmation or rejection email based on approval status
- Smart Routing – If approved: records in Google Sheets and sends confirmation. If rejected: removes from system and sends reschedule notice
- Automated Follow-up – Requester receives professional email instantly
Getting Started (Quick Setup)
Step 1: Choose Your JotForm
- Select any existing appointment form or create a new one in JotForm
- The workflow works with any form structure
Step 2: Map Your Form Fields
- Identify the field names in your JotForm (name, email, phone, appointment date, time, etc.)
- Update the "Parse: Extract Appointment Details" node with your exact field names
- This ensures the workflow reads data correctly from your specific form
Step 3: Follow Full Setup Steps
- Connect JotForm – Copy the Form ID and API Key
- Configure Google Sheets – Create a sheet for appointment records and copy the spreadsheet ID
- Setup Telegram – Create a bot via BotFather for approval notifications
- Add OpenAI Credentials – Generate an API key at platform.openai.com
- Authorize Gmail – Enable Gmail API in Google Cloud Console
Why This Is Customizable
The workflow is built to be flexible from the start. Whether your form collects appointment type, service category, special requests, or any other field, you can easily map those fields into the flow. Just identify what data your form collects and tell the workflow where to find it.
Requirements
- JotForm account with an appointment form
- Google Sheets for record keeping
- Telegram account and bot (for approvals)
- OpenAI API key (paid account recommended)
- Gmail account for sending emails
- n8n instance (self-hosted or cloud)
How to Customize
- Change Approval Channel – Replace Telegram with Slack, Discord, or email by swapping the notification node
- Modify Email Templates – Edit the AI prompt in "Generate: Appointment Response Email" to match your tone and branding
- Add More Fields – Update the Set node to capture additional information from your JotForm like appointment type, service category, or special requests
- Adjust Routing Logic – Modify the conditional node to add approval stages or auto-confirm certain appointment types
- Connect CRM – Add steps to automatically create contacts in HubSpot, Pipedrive, or Salesforce
- Enable Reminders – Use Gmail or SMS nodes to send appointment reminders 24 hours before scheduled time
- Extend Data Collection – Map any custom fields from your JotForm by updating the extraction node to include them
Automated Appointment Approval System with GPT-4 Mini, Jotform, and Telegram
This n8n workflow automates the process of handling new appointment requests submitted via Jotform. It leverages an AI agent (GPT-4 Mini) to evaluate the appointment details, then sends a notification to a Telegram group for human approval. Based on the approval decision, it updates a Google Sheet and sends a confirmation or rejection email via Gmail.
What it does
- Listens for New Jotform Submissions: The workflow is triggered whenever a new form entry is submitted to a specified Jotform form.
- Extracts and Structures Appointment Data: It processes the incoming Jotform data, extracting relevant fields like client name, appointment type, preferred date/time, and any specific requests.
- Analyzes Appointment Request with AI: An AI Agent (configured with an OpenAI Chat Model) evaluates the appointment details to determine if it's a suitable request, potentially identifying conflicts or special requirements.
- Sends Approval Request to Telegram: A message containing the appointment details and the AI's assessment is sent to a designated Telegram chat for a human administrator to review.
- Waits for Human Approval/Rejection: The workflow pauses, awaiting a response (approval or rejection) from the Telegram chat.
- Conditional Processing based on Decision:
- If Approved:
- The appointment status is updated to "Approved" in a Google Sheet.
- A confirmation email is sent to the client via Gmail.
- If Rejected:
- The appointment status is updated to "Rejected" in a Google Sheet.
- A rejection email is sent to the client via Gmail.
- If Approved:
- Logs Activity (Implicit): The Google Sheet serves as a log for all appointment requests and their final status.
Prerequisites/Requirements
To use this workflow, you will need:
- n8n Instance: A running n8n instance.
- Jotform Account: A Jotform account with a form set up to collect appointment requests.
- Telegram Account: A Telegram account and a bot token for sending messages to a group.
- OpenAI API Key: An OpenAI API key for the AI Agent (e.g., GPT-4 Mini).
- Google Sheets Account: A Google Sheets account and a specific spreadsheet to record appointment data.
- Gmail Account: A Gmail account for sending confirmation/rejection emails.
Setup/Usage
- Import the Workflow: Download the provided JSON and import it into your n8n instance.
- Configure Credentials:
- Jotform Trigger: Set up your Jotform credential and select the form you want to monitor.
- Telegram: Configure your Telegram Bot API credential and specify the
Chat IDof the group where approval requests should be sent. - OpenAI Chat Model: Provide your OpenAI API Key credential.
- Google Sheets: Set up your Google Sheets credential and specify the
Spreadsheet IDandSheet Namewhere appointment data will be stored/updated. - Gmail: Configure your Gmail credential.
- Review and Adjust Nodes:
- Edit Fields (Set): This node likely transforms the incoming Jotform data into a standardized format for the AI and subsequent nodes. Adjust the field mapping to match your Jotform's output.
- AI Agent: Configure the prompt for the AI Agent to guide its evaluation of appointment requests. Ensure it outputs a clear "approved" or "rejected" status and a reason.
- Structured Output Parser: If the AI Agent's output is JSON, this node will parse it. Ensure the schema matches the expected AI output.
- If: This node will have conditions based on the AI's output (e.g.,
if AI_Decision == "Approved"). Verify these conditions are correctly set. - Google Sheets (Update): Ensure the "Approved" and "Rejected" branches correctly update the status column in your Google Sheet.
- Telegram: Customize the message content for approval requests.
- Gmail: Customize the content of the approval and rejection emails.
- Activate the Workflow: Once all credentials and nodes are configured, activate the workflow.
Now, every new Jotform submission will initiate the automated approval process.
Related Templates
Synchronizing WooCommerce inventory and creating products with Google Gemini AI and BrowserAct
Synchronize WooCommerce Inventory & Create Products with Gemini AI & BrowserAct This sophisticated n8n template automates WooCommerce inventory management by scraping supplier data, updating existing products, and intelligently creating new ones with AI-formatted descriptions. This workflow is essential for e-commerce operators, dropshippers, and inventory managers who need to ensure their product pricing and stock levels are synchronized with multiple third-party suppliers, minimizing overselling and maximizing profit. --- Self-Hosted Only This Workflow uses a community contribution and is designed and tested for self-hosted n8n instances only. --- How it works The workflow is typically run by a Schedule Trigger (though a Manual Trigger is also shown) to check stock automatically. It reads a list of suppliers and their inventory page URLs from a central Google Sheet. The workflow loops through each supplier: A BrowserAct node scrapes the current stock and price data from the supplier's inventory page. A Code node parses this bulk data into individual product items. It then loops through each individual product found. The workflow checks WooCommerce to see if the product already exists based on its name. If the product exists: It proceeds to update the existing product's price and stock quantity. If the product DOES NOT exist: An If node checks if the missing product's category matches a predefined type (optional filtering). If it passes the filter, a second BrowserAct workflow scrapes detailed product attributes from a dedicated product page (e.g., DigiKey). An AI Agent (Gemini) transforms these attributes into a specific, styled HTML table for the product description. Finally, the product is created in WooCommerce with all scraped details and the AI-generated description. Error Handling: Multiple Slack nodes are configured to alert your team immediately if any scraping task fails or if the product update/creation process encounters an issue. Note: This workflow does not support image uploads for new products. To enable this functionality, you must modify both the n8n and BrowserAct workflows. --- Requirements BrowserAct API account for web scraping BrowserAct n8n Community Node -> (n8n Nodes BrowserAct) BrowserAct templates named “WooCommerce Inventory & Stock Synchronization” and “WooCommerce Product Data Reconciliation” Google Sheets credentials for the supplier list WooCommerce credentials for product management Google Gemini account for the AI Agent Slack credentials for error alerts --- Need Help? How to Find Your BrowseAct API Key & Workflow ID How to Connect n8n to Browseract How to Use & Customize BrowserAct Templates How to Use the BrowserAct N8N Community Node --- Workflow Guidance and Showcase STOP Overselling! Auto-Sync WooCommerce Inventory from ANY Supplier
Automate RSS to social media pipeline with AI, Airtable & GetLate for multiple platforms
Overview Automates your complete social media content pipeline: sources articles from Wallabag RSS, generates platform-specific posts with AI, creates contextual images, and publishes via GetLate API. Built with 63 nodes across two workflows to handle LinkedIn, Instagram, and Bluesky—with easy expansion to more platforms. Ideal for: Content marketers, solo creators, agencies, and community managers maintaining a consistent multi-platform presence with minimal manual effort. How It Works Two-Workflow Architecture: Content Aggregation Workflow Monitors Wallabag RSS feeds for tagged articles (to-share-linkedin, to-share-instagram, etc.) Extracts and converts content from HTML to Markdown Stores structured data in Airtable with platform assignment AI Generation & Publishing Workflow Scheduled trigger queries Airtable for unpublished content Routes to platform-specific sub-workflows (LinkedIn, Instagram, Bluesky) LLM generates optimized post text and image prompts based on custom brand parameters Optionally generates AI images and hosts them on Imgbb CDN Publishes via GetLate API (immediate or draft mode) Updates Airtable with publication status and metadata Key Features: Tag-based content routing using Wallabag's native system Swappable AI providers (Groq, OpenAI, Anthropic) Platform-specific optimization (tone, length, hashtags, CTAs) Modular design—duplicate sub-workflows to add new platforms in \~30 minutes Centralized Airtable tracking with 17 data points per post Set Up Steps Setup time: \~45-60 minutes for initial configuration Create accounts and get API keys (\~15 min) Wallabag (with RSS feeds enabled) GetLate (social media publishing) Airtable (create base with provided schema—see sticky notes) LLM provider (Groq, OpenAI, or Anthropic) Image service (Hugging Face, Fal.ai, or Stability AI) Imgbb (image hosting) Configure n8n credentials (\~10 min) Add all API keys in n8n's credential manager Detailed credential setup instructions in workflow sticky notes Set up Airtable database (\~10 min) Create "RSS Feed - Content Store" base Add 19 required fields (schema provided in workflow sticky notes) Get Airtable base ID and API key Customize brand prompts (\~15 min) Edit "Set Custom SMCG Prompt" node for each platform Define brand voice, tone, goals, audience, and image preferences Platform-specific examples provided in sticky notes Configure platform settings (\~10 min) Set GetLate account IDs for each platform Enable/disable image generation per platform Choose immediate publish vs. draft mode Adjust schedule trigger frequency Test and deploy Tag test articles in Wallabag Monitor the first few executions in draft mode Activate workflows when satisfied with the output Important: This is a proof-of-concept template. Test thoroughly with draft mode before production use. Detailed setup instructions, troubleshooting tips, and customization guidance are in the workflow's sticky notes. Technical Details 63 nodes: 9 Airtable operations, 8 HTTP requests, 7 code nodes, 3 LangChain LLM chains, 3 RSS triggers, 3 GetLate publishers Supports: Multiple LLM providers, multiple image generation services, unlimited platforms via modular architecture Tracking: 17 metadata fields per post, including publish status, applied parameters, character counts, hashtags, image URLs Prerequisites n8n instance (self-hosted or cloud) Accounts: Wallabag, GetLate, Airtable, LLM provider, image generation service, Imgbb Basic understanding of n8n workflows and credential configuration Time to customize prompts for your brand voice Detailed documentation, Airtable schema, prompt examples, and troubleshooting guides are in the workflow's sticky notes. Category Tags social-media-automation, ai-content-generation, rss-to-social, multi-platform-posting, getlate-api, airtable-database, langchain, workflow-automation, content-marketing
Ai website scraper & company intelligence
AI Website Scraper & Company Intelligence Description This workflow automates the process of transforming any website URL into a structured, intelligent company profile. It's triggered by a form, allowing a user to submit a website and choose between a "basic" or "deep" scrape. The workflow extracts key information (mission, services, contacts, SEO keywords), stores it in a structured Supabase database, and archives a full JSON backup to Google Drive. It also features a secondary AI agent that automatically finds and saves competitors for each company, building a rich, interconnected database of company intelligence. --- Quick Implementation Steps Import the Workflow: Import the provided JSON file into your n8n instance. Install Custom Community Node: You must install the community node from: https://www.npmjs.com/package/n8n-nodes-crawl-and-scrape FIRECRAWL N8N Documentation https://docs.firecrawl.dev/developer-guides/workflow-automation/n8n Install Additional Nodes: n8n-nodes-crawl-and-scrape and n8n-nodes-mcp fire crawl mcp . Set up Credentials: Create credentials in n8n for FIRE CRAWL API,Supabase, Mistral AI, and Google Drive. Configure API Key (CRITICAL): Open the Web Search tool node. Go to Parameters → Headers and replace the hardcoded Tavily AI API key with your own. Configure Supabase Nodes: Assign your Supabase credential to all Supabase nodes. Ensure table names (e.g., companies, competitors) match your schema. Configure Google Drive Nodes: Assign your Google Drive credential to the Google Drive2 and save to Google Drive1 nodes. Select the correct Folder ID. Activate Workflow: Turn on the workflow and open the Webhook URL in the “On form submission” node to access the form. --- What It Does Form Trigger Captures user input: “Website URL” and “Scraping Type” (basic or deep). Scraping Router A Switch node routes the flow: Deep Scraping → AI-based MCP Firecrawler agent. Basic Scraping → Crawlee node. Deep Scraping (Firecrawl AI Agent) Uses Firecrawl and Tavily Web Search. Extracts a detailed JSON profile: mission, services, contacts, SEO keywords, etc. Basic Scraping (Crawlee) Uses Crawl and Scrape node to collect raw text. A Mistral-based AI extractor structures the data into JSON. Data Storage Stores structured data in Supabase tables (companies, company_basicprofiles). Archives a full JSON backup to Google Drive. Automated Competitor Analysis Runs after a deep scrape. Uses Tavily web search to find competitors (e.g., from Crunchbase). Saves competitor data to Supabase, linked by company_id. --- Who's It For Sales & Marketing Teams: Enrich leads with deep company info. Market Researchers: Build structured, searchable company databases. B2B Data Providers: Automate company intelligence collection. Developers: Use as a base for RAG or enrichment pipelines. --- Requirements n8n instance (self-hosted or cloud) Supabase Account: With tables like companies, competitors, social_links, etc. Mistral AI API Key Google Drive Credentials Tavily AI API Key (Optional) Custom Nodes: n8n-nodes-crawl-and-scrape --- How It Works Flow Summary Form Trigger: Captures “Website URL” and “Scraping Type”. Switch Node: deep → MCP Firecrawler (AI Agent). basic → Crawl and Scrape node. Scraping & Extraction: Deep path: Firecrawler → JSON structure. Basic path: Crawlee → Mistral extractor → JSON. Storage: Save JSON to Supabase. Archive in Google Drive. Competitor Analysis (Deep Only): Finds competitors via Tavily. Saves to Supabase competitors table. End: Finishes with a No Operation node. --- How To Set Up Import workflow JSON. Install community nodes (especially n8n-nodes-crawl-and-scrape from npm). Configure credentials (Supabase, Mistral AI, Google Drive). Add your Tavily API key. Connect Supabase and Drive nodes properly. Fix disconnected “basic” path if needed. Activate workflow. Test via the webhook form URL. --- How To Customize Change LLMs: Swap Mistral for OpenAI or Claude. Edit Scraper Prompts: Modify system prompts in AI agent nodes. Change Extraction Schema: Update JSON Schema in extractor nodes. Fix Relational Tables: Add Items node before Supabase inserts for arrays (social links, keywords). Enhance Automation: Add email/slack notifications, or replace form trigger with a Google Sheets trigger. --- Add-ons Automated Trigger: Run on new sheet rows. Notifications: Email or Slack alerts after completion. RAG Integration: Use the Supabase database as a chatbot knowledge source. --- Use Case Examples Sales Lead Enrichment: Instantly get company + competitor data from a URL. Market Research: Collect and compare companies in a niche. B2B Database Creation: Build a proprietary company dataset. --- WORKFLOW IMAGE --- Troubleshooting Guide | Issue | Possible Cause | Solution | |-------|----------------|-----------| | Form Trigger 404 | Workflow not active | Activate the workflow | | Web Search Tool fails | Missing Tavily API key | Replace the placeholder key | | FIRECRAWLER / find competitor fails | Missing MCP node | Install n8n-nodes-mcp | | Basic scrape does nothing | Switch node path disconnected | Reconnect “basic” output | | Supabase node error | Wrong table/column names | Match schema exactly | --- Need Help or More Workflows? Want to customize this workflow for your business or integrate it with your existing tools? Our team at Digital Biz Tech can tailor it precisely to your use case from automation logic to AI-powered enhancements. Contact: shilpa.raju@digitalbiz.tech For more such offerings, visit us: https://www.digitalbiz.tech ---