> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revreply.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Classification Updated Webhook

> Sent when the classification assigned to a message changes.

<Badge color="blue">WEBHOOK</Badge> `POST`

<Note>
  This webhook is sent when the classification assigned to a message changes.
</Note>

## Overview

The `classification.updated` webhook is triggered whenever the classification assigned to a message changes.

RevReply sends an HTTP `POST` request to your configured webhook URL containing an event object and the event-specific data.

## Event

The webhook event is identified by the following name:

```text theme={null}
classification.updated
```

**Description:** Lead classification updated.

## Payload

All webhook requests follow the same top-level structure, containing an `event` object and a `data` object.

### Event object

| Field         | Type      | Description                                                              | Example                        |
| ------------- | --------- | ------------------------------------------------------------------------ | ------------------------------ |
| `name`        | `string`  | Unique identifier of the webhook event.                                  | `classification.updated`       |
| `description` | `string`  | Human-readable description of the event.                                 | `Lead classification updated.` |
| `sent_at`     | `string`  | ISO 8601 UTC timestamp indicating when the webhook was generated.        | `2026-07-17T20:15:44.000000Z`  |
| `timestamp`   | `integer` | Unix timestamp, in seconds, representing when the webhook was generated. | `1784319344`                   |

### Data object

| Field                    | Type             | Description                                                       | Example                |
| ------------------------ | ---------------- | ----------------------------------------------------------------- | ---------------------- |
| `user_id`                | `integer`        | Identifier of the user.                                           | `123`                  |
| `lead_id`                | `integer`        | Unique identifier of the lead.                                    | `98765`                |
| `inbox_manager_id`       | `integer`        | Identifier of the Inbox Manager associated with the conversation. | `12`                   |
| `thread_id`              | `string`         | Unique identifier of the conversation thread.                     | `4e9bc3a2`             |
| `lead_name`              | `string`         | Name of the lead.                                                 | `Jane Doe`             |
| `inbox_manager_name`     | `string`         | Name of the Inbox Manager associated with the conversation.       | `Sales Assistant`      |
| `phone_number`           | `string \| null` | Lead's phone number, when available.                              | `+15551234567`         |
| `from_email`             | `string`         | Email address from which the message originated.                  | `jane@example.com`     |
| `lead_email`             | `string`         | Primary email address of the lead.                                | `jane@example.com`     |
| `lead_email_list`        | `array<string>`  | List of all known email addresses associated with the lead.       | `["jane@example.com"]` |
| `classification`         | `string`         | Current classification assigned to the message.                   | `INTERESTED`           |
| `initialClassification`  | `string`         | Initial classification assigned to the message. **Deprecated.**   | `SOFT OBJECTION`       |
| `initial_classification` | `string`         | Alias of `initialClassification`, provided for compatibility.     | `SOFT OBJECTION`       |

## Example payload

```json theme={null}
{
  "event": {
    "name": "classification.updated",
    "description": "Lead classification updated.",
    "sent_at": "2026-07-17T20:15:44.000000Z",
    "timestamp": 1784319344
  },
  "data": {
    "user_id": 123,
    "lead_id": 98765,
    "inbox_manager_id": 12,
    "thread_id": "4e9bc3a2",
    "lead_name": "Jane Doe",
    "inbox_manager_name": "Sales Assistant",
    "phone_number": "+15551234567",
    "from_email": "jane@example.com",
    "lead_email": "jane@example.com",
    "lead_email_list": [
      "jane@example.com",
      "j.doe@company.com"
    ],
    "classification": "INTERESTED",
    "initialClassification": "SOFT OBJECTION",
    "initial_classification": "SOFT OBJECTION"
  }
}
```

## Handling the webhook

Your webhook endpoint should accept an HTTP `POST` request with a JSON body.

A successful webhook handler should process the event and return an appropriate HTTP success response.

Because webhook delivery is event-driven, your application should identify the event using `event.name` before processing the contents of `data`.

## Event details

| Property     | Value                               |
| ------------ | ----------------------------------- |
| Event        | `classification.updated`            |
| Method       | `POST`                              |
| Trigger      | A message classification is updated |
| Content type | `application/json`                  |
