---
title: "email.received"
sidebarTitle: "email.received"
description: "Webhook event triggered when an inbound email is received."
---
> For the complete documentation index, see [llms-docs.txt](/llms-docs.txt) or the site index [llms.txt](/llms.txt). Full docs corpus: [llms-full-docs.txt](/llms-full-docs.txt). Prefer markdown URLs (append `.md`) for agent consumption. Product skill: [skill.md](/skill.md).


<SideBySide>
  <Side>

    The `email.received` event is triggered when an inbound email is successfully received by Reloop.

    ## Event Details
    All webhook payloads follow a consistent top-level structure with event-specific data nested within the `data` object.

    ### type `string`
    The event type that triggered the webhook (`email.received`).

    ### created_at `string`
    ISO 8601 timestamp when the webhook event was created.

    ### data `object`
    Inbound fields: `email_id`, `mailbox_id`, `from`, `from_name`, `to`, `cc`, `subject`, `thread_id`, `has_attachments`, `is_spam`, `status`, `message_id`.

    ## Handling this event
    When your endpoint receives an `email.received` event, you might want to:
    - Process inbound messages for your application.
    - Fetch the full body via the inbox API using `email_id`.
    - Store attachments in your cloud storage.
  </Side>

  <Side>

    ```json
    {
      "id": "whev_01h…",
      "type": "email.received",
      "created_at": "2026-07-22T12:00:00.000Z",
      "data": {
        "email_id": "in_123456789",
        "mailbox_id": "mb_123456789",
        "from": "sender@example.com",
        "from_name": "Sender",
        "to": ["inbound@yourdomain.com"],
        "cc": [],
        "subject": "Inbound Message",
        "thread_id": "thr_123456789",
        "has_attachments": false,
        "is_spam": false,
        "status": "received",
        "message_id": "<msg@example.com>"
      }
    }
    ```
  </Side>
</SideBySide>

## Learn More

- [Webhooks Introduction](/docs/webhooks)
- [All Event Types](/docs/webhooks/event-types)
