> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create conversation message

> Add a user message to a conversation to send what the user typed; the parent message defaults to the selected branch and an idempotency key makes retries safe.

`createConversationMessage(conversationId: ID!, input: CreateConversationMessageInput!): Message!`

## Arguments

| Argument | Type | Required |
| - | - | - |
| `conversationId` | [`ID!`](https://veryfront.com/docs/cloud/graphql/types/id) | Yes |
| `input` | [`CreateConversationMessageInput!`](https://veryfront.com/docs/cloud/graphql/types/createconversationmessageinput) | Yes |

## Input fields

### input

[`CreateConversationMessageInput`](https://veryfront.com/docs/cloud/graphql/types/createconversationmessageinput)

| Field | Type | Required | Description |
| - | - | - | - |
| `role` | [`String!`](https://veryfront.com/docs/cloud/graphql/types/string) | Yes | Message role; only user is accepted. |
| `parts` | [`JSON!`](https://veryfront.com/docs/cloud/graphql/types/json) | Yes | Message parts (1 to 200). |
| `parentId` | [`ID`](https://veryfront.com/docs/cloud/graphql/types/id) | No | Parent message; defaults to the selected branch. |
| `composingUserId` | [`ID`](https://veryfront.com/docs/cloud/graphql/types/id) | No | Must equal the authenticated user when set. |
| `idempotencyKey` | [`String`](https://veryfront.com/docs/cloud/graphql/types/string) | No | Retry key (up to 255 characters): the same key returns the same message. |
| `metadata` | [`JSON`](https://veryfront.com/docs/cloud/graphql/types/json) | No | JSON object under 64 KB. |

## Response

Returns [`Message!`](https://veryfront.com/docs/cloud/graphql/types/message). Open the type for its fields and nested types.

| Field | Type | Description |
| - | - | - |
| `id` | [`ID!`](https://veryfront.com/docs/cloud/graphql/types/id) | |
| `conversationId` | [`ID!`](https://veryfront.com/docs/cloud/graphql/types/id) | |
| `parentId` | [`ID`](https://veryfront.com/docs/cloud/graphql/types/id) | |
| `seq` | [`Int!`](https://veryfront.com/docs/cloud/graphql/types/int) | |
| `role` | [`String!`](https://veryfront.com/docs/cloud/graphql/types/string) | |
| `createdBy` | [`ID`](https://veryfront.com/docs/cloud/graphql/types/id) | |
| `senderType` | [`String!`](https://veryfront.com/docs/cloud/graphql/types/string) | Sender kind: user, webhook, service\_account, integration, agent or system. |
| `senderId` | [`ID`](https://veryfront.com/docs/cloud/graphql/types/id) | Identifier of the sender: the participant or agent for an agent message, otherwise the author. |

[All fields of `Message`](https://veryfront.com/docs/cloud/graphql/types/message).

Types marked with `!` cannot be null. Lists use `[Type]` notation. The [type index](https://veryfront.com/docs/cloud/graphql/schema.md) lists all published input and response types.

## Example

```graphql title="query.graphql" theme={null}
mutation CreateConversationMessage($conversationId: ID!, $input: CreateConversationMessageInput!) {
  createConversationMessage(conversationId: $conversationId, input: $input) {
    id
    status
    createdAt
    updatedAt
    conversationId
  }
}
```

```json title="variables.json" theme={null}
{
  "conversationId": "00000000-0000-4000-8000-000000000001",
  "input": {
    "role": "user",
    "parts": [
      {
        "type": "text",
        "text": "Hello"
      }
    ]
  }
}
```

<details>
  <summary>Try this mutation</summary>

  Calls use `https://api.veryfront.com/graphql`. Replace sample values with resources you can access. See [Authentication](https://veryfront.com/docs/cloud/authentication.md) for credentials and permissions.

  Bearer token or API key

  Stored in this tab's session. Clear credential

  Mutation

  Variables (JSON)
</details>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.