Skip to main content
Back to projects

n8n automation · Meta Messenger · OpenAI

From Messenger message to managed reservation.

I designed a conversational reservation system as two coordinated workflows: one handles inquiries and booking sessions; the other turns reservation decisions into timely guest notifications.

coordinated workflows
2
reservation actions
3
shared source of truth
1

Workflow overview

The reservation and inquiry workflow above the reservation status notification workflow in n8n
The primary workflow handles the live conversation and reservation state. The companion workflow watches status changes and delivers the final decision.

THE CHALLENGE

A chat is easy. A dependable reservation process is not.

Guests do not speak in database fields. They ask questions, change their minds, provide details out of order, and return to a conversation later. The system still needs to understand the intent, preserve progress, and leave the business with a record it can act on.

The design also had to keep operational decisions separate from conversational interpretation. Approval and decline statuses belong to a controlled process; the automation’s job is to communicate those decisions clearly, not make them.

THE APPROACH

One conversation, six deliberate stages.

Each stage has one clear responsibility. That makes failures easier to trace, business rules easier to change, and AI usage easier to control.

  1. 01

    Verify and normalize

    Meta verification handles the webhook handshake. Incoming Messenger payloads are then normalized into a consistent shape before any business logic runs.

  2. 02

    Separate inquiry from intent

    A deterministic decision point routes simple questions to the inquiry path and reservation-related messages to the stateful booking path.

  3. 03

    Read the conversation state

    The workflow loads the guest’s current reservation session from Google Sheets, then determines whether the next action is to create, cancel, or submit.

  4. 04

    Extract only when needed

    OpenAI is used on the detail-heavy reservation path to turn natural-language input into structured fields. The result is merged with session context before it is saved.

  5. 05

    Reply and keep a record

    Each branch builds a purpose-specific response and sends it through the Meta Graph API. Inquiries, reservations, cancellations, and session changes remain visible in the sheet.

  6. 06

    Close the loop

    A second workflow watches reservation status changes, builds a confirmation or decline message, sends it to the guest, and marks the notification as sent.

DESIGN DECISIONS

Automation with visible guardrails.

Deterministic before generative

Rules handle verification, routing, status checks, and action selection. The model is reserved for the narrow task it does best: extracting booking details from natural language.

State survives each message

Reservation progress is stored outside the conversation, so a guest can move through a multi-step booking flow without every message needing the full history.

Notifications are accountable

The status workflow checks whether a message should be sent and records completion afterward, creating a visible guard against duplicate follow-ups.

THE OUTCOME

A reservation workflow the business can inspect, operate, and extend.

The finished design replaces a fragile chain of chat replies with a visible operating flow. Guests get a consistent path from question to reservation decision, while the business keeps control of the underlying status and a readable record of what happened.

  • Faster answers for repeat inquiries
  • Structured reservation data from natural conversation
  • Clear handoff between guest messaging and business decisions
  • Traceable notification state for easier support and maintenance

Built with n8n, Meta Graph API, OpenAI, and Google Sheets.

Discuss an automation project