Best Practices

Join Reservations with Guests and Transactions

Reservations alone only give you booking metadata. Join on Guest ID to add contact details, and on Reservation ID to add payment data — this gives you the complete picture for any guest stay analysis.

Use one API key per property

If you manage multiple properties, generate a dedicated API key for each one in Cloudbeds. Then use the Append transformation in Coupler.io to merge data across properties into a single destination table.

Start with Reservations as your anchor entity

Reservations link to almost every other entity (guests, rooms, transactions, packages). Build your data model around this entity and join others to it rather than treating each entity as standalone.

Data refresh and scheduling

Refresh Transactions and Reservations more frequently

These change throughout the day as payments are processed and bookings are updated. Rooms and Hotels data changes rarely — you can refresh those less often to stay within Cloudbeds API rate limits.

Avoid running multiple property data flows at the same time

If you're pulling from several properties using separate API keys, stagger your scheduled runs by at least a few minutes to avoid hitting Cloudbeds' rate limits across simultaneous requests.

Performance optimization

Use Aggregate for revenue summaries

Instead of sending raw transaction rows to a spreadsheet and summing there, use Coupler.io's Aggregate transformation to pre-summarize revenue by date, room type, or booking source before it reaches the destination.

Pull static entities separately

Hotels, Rooms, and Packages change infrequently. Set these up as separate data flows with low refresh rates so they don't count against your API quota when refreshing high-frequency data like Reservations.

Common pitfalls

triangle-exclamation

Do

  • Filter Transactions by type (charge, payment, refund) when calculating net revenue

  • Account for the property's local time zone when working with date fields

  • Use reservation status as a filter to exclude cancelled bookings from revenue reports

Don't

  • Assume raw Transaction totals match Cloudbeds built-in reports without checking filter logic

  • Run all entities on the same high-frequency schedule — prioritize by how often data actually changes

  • Forget to update the API key in Coupler.io if you regenerate it in Cloudbeds

Last updated

Was this helpful?