---
title: "Submit a conversation"
method: POST
path: "/conversations"
---

# Submit a conversation

`POST /conversations`

Submits conversation data to the system for processing. This can be content like a call transcript, email thread, or chat conversation.

## Request body

- object
  - `id` string — The unique identifier for the conversation.
  - `title` string, nullable — The title of the conversation.
  - `source` string — The source of the conversation.
  - `createdAt` string, date-time — The date and time the conversation was created.
  - `updatedAt` string, date-time, nullable — The date and time the conversation was last updated.
  - `contacts` Contact[]
    - `id` string, required — External contact ID
    - `shouldUnflattenProperties` boolean, nullable — Whether to unflatten properties that are meant to be nested objects for example `{ "plan.type": "Pro" }` will be unflattened to `{ "plan": { "type": "Pro" } }`
    - `properties` object, nullable — Properties prefixed with `$` are handled specially. Otherwise, additional key-value pairs will be metadata once ingested into the system
      - `$email` string, nullable
      - `$name` string, nullable
      - `$createdAt` string, date-time, nullable
      - `$updatedAt` string, date-time, nullable
      - `$contractValue` number, nullable — The contract value of the contact.
    - `account` Account
      - `id` string, required — The unique identifier for the account.
      - `shouldUnflattenProperties` boolean, nullable — Whether to unflatten properties that are meant to be nested objects for example `{ "plan.type": "Pro" }` will be unflattened to `{ "plan": { "type": "Pro" } }`
      - `properties` object
        - `$name` string, required — The name of the account.
        - `$domain` string, required — The domain of the account.
        - `$createdAt` string, date-time, nullable
        - `$updatedAt` string, date-time, nullable
        - `$contractValue` number, nullable — The contract value of the account.
    - `source` string, nullable — Source system to limit search to
  - `messages` object[]
    - `id` string — The unique identifier for the message.
    - `incoming` boolean — Indicates if the message is incoming (from an external user or customer) or outgoing (e.g. from a support agent or sales person on your team).
    - `contactId` string — The unique identifier for the contact that sent this message.
    - `content` string — The content of the message.
    - `createdAt` string, date-time — The date and time the message was created.
    - `shouldUnflattenProperties` boolean, nullable — Whether to unflatten properties that are meant to be nested objects for example `{ "plan.type": "Pro" }` will be unflattened to `{ "plan": { "type": "Pro" } }`
    - `properties` object — Additional metadata properties (key-value pairs)
    - `sourceUrl` string, nullable — URL linking to the source of this message
  - `rating` number, nullable — The numeric rating (integer)
  - `shouldUnflattenProperties` boolean, nullable — Whether to unflatten properties that are meant to be nested objects for example `{ "plan.type": "Pro" }` will be unflattened to `{ "plan": { "type": "Pro" } }`
  - `propagatePropertiesToMessages` boolean, nullable — When true, conversation-level properties are merged into each message's rawData. Message properties take precedence over conversation properties when there are key conflicts.
  - `properties` object — Additional metadata properties (key-value pairs)

## Response `200`

Conversation submitted successfully.

- object
  - `success` boolean

## Other responses

- `400` — Bad request.
- `429` — Rate limit exceeded.

---

[API](https://skmtc.net/monterey-ai/apis/reforge-insights-formerly-monterey-ai-api.md) · [All operations](https://skmtc.net/monterey-ai/apis/reforge-insights-formerly-monterey-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/monterey-ai/reforge-insights-formerly-monterey-ai-api/revisions/fd623cac2355/schema)
