---
title: "Set conversation events"
url: https://docs.gleap.ai/en/reference/rest-api/set-events
method: PUT
path: "/s2s/conversations/{conversationId}/events"
api: "API Reference"
tag: "S2S Conversations"
operationId: "SetEvents"
updatedAt: "2026-11-01T18:40:15.677Z"
language: en
---

# Set conversation events

`PUT https://api.gleap.io/v3/s2s/conversations/{conversationId}/events`

Attach an event log snapshot to the conversation — the same events `Gleap.trackEvent()` buffers in the SDK flow and attaches when a conversation is created. Scoped to this conversation only (not the contact), so events from other sessions never mix in. Shown to agents in the conversation's "Logs" panel. Each call replaces the previous snapshot (max 500 events, 2 MB). Not delivered via webhooks or the stream. For contact-level events that drive outbound rules, use `POST /contacts/{userId}/events` instead.

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Path parameters

- `conversationId` (string, required)

## Request body (`application/json`, required)

- `events` (object[], required): Snapshot of the events that led up to this conversation (max 500 entries, 2 MB). Replaces any previous snapshot for this conversation.
  - `name` (string, required): Event name, e.g. "screen\_opened" or "pageView".
  - `date` (string): ISO timestamp of when the event happened; defaults to now.
  - `data` (any): Arbitrary event payload (flat key→value object).

## Example request

```bash
curl --request PUT \
  --url 'https://api.gleap.io/v3/s2s/conversations/{conversationId}/events' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "events": [
    {
      "name": "<name>"
    }
  ]
}'
```

## Responses

### 204

No Content
