Skip to main content

OpenTable Integration Template

Integrate the OpenTable reservation system into your Mid-call Actions with two powerful features: Check Availability and Create Reservations – perfect for concierge services and restaurant recommendations.

Overview & Features

Check Availability

  • Query real-time table availability
  • Flexible time window search (±2 hours)
  • Consider party size and special requests
  • Access to a premium restaurant network

Create Reservation

  • Instant table booking during the call
  • Automatic confirmation emails
  • Documentation of special requests and occasion
  • Integration with calendar and CRM systems

Tool 1: Check Availability

Configuration in the Famulor Interface

FieldValue
Name*OpenTable Verfügbarkeit prüfen
Description”Checks available table times in restaurants for reservation requests”
Function Name*check_opentable_availability
Function Description*“Searches for available reservation times. Use this when a customer asks about free tables or reservation options.”
HTTP MethodGET
Timeout (ms)3000
Endpoint*https://platform.opentable.com/api/v2/availability

Parameter Schema for Availability

{
  "type": "object",
  "properties": {
    "restaurant_id": {
      "type": "string",
      "description": "OpenTable restaurant ID"
    },
    "party_size": {
      "type": "integer",
      "description": "Number of guests",
      "minimum": 1,
      "maximum": 20
    },
    "date": {
      "type": "string",
      "format": "date",
      "description": "Desired date (YYYY-MM-DD)"
    },
    "time": {
      "type": "string",
      "description": "Desired time (HH:MM)",
      "pattern": "^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$"
    }
  },
  "required": ["restaurant_id", "party_size", "date", "time"]
}
Agent Message: "Checking availability for {{party_size}} guests on {{date}}..." Success Template: "Available times at {{restaurantName}}: {{availableSlots[0].time}}, {{availableSlots[1].time}}, and {{availableSlots[2].time}}"

Tool 2: Create Reservation

Configuration in the Famulor Interface

| Name* | OpenTable Reservierung erstellen | | Function Name* | create_opentable_reservation | | HTTP Method | POST | | Endpoint* | https://platform.opentable.com/api/v2/reservations | | Timeout (ms) | 5000 |

Parameter Schema for Reservation

{
  "type": "object",
  "properties": {
    "restaurant_id": {
      "type": "string",
      "description": "OpenTable restaurant ID"
    },
    "availability_token": {
      "type": "string",
      "description": "Token from the availability check"
    },
    "party_size": {
      "type": "integer",
      "description": "Number of guests"
    },
    "date_time": {
      "type": "string",
      "description": "Date and time of the reservation"
    },
    "first_name": {
      "type": "string",
      "description": "Guest's first name"
    },
    "last_name": {
      "type": "string",
      "description": "Guest's last name"
    },
    "email": {
      "type": "string",
      "format": "email",
      "description": "Email address for confirmation"
    },
    "phone": {
      "type": "string",
      "description": "Phone number for restaurant contact"
    },
    "special_requests": {
      "type": "string",
      "description": "Special requests (allergies, terrace, etc.)"
    },
    "occasion": {
      "type": "string",
      "enum": ["birthday", "anniversary", "business", "date_night"],
      "description": "Occasion for the reservation"
    }
  },
  "required": ["restaurant_id", "availability_token", "party_size", "date_time", "first_name", "last_name", "phone"]
}
Success Template: "Reservation confirmed! Confirmation number: {{confirmationNumber}}. You will receive a confirmation via email."

Complete Workflow Example

Practical Conversation Example

Customer: “I would like to have pizza delivered to Munich 80331”AI: “Searching for pizza restaurants in 80331…”search_lieferando_restaurantsAI: “I found 8 pizza restaurants. Mario’s Pizzeria has 4.7 stars and a 25-minute delivery time. Should I show the menu?”Customer: “Yes, please!”get_lieferando_menuAI: “Mario’s has 12 pizza categories. The Margherita costs €9.50, Pizza Salami €11.90. What would you like?”Customer: “One Pizza Salami, please, delivered to Musterstraße 15”create_lieferando_orderAI: “Order successful! Order number: LI-2024-456. Delivery time: 30 minutes. Total amount: €13.40 including delivery.”
Customer: “Can you book me a table at the Ritz for tonight?”AI: “Checking availability for tonight at the Ritz…”check_opentable_availabilityAI: “Available times at the Hotel Ritz restaurant: 19:00, 19:30, and 21:15. For how many guests?”Customer: “2 people at 19:30 would be perfect”create_opentable_reservationAI: “Reservation confirmed! Confirmation number: OT-789123. You have a table for 2 guests tonight at 19:30 at the Ritz.”