.png)
Duetto Integration Guide
Duetto integrates hospitality revenue, reservation, pricing, forecasting, and performance data with connected hotel systems through customer- or partner-specific interfaces that require confirmation.
Duetto integration options at a glance
Duetto publicly describes integrations with hospitality systems, including property-management systems, central reservation systems, booking engines, and distribution platforms, but its public materials do not confirm a versioned REST API, webhook model, file interface, batch API, or authentication scheme. The available interface may depend on the customer or partner arrangement. Martini can consume a confirmed Duetto or hospitality-platform API, receive selected supported notifications, run scheduled synchronization workflows, transform reservation and revenue data, and expose a normalized API to downstream systems. Authentication, access scope, pagination, rate limits, and read/write permissions should be confirmed before implementation.
| Integration point | Supported by Duetto? | Common use cases | How Martini supports it |
|---|---|---|---|
| REST APIs | Not confirmed | Duetto publicly describes integrations with hospitality systems, but a public, versioned REST API reference was not located. A confirmed API could support reservation, pricing, forecast, or performance data exchange. | Martini can consume a confirmed Duetto or connected-platform REST API, handle pagination and incremental retrieval where available, transform payloads, and orchestrate writes to downstream systems. |
| GraphQL APIs | Not confirmed | No official public Duetto GraphQL documentation was located, so GraphQL access should not be assumed. | If Duetto or a connected hospitality platform provides GraphQL access, Martini can consume it using a configured API workflow; availability and schema must be confirmed first. |
| SOAP APIs | Not confirmed | No official public Duetto SOAP documentation was located. SOAP should only be considered if a specific partner interface documents it. | Martini can consume a confirmed SOAP service and transform its XML responses, but no Duetto SOAP capability is established by the supplied research. |
| Webhooks / outbound callbacks | Not confirmed | Public integration material does not confirm customer-configurable webhooks or complete event coverage for reservations, pricing, forecasts, or availability. | If selected notifications are provided, Martini can expose a receiving API or webhook workflow, validate the message, retrieve current data if necessary, and route the event. |
| Bulk / async / batch APIs | Not confirmed | No public Duetto bulk, asynchronous, or batch API specification was located. Scheduled extraction may instead be available through a customer or partner arrangement. | Martini can orchestrate scheduled or asynchronous processing when the relevant endpoint or export is confirmed, including checkpointing and item-level error handling. |
| File / attachment APIs | Not confirmed | No official public Duetto file-import, file-export, or attachment API documentation was located. | Martini can process confirmed file exchanges using workflows and transformation capabilities, but a Duetto file interface must be supplied by the vendor or partner. |
| Database / analytics access | Not confirmed | Duetto is a hosted SaaS platform, and public documentation does not confirm direct database, JDBC, or analytical database access. | Martini can load confirmed Duetto or source-system extracts into SQL or warehouse targets, without requiring direct access to Duetto's underlying database. |
| Authentication | Not confirmed | Public sources do not identify whether Duetto access uses API keys, OAuth 2.0, bearer tokens, Basic Authentication, client certificates, or managed integration accounts. | Martini can store confirmed credentials and connection settings in environment configuration or secrets, but the Duetto authentication and permission model must be provided before deployment. |
How Duetto exposes data and business events
Duetto REST APIs
Duetto publicly describes integrations with external hospitality systems, but the supplied research does not confirm a public, versioned REST API or its resource schema. Any direct API access may be customer- or partner-specific.
Martini implementation pattern
Martini implementation pattern: when Duetto or a connected hospitality platform provides authenticated REST endpoints, Martini consumes them from a workflow, retrieves pages or date windows, maps the confirmed payloads to a canonical model, and writes the result to downstream systems. The workflow should record checkpoints and distinguish vendor capability from Martini processing.
Implementation sequence
Duetto webhook-style notifications
Public Duetto materials do not confirm general customer-configurable webhooks or complete event coverage. If a partner arrangement provides selected notifications, coverage should be treated as event-specific.
Martini implementation pattern
Martini implementation pattern: expose a receiving API or webhook workflow only for the events Duetto or the connected platform documents. Martini validates the notification, records its correlation information, retrieves the current resource when required, and routes the result to operational or analytical targets.
Implementation sequence
Scheduled hospitality data synchronization
A scheduled exchange may be available through a customer-specific Duetto integration, connected PMS, CRS, booking engine, or export arrangement, although no general Duetto batch interface is publicly confirmed.
Martini implementation pattern
Martini implementation pattern: use a scheduler-triggered workflow to retrieve or process the confirmed source, apply an overlap window where necessary, normalize hotel data, and load a target warehouse or operational application. The workflow can isolate item-level failures while preserving the source checkpoint.
Implementation sequence
Common Duetto integration patterns
Pattern 1: Synchronize reservations to a data warehouse
When to use this pattern
Use this pattern when reservation and stay data is exposed by Duetto or, more commonly, by a connected PMS, CRS, or booking platform and must be centralized for reporting or downstream operations.
Integration direction
Example Mapping
| Duetto Field | Canonical Field | Target Field |
|---|---|---|
| Property ID | propertyId | property_id |
| Reservation ID | reservationId | reservation_id |
| Room Type | roomTypeId | room_type_id |
| Modification Timestamp | modifiedAt | modified_at |
Martini implementation pattern
A scheduled Martini workflow retrieves incremental data using supported modification filters or an overlap window, maps reservations into a canonical schema, validates property and room-type mappings, and performs idempotent warehouse upserts. Transient failures receive bounded retries, while item-level validation failures are retained for replay.
Martini capabilities used
- workflows
- API consumption
- scheduling
- data mapping
- business rules
- error handling
Pattern 2: Distribute approved pricing recommendations
When to use this pattern
Use this pattern only when Duetto exposes a confirmed write-capable pricing interface or when an authorized connected system accepts Duetto recommendations for distribution.
Integration direction
Example Mapping
| Duetto Field | Canonical Field | Target Field |
|---|---|---|
| Room Type | roomTypeId | room_type_id |
| Rate Plan | ratePlanId | rate_plan_id |
| Recommended Rate | approvedRate | rate |
| Effective Date | effectiveDate | start_date |
Martini implementation pattern
Martini retrieves approved recommendations, validates property, room type, rate plan, effective dates, minimum and maximum rate rules, restrictions, and manual overrides, then sends only eligible updates to the confirmed target. Duplicate prevention and explicit exception routing protect against unintended write-back.
Martini capabilities used
- workflows
- API consumption
- data mapping
- business rules
- validation
- error handling
Pattern 3: Load revenue performance into analytics
When to use this pattern
Use this pattern when Duetto or an approved partner interface exposes occupancy, ADR, RevPAR, revenue, pickup, forecast, or market-segment measures for extraction.
Integration direction
Example Mapping
| Duetto Field | Canonical Field | Target Field |
|---|---|---|
| Business Date | businessDate | business_date |
| Occupancy | occupancyRate | occupancy_rate |
| Average Daily Rate | adr | adr |
| Revenue | revenueAmount | revenue_amount |
Martini implementation pattern
A scheduler starts a Martini workflow that extracts data by property and business date, normalizes time zones and currencies, validates measure completeness, and loads staged results into Snowflake. Source timestamps and extraction checkpoints support reconciliation and safe reruns.
Martini capabilities used
- scheduling
- workflows
- data mapping
- JSON handling
- business rules
- monitoring
Pattern 4: Process supported reservation notifications
When to use this pattern
Use this conditional pattern when Duetto or a connected PMS provides documented event notifications for reservation, availability, or related changes.
Integration direction
Example Mapping
| Duetto Field | Canonical Field | Target Field |
|---|---|---|
| Event Type | eventType | source_event_type |
| Reservation ID | reservationId | reservation_id |
| Market Segment | marketSegment | market_segment |
| Modification Timestamp | modifiedAt | last_modified_at |
Martini implementation pattern
Martini receives the supported notification through an API workflow, validates its signature or credential scheme if provided, deduplicates the event, and retrieves current data when the message is only a signal. It maps the result to Salesforce and sends malformed or unavailable events to an exception path.
Martini capabilities used
- API exposure
- webhooks
- workflows
- data mapping
- validation
- error handling
Applications commonly integrated with Duetto
Duetto operates within a broader hospitality technology landscape. The applications below are practical integration candidates based on common hotel architecture; a specific Duetto-certified relationship, endpoint, or write-back capability must be confirmed with Duetto or the relevant partner.
| Application | Scenario | Direction | Martini Pattern |
|---|---|---|---|
| Oracle OPERA Cloud | Exchange reservations, room inventory, rates, occupancy, and property information for revenue-management workflows. | Oracle OPERA Cloud → Martini → Duetto | Martini can schedule or receive confirmed source data, map OPERA Cloud identifiers to Duetto property, room-type, rate-plan, and reservation concepts, and apply validation and idempotent upsert rules. Any pricing write-back should be gated by confirmed authorization and approval rules. |
| Cloudbeds | Combine property-management and reservation data with Duetto forecasts, pricing processes, and performance analysis. | Cloudbeds → Martini → Duetto | A Martini workflow can retrieve or receive supported Cloudbeds data, normalize dates, currencies, room types, and rate plans, then route the result to the confirmed Duetto interface or an analytical target. Failed items can be isolated for replay. |
| Mews | Exchange reservation, availability, property, and rate information for revenue analysis and pricing operations. | Mews → Martini → Duetto | Martini can orchestrate incremental extraction where supported, maintain property-specific mappings, validate identifiers, and send only approved data to the configured Duetto or downstream endpoint. The workflow can preserve source timestamps and correlation IDs. |
| Stayntouch | Synchronize PMS reservations, room types, occupancy, and rate information with revenue processes. | Stayntouch → Martini → Duetto | Martini can run a scheduled workflow against the confirmed Stayntouch interface, transform PMS payloads into a canonical hospitality model, and apply duplicate detection using property, reservation, and modification identifiers before delivery. |
| SiteMinder | Coordinate rates, availability, and restrictions across distribution channels when the configured hospitality architecture supports the flow. | Duetto → Martini → SiteMinder | Martini can validate approved rate recommendations, effective dates, room types, and restrictions before sending them to a confirmed SiteMinder interface. Rejections and unavailable mappings should be routed to an exception process rather than retried indefinitely. |
| Salesforce | Provide commercial teams with property, booking, and revenue-performance information for account management and reporting. | Duetto → Martini → Salesforce | Martini can retrieve confirmed Duetto or source-system data, map properties, reservations, market segments, and performance measures to Salesforce objects, and use correlation keys to prevent duplicate updates. |
| Snowflake | Centralize reservation, forecast, revenue, occupancy, and performance data for enterprise analytics. | Duetto → Martini → Snowflake | A scheduled Martini workflow can extract data through a confirmed API or export, normalize business dates and currencies, validate measures, and load staged data into Snowflake through the available database or ingestion interface. |
How to build a Duetto integration in Martini
Objective
Establish which Duetto, PMS, CRS, booking-engine, or partner interface is available and define the source of truth for each data object.
Instructions in Martini
- Obtain the applicable Duetto or partner integration specification
- Confirm whether access is direct, partner-mediated, or through a connected hospitality platform
- Document authentication, permissions, read/write scope, pagination, rate limits, and supported filters
- Define ownership for reservations, inventory, rates, recommendations, and analytical measures
Objective
Configure the confirmed authentication method without embedding credentials in workflows or source code.
Instructions in Martini
- Store API keys, tokens, certificates, or managed connection details in Martini environment configuration or secrets
- Limit access to the properties and operations required by the integration
- Confirm credential rotation and expiration procedures
- Test authorization against a non-production account where available
Objective
Select a scheduler, receiving API, or other confirmed trigger based on the available Duetto interface and latency requirements.
Instructions in Martini
- Use a scheduler for supported periodic extraction or export processing
- Use a receiving API only for documented Duetto or partner notifications
- Define overlap windows and checkpoints when event delivery or incremental filters are unavailable
- Set execution limits appropriate to the vendor and target systems
Objective
Obtain reservations, rates, property configuration, or performance data from the confirmed source while preserving source context.
Instructions in Martini
- Retrieve bounded date ranges or modification windows
- Process pagination and continuation information when provided
- Preserve property IDs, source identifiers, timestamps, and correlation IDs
- Avoid assuming that Duetto product concepts have publicly standardized endpoint names
Objective
Convert hospitality payloads into a stable canonical model suitable for operational and analytical targets.
Instructions in Martini
- Map Property, Room Type, Rate Plan, Reservation, Market Segment, and performance measures
- Normalize business dates, event timestamps, currencies, taxes, fees, and gross or net treatment
- Use stable identifiers instead of display names wherever possible
- Record unmapped values for controlled configuration updates
Objective
Protect data quality and prevent unauthorized pricing or duplicate processing before writing to a target.
Instructions in Martini
- Validate property, room-type, rate-plan, and market-segment mappings
- Apply approval, effective-date, restriction, and manual-override rules to pricing flows
- Use reservation or source update identifiers for idempotency
- Route invalid or incomplete items to an exception path
Common Duetto data objects used in integrations
| Object | Typical Use | Common target systems | Martini handling |
|---|---|---|---|
| Property | Identifies the hotel or hospitality location managed in Duetto and scopes reservations, rates, inventory, and performance measures. | PMS, CRS, data warehouse, Salesforce | Martini maps stable property identifiers, preserves location and source-system context, and applies property-specific configuration rules. |
| Room Type | Represents a sellable accommodation category used for availability, pricing, and revenue analysis. | PMS, CRS, booking engine, distribution platform | Martini maps source identifiers rather than relying only on display names and validates that the room type is active and configured for the target. |
| Rate Plan | Defines a pricing or booking-rule structure associated with room inventory. | PMS, CRS, booking engine, SiteMinder | Martini validates rate-plan eligibility, effective dates, restrictions, and approval state before distributing or storing rate information. |
| Reservation | Represents a guest booking or reservation event received from a connected hospitality system. | PMS, CRM, finance platform, data warehouse | Martini uses reservation and property identifiers with modification timestamps for incremental synchronization, idempotent upserts, and replay. |
| Market Segment | Classifies demand, production, and revenue for analysis and forecasting. | Data warehouse, Salesforce, reporting platforms | Martini maps segment codes through a controlled configuration table and routes unmapped values to data-quality handling. |
| Forecast or Performance Data | Contains measures such as demand, occupancy, ADR, RevPAR, revenue, pickup, and related analytical values. | Snowflake, SQL databases, BI platforms, Salesforce | Martini normalizes business dates, time zones, currencies, and gross/net treatment before validation and warehouse loading. |
Authentication and security considerations
Confirm the access model
Public Duetto materials do not identify the authentication scheme, token format, scopes, credential lifecycle, or webhook signing model. Confirm whether access uses partner credentials, an account-specific token, a managed integration account, or a connected hospitality platform.
Protect integration secrets
- Store credentials and API keys in Martini environment configuration or secrets.
- Limit permissions to the required properties, objects, and operations.
- Do not assume PMS or CRS credentials can be used directly against Duetto.
- Confirm rotation, expiration, and production access procedures before deployment.
Operational considerations for Duetto integrations
Plan for an unconfirmed interface
Obtain the applicable Duetto or partner specification before finalizing the design. Confirm endpoints, object identifiers, filters, pagination, rate limits, retry-after behavior, and read/write permissions.
Make synchronization repeatable
- Use stable property, reservation, room-type, and rate-plan identifiers.
- Use modification timestamps, versions, checkpoints, or bounded overlap windows for incremental processing.
- Preserve business dates separately from event timestamps and retain source time-zone context.
- Normalize currencies, taxes, fees, and gross or net revenue treatment.
- Use bounded retries for transient failures and isolate item-level validation failures.
- Test changes to room types, rate plans, market segments, properties, and distribution configuration.
Why use Martini instead of scripts or point-to-point integrations?
Coordinate multiple hospitality systems
Duetto integrations may involve Duetto, a PMS, a CRS, a booking engine, a distribution platform, and analytical targets. Martini centralizes orchestration, mappings, business rules, credentials, and error handling instead of scattering logic across scripts.
Support controlled change
Martini workflows can provide scheduled or API-led execution, reusable transformations, canonical models, idempotent processing, and explicit exception paths. This is useful when the available Duetto interface is customer-specific or changes as partner arrangements evolve.
Improve operational visibility
- Separate retrieval, transformation, validation, and target-write stages.
- Preserve correlation IDs, source payload context, checkpoints, and replay information.
- Expose normalized APIs without requiring every consumer to understand Duetto-specific details.
Frequently asked questions
Duetto integrations commonly involve hospitality source systems such as PMSs, CRSs, booking engines, and distribution platforms. The supplied research does not confirm a public Duetto API specification, webhook model, file interface, or authentication scheme, so the practical approach is to confirm the customer- or partner-specific interface first. Data can then be synchronized through the available API, notification, export, or connected-platform mechanism.
Yes, Martini can integrate with Duetto when the required interface is made available. It can consume a confirmed Duetto or hospitality-platform API, receive documented notifications, run scheduled workflows, transform hospitality data, and expose APIs for downstream applications. The available Duetto access method and permissions must be confirmed before implementation.
No. A dedicated Duetto connector is not required. Martini can use Duetto's confirmed native integration mechanisms, a connected PMS or CRS API, supported webhook-style notifications, exports, or other documented endpoints. A native Martini Duetto connector was not verified in the supplied research.
Lonti does not charge an additional per-connector or per-vendor fee to integrate Duetto. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Duetto, a connected PMS or CRS, cloud infrastructure, or other third-party systems depending on subscriptions, usage, and deployment model.
The method depends on the customer or partner arrangement. A confirmed REST API would generally support controlled retrieval or write-back, while selected event notifications could support lower-latency processing. Scheduled extraction may be appropriate for performance data. Public Duetto GraphQL, SOAP, bulk, file, database, and general authentication capabilities were not confirmed.
Only if Duetto or the connected hospitality platform provides documented webhook or callback notifications for the required events. Public materials do not confirm general customer-configurable webhooks or complete event coverage. Martini can expose a receiving API and process selected supported notifications with validation and deduplication.
Martini can map Property, Room Type, Rate Plan, Reservation, Market Segment, and performance data into a canonical model. Incremental synchronization should use modification timestamps, versions, or bounded overlap windows where available. Stable identifiers, property context, checkpoints, and idempotent upserts help prevent duplicate reservations and safely process updates.
Yes. Martini can expose a controlled API that normalizes confirmed Duetto or connected-platform data for downstream applications. The façade can apply authorization, validation, transformation, business rules, and consistent error handling while keeping vendor-specific access details behind the integration workflow.
Related Martini documentation
Workflows
Transformation
Connect Duetto with the systems that run your hospitality business
Use Martini to evaluate the available Duetto or partner interface, orchestrate reliable data flows, and maintain the mappings, controls, and operational handling required for enterprise hospitality integrations.