Handle padel club bookings through a conversational AI agent

A few weeks ago, I shared a workflow that handles bookings across two courts/calendars with conflict checking. Task: A few weeks ago, I shared a workflow that handles bookings across two courts/calendars with conflict checking. This is the next chapter. Instead of users filling a form, I wanted an AI agent to collect booking details conversationally through chat — then pass the data into the same workflow. Sounds simple. It wasn't. I built a fully automated booking system for a padel club with an AI agent front-end — no code, just n8n Padel is blowing up where I'm from and most clubs are still taking bookings over WhatsApp manually. I wanted to fix that for a 2-court setup. Here's what I ended up with. **What it actually does:** \-A customer chats with an AI agent — talks naturally, no forms \-Agent collects the details conversationally \-Passes structured data into a booking workflow \-Workflow checks availability, assigns the first available court, and confirms \-Everything syncs to Google Sheets automatically \-Works for new bookings, updates, and cancellations — including edge cases like overlapping time slots on updates A customer types "book tomorrow at 8 for an hour" and gets a confirmed booking with an ID. That's the whole experience. **Why I split the AI and the workflow into two separate pieces:** Early version had the AI doing everything — checking availability, assigning courts, generating IDs. It hallucinated constantly. The fix was simple: AI only talks to the user. The workflow handles all the logic. The agent calls the workflow like a tool, gets a result back, and translates it into a friendly reply. Much more reliable. Much easier to debug when something goes wrong. **The core insight:** Keep AI in the conversation layer. Keep deterministic logic in the workflow layer. When I mixed them, things broke in ways that were hard to debug. When I separated them, both parts became much easier to reason about and fix. **What this could work for beyond padel:** Any multi-resource booking scenario — tennis courts, meeting rooms, recording studios, parking bays. The core pattern (AI conversation layer → deterministic booking backend → calendar + sheets sync) is reusable. Full workflow is on GitHub if anyone wants to dig into it or adapt it for their own use case. Happy to answer questions or help anyone trying to build something similar. https://github.com/rajakumarbakhtawar-dotcom/padel-test-2-courts/issues/1#issue-4736136194 **Curious what others are doing:** If you're using AI agents with n8n tools — how much logic are you putting in the prompt vs the workflow? And how are you handling ambiguous user input before it reaches your tools?; tools: n8n. Human role: The original post does not say how a person stayed involved.; limitations: Prerequisites include n8n, Google Sheets, and a chat interface. The source notes that mixing AI logic with booking rules caused hallucinations, so strict separation is required. Integration uncertainty exists regarding how ambiguous user inputs are handled before reaching tools. Source reliability is secondary as it is a Reddit post with no verified metrics. Human approval is not described but is critical for handling edge cases like overlapping updates..

Tools

n8n

Published on Agent Work Atlas:

Overview

A few weeks ago, I shared a workflow that handles bookings across two courts/calendars with conflict checking.

Workflow

A few weeks ago, I shared a workflow that handles bookings across two courts/calendars with conflict checking. This is the next chapter. Instead of users filling a form, I wanted an AI agent to collect booking details conversationally through chat — then pass the data into the same workflow. Sounds simple. It wasn't. I built a fully automated booking system for a padel club with an AI agent front-end — no code, just n8n Padel is blowing up where I'm from and most clubs are still taking bookings over WhatsApp manually. I wanted to fix that for a 2-court setup. Here's what I ended up with. **What it actually does:** \-A customer chats with an AI agent — talks naturally, no forms \-Agent collects the details conversationally \-Passes structured data into a booking workflow \-Workflow checks availability, assigns the first available court, and confirms \-Everything syncs to Google Sheets automatically \-Works for new bookings, updates, and cancellations — including edge cases like overlapping time slots on updates A customer types "book tomorrow at 8 for an hour" and gets a confirmed booking with an ID. That's the whole experience. **Why I split the AI and the workflow into two separate pieces:** Early version had the AI doing everything — checking availability, assigning courts, generating IDs. It hallucinated constantly. The fix was simple: AI only talks to the user. The workflow handles all the logic. The agent calls the workflow like a tool, gets a result back, and translates it into a friendly reply. Much more reliable. Much easier to debug when something goes wrong. **The core insight:** Keep AI in the conversation layer. Keep deterministic logic in the workflow layer. When I mixed them, things broke in ways that were hard to debug. When I separated them, both parts became much easier to reason about and fix. **What this could work for beyond padel:** Any multi-resource booking scenario — tennis courts, meeting rooms, recording studios, parking bays. The core pattern (AI conversation layer → deterministic booking backend → calendar + sheets sync) is reusable. Full workflow is on GitHub if anyone wants to dig into it or adapt it for their own use case. Happy to answer questions or help anyone trying to build something similar. https://github.com/rajakumarbakhtawar-dotcom/padel-test-2-courts/issues/1#issue-4736136194 **Curious what others are doing:** If you're using AI agents with n8n tools — how much logic are you putting in the prompt vs the workflow? And how are you handling ambiguous user input before it reaches your tools?

Reported result

The source does not report measured outcomes or success metrics. It mentions that separating AI conversation from deterministic logic improved reliability and debugging compared to an early version where the AI hallucinated. No specific data on booking volume, error rates, or user satisfaction is provided. Proposed acceptance check: Verify that 100% of test bookings correctly assign a court and sync to Google Sheets without hallucinated IDs.

Human role

The original post does not say how a person stayed involved.

Limitations

Prerequisites include n8n, Google Sheets, and a chat interface. The source notes that mixing AI logic with booking rules caused hallucinations, so strict separation is required. Integration uncertainty exists regarding how ambiguous user inputs are handled before reaching tools. Source reliability is secondary as it is a Reddit post with no verified metrics. Human approval is not described but is critical for handling edge cases like overlapping updates.

Try it

I want to build a padel club booking system using n8n. I have a 2-court setup and want to replace manual WhatsApp bookings with an AI agent chat interface. The agent should collect booking details conversationally and pass structured data to a backend workflow that checks availability, assigns courts, and syncs to Google Sheets. Please guide me through setting up the n8n workflow, ensuring the AI only handles conversation while the workflow handles logic. Before implementing, ask me for my Google Sheets ID and court availability rules. Once set up, run a dry test with a sample booking request like 'book tomorrow at 8 for an hour' and show me the output. Do not publish or send any real messages until I confirm the test result is correct. If any inputs are missing, ask for clarification.

Original source

Source reports are not independently verified. Publication date is the catalog publication date, not the original article date.

More cases · Everyday life