Best Practices
Recommended setup
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
Don't mix properties in a single API key. Cloudbeds API keys are property-scoped — using one key for multiple properties won't return combined data; it will only return data for the property the key belongs to. Use Append to combine, not a shared key.
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?
