Services

2 Workflows2 Response Formats3 Backend Steps

Booking & Appointment Intake

Parses booking requests, spots missing details, and confirms appointments automatically.

Works with

Primary
Backup

Pick your providers and models. The download is customized to your selections.

Best for

  • Service businesses
  • Clinics & salons
  • Freelancers

How the data flows

Requests move between your backend and the AI workflows automatically. Here's the exact path a request takes.

Customer request arrives

AI workflow

booking_intake_workflow

Parses the booking request and starts confirmation

Backend event

request_received

confirm_booking fires, then starts booking_confirmation_workflow

Backend event

confirmation_ready

AI workflow

booking_confirmation_workflow

Confirms the booking or asks for missing details

Customer receives the response

What you get

Every template is built from two kinds of pieces: Workflows and Response Formats.

Workflow

booking_intake_workflow

Parses the booking request and starts confirmation

Workflow

booking_confirmation_workflow

Confirms the booking or asks for missing details

Response format

booking_intake_response

Parsed details from the booking request

service_typerequested_daterequested_timemissing_details

Response format

booking_confirmation_response

Confirmation or follow-up message for the customer

confirmation_statusconfirmation_messagenext_steps

Details

The full specification of each workflow, with plain-English explanations. Everything below is set in the downloaded file and can be changed after import.

booking_intake_workflow

Parses the booking request and starts confirmation

Model & backupsLearn more
openai · gpt-5.6-terraBackup 1: anthropic · claude-haiku-4-5-20251001

The primary model plus automatic fallback models if the primary is unavailable.

Response formatLearn more
booking_intake_responseReturns a structured object instead of free-form text.

The structured JSON this workflow returns. Fields are defined by you and enforced by ModelRiver.

Customer data it usesLearn more
customer_namerequest_textpreferred_date

Fields you include in each request so the workflow can personalise its answer.

Memory windowLearn more
10 minutes

Identical requests are answered from memory within this window, which is faster and cheaper.

Automated pipelineLearn more
request_receivedconfirm_bookingstarts booking_confirmation_workflowconfirmation_ready
How multi-step pipelines work

Steps that run automatically around this workflow, in order.

Production mode

Runs live against your connected AI provider.

booking_confirmation_workflow

Confirms the booking or asks for missing details

Model & backupsLearn more
anthropic · claude-haiku-4-5-20251001Backup 1: openai · gpt-5.6-terra

The primary model plus automatic fallback models if the primary is unavailable.

Response formatLearn more
booking_confirmation_responseReturns a structured object instead of free-form text.

The structured JSON this workflow returns. Fields are defined by you and enforced by ModelRiver.

Customer data it usesLearn more
customer_namerequest_textpreferred_date

Fields you include in each request so the workflow can personalise its answer.

Production mode

Runs live against your connected AI provider.

How to use it

  1. 1

    Download the template

    The file is a portable JSON bundle - safe to share and easy to read.

  2. 2

    Open a project in ModelRiver

    Sign in, pick a project, and make sure the AI providers used by this template are connected. You can connect them from the Providers section.

  3. 3

    Import it

    Open the Import button in your project, paste or upload the file, review the preview, and confirm. Everything is created atomically, so nothing is overwritten. How import & export works

Template file

Technical users can inspect the raw bundle below.

View full template JSON
modelriver-booking-intake-template-v1.json3.7 KB
{
  "version": 1,
  "structures": [
    {
      "name": "booking_intake_response",
      "description": "Parsed details from the booking request",
      "example": {
        "service_type": "haircut",
        "requested_date": "2026-08-12",
        "requested_time": "14:30",
        "missing_details": [
          "phone number"
        ]
      },
      "schema": {
        "type": "object",
        "properties": {
          "service_type": {
            "type": "string"
          },
          "requested_date": {
            "type": "string"
          },
          "requested_time": {
            "type": "string"
          },
          "missing_details": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "service_type",
          "requested_date",
          "requested_time",
          "missing_details"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "booking_confirmation_response",
      "description": "Confirmation or follow-up message for the customer",
      "example": {
        "confirmation_status": "needs_more_info",
        "confirmation_message": "Thanks! Could you share a phone number to confirm your appointment?",
        "next_steps": "Reply with your phone number"
      },
      "schema": {
        "type": "object",
        "properties": {
          "confirmation_status": {
            "type": "string",
            "enum": [
              "confirmed",
              "needs_more_info"
            ]
          },
          "confirmation_message": {
            "type": "string"
          },
          "next_steps": {
            "type": "string"
          }
        },
        "required": [
          "confirmation_status",
          "confirmation_message",
          "next_steps"
        ],
        "additionalProperties": false
      }
    }
  ],
  "workflows": [
    {
      "name": "booking_intake_workflow",
      "description": "Parses the booking request and starts confirmation",
      "provider": "openai",
      "model": "gpt-5.6-terra",
      "backups": [
        {
          "provider": "anthropic",
          "model": "claude-haiku-4-5-20251001"
        }
      ],
      "request_type": "chat",
      "system_instructions": "Parse the booking request: identify the service, the requested date and time, and any details that are missing. Keep the date and time as the customer wrote them.",
      "structure": "booking_intake_response",
      "customer_fields": [
        "customer_name",
        "request_text",
        "preferred_date"
      ],
      "test_mode": false,
      "cache_window_seconds": 600,
      "backend_pipeline": {
        "enabled": true,
        "events": [
          {
            "name": "request_received"
          },
          {
            "name": "confirm_booking",
            "target_workflow": "booking_confirmation_workflow"
          },
          {
            "name": "confirmation_ready"
          }
        ]
      }
    },
    {
      "name": "booking_confirmation_workflow",
      "description": "Confirms the booking or asks for missing details",
      "provider": "openai",
      "model": "gpt-5.6-terra",
      "backups": [
        {
          "provider": "anthropic",
          "model": "claude-haiku-4-5-20251001"
        }
      ],
      "request_type": "chat",
      "system_instructions": "Confirm the appointment when all details are present, or ask the customer for anything missing. Write a warm, short confirmation or follow-up message.",
      "structure": "booking_confirmation_response",
      "customer_fields": [
        "customer_name",
        "request_text",
        "preferred_date"
      ],
      "test_mode": false
    }
  ]
}

Looking for something else?

More templates are on the way. In the meantime, you can build your own workflows from scratch in the ModelRiver console.