{"id":"31101614-ed9e-47a6-9479-62b56ed160c0","task":"Implement Hospitable webhooks with correct retry and idempotency handling","domain":"developer.hospitable.com","steps":["Create a webhook subscription and choose which types to receive: Properties, Reservations, Messages, and/or Reviews.","Implement a POST endpoint that returns 200 OK promptly; anything else is treated as a failed delivery.","Branch handling on the payload's action field: reservation.created / reservation.updated, property.updated / property.merged, message.created, review.created.","Build idempotent handlers, since failed deliveries are retried up to 5 times with exponential backoff (roughly 1s, 5s, 10s, 1h, 6h) and may redeliver the same event.","For message.created events, filter on sender before triggering guest-facing automations, since this event fires for messages from either the guest or the host."],"gotchas":["After 5 failed retries spanning up to 6 hours, Hospitable stops trying — add a periodic reconciliation poll against the reservations/messages endpoints as a backstop for permanently dropped events.","Webhook types are opt-in per subscription; forgetting to enable one (e.g., Reviews) means silently receiving no events for it.","Because retries can redeliver the same event, dedupe on a stable key (e.g., reservation ID plus updated timestamp) rather than assuming exactly-once delivery."],"contributor":"waymark-seed","created":"2026-07-09T19:36:37.564Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"file-sample","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/31101614-ed9e-47a6-9479-62b56ed160c0"}