---
title: "A new reply arrived"
method: POST
path: "reply.received"
---

# A new reply arrived

`POST reply.received` (webhook)

POSTed to each active endpoint. Verify X-Senders-Signature: "sha256=" + HMAC-SHA256(secret, "{X-Senders-Timestamp}.{raw body}"). Answer 2xx within 10s. Retried on network errors, 408, 429 and 5xx (1m, 5m, 30m, 2h, 6h, 24h); other answers are not retried.

## Headers

- `X-Senders-Event` string, required
- `X-Senders-Delivery` string, required
- `X-Senders-Timestamp` string, required
- `X-Senders-Signature` string, required
- `X-Senders-Signature-Previous` string

## Payload

- ReplyReceivedEvent
  - `version` 'v1', required
  - `event` 'reply.received' | 'test', required
  - `fired_at` string, date-time, required
  - `delivery_id` string, required
  - `data` Reply, required
    - `id` integer, required
    - `thread_id` integer, required
    - `channel` 'email', required
    - `received_at` string, date-time, nullable, required: ISO 8601, UTC
    - `sentiment` 'positive' | 'negative' | 'neutral' | 'auto_reply' | 'null', nullable
    - `subject` string, nullable
    - `body` string: Plain text of the new message, quoted history removed. Taken from the stored text part, else the HTML part, else the text saved on the original send. If removing quoted history would leave nothing, the whole message is returned instead. Empty only when no text was stored at all. Byte order marks and leading blank lines are removed.
    - `body_html` string, nullable: Sanitized HTML of the new message (allowlisted tags, scripts and remote images removed, quoted chain dropped). Null when the reply had no HTML part or it could not be sanitized.
    - `lead` object, required
      - `prospect_id` integer, nullable
      - `name` string, nullable
      - `email` string, nullable
      - `title` string, nullable
      - `organization` string, nullable
      - `linkedin_url` string, nullable
      - `status` string, nullable
      - `lead_status` string, nullable
    - `campaign` object, nullable
      - `id` integer
      - `name` string, nullable

## Acknowledgement `2XX`

Received

---

[API](https://skmtc.dev/senders/apis/senders-rest-api.md) · [All operations](https://skmtc.dev/senders/apis/senders-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/senders/apis/senders-rest-api/revisions/3cd9960bc0af?raw)
