Skip to main content
Project webhooks let MeshAgent send HTTP events to your own systems when something happens in a project. Use them when you want an external service to react to events such as rooms starting or ending, or storage files changing. This page is about managing project webhooks. If you are building a service that handles room.call handoffs, see Webhook Handoffs.

Create a webhook

For standard JSON event delivery, create the webhook without --action:
meshagent webhook create \
  --name room-events \
  --url https://example.com/webhook \
  --event room.started \
  --event room.ended
Use --action call only when the target URL should be invoked as a room.call style handoff. List and delete webhooks:
meshagent webhook list
meshagent webhook delete WEBHOOK_ID

Supported events

EventData fields
room.startedroom_name
room.endedroom_name
storage.file.updatedpath, participant_id
storage.file.deletedpath, participant_id
*all supported events
Standard delivery is JSON:
{
  "event": "room.started",
  "data": {
    "room_name": "my-room"
  }
}

Signatures

MeshAgent signs webhook requests and sends a Meshagent-Signature header.
  • The header value is Bearer <jwt>.
  • The JWT contains a SHA-256 hash of the payload.
If you want to verify signatures yourself, copy the webhook secret from MeshAgent Studio or retrieve it through the REST API, then verify the header in your receiver before processing the event.

Where to manage webhooks

  • Use MeshAgent Studio for the main UI flow and to copy the webhook secret.
  • Use the CLI for quick setup and basic management.
  • Use the REST API if you need programmatic creation, update, or deletion.