Bridge App
Automatically send your community's data to outside services on a schedule.
You can install and manage Root's own Apps on desktop or mobile. Apps from other developers, and Bots, are installed from Root on desktop. Once installed into a community, Apps and Bots can be used on Root desktop and mobile.
What is Bridge?
Bridge is a data export app that sends snapshots of your community's information to external services via webhooks. You choose which data to include (channels, roles, member counts, and more), point it at a URL, and Bridge delivers a JSON payload on a regular schedule. This lets you feed community data into dashboards, bots, analytics tools, or any service that accepts HTTP webhooks.
How it works
A bridge is a configured webhook export. Each bridge defines a target URL, which community data fields to include, and optional custom fields. Bridge delivers the selected data as a JSON payload to the target URL on a fixed schedule.
Data fields
When creating a bridge, you select which community data to include in each delivery. Fields are grouped into categories:
| Category | Fields |
|---|---|
| Community Info | Community Name, Community Description, Community Icon |
| Member Statistics | Member Count |
| Structure | Channels, Channel Groups, Roles |
| Voice | Voice Channels |
Only selected fields appear in the delivered payload. The JSON Preview next to the form (below it on a phone or narrow window) shows exactly what will be sent with your current selection. You can change your selection at any time by editing the bridge.
Voice Channels includes the Root user IDs of the members in each voice channel. Those IDs are sent to the service at your webhook URL, outside Root.
Custom fields
Each bridge can include custom fields: key-value pairs that are added to every delivery. Use these to tag payloads with identifiers, environment names, or any metadata your receiving service needs.
Webhook URL
The webhook URL must start with https:// and point to a public address on the internet. Addresses on a private network, such as localhost or 192.168.x.x, are rejected. Bridge does not follow redirects: a 3xx response counts as a failed delivery, so use the final URL.
Delivery schedule
Bridges deliver data every 15 minutes. Bridge checks for due deliveries every 60 seconds, builds a snapshot of the selected community data, and sends it as an HTTP POST request to the target URL. The request times out after 10 seconds if the target does not respond. Any 2xx response counts as a successful delivery. Each delivery is a single JSON object with these top-level keys:
communityId,exportId,exportName, andtimestamp: identify your community and this bridge, and record when the snapshot was taken.data: the selected community data fields (channels, roles, and so on).custom: your custom key-value fields.
Signed deliveries
Every bridge has its own signing secret, so the receiving service can check that a delivery really came from that bridge. Each request carries two headers:
| Header | Value |
|---|---|
X-RootBridge-Timestamp | When the request was sent, in Unix seconds |
X-RootBridge-Signature | sha256= followed by the hex HMAC-SHA256 of the timestamp, a period (.), and the raw request body, using the signing secret as the key |
To verify a delivery, compute the same HMAC with your copy of the secret and compare it with the header, using a constant-time comparison. Reject requests whose timestamp is more than a few minutes old. The bridge's edit page shows the secret and a short code example under How to verify a delivery.
Keep the secret private. If it is exposed, rotate it (see Rotate the signing secret).
Statuses
Each bridge has a status that reflects its current state:
| Status | Meaning |
|---|---|
| Active | Delivering on schedule. |
| Paused | Not delivering. Select Resume to start again. |
| Error | The last delivery failed. Bridge continues to retry on schedule and returns to Active when a delivery succeeds. |
Delivery logs
Every delivery attempt is recorded in a log, kept for 30 days. Open a bridge to see its log under Delivery History. Each log entry shows the time of the attempt, whether the delivery succeeded, the HTTP status code returned, how long the request took, the payload size, and any error message if it failed. Use delivery logs to diagnose issues with your receiving service.
Roles and permissions
Bridge uses a single permission group configured by community owners.
| Role | Description |
|---|---|
| Bridge Admins | Users and roles who can create and manage webhook data exports. |
What Bridge Admins can do
- Create, edit, and delete bridges
- Select data fields and custom fields
- Test deliveries on demand
- Pause and resume bridges
- View, copy, and rotate signing secrets
- View delivery logs
Members without the Bridge Admin permission see a No Access message when they open Bridge.
Create a bridge
Bridge Admins can create new webhook exports.
- Select Create Bridge (or Create Your First Bridge if you have none yet).
- Enter a Name for the bridge.
- Enter the Webhook URL where payloads should be delivered.
- Select at least one data field to include in deliveries.
- Optionally add custom fields (key-value pairs).
- Select Save.
The bridge starts in Active status and delivers its first payload on the next delivery cycle, usually within a minute.
Create bridge fields
| Field | Required | Limit | Notes |
|---|---|---|---|
| Name | Yes | 100 characters | A descriptive label for this bridge |
| Webhook URL | Yes | 2,048 characters | A public https:// endpoint that receives payloads |
| Data Fields | Yes (at least 1) | 8 available | Select which community data to include |
| Custom Fields | No | 20 fields | Key-value pairs added to every delivery. Keys up to 64 characters, values up to 1,000 |
Test a bridge
Bridge Admins can trigger an immediate test delivery to verify the webhook URL and payload.
- Open an existing bridge.
- Select Test.
Bridge sends a delivery immediately using the bridge's saved settings, even when the bridge is paused. The result appears as a notification and in the delivery logs.
Edit a bridge
Bridge Admins can update any bridge's settings.
- Open the bridge you want to edit.
- Update the Name, Webhook URL, data fields, or custom fields.
- Select Save.
Changes take effect on the next scheduled delivery. Saving does not change whether the bridge is paused.
Pause or resume a bridge
Bridge Admins can stop a bridge's deliveries without deleting it.
- In the bridge list, or on the bridge's edit page, select Pause.
The bridge shows Paused and sends nothing until you select Resume. A paused bridge keeps its settings, signing secret, and delivery logs.
Rotate the signing secret
Bridge Admins can replace a bridge's signing secret, for example if it was shared by mistake.
- Open the bridge.
- Under Signing Secret, select Rotate.
- Confirm.
The old secret stops working at once. Update the receiving service with the new secret, or it will reject deliveries until you do. Select Reveal or Copy to get the new secret.
Delete a bridge
Bridge Admins can permanently remove a bridge.
- Open the bridge you want to delete.
- Select Delete.
- Confirm the deletion.
Deleting a bridge stops all future deliveries and hides its delivery history. The logs themselves are cleared within 30 days. This action cannot be undone.
Limits
| Item | Limit |
|---|---|
| Bridges per community | 25 |
| Bridge name length | 100 characters |
| Custom fields per bridge | 20 |
| Custom field key length | 64 characters |
| Custom field value length | 1,000 characters |
| Delivery interval | Every 15 minutes |
| Delivery timeout | 10 seconds |
| Delivery log history | 30 days |