---
title: "POST /v1/conversation/email/message"
method: POST
path: "/v1/conversation/email/message"
tags: ["Conversation"]
---

# POST /v1/conversation/email/message

`POST /v1/conversation/email/message`

## Request body

- ConversationMessageDTO
  - `conversationId` string, required — The ID of the conversation
  - `message` string, required — The message to be sent to the user (customer or agent). This endpoint supports markdown.
  - `customer` CustomerInitDTO
    - `firstName` string — The first name of the customer
    - `lastName` string — The last name of the customer
    - `email` string, email — The email of the customer
    - `phoneNumber` string — The phone number of the customer (in international / E.164 format)
    - `displayName` string — The display name of the customer
    - `remoteId` string — The id of the customer in the ticketing system. For the SDK this needs to be stable and unique
    - `subscriberCustomerId` string — The id of the customer in your own primary database or a unique identifier, for example a cookie
    - `subscriberToken` string — A token that can be used to authenticate the customer in the your system, like a JWT
    - `avatarUrl` string — The URL of the customer avatar
  - `attachments` AttachmentDTO[], required — Attachments to be sent with the message
    - `url` string, required — The URL of the attachment
    - `type` string, required — The type of the attachment
    - `name` string, required — The name of the attachment
  - `variables` object — The variables to be passed to the conversation - this can be used by workflows

## Response `200`

The returned message generated from our API. If not returned the message will be processed asynchronously.

- ConversationMessageResponseDTO
  - `conversationId` string, required — The ID of the conversation
  - `createdAt` string, date-time, required — The timestamp of the when the conversation was created in our system.
  - `status` 'Unprocessed' | 'Processing' | 'Unhandled' | 'Triaged' | 'DraftResponse' | 'Responded' | 'Error' | 'Escalated' | 'EscalatedFailed' | 'Processed' | 'Ignored' | 'Tagged', required — The status of the conversation
  - `events` TicketEvent[], required — The events that have occurred in the conversation. Can be used for deriving more information about the conversation.
    - `id` string, required — The ID of the event
    - `type` 'ASSIGNED' | 'CLOSED' | 'ESCALATED' | 'ESCALATION_REQUEST' | 'PROCESSING_CANCELLED' | 'HOSTILE_MESSAGE' | 'NEW_TICKET' | 'CALL_ENDED', required — The type of the event
    - `data` object, required — Any specific data associated with the event
    - `createdAt` string, date-time, required — The timestamp of the event
  - `link` string, url, required — The url of the conversation in the Lorikeet dashboard
  - `tags` string[], required — The tags of the conversation
  - `messages` TicketMessageDTO[], required — The full list of messages. This endpoint supports markdown.
    - `id` string, required — The ID of the conversation message
    - `type` 'CUSTOMER' | 'BOT_RESPONSE' | 'PENDING_RESPONSE' | 'DRAFT_RESPONSE' | 'INTERNAL_MODEL_NOTE', required — The type of the message
    - `content` string, required — The content of the message. Markdown on plain text.
    - `rawContent` string, required — The raw content of the message. Usually HTML.
    - `createdAt` string, date-time, required — The timestamp of the message.
    - `attachments` AttachmentDTO[], required — Attachments that were attached to the message
      - `url` string, required — The URL of the attachment
      - `type` string, required — The type of the attachment
      - `name` string, required — The name of the attachment
  - `latestMessageType` 'CUSTOMER' | 'BOT_RESPONSE' | 'PENDING_RESPONSE' | 'DRAFT_RESPONSE', nullable, required — The latest message type - useful for polling
  - `updatedAt` string, date-time, required — The timestamp of when the ticket was last updated in our system.

## Other responses

- `202` — The message is being processed

## Changes

- **2026-07-20** `7bd3be72b714` — 1 warning
  - added the new `INTERNAL_MODEL_NOTE` enum value to the `messages/items/type` response property for the response status `200`
- **2026-04-09** `2e7c56c5e808` — 5 warning
  - added the new `DraftResponse` enum value to the `status` response property for the response status `200`
  - added the new `EscalatedFailed` enum value to the `status` response property for the response status `200`
  - added the new `Ignored` enum value to the `status` response property for the response status `200`
  - added the new `Tagged` enum value to the `status` response property for the response status `200`
  - …1 more
- **2026-02-11** `b4f394f05daf` — 1 info
  - the endpoint scheme security `lorikeetClientId AND lorikeetSignatureAuthV1` was removed from the API

[Change history](https://skmtc.dev/optechai/apis/lorikeet-api/changes/v1/conversation/email/message/post.md)

---

[API](https://skmtc.dev/optechai/apis/lorikeet-api.md) · [All operations](https://skmtc.dev/optechai/apis/lorikeet-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/optechai/lorikeet-api/revisions/789c7fa93584/schema)
