This guide explains how to connect Oracle Opera (hotel property management system) to the Newo Platform and configure an AI agent to check room availability, create reservations, cancel bookings, and reschedule stays.
ποΈ NOTE
The Opera integration is designed for hotel room reservations only. Restaurant or dining table bookings are handled by separate integrations (for example, Mozrest).
Overview
The Opera integration connects Newo.ai to Oracle Opera's REST API, enabling a conversational AI agent (voice or chat) to manage hotel room reservations on behalf of guests. The integration supports:
Checking room availability by date range, occupancy, and room quantity
Creating new reservations
Cancelling existing reservations
Rescheduling reservation dates
Automatically refreshing room type catalog data
Optionally seeding booking and cancellation scenarios onto the agent canvas
This integration is designed for hotels and hospitality businesses that need automated reservation management through a Newo AI agent.
β οΈ CAUTION
This integration performs real operations in Oracle Opera. Reservations created, cancelled, or modified through the agent are immediately reflected in your live hotel PMS.
Requirements
Before starting setup, confirm you have the following from Oracle Opera:
An active Oracle Opera account with API access enabled
OAuth2 credentials: Client ID and Client Secret
App Key and Enterprise ID
The Hotel ID configured in Opera
The Opera API base URL
The OAuth scope configured for your account
Connect in Newo Platform
Open Newo and go to Projects.
Select your project and open Builder > Attributes.
Set the following attributes:
Attribute | Required | Description |
| Yes | Opera API base URL |
| Yes | Opera application key |
| Yes | OAuth2 Client ID |
| Yes | OAuth2 Client Secret |
| Yes | Enterprise ID in Opera |
| Yes | Hotel ID in Opera |
| Yes | OAuth2 scope for API access |
| No | Enable availability checking (default: |
| No | Enable reservation creation (default: |
| No | Enable cancellation (default: |
| No | Auto-add booking/cancellation scenarios to canvas (default: |
| No | Room type cache refresh interval in seconds |
Click Save + Publish All.
On publish, the integration automatically validates the configuration, initializes project attributes, creates HTTP connectors (opera_connector and opera_token_connector), obtains an OAuth access token, registers tool definitions for availability, booking, and rescheduling, and injects booking and availability payload schemas.
ββ IMPORTANT
Always click Save + Publish All after modifying any credential or configuration attribute. Changes do not take effect until the project is published.
How authentication works
The integration uses an OAuth 2.0 client-credentials flow. On publish, it sends a POST request to {opera_base_url}/oauth/v1/tokens using the configured Client ID and Secret to obtain an access token. The token is stored as the opera_access_token attribute.
If the Opera API returns an HTTP 401 response during a conversation, the integration automatically refreshes the token and retries the original request β no manual intervention is required.
How it works
When a guest asks about room availability, the integration queries Opera's availability endpoint with the requested date range, occupancy (adults and children), and room quantity. Results are normalized into a simplified list of room offers with rates and occupancy details, cached in the session, and presented to the guest.
When the guest selects a room and confirms a booking, the integration uses the cached availability data to build and submit the reservation payload to Opera. A reservation ID is returned on success.
Room type static data (used for catalog descriptions) is refreshed automatically at the interval configured in opera_static_data_update_interval, triggered at session start.
When opera_setup_scenarios is True (the default), booking and cancellation conversation scenarios are automatically added to the agent canvas when the project is published.
Capability toggles
Three attributes control which reservation actions the agent can perform:
Enable Availability Check
Set opera_enable_slot_check to True to allow the agent to query Opera for available rooms. If disabled, the agent cannot return availability information.
Enable Booking
Set opera_enable_booking to True to allow the agent to create new reservations in Opera. If disabled, the agent can check availability but cannot complete a booking.
Enable Cancellation
Set opera_enable_cancellation to True to allow the agent to cancel existing reservations. Disable this setting if the hotel does not want cancellations handled through the AI agent.
Canvas scenario setup
When opera_setup_scenarios is set to True, the integration automatically seeds booking and cancellation conversation flows onto the agent canvas when the project is published. This provides a ready-to-use starting point without requiring manual canvas configuration.
To disable automatic canvas injection, set opera_setup_scenarios to False before publishing.
Pre-launch checklist
Before going live, verify the following:
All credential attributes are set:
opera_base_url,opera_client_id,opera_client_secret,opera_app_key,opera_enterprise_id,opera_hotel_id,opera_scope.Project has been published and
opera_access_tokenis populated (not empty).Capability toggles are configured as intended:
opera_enable_slot_check,opera_enable_booking,opera_enable_cancellation.If using canvas bootstrap,
opera_setup_scenariosis set toTruebefore the first publish.
Test the integration
Test through the Newo conversation interface (voice or chat).
Setup verification: After publishing, confirm that opera_access_token is not empty. An empty token means authentication failed β check the credential attributes and republish.
Availability: Ask the agent about available rooms for specific dates. Verify that room offers are returned with rates and occupancy details.
Booking: Select a room and complete a reservation. Verify that a reservation ID is returned and the booking appears in Opera.
Cancellation: Request a cancellation by reservation ID. Verify the reservation is cancelled in Opera.
Reschedule: Request a date change on an existing reservation. Verify that Opera reflects the updated dates.
Troubleshooting
If the agent does not respond to reservation requests:
Confirm all required credential attributes are set correctly in Builder > Attributes.
Check that
opera_access_tokenwas populated after the last publish. If it is empty, authentication failed.Verify the relevant capability toggle (
opera_enable_slot_check,opera_enable_booking,opera_enable_cancellation) is set toTrue.If credentials were changed after the initial setup, republish the project to re-authenticate and re-register tools.
