Livqeno Docs

Event

Something that happened. Delivered to a connected client as a callback, or to your backend as a webhook.

Livqeno has two event surfaces, and they do not overlap.

Client events

Fire inside your app, in the SDK you are already holding. They exist only while your client is connected.

room.on('participantJoined', (participant) => { /* ... */ });
chat.on('message', (message) => { /* ... */ });

17 room events, 14 chat events. Typed, with typed payloads. Catalogued in RTC events and Chat events.

Webhook events

Server-to-server. Delivered to a URL you register, for reacting from your backend rather than a browser tab.

15 event types today, covering chat messages, reactions, conversation membership, and live-stream lifecycle. Catalogued in Event catalogue.

Which to use

You want toUse
Render a new message in the UIClient event
Show who just joined the callClient event
Write a message to your own databaseWebhook
Notify a user who is not connectedWebhook
Trigger a workflow when a stream endsWebhook

The rule of thumb: if a browser tab being closed should stop it happening, it is a client event. If it must happen regardless, it is a webhook.

They are not the same list

An event existing on one surface does not mean it exists on the other. RTC track and connection-state changes are client-only — nothing server-side needs to react on that timescale, so they are not delivered as webhooks. Conversely room.created, participant.joined and participant.left are webhook events emitted by chat conversation membership, not by RTC rooms.

That naming overlap is worth knowing before you wire a handler.