Launch_  Webhooks
TL;DR →
  • Wheelhouse can now push revenue intelligence, wherever you need it.
  • Three event types at launch —
    recommendations.updated
    ,
    reservations.ingested
    , and
    flags.detected
    — covering your entire portfolio from a single subscription.
  • Build instant owner alerts, a real-time booking feed for your data warehouse, or an auto-triage workflow for flagged listings.
  • Built-in reliability: a subscription that fails repeatedly pauses itself.
  • Demo Iink here
🔔
What Shipped
Until now, keeping your system in sync with Wheelhouse meant polling — calling an endpoint on a schedule and diffing the results to see what changed. Webhooks flip that: you register an HTTPS endpoint once, and Wheelhouse pushes events to it as they happen.
Setting one up is a single call: give us a URL and the event types you want, and you're covered. One subscription spans your entire portfolio — every listing you own plus every listing shared with you to manage — so there's no per-listing setup, and no need to maintain multiple subscriptions as your portfolio grows.
📬
The Three Events (For Now)
Every event at launch is scoped to a listing:
  • recommendations.updated
    — a listing's price recommendation changed.
  • reservations.ingested
    — new reservation data landed for a listing.
  • flags.detected
    — a listing tripped one of Wheelhouse's flags.
All three are batched: instead of firing the instant something happens, events collect for 5 minutes, then go out together. So if pickup on 40 listings triggers
reservations.ingested
within the same few minutes, you get one delivery covering all 40 — not 40 separate webhook calls to process.
🧑‍💻
What You Can Build Now
A few things this actually looks like:
  • Instant owner alerts.
    Listen for
    flags.detected
    and fire off a Slack message or an owner email the moment a listing trips a flag — instead of finding out at your next weekly check.
  • Live price sync to your own systems.
    Listen for
    recommendations.updated
    and push the new number straight into your PMS, channel manager, or internal dashboard — no more polling on a schedule and hoping you didn't miss a change.
  • A booking feed for your data warehouse.
    Listen for
    reservations.ingested
    and stream new reservations into your BI tool or warehouse in near real-time, instead of running a nightly export job.
  • An auto-triage workflow for flagged listings.
    Listen for
    flags.detected
    , pull the listing's full KPI history, and auto-create a ticket or task for your RM team — with the context already attached, so nobody's starting from a cold open.
  • A Telegram or Slack bot for your team.
    Route any of the three event types into a bot that posts to a channel, so pricing changes and new flags show up where your team is already working.
🔐
Signing & Security
When you create a subscription, the response includes a signing secret — and that's the only time you'll see it. Store it immediately; it can't be read back later. If you lose it, or it leaks, rotate it and you'll get a new one on the spot. Just know the old secret stops working the moment you rotate, so have your endpoint ready to verify against the new one before you do.
🛠️
Debugging & Reliability
Every delivery attempt is logged — the HTTP status your endpoint returned, and the reason for any failure — retained for 7 days and pullable up to 200 at a time. If your endpoint starts timing out or rejecting deliveries, this is where you go to see exactly what Wheelhouse sent and how your side responded.
And if your endpoint goes down for a while, Wheelhouse won't keep hammering it forever: a subscription that fails repeatedly pauses itself automatically. Once your endpoint's healthy again, re-enable the subscription and the failure count clears — it starts fresh rather than counting against you from before the fix.
You're also in control directly: pause a subscription with
enabled: false
any time you need to do maintenance on your end, and resume it the same way when you're ready.
🥳
Pro Tip!
Wire a
flags.detected
webhook into your workflow, and pair it with a Scoreboards call the moment it fires. The webhook tells you a listing just got flagged — Scoreboards tells you where that listing actually ranks against the rest of your portfolio on the metric that matters, so you're not reacting to one signal in isolation.
📽️ Demo here: