Skip to main content

Bridge App

Automatically send your community's data to outside services on a schedule.

note

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:

CategoryFields
Community InfoCommunity Name, Community Description, Community Icon
Member StatisticsMember Count
StructureChannels, Channel Groups, Roles
VoiceVoice 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.

caution

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, and timestamp: 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:

HeaderValue
X-RootBridge-TimestampWhen the request was sent, in Unix seconds
X-RootBridge-Signaturesha256= 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:

StatusMeaning
ActiveDelivering on schedule.
PausedNot delivering. Select Resume to start again.
ErrorThe 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.

RoleDescription
Bridge AdminsUsers 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.

  1. Select Create Bridge (or Create Your First Bridge if you have none yet).
  2. Enter a Name for the bridge.
  3. Enter the Webhook URL where payloads should be delivered.
  4. Select at least one data field to include in deliveries.
  5. Optionally add custom fields (key-value pairs).
  6. 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​

FieldRequiredLimitNotes
NameYes100 charactersA descriptive label for this bridge
Webhook URLYes2,048 charactersA public https:// endpoint that receives payloads
Data FieldsYes (at least 1)8 availableSelect which community data to include
Custom FieldsNo20 fieldsKey-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.

  1. Open an existing bridge.
  2. 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.

  1. Open the bridge you want to edit.
  2. Update the Name, Webhook URL, data fields, or custom fields.
  3. 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.

  1. 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.

  1. Open the bridge.
  2. Under Signing Secret, select Rotate.
  3. 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.

  1. Open the bridge you want to delete.
  2. Select Delete.
  3. 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​

ItemLimit
Bridges per community25
Bridge name length100 characters
Custom fields per bridge20
Custom field key length64 characters
Custom field value length1,000 characters
Delivery intervalEvery 15 minutes
Delivery timeout10 seconds
Delivery log history30 days