Webhooks: Messages

Webhook notifications concerning messages.

Resly sends this webhook to your Notification URL for all new messages sent to or from your Resly account.


Channel Message (confirmed booking):

{
  "reslyAccountId": "resly-hotel",
  "reslyWebhookType": "message",
  "messageId": "MSG-12345",
  "messageType": "channel",
  "channelId": "AIRBNB",
  "threadId": "123456",
  "message": "Sounds good!",
  "from": "guest",
  "to": "property",
  "reservationId": "EnOqhQ0VMEgbfMYayc6E",
  "reservationStatus": "confirmed"
}

Channel Message (not yet linked to a reservation):

reservationId is an empty string ("") when the channel thread is not linked to a Resly reservation yet (for example, an enquiry). When that happens, use the threadId from this webhook with Send a message and leave out reservationId. If reservationId is present, use that instead.

Example: enquiry webhook

{
  "reslyAccountId": "resly-hotel",
  "reslyWebhookType": "message",
  "messageId": "MSG-67890",
  "messageType": "channel",
  "channelId": "AIRBNB",
  "threadId": "1234567890",
  "message": "Are these dates available?",
  "from": "guest",
  "to": "property",
  "reservationId": "",
  "reservationStatus": "enquiry",
  "enquiry": {
    "checkIn": "2026-12-01",
    "checkOut": "2026-12-05",
    "adults": 3,
    "children": 0,
    "pets": 0,
    "infants": 0,
    "expectedPayoutAmount": 0
  }
}

SMS Message:

{
  "reslyAccountId": "resly-hotel",
  "reslyWebhookType": "message",
  "messageId": "SMS_12345",
  "messageType": "sms",
  "message": "Sounds good!",
  "from": "guest",
  "to": "property",
  "fromNumber": "+61401000000",
  "toNumber": "+61401888888",
  "reservationId": "12345"
}

Email Message:

{
  "reslyAccountId": "resly-hotel",
  "reslyWebhookType": "message",
  "messageId": "POSTMARK-ef9483d4-4488-43c0-8373-0b3adea6161b",
  "messageType": "email",
  "reservationId": "0YqbzPRwyA0bcY48GLrn",
  "message": "This is a test reply",
  "from": "guest",
  "to": "property",
  "fromEmail": "[email protected]",
  "toEmail": "[email protected]",
  "emailSubject": "Re: test format"
}

Channel fields when reservationId is empty

FieldNotes
reservationIdResly reservation ID, or "" when the thread is not linked to a Resly reservation yet (for example, an enquiry).
threadIdMessage thread ID. When reservationId is empty, use this value with Send a message and leave out reservationId.
reservationStatusOptional. "enquiry" or "confirmed" when known.
enquiryPresent when reservationStatus is "enquiry": checkIn, checkOut, adults, children, pets, infants, expectedPayoutAmount.