FlowRunner
PricingContact
Theme
Start Free

Channex

ERP

Connect AI agents to Channex, a hotel channel manager that syncs availability and rates across booking sites. Agents push rate and availability updates, read bookings as they land, and keep room types and rate plans consistent across channels.

4 triggers 29 actions API key available
Channex website ↗ Platform Documentation ↗ Capability data verified 2026-08-04
On Availability or Rate Change fires, or a scheduled revenue run starts
Get Rates and Restrictions returns the current values per rate plan across the date range
Get Availability returns the rooms left per room type over the same dates
Proposed rates are compared against current ones and against the rate plan's own currency
Every rate is confirmed to be expressed in minor currency units before it reaches a channel
The revenue manager receives the diff, the affected dates, and the resulting nightly price
A person approves before Update Rates and Restrictions queues the push to every mapped channel

What This Integration Enables

Channex sits between a property and the booking sites that sell it, so the product is the sync itself. That makes this connector unusually consequential for its size: a write here does not change a row in a database somebody will look at later, it changes what Booking.com, Expedia, Airbnb, and Agoda are currently selling. The connector covers the whole object graph a property needs. Properties, room types, and rate plans are fully writable, so a new property can be stood up from a flow. Availability and rates are read through Get Availability and Get Rates and Restrictions and written through Update Availability and Update Rates and Restrictions, each of which sets values across a date range in one call. And bookings come back with their full history rather than only their current state.

That booking history is the most useful design decision in the product, and it deserves to be used rather than worked around. Every channel update to a booking creates a new revision. Get Booking Revisions Feed returns the revisions that have not yet been acknowledged, oldest first, and Acknowledge Booking Revision removes one from the feed once you have processed it. That is a durable queue with at-least-once delivery, which is exactly the property you want for events that carry money, and it means a flow that crashes halfway through a batch resumes without losing a cancellation. A few other facts decide whether a flow behaves. Authentication is an API key created in the API Key Access section of your Channex profile and sent as the user-api-key header, and the Environment setting selects Production at secure.channex.io or Staging at staging.channex.io, which is worth using given what the production surface is wired to. Rates travel in minor currency units, so 30000 means 300.00. Availability is tracked at the room type level rather than per unit. Writes to availability and rates are queued as tasks and return a task ID rather than a confirmation. Delete Property, Delete Room Type, and Delete Rate Plan each accept a Force flag to remove an entity that still has nested entities or channel mappings attached, and a deleted property cannot be recovered. Four realtime triggers ship with this connector, each backed by its own Channex webhook. Channex does not sign webhook payloads, so deliveries arrive as unauthenticated POSTs matched to a trigger only by the connectionId in the callback URL, which makes re-reading the record the sound pattern. Agents keep the inventory and the pricing in step. The push that reaches a live channel is where human-in-the-loop orchestration belongs.

Without FlowRunner

Rates typed into each channel The same price is entered into three booking sites by hand, and one of them is wrong by Friday
A push is assumed to have applied The call returned, so the rate is treated as live, and the queue behind it stays invisible
Bookings pulled when somebody remembers Channel bookings reach the property system on export day, and modifications are read out of order

With FlowRunner

One push reaches every mapped channel Rates and restrictions are set once across a date range and Channex distributes them outward
The queue is acknowledged, not assumed An availability or rate write returns a task ID, and the flow treats that as queued rather than applied
Revisions are consumed in order The unacknowledged feed is read oldest first and each revision is acknowledged only after it is processed

Use Case Scenarios

A revenue decision that reaches every channel at once, on purpose

A pricing model in a spreadsheet or a data warehouse produces a rate for each night of the next ninety days. The agent reads the current position first, calling Get Rates and Restrictions for the rate plan across the range with the restriction types it cares about, and Get Availability for the rooms actually left per room type, so the proposal is compared against reality rather than against last week's export. It builds the diff, converts every price into minor currency units against the rate plan's own currency read from Get Rate Plan, and puts the resulting nightly price in front of a person in plain money. Only after approval does Update Rates and Restrictions run, supplying only the values that change and leaving blank fields untouched. The call returns a task ID rather than a confirmation, so the flow records that ID as evidence the write was queued and does not report the new rate as live on the strength of an HTTP status.

Channel bookings pulled into the property system without gaps

When On Booking fires, or on a short schedule as a backstop, the agent calls Get Booking Revisions Feed to read the revisions nobody has processed yet, oldest first. For each one it calls Get Booking Revision for the exact state the channel sent, and Get Booking for the current consolidated view, which matters because a booking that was created, modified, and cancelled inside an hour arrives as three revisions and only the sequence explains what happened. Each processed revision goes through Acknowledge Booking Revision so it stops appearing in the feed, and only then. The reservation writes into the property system, the arrival posts to the front desk channel in Slack, and cancellations that carry a refund are separated out for a person. Because acknowledgement is explicit, a run that fails partway through leaves the unprocessed revisions in the feed rather than losing them.

Standing up a property, and the delete that goes with it

A new property comes onto the estate. The agent calls Create Property with its title and currency, noting that contact and address fields are optional at setup but required before a channel can be connected, then Create Room Type for each physical room category with its adult, child, and infant occupancy and its Count of Rooms, and Create Rate Plan for each product sold against those rooms, choosing Sell Mode per_room to sell the whole room or per_person to price per guest and setting a Parent Rate Plan where the plan is derived, cascaded, or automatic. Update Availability seeds the inventory. The mirror of this is the part that waits for a person: Delete Property with Force removes a property that still has room types and rate plans under it, and a deleted property cannot be recovered, so a test property and a live one are separated by a flag rather than by a warning.

Human-in-Loop Highlight

Update Rates and Restrictions is the operation to gate, and the reason is a unit conversion. Channex expresses rates in minor currency units, so a nightly rate of three hundred euros is sent as 30000. That convention is correct, unambiguous, and completely invisible to anything upstream. A pricing model in a spreadsheet holds 300. A rate pulled from a competitor feed holds 300.00. An agent that passes either of those through without converting sets the rate to three euros a night, and Channex accepts it, because three euros is a valid price. The write is then distributed to every mapped channel, and the first evidence anybody gets is a run of confirmed bookings that cannot be cancelled without cost. The inverse error is quieter and lasts longer: a value already in minor units, multiplied again, sets a rate a hundred times too high, the property sells nothing for a fortnight, and it reads as a soft market rather than as a bug. Two further properties of this action make it worth stopping on. It applies across a whole date range in one call, so the blast radius is a season rather than a night. And it returns a task ID rather than a result, meaning the flow finds out that the write was queued, not that it was applied. So the agent presents money, not payloads. It reads Get Rate Plan for the plan's own currency, Get Rates and Restrictions for what is currently live across the range, and Get Availability for how many rooms the change is actually attached to, then posts to the revenue manager in Slack: "Rate push for Rate Plan 'Flex Double, BAR', 12 March to 30 April, 50 dates. Current rates run 189.00 to 245.00. Proposed rates run 172.00 to 268.00, sent as minor units 17200 to 26800. 8 dates would drop more than 15 percent below the current rate, all of them weekends with 4 or fewer rooms left. Update Rates and Restrictions queues the change to every mapped channel and returns a task ID rather than a confirmation. Push all 50 dates, push everything except the 8 weekend dates, or hold?" A person answers once, and the agent pushes only what was released. Update Availability sits behind the same gate, since setting a room type's availability higher than the rooms that exist is how a property gets oversold across four booking sites simultaneously, and Delete Property, Delete Room Type, and Delete Rate Plan join it whenever Force is set, because Force is the flag that removes something other things still depend on. This is the digital andon cord placed on a channel manager's one genuinely public write.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via Slack
Human decides
Agent resumes with decision

Agent Capabilities

29 actions

Properties

5
  • List Properties Lists the properties in the account with paging, optionally filtered by a text fragment matched against the property title. Returns up to one hundred properties per page.
  • Get Property Retrieves a single property by ID with its contact details, coordinates, settings, and content.
  • Create Property Creates a property. Only title and currency are required; contact and address fields are optional at setup but required before a channel can be connected. Currency is the ISO 4217 alphabetic code and country the ISO 3166-1 alpha-2 code.
  • Update Property Updates a property, changing only the fields you supply and leaving anything blank as it was.
  • Delete Property Deletes a property. Force removes one that still has room types and rate plans nested under it. Deleted properties cannot be recovered, which is why Force belongs behind a person.

Room types

5
  • List Room Types Lists the room types for a property with paging. Room types describe the physical rooms, their occupancy, and their inventory count, and rate plans attach to them.
  • Get Room Type Retrieves a single room type by ID with its occupancy settings, inventory count, and content.
  • Create Room Type Creates a room type under a property. Occupancy fields set how many adults, children, and infants the room holds, Count of Rooms is the physical inventory, and Room Kind is one of room, dorm, or facility.
  • Update Room Type Updates a room type, changing only the fields you supply.
  • Delete Room Type Deletes a room type. Force removes one that still has rate plans attached to it.

Rate plans

5
  • List Rate Plans Lists the rate plans for a property with paging. A rate plan holds the prices and restrictions sold for a room type on a channel.
  • Get Rate Plan Retrieves a single rate plan by ID with its occupancy options, restrictions, currency, and sell and rate modes. Read the currency here before building any rate payload.
  • Create Rate Plan Creates a rate plan for a room type. Sell Mode per_room sells the whole room while per_person prices per guest. Supply the primary occupancy and its default rate, and set a Parent Rate Plan for derived, cascade, or auto rate modes.
  • Update Rate Plan Updates a rate plan's title, currency, sell or rate mode, parent, or tax set. Per date prices and restrictions are changed through Update Rates and Restrictions instead.
  • Delete Rate Plan Deletes a rate plan. Force removes one that is still referenced, for example by a channel mapping.

Availability and rates

4
  • Get Rates and Restrictions Reads rate and restriction values per rate plan across a date range, with a choice of which restriction types to load, covering rate, minimum stay, closed to arrival, closed to departure, stop sell, and more. Availability Offset and Max Availability are read only.
  • Get Availability Reads the number of available rooms per room type across a date range. Availability is tracked at the room type level rather than per unit.
  • Update Rates and Restrictions Sets rate and restriction values for a rate plan across a date range in one call, supplying only the values to change and leaving blank fields untouched. Rates are in minor currency units, so 30000 means 300.00. The update is queued as a task and returns a task ID rather than a confirmation, so treat a successful call as queued.
  • Update Availability Sets the number of available rooms for a room type across a date range in one call. Also queued as a task with a task ID returned. This is the write that decides whether a property can be oversold.

Bookings

6
  • List Bookings Lists bookings with paging, optionally filtered by property and by arrival, departure, or creation date range. Each booking reflects the latest revision received from the channel.
  • Get Booking Retrieves a single booking by ID with guest details, rooms, dates, prices, and channel information.
  • List Booking Revisions Lists booking revisions with paging, optionally filtered by property, returning the full revision history rather than only the latest state.
  • Get Booking Revisions Feed Returns the revisions that have not yet been acknowledged, oldest first. This is the reliable way to pull new and changed bookings into a property system, because a revision stays in the feed until you say you have handled it.
  • Get Booking Revision Retrieves a single revision by ID, showing the exact state of the booking as the channel sent it. The way to reconstruct what actually happened when a stay was created, changed, and cancelled in quick succession.
  • Acknowledge Booking Revision Acknowledges a revision so it leaves the unacknowledged feed. Call it after processing, not before, so a failed run resumes instead of skipping.

Webhooks

4
  • List Webhooks Lists the webhooks registered on the account with paging, each with its callback URL and the event mask deciding what is delivered.
  • Create Webhook Registers a webhook that POSTs to your callback URL when matching events occur. The event mask is `*` for everything or a semicolon separated list such as `booking_new;booking_cancellation`. Leaving Property blank makes it global across the account. This registers an external endpoint of your choosing, which is separate from the four triggers below.
  • Delete Webhook Removes a webhook so it stops receiving events. Worth checking what depends on it first.
  • Test Webhook Sends a test POST to a callback URL and returns the status code and body the endpoint answered with. The right way to confirm an endpoint is reachable before a live booking depends on it.

Triggers

4 triggers

Event Triggers

4
  • On Booking Fires when Channex receives a booking revision from a channel. Choose whether any change fires the flow, or specifically new, modified, cancelled, or unmapped bookings. Leave Property blank to watch every property in the account.
  • On Availability or Rate Change Fires when availability, rates, or restrictions change on a property, whether that change came through the API, the Channex interface, or a revenue management system. The payload lists each changed date with its room type, rate plan, availability, and stop sell flag, which makes this the trigger for detecting a change somebody else made.
  • On Guest Message Fires when a new guest message arrives through the Channex messaging API. Leave Property blank to watch every property.
  • On Review Fires when a guest review is received or updated. Choose whether to fire on new reviews, updated reviews, or both. Channex does not sign webhook payloads, so deliveries arrive as unauthenticated POSTs matched to a trigger only by the `connectionId` in the callback URL. Treat an inbound event as a prompt to re-read the record with Get Booking, Get Booking Revision, or Get Rates and Restrictions rather than as evidence in itself.

Frequently Asked Questions

What can FlowRunner do with Channex?

FlowRunner agents can run List Properties, Get Property, and Create Property in Channex, plus 26 more actions.

Does connecting Channex to FlowRunner require OAuth?

No. Channex connects to FlowRunner with an API key, no OAuth flow required.

Can Channex trigger a FlowRunner workflow automatically?

Yes. Channex supports 4 triggers that can start a FlowRunner workflow automatically.

Start building with Channex

$100 in credits. No card required. Connect in minutes.