***
id: 253b5c01-bc0e-4557-a666-bae09e9f45e8
slug: /reference/user-event
title: user\_event
description: Send custom events to the connected client on the call.
max-toc-depth: 3
----------------
[browser-sdk]: /docs/browser-sdk/v3/js/reference/signalwire/client
[on-method]: /docs/browser-sdk/js/reference/video/room-session/on
Allows the user to set and send events to the connected client on the call. This is useful for triggering actions on the client side.
Commonly used with the [browser-sdk][browser-sdk].
Accepts an object mapping event names to values. The event object can be any valid JSON object.
An object that accepts the following properties.
## **Properties**
An object mapping event names to values. The event object can be any valid JSON object.
## **Event Object**
The `event` parameter can be any valid JSON object.
Any key-value pair in the object is sent to the client as an event type called: `user_event`.
The client can listen for these events using the [on-method][on-method].
## **Examples**
### Send a custom event to the client
```yaml
version: 1.0.0
sections:
main:
- user_event:
event:
myCustomEvent: 'Hello, world!'
- play:
url: 'say: Custom event sent.'
```
```json
{
"version": "1.0.0",
"sections": {
"main": [
{
"user_event": {
"event": {
"myCustomEvent": "Hello, world!"
}
}
},
{
"play": {
"url": "say: Custom event sent."
}
}
]
}
}
```
### Send multiple events with different payloads
```yaml
version: 1.0.0
sections:
main:
- user_event:
event:
eventA:
foo: bar
eventB:
count: 42
active: true
- play:
url: 'say: Multiple events sent.'
```
```json
{
"version": "1.0.0",
"sections": {
"main": [
{
"user_event": {
"event": {
"eventA": {
"foo": "bar"
},
"eventB": {
"count": 42,
"active": true
}
}
}
},
{
"play": {
"url": "say: Multiple events sent."
}
}
]
}
}
```