🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

WhatsApp + PostgreSQL bookings, captured and confirmed

Lisa Granqvist Partner Workflow Automation Expert

Bookings coming in through WhatsApp feels convenient… until you’re scrolling chat history, copying details into a spreadsheet, and realizing two people picked the same time.

Front-desk teams get hit first, but studio owners and agency ops leads feel it too. This WhatsApp booking automation captures the date, time, name, and phone number with guided prompts, then stores it cleanly in PostgreSQL so you stop guessing and start confirming.

This workflow turns messy messages into structured reservations, confirmation replies, and a searchable record you can trust. Here’s what it’s doing under the hood and what you’ll need to run it.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: WhatsApp + PostgreSQL bookings, captured and confirmed

The Challenge: Turning WhatsApp chats into real bookings

WhatsApp is great for getting customers to message you quickly. The problem starts right after that. A “Can I come Friday around 3?” turns into a mini investigation: you check your working hours, confirm the day is available, ask for a phone number, then paste everything somewhere else so it doesn’t vanish into the scroll. Miss one detail and you’re chasing the person again. Miss two and you’re apologizing because you double-booked. Honestly, the worst part is the mental load. You never feel fully “caught up.”

It adds up fast. Here’s where it breaks down in day-to-day booking management:

  • You end up re-asking the same questions because the customer didn’t send date, time, and contact details in one neat message.
  • Manual entry into a sheet or calendar invites typos, especially on phone numbers and time slots.
  • Availability checking happens “in your head,” which means two staff members can confirm the same slot without realizing it.
  • Searching old conversations for “that reservation from last week” is slow, and it gets worse as your chat volume grows.

The Fix: Guided WhatsApp prompts + PostgreSQL storage

This workflow listens for incoming WhatsApp messages and routes each person into a simple booking “conversation.” Instead of hoping customers volunteer the right details, it prompts them in the right order: choose a date, pick a time slot that matches your work hours, then provide phone number and name. In the background, it keeps a lightweight status for the chat (so it knows what question comes next), pulls available days/hours from PostgreSQL, and validates inputs before anything is saved. When the reservation is ready, it inserts the booking into a PostgreSQL table and sends a confirmation message back to the customer. It can also send follow-up payment details, which means your process stays consistent even when you’re busy.

The workflow starts with an incoming WhatsApp trigger, then checks the user’s current “step” in the booking flow. It generates valid options based on stored work days and hours, captures the customer’s fields, and writes the final booking record to Postgres. The chat ends with a success confirmation (and optionally a payment message) so nobody is left guessing.

What Changes: Before vs. After

Real-World Impact

Say you handle 15 bookings a week through WhatsApp. Manually, you typically spend maybe 10 minutes per booking asking questions, checking hours, and entering the details somewhere reliable, so that’s about 2 to 3 hours weekly. With this workflow, the customer taps through date and time options, then submits phone and name, while Postgres stores everything automatically. You mostly just review edge cases. In practice, that often drops to about 30 minutes of oversight for the whole week.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • WhatsApp Business messaging provider to receive and send WhatsApp messages.
  • PostgreSQL database to store bookings, work days, and hours.
  • WhatsApp API credentials (get them from your WhatsApp provider dashboard).

Skill level: Intermediate. You’ll connect credentials and run a SQL script to create tables.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A customer sends a WhatsApp message. The workflow triggers on inbound WhatsApp, then initializes a little “context” so it can respond correctly even if the person types something unexpected.

The workflow checks what stage they’re in. It looks up the chat’s current status in PostgreSQL (main menu, booking, booked, payments) and uses switches/conditions to route the message to the right prompt.

Availability is generated from your stored schedule. It retrieves work days and work hours from Postgres, summarizes the valid options, and asks the customer to pick a date and then a time slot that fits your rules.

Customer details are captured and validated. Phone numbers get checked before they’re written, names get cleaned up, and the workflow updates the booking record as each field arrives.

The booking is saved and confirmed. The reservation is inserted into your PostgreSQL reservation table, then the workflow sends a success confirmation and can follow with payment details.

You can easily modify available days and time slots to match your actual business hours. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the WhatsApp Trigger

This workflow starts when a new WhatsApp message arrives, so the trigger must be connected and active.

  1. Add and open Incoming WhatsApp Trigger.
  2. Credential Required: Connect your WhatsApp credentials.
  3. Confirm the trigger is connected to the next node Initialize Context.

⚠️ Common Pitfall: If the WhatsApp trigger isn’t properly authorized, no incoming messages will reach the workflow.

Step 2: Connect the Primary Database (Postgres)

This workflow relies heavily on Postgres nodes for booking status, work days, and user data. Connect credentials once and apply to all Postgres nodes.

  1. Open any Postgres node such as Fetch Bot Status.
  2. Credential Required: Connect your Postgres credentials.
  3. Apply the same credentials to all Postgres nodes (15 nodes total), including Retrieve Work Days, Update Date and Status, Insert Booking Entry, and Set Status to Payments.

Tip: Use a shared credential in n8n so updates propagate across all Postgres nodes at once.

Step 3: Initialize and Route the Conversation Flow

The opening sequence sets context, checks status, and routes the user to the correct branch of the booking flow.

  1. In Initialize Context, verify it feeds into Fetch Bot Status.
  2. Confirm Fetch Bot Status outputs to Determine Flow Path.
  3. In Determine Flow Path, validate that it routes to Start Message Response, Route User Commands, Retrieve Booking Info, and Send Payment Details based on user status.
  4. Ensure Start Message Response is connected to Upsert Status on Start.

⚠️ Common Pitfall: If Determine Flow Path is misconfigured, users may skip the booking flow and never see the main menu.

Step 4: Configure Menu and Booking Selection Logic

This section handles menu routing, booking options, and the date/time selection process.

  1. Verify Route User Commands routes to Send Main Menu and Retrieve Work Days.
  2. Confirm Retrieve Work Days flows into Validate Date Entry, then Combine Number and Query, and then Summarize Options List before Prompt for Date.
  3. Ensure Summarize Options List outputs to Prompt for Date, which then updates Set Status to Booking.
  4. Check the second options path: Fetch Work HoursCombine Number and Query ASummarize Options APrompt for Time.

Tip: The summarize nodes build user-friendly lists—ensure upstream data is structured to prevent blank menus.

Step 5: Handle Parallel Branching and Merging

The workflow uses parallel execution after Check First Prompt to retrieve and update booking data simultaneously.

  1. Confirm Merge Streams outputs to Check First Prompt.
  2. Check First Prompt outputs to both Insert Booking Entry, Retrieve Work Days A, and Merge Streams A in parallel.
  3. Verify Insert Booking Entry and Retrieve Work Days A both feed into Merge Streams A.
  4. Ensure Merge Streams A flows into Update Date and Status and then Fetch Work Hours.

⚠️ Common Pitfall: If one of the parallel branches fails, Merge Streams A may not combine data correctly.

Step 6: Collect User Details and Validate Input

This section collects phone and name details, validates input, and confirms bookings.

  1. Check Route by Selection routes to Adjust Time Slot, Validate Phone Input, and Modify Client Name.
  2. Ensure Adjust Time Slot triggers Prompt for Phone.
  3. Verify Validate Phone Input sends valid entries to Update Phone Record and invalid entries to Send Phone Error.
  4. Confirm Update Phone Record leads to Prompt for Name, then Modify Client Name, and finally Send Booking Success.

Tip: Use a consistent phone number format so Validate Phone Input can properly detect invalid entries.

Step 7: Configure Booking Status and Payment Messages

After a booking is confirmed, the workflow updates status fields and sends payment details.

  1. Verify Send Booking Success leads to Set Status to Booked.
  2. Confirm Set Status to Booked flows into Set Status to Payments.
  3. Ensure Set Status to Payments triggers Send Payment Details.
  4. Check that both Send Payment Details and Send Main Menu connect to Set Bot Status at Start.

⚠️ Common Pitfall: If Set Status to Payments is skipped, users may never receive Send Payment Details.

Step 8: Connect WhatsApp Messaging Nodes

All messaging nodes must use the same WhatsApp credential to send responses during the flow.

  1. Open any WhatsApp node such as Send Main Menu or Prompt for Date.
  2. Credential Required: Connect your WhatsApp credentials.
  3. Apply the same credentials to all WhatsApp nodes (9 nodes total), including Start Message Response, Prompt for Time, Send Phone Error, and Send Booking Success.

Tip: Keep message templates consistent across WhatsApp nodes to maintain a smooth conversational experience.

Step 9: Test & Activate Your Workflow

Run a controlled test to ensure the full booking flow works from trigger to payment details.

  1. Click Execute Workflow and send a test message to the WhatsApp number connected to Incoming WhatsApp Trigger.
  2. Confirm the flow follows Initialize ContextFetch Bot StatusDetermine Flow Path and sends a response via Start Message Response or Send Main Menu.
  3. Complete a full booking path and verify database updates in Postgres nodes like Insert Booking Entry and Set Status to Payments.
  4. When satisfied, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • WhatsApp credentials can expire or require specific permissions for sending templated messages. If things break, check your WhatsApp provider dashboard and the n8n credential status first.
  • If you’re relying on generated option lists (days/hours) and a customer replies with free text, routing can land in the wrong place. Make sure your “validate date” and “validate phone” checks are strict enough to catch odd inputs.
  • PostgreSQL schema mismatches cause silent frustration. If you added custom fields, confirm your SQL tables match what the workflow is inserting, and verify the correct schema name replaced “n8n” in the setup script.

Common Questions

How quickly can I implement this WhatsApp booking automation?

About an hour if your WhatsApp and Postgres credentials are ready.

Can non-technical teams implement this booking capture automation?

Yes, but someone needs to run the provided SQL to create the Postgres tables. After that, it’s mostly connecting accounts and editing business hours.

Is n8n free to use for this WhatsApp booking automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in WhatsApp messaging fees from your provider and standard database hosting costs.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this WhatsApp booking automation solution to my specific challenges?

You can adjust the stored work days and work hours tables so the prompts match your real schedule. Many teams also add fields in the “Map Input Fields” step (for party size, service type, or notes) and then extend the Postgres insert/update queries to store them. If you want a different conversation style, change the menu routing in “Route User Commands” and the selection logic in “Route by Selection.”

Why is my WhatsApp connection failing in this workflow?

Usually it’s invalid or expired credentials in your WhatsApp node. Re-check the provider token, confirm the sending number is approved, and look for blocked message types (some providers require templates for certain outbound replies). It can also fail if your workflow tries to respond too quickly and the previous step didn’t finish saving state in Postgres.

What’s the capacity of this WhatsApp booking automation solution?

On a typical small VPS, handling a few hundred booking conversations a day is realistic as long as your database is sized correctly and your WhatsApp provider isn’t rate limiting you. If you use n8n Cloud, capacity depends on your plan execution limits, while self-hosting is mainly limited by your server resources.

Is this WhatsApp booking automation better than using Zapier or Make?

Often, yes, because this flow needs state (what question comes next) and branching logic, and that gets awkward fast in simpler tools. n8n handles switches, merges, and conditional paths without turning your automation into a fragile chain. You also get the option to self-host, which matters when messages spike and you don’t want per-task pricing surprises. The tradeoff is setup: you will spend a bit more time on database tables and testing. Talk to an automation expert if you want a quick recommendation for your exact volume and tools.

Once this is live, every booking becomes a clean database record and a clear confirmation message. Less chasing. More control.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal