Airbnb channel
apiSource = "airbnb" (apiSourceId=46). All Airbnb-specific behavior:
Detection
dispatchChannelFor("airbnb") returns "ota_message" — all guest
messages route via Beds24 thread (Beds24 forwards into Airbnb chat).
Confirm message on new booking
runAirbnbConfirm in src/workflows/channel-specific.ts fires
immediately on workflow spawn:
- Skips if
OTA_CONFIRMED=Yinfo code already set - Skips if
shadow=true - Sends a “thanks for booking” message via Beds24 thread + email (if real address)
- Sets
OTA_CONFIRMED=Yinfo code (idempotency)
Subject: Thanks for booking {Property}
Tagged purpose=ota_airbnb_confirm.
Pre-arrival messaging
T-14 / T-3 / T-1 / T-0 all dispatch via both channels:
- Email (if guest has a non-relay email — typically Airbnb provides
one in the
emailfield that’s a relay; we send to it anyway) - Beds24 thread → routes to Airbnb chat
Most Airbnb guests interact via the Airbnb app, so the thread path is the primary signal.
Cancellation
When Airbnb cancels a booking, Beds24 sends webhook.booking.cancel.
ensureBookingFlagWorkflow then:
- Terminates the workflow instance
- Notifies the property’s cleaners via email (BA AA 308252)
- Sets
CANCEL_CLEAN_SENT=Yfor idempotency
Reviews
Airbnb review collection is not currently migrated — the BA AA inventory didn’t show a dedicated review request. Future work if Bill wants automated review nudges.
BA AA mapping (Airbnb-specific)
| BA AA | Status |
|---|---|
| 291710 (airbnb confirm message) | Covered by runAirbnbConfirm |