For an introduction to what Event Routing does and the full event catalog, see the Event Routing overview.
Prerequisites
- Either create an account in our managed instance or deploy your own hoop.dev instance
- Admin access to your hoop.dev instance
- The
experimental.event_routingfeature flag enabled for your org — enabled by default since version 1.85.0 (see Step 1 to verify or enable it on earlier versions) - At least one runbook repository configured with runbooks that declare
metadataparameters - A resource role (connection) with an agent assigned
Step 1: Enable the Feature Flag
Since version 1.85.0,experimental.event_routing is enabled by default — you can likely skip straight to Step 2. To verify it, or to enable it on an earlier version:
- Go to Organization > Settings > Experimental.
- Toggle
experimental.event_routingto On. - Reload the app — Event Routing appears in the sidebar under Discover.
The flag is per-org. On versions before 1.85.0 it defaults to off — no subscriptions are evaluated and no UI surface is visible until you enable it.
Step 2: Review the Event Catalog
- Go to Discover > Event Routing > Event catalog.
- Find the event you want to subscribe to and click View schema to inspect its fields and sample payload.
- Note the field names you plan to map to your runbook’s parameters.
Step 3: Create a Subscription
- Click Create subscription in the header.
- Fill in the form:
- Name — shown in audit logs and dispatch history.
- Description (optional) — when this subscription should fire and why.
- Resource role — the connection the runbook will run against.
- Runbook — populated from the runbooks available on the selected role.
- Subscribed event — one event per subscription.
- Parameter mapping — for each runbook parameter, select the event field that feeds it. Same-name fields are pre-matched.
- Click Save.
Step 4: Verify the Subscription Fires
- Cause the subscribed event to fire. For
session.started, open any session against a connection in the subscription’s resource role. - Open the subscription detail page at Discover > Event Routing > [subscription name].
- A new row appears in Dispatch history within seconds:
Editing and Managing Subscriptions
- Edit — opens the same form used for creation, pre-filled with the current values. The subscribed event is fixed after creation because the parameter mapping depends on the event schema. To change the event, delete the subscription and create a new one.
- Pause / Resume — stops or restarts dispatching.
- Replay — re-runs the stored payload of a failed dispatch through the current subscription configuration. The new dispatch appears at the top of history with its own row.
- Delete — permanently removes the subscription and its dispatch history.
Auditing Dispatch History
Open the subscription detail page
Go to Discover > Event Routing and click Configure on the subscription.
Troubleshooting
Sidebar Entry Not Visible After Enabling the Flag
Check:- Confirm the flag is On for your specific org in Organization > Settings > Experimental — the flag is per-org.
- Reload the app after toggling. The sidebar is rendered on mount, not live-updated.
- Confirm you have the admin role. The route is restricted to admins.
Save Button Stays Disabled on the Form
Check:- Name is filled in.
- A Resource role is selected.
- A Runbook is selected (the dropdown is disabled until a role is chosen).
- Exactly one event is selected in the radio list.
- Every parameter marked
Requiredin the mapping table has a field assigned.
Dispatches Stay at pending
Check:
- The subscription status is
active, notpaused. - The resource role’s connection has an agent assigned and the agent is online.
- The event routing supervisor is running — it is started as part of the gateway process. If the gateway restarted recently, check the logs for startup errors.
Dispatches Flip to failed
Check:
- Open the failed dispatch row —
last_errorcarries the full error message from the dispatcher. - Common causes: the runbook file no longer exists in the repository, a required parameter could not be resolved from the payload, or the runbook process returned a non-zero exit code.
- Fix the underlying cause (update the mapping, push a corrected runbook, restore the file), then use Replay to retry with the original event payload.
Connection Rename Broke a Subscription
Check:- Subscriptions store
connection_namewithON UPDATE CASCADE— renames in Hoop propagate to subscriptions automatically. - If a connection was deleted and recreated with the same name, the subscription is now bound to the new connection. Verify the new connection has the correct agent and runbooks configured.