Venue and event management, connected with OAuth 2.0 client credentials. Covers enquiries, bookings, catering menus, packages, and operator-side event building. EventTemple official site ↗
What it covers
EventTemple manages venues, events and the enquiries that fill them. Connecting it lets the concierge describe what spaces exist, check availability, and capture an enquiry in a three-step lead chain: create a contact, create a lead booking stamped with the capture time, then attach a qualification note with Maison attribution. For operator-grade tools it can also build events, add catering line items, attach packages, and create follow-up tasks directly in EventTemple.
Setup steps
Create a private OAuth app in EventTemple
Log in to EventTemple and go to Settings → Developers → Apps. If your account covers multiple properties, switch to the Chain settings via the top-right profile icon first. Create a private OAuth app and copy its Client ID and Client Secret. EventTemple treats a private app as the grant for one property; for a production rollout across properties, EventTemple issues Maison a public app and you approve it once instead — ask your Maison contact which applies.Find your API Org ID
In Settings → Overview, the Org ID is shown at the top of the page for the organisation whose data Maison should access.Find your Property ID
Locate the Property ID for the venue you want Maison to represent. This scopes all space and availability queries to that property.Enter the credentials in the Maison console
Open the Integrations section in the admin console, select EventTemple, and enter the Client ID, Client Secret, API Org ID, and Property ID. Saving marks the integration Connected straight away; the credentials are only exercised on the first tool call, so run one from the console's Test action to confirm them. If you connected EventTemple with an API key before September 2026, re-enter these four values — the old key is no longer used.Set the Referral Source ID (optional, recommended)
To attribute leads captured through the concierge to a dedicated source in EventTemple — such as 'Maison Agent' or 'AI Concierge' — create that referral source in EventTemple (Settings → Referral Sources) and note its numeric ID — the id EventTemple's API returns for it from GET /referral_sources, which the eventtemple_get_referral_sources tool wraps; the console does not offer a picker for this field yet. Enter the ID in the Referral Source ID config field. When set, every lead booking created by the concierge will carry that referral source automatically. Leave it blank if you do not track referral sources.Choose which tools to enable
Two tools are on by default. Anything that writes to your EventTemple account — creating events, line items, packages, or tasks — is opt-in. See the table below for the full list.
Available tools
10 tools are available for EventTemple. The concierge calls them on a guest's behalf during a conversation; which are enabled is set per property, so you only turn on what you want it to be able to do.
Enabled by default (2)
On as soon as the integration is connected, with nothing else to configure.
| Tool | What it does |
|---|---|
eventtemple_get_space_availabilities | Check which event/function spaces are free for a specific time window AND large enough for the group. Returns the ids of available spaces — cross-reference eventtemple_get_spaces to get their names and details. local_start_time and local_end_time are the property's local time in 'YYYY-MM-DD HH:MM' format (e.g. '2026-09-01 09:00'); attendees is the expected attendee count. An empty result means no space fits — offer alternative dates or a smaller group. Always check availability before promising a date. Never quote rates or pricing — direct pricing questions to the events team. |
eventtemple_get_spaces | List the property's event/function spaces (meeting rooms, ballrooms) with their names, capacities, and descriptions. Use this when a guest asks what event spaces exist, how many people a space holds, or which space suits their event. Provide space names, capacities, and descriptions to help guests choose. Never quote room rates or pricing — direct all rate and pricing inquiries to the events team. To check whether spaces are open at a specific time, use eventtemple_get_space_availabilities instead. |
Available on request (8)
Off by default. Ask Maison to enable any of these for your property — several change data in your EventTemple account, so they are opt-in rather than assumed.
| Tool | What it does |
|---|---|
eventtemple_create_booking | Step 2 of 3 for capturing an event inquiry as a sales lead: create a LEAD booking linked to the contact. Call this only after eventtemple_create_contact succeeds, passing the returned contact id as data.attributes.contact_id. The booking name should summarize the inquiry — include event type and guest count (e.g. 'Wedding inquiry — Jane Smith, ~120 guests'). Dates are ISO YYYY-MM-DD; Maison stamps the capture time itself. On success, immediately call eventtemple_create_lead_note with the returned booking id (data.id) and the full qualification summary — the lead is incomplete without the note. This records a sales lead for the events team — it does NOT confirm or reserve anything; the events team follows up. Never retry after a timeout — the lead may already have been recorded. Route pricing questions and booking confirmations to the events team. |
eventtemple_create_contact | Step 1 of 3 for capturing an event inquiry as a sales lead: create the contact record. Before calling, collect the guest's event type, approximate dates, guest count, and contact details (first and last name plus email; phone optional). Pass them inside data.attributes. On success this returns the new contact id (data.id) — immediately call eventtemple_create_booking with that contact id to complete the lead. Never call this twice for the same inquiry, and never retry after a timeout — the contact may already have been created. |
eventtemple_create_full_booking | OPERATOR-GRADE: create a REAL event booking with its agenda events — never use in guest conversations unless explicitly instructed. This reserves function spaces in EventTemple (not a lead). For guest event inquiries always use the two-step lead flow (eventtemple_create_contact then eventtemple_create_booking) instead. Each agenda event needs a name, ISO YYYY-MM-DD dates, a status, expected and guaranteed headcounts, and optionally the space_id from eventtemple_get_spaces. Never retry after a timeout — the booking may already have been created. |
eventtemple_get_booking | Get one event booking by id: name, status (lead/tentative/definite/lost), dates, day-times (seconds since midnight), number of events on its agenda, amount paid, and total. Use for any 'what's the status / balance of my event booking' question. List the agenda items with eventtemple_list_events. Never quote or negotiate pricing beyond the recorded totals — route pricing questions to the events team. |
eventtemple_get_event_types | List the property's event types (e.g. Wedding, Corporate Meeting) as id/value pairs. Use to resolve the event_type_id on agenda events, or to tell a guest what kinds of events the property hosts. |
eventtemple_get_packages | List the property's event packages (bundled offerings, e.g. 'Full-Day Meeting Package') with names and descriptions. Use when a guest asks what event packages exist. Package pricing is not included — direct pricing questions to the events team. |
eventtemple_get_space | Get one event/function space by its id (from eventtemple_get_spaces): name, minimum and maximum capacity, floor area, and description. Use when a guest asks for detail about a specific space. Never quote rates or pricing — direct pricing inquiries to the events team. |
eventtemple_search_contacts | OPERATOR-GRADE: Search the property's event contacts by name or email and return matching contact ids and names. Use this to locate an existing contact's id for operator follow-up (for example a contact_id on eventtemple_create_task). Guests never search the contact list: a verified booker reads their own details with eventtemple_get_contact by booking_id. Results contain names only. If the result notes more matches exist, ask for a more specific name or the email address and search again. |
Not yet certified (23)
Built and working against the EventTemple API, but Maison is not yet certified with EventTemple to use them in production, so they cannot be enabled today. Listed so you can see what is coming rather than discover the gap when you ask for it.
| Tool | What it does |
|---|---|
eventtemple_change_booking_dates | Reschedule an event booking to a new start/end. start_at and end_at are UTC date-times in ISO 8601 format (e.g. '2026-09-01T09:00:00.000Z'). Set shift_event_dates true (recommended) to move the booking's agenda events by the same offset — otherwise the events keep their original dates. Always confirm the new dates with the verified contact, and check space availability (eventtemple_get_space_availabilities) before promising them. Never retry after a timeout — the dates may already have changed. |
eventtemple_change_booking_status | Change an event booking's status: lead, tentative, definite, or lost. To CANCEL a booking, set status 'lost'. Confirm the exact intent with the verified contact before any transition — 'definite' confirms the event and 'lost' cancels it, and both have business consequences the events team acts on. Never retry after a timeout — the status may already have changed. |
eventtemple_check_booking_contact | Proxy-internal ownership check: verify that contact_id is the contact attached to booking_id. Not callable by the LLM directly. |
eventtemple_check_lead_booking | Proxy-internal status check: verify that a booking's status is 'lead' before allowing a note to be attached. Not callable by the LLM directly. |
eventtemple_create_booking_package | OPERATOR-GRADE: Attach a pre-built event package to an existing EventTemple booking using the create_from_package shortcut endpoint. Requires booking_id, package_id, expected/guaranteed head counts, and a date window. Never retry on timeout. |
eventtemple_create_event | OPERATOR-GRADE: Create a new event (agenda item) within an existing EventTemple booking. Always check space availability first using eventtemple_get_space_availabilities before calling this. The event is created with status 'lead' — it cannot be confirmed through chat. Never retry on timeout; the event may have been created. |
eventtemple_create_lead_note | Step 3 of 3 for capturing an event inquiry as a sales lead: attach the full qualification summary as a note on the lead booking. Call this immediately after eventtemple_create_booking succeeds, passing the returned booking id (data.id) as booking_id. The content must include, in the guest's own words: event type; preferred dates and how flexible they are; expected guests and rooms on peak nights; meeting-space needs; food and beverage needs; budget range if the guest shared one; whether the guest consented to be contacted and how; anything else they said. Never include rates, holds, or availability statements in the note — those are for the events team to provide. Maison adds the source attribution line and capture timestamp automatically. Never retry after a timeout — the note may already have been created. |
eventtemple_create_line_item | OPERATOR-GRADE: Add a catering line item to an EventTemple booking event by referencing a menu item. Pricing, name, and tax settings are inherited from the menu item — do not supply those fields. Supply booking_id and menu_item_id; optionally set quantity, event_id, and serving_time. Never retry on timeout. |
eventtemple_create_task | OPERATOR-GRADE: Create a follow-up CRM task for operator staff on an EventTemple booking or contact. Use for operator-initiated action items (e.g. 'follow up on menu selection'). Only task_name is required; optionally set due_at, booking_id, contact_id, and all_day. Never retry on timeout. |
eventtemple_find_booking | OTP bootstrap: find an EventTemple booking by confirmation number to start the booker-verification flow. Not callable by the LLM directly. |
eventtemple_get_contact | Get the contact attached to a verified booking: name, email, phone number, and job title. Requires the guest's booking_id (the booking they verified with). Only share these details with the verified contact themself. |
eventtemple_get_event | Get one agenda event by booking id and event id: name, dates, day-times (seconds since midnight), status, notes, expected/guaranteed/actual headcounts, and the space, event-type, and setup-style ids. Use for detail questions about a specific agenda item found via eventtemple_list_events. |
eventtemple_get_menu_items | List the property's catering menu items with names, descriptions, and published per-item prices (price and tax-included price). Use when a guest asks about catering or menu options for their event. Quote only these published catalog prices — for package deals, discounts, or negotiated pricing, direct the guest to the events team. |
eventtemple_get_menus | List all catering menus available at the property (menus are groupings of menu items, e.g. 'Dinner Buffet', 'Coffee Break'). Use alongside eventtemple_get_menu_items to show full catering options. Describe menu names and item counts to the guest — never quote pricing; direct all catering rate questions to the events team. |
eventtemple_get_package | Retrieve details of a single event package by its ID (packages bundle room, AV, and catering into one offering). Use after listing packages to show name and description to a guest. Never quote package pricing — direct all pricing questions to the events team. |
eventtemple_get_referral_sources | List the property's referral sources (id + name, e.g. 'Website', 'Maison Agent') so an operator can find the numeric id of the 'Maison Agent' source to enter as the Referral source ID config field. Not a guest tool. No picker exists yet for this field in the console (see services/api/src/routes/integrations.ts for the discoverVia note). |
eventtemple_get_setup_styles | List the property's room setup styles (e.g. Theatre, Banquet, U-Shape) as id/value pairs. Use to resolve the setup_style_id on agenda events, or to describe seating arrangements to a guest. |
eventtemple_list_bookings | List the event bookings belonging to a contact (by numeric contact id): booking id, name, status, and dates. The contact_id must belong to the verified booking (booking_id). Status is one of lead, tentative, definite, or lost — only 'definite' is a confirmed event; treat 'lost' as cancelled. Use eventtemple_get_booking for full detail on one booking. If the result notes more bookings exist, narrow down by asking which event the guest means. |
eventtemple_list_events | List the agenda events inside an event booking (by numeric booking id): name, dates, day-times (seconds since midnight), status, expected/guaranteed headcounts, and the space, event-type, and setup-style ids. Resolve those ids via eventtemple_get_space, eventtemple_get_event_types, and eventtemple_get_setup_styles. Use eventtemple_get_event for one event's full detail including notes. |
eventtemple_list_line_items | List all catering/service line items attached to a specific booking, identified by booking_id. Requires a valid booker verification token — the guest must have verified their booking before accessing this data. Returns item names, quantities, and recorded prices (the booker's own invoice data). Use with eventtemple_get_booking to give verified guests a full picture of their event charges. |
eventtemple_update_booking | Rename an existing event booking (data.attributes.name). Use when a verified contact asks to change how their event is titled. For status changes (confirm/cancel) use eventtemple_change_booking_status; for rescheduling use eventtemple_change_booking_dates. Never retry after a timeout — the change may already have been applied. |
eventtemple_update_contact | Update an existing event contact's details (name, email, phone number, job title). Include only the fields being changed inside data.attributes — omitted fields keep their current values. Use when a verified contact asks to correct their contact information. The contact_id must belong to the verified booking (booking_id). Never retry after a timeout — the update may already have been applied. |
eventtemple_update_event | OPERATOR-GRADE: Update an existing EventTemple event (agenda item). Supply only the fields that should change; all attributes are optional. Status transitions must be done via eventtemple_change_booking_status. Never retry on timeout. |