> ## 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.

# Review Required Webhook

> Sent when a message requires review.

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

<Note>
  This webhook is sent when a message requires review.
</Note>

## Overview

The `review.required` webhook is triggered when a message requires review.

RevReply sends an HTTP `POST` request to your configured webhook URL containing an event object and information about the lead, conversation, classification, and reason for review.

## Event

The webhook event is identified by the following name:

```text theme={null}
review.required
```

**Description:** A message requires review.

## 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.                                  | `review.required`             |
| `description` | `string`  | Human-readable description of the event.                                 | `A message requires review.`  |
| `sent_at`     | `string`  | ISO 8601 UTC timestamp indicating when the webhook was generated.        | `2026-07-17T20:45:12.000000Z` |
| `timestamp`   | `integer` | Unix timestamp, in seconds, representing when the webhook was generated. | `1784321112`                  |

### Data object

The `data` object contains information about the lead, conversation, classification, and reason the message requires review.

| 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 handling 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 assigned to the conversation.     | `Sales Assistant`                     |
| `from_email`         | `string`        | Sender's email address.                                     | `jane@example.com`                    |
| `lead_email`         | `string`        | Primary email address associated with 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`        | Classification assigned to the message.                     | `INTERESTED`                          |
| `review_reason`      | `string`        | Reason the message requires review.                         | `The message requires manual review.` |

## Example payload

```json theme={null}
{
  "event": {
    "name": "review.required",
    "description": "A message requires review.",
    "sent_at": "2026-07-17T20:45:12.000000Z",
    "timestamp": 1784321112
  },
  "data": {
    "user_id": 123,
    "lead_id": 98765,
    "inbox_manager_id": 12,
    "thread_id": "4e9bc3a2",
    "lead_name": "Jane Doe",
    "inbox_manager_name": "Sales Assistant",
    "from_email": "jane@example.com",
    "lead_email": "jane@example.com",
    "lead_email_list": [
      "jane@example.com",
      "j.doe@company.com"
    ],
    "classification": "INTERESTED",
    "review_reason": "The message requires manual review."
  }
}
```

## 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        | `review.required`         |
| Method       | `POST`                    |
| Trigger      | A message requires review |
| Content type | `application/json`        |
