Skip to main content

Observability

Connect records what happens to your traffic so you can control the business, watch API health, and debug one operation without guessing. Use the console for day-to-day ops. Use requestId and auditData when you need the wire.

Access to Connect screens requires connect.read on app.bundleport.com. Alerts are not available yet.

ScreenWhat it answersURL
Business AnalyticsBookings, GMV, conversion, marketsapp.bundleport.com/connect/business-analytics
Quote JourneySearch→quote reliability: price, cancellation, surcharges, sold-outapp.bundleport.com/connect/quote-journey
API PerformanceSuccess/error rate, latency, error_category, per-connection healthapp.bundleport.com/connect/observability
TransactionsWhat happened on this search, quote, or bookapp.bundleport.com/connect/transactions/hotels
ConnectivityPer-connection Overview Stats (24 hours), Performance / Errors (7 days)app.bundleport.com/connect/connectivity
Request IDsHow to name one call with supportsettings.requestId / X-Request-ID
Audit tracesWhat was exchanged with the connectionsettings.auditTransactions → auditData.transactions

API Performance is full volume. Transactions is the audited grain: quote, book, cancel, booking detail, and booking list are always recorded. Search is sampled for high-throughput API-key traffic (see What gets audited).

Older paths /connect/dashboard, /connect/analytics, and /connect/overview redirect to Business Analytics. /connect/performance redirects to API Performance.

Connectivity (per connection)​

On a connection’s detail panel: Overview (Stats, 24 hours), Performance (7-day funnel and per-operation rates/latency), and Errors (7-day aggregates). Open API Performance with ?connection= for the same code.

Request IDs and tracing​

Send a requestId in settings (returned as X-Request-ID) so you can find the call in Transactions and in support tickets.

{
"settings": {
"connectionCodes": ["testb-conn-1876"],
"requestId": "req-123456789"
}
}

If you omit it, Bundleport still assigns an internal correlation ID. A client-supplied requestId is easier to search on your side.

Audit traces (connection-level debugging)​

Set settings.auditTransactions: true to include connection-level traces in auditData.transactions (raw request/response when captured).

{
"settings": {
"connectionCodes": ["testb-conn-1876"],
"auditTransactions": true
}
}
warning

Audit payloads can include guest data and references. Do not store or log full bodies in production without redaction. Do not commit them.

Funnel tracking​

Availability returns searchId (analytics only — not a booking token). Pass it as criteria.search_id on quote. Quote returns quoteId; pass search_id and quote_id on book. Do not put these values in optionRefId. If you omit them, analytics may fall back to request context or correlation id.

Treat search options[].id and quote/book optionRefId as opaque strings. Do not parse or truncate them. Their length may grow over time; store and echo them unchanged.

What gets audited​

  • Quote, book, cancel, booking detail, booking list, metadata — always recorded (bodies + Transactions row). Metadata has no dedicated Transactions operation filter; leftover ops render as Operation in the unfiltered list (API Performance has a separate Other tab).
  • Option-block replay — when the platform returns the same book/quote errors[] with book_option_blocked / prebooking_option_blocked without calling the connection again, that call is still audited (synthetic evidence: correlation ids such as optionRefId / clientReference + replayed errors — never payment card or guest PII). Evidence is stored under hop aggregator (…-aggregator.json); Messages still show it in the integration slot. Bodies are for Transactions storage; they are not echoed on the buyer response (audit metadata may remain). Filter Option block → Blocked retries only in Transactions.
  • Search / availability — always audited for interactive console traffic. For API-key traffic it is sampled as volume rises. When a search was captured and later feeds a quote or book (search_id / funnel), that evidence stays available in the related timeline; the platform does not invent search bodies that were never sampled.

Temporary full capture for a connection’s search traffic is available from Transactions (Audit Search) when your account can manage Connect.