---
schema_version: "1"
id: d0601bd0d84c193e7681c2f94bd43cc4bf2ca5e0f777e736d5db494191c40225
title: Enhanced Chat API Endpoints
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/service-cloud/messaging-api/references/generated-api-specs/miaw-api-reference.md
canonical_url: https://developer.salesforce.com/docs/service/messaging-api/references/miaw-api-reference
source_site: developer.salesforce.com
content_type: documentation
content_hash: 71496146c30ab6c305151fc2624cf9d54d78c5e894ac2de95dfe97130ff8e8a4
products:
  - Enhanced Chat API
  - Service Cloud Developer Content
---
Enhanced Chat API Endpoints

# Enhanced Chat API Endpoints

Public REST API for Enhanced Chat

**Version:** 2.0.0

## Servers

*   `https://{scrt-url}`
    *   ``scrt-url (default mycompanyname.salesforce-scrt.com) In the URI, set `{scrt-url}` to the URL in the Enhanced Chat custom client Embedded Service deployment code snippet. For example, `https://mycompanyname.salesforce-scrt.com`.``

Default security: ScrtAuth.

## Security

*   `ScrtAuth` (http)
    
    Authenticated by the JWT tokens generated by the service for individual clients.
    
    Use the header, `Authorization: Bearer <token>`.
    
    String. Standard header. The authorization token, where `<token>` is the access token (`accessToken`) provided by the [Generate access token](/docs/service/messaging-api/references/miaw-api-reference?meta=generateAccessTokenForAuthenticatedUser) or [Generate access token for unauthenticated user](/docs/service/messaging-api/references/miaw-api-reference?meta=generateAccessTokenForUnauthenticatedUser) Enhanced Chat API. Verify that the access token is valid and hasn't expired. Required where specified.
    
    *   HTTP scheme: bearer (JSON Web Tokens)

## Operations

### POST Generates an access token. Use the access token as a bearer token to make requests to the Enhanced Chat APIs.

`POST /iamessage/api/v2/authorization/authenticated/access-token`

Operation ID: `generateAccessTokenForAuthenticatedUser`. Tags: authorizationV2.

#### Request body (required)

Media type: `application/json`. Schema: `AuthenticatedAccessTokenRequest`.

#### Responses

*   **200** JWT issued.
    
    Media type: `application/json`. Schema: `AccessTokenResponse`.
    
*   **400** Bad request.
*   **401** Unauthenticated Request.
*   **403** Unauthorized Request.
*   **405** Method not allowed.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### DELETE Revokes an access token that was generated for an authenticated user.

`DELETE /iamessage/api/v2/authorization/authenticated/access-token`

Operation ID: `revokeToken`. Tags: authorizationV2.

#### Responses

*   **204** The JWT has been revoked.
*   **400** Bad request.
*   **401** Unauthenticated Request.
*   **405** Method not allowed.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### POST Generates an access token for an unverified “guest” user.

`POST /iamessage/api/v2/authorization/unauthenticated/access-token`

Operation ID: `generateAccessTokenForUnauthenticatedUser`. Tags: authorizationV2.

#### Request body (required)

Media type: `application/json`. Schema: `UnauthenticatedAuthorizationRequest`.

#### Responses

*   **200** JWT issued.
    
    Media type: `application/json`. Schema: `AccessTokenResponse`.
    
*   **400** Bad request.
*   **401** Unauthenticated Request.
*   **405** Method not allowed.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### GET Generates a JSON Web Token (JWT). This endpoint supports web users using multiple tabs, and it doesn't extend the JWT expiration time.

`GET /iamessage/api/v2/authorization/continuation-access-token`

Operation ID: `generateContinuationToken`. Tags: authorizationV2.

#### Responses

*   **200** JWT issued with same subject ID but different client ID.
    
    Media type: `application/json`. Schema: `ContinueAccessTokenResponse`.
    
*   **400** Bad request.
*   **401** Unauthenticated Request.
*   **405** Method not allowed.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### POST Creates a conversation if it doesn't exist. This API can also pass pre-chat data in the form of routing attributes.

`POST /iamessage/api/v2/conversation`

Operation ID: `createConversation`. Tags: conversationV2.

#### Request body (required)

Media type: `application/json`. Schema: `CreateConversationRequest`.

#### Responses

*   **201** The conversation was created successfully.
*   **400** Bad request data.
*   **401** Unauthenticated request.
*   **403** Unauthorized request.
*   **404** Not Found.
*   **409** The conversation is already closed.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### POST Adds a typing indicator to notify participants when typing starts or stops. Add a “typing started” indicator to notify the reps or bots when the end user starts typing a message. Add a “typing stopped” indicator to notify the reps or bots when the end user stops typing.

`POST /iamessage/api/v2/conversation/{conversationId}/entry`

Operation ID: `addTypingIndicatorToAConversation`. Tags: conversationV2.

#### Parameters

*   `conversationId` (path, string, required) The UUID of the conversation. The UUID must be in lowercase.

#### Request body (required)

Media type: `application/json`. Schema: `SendEntriesRequestApi`.

#### Responses

*   **200** Successful publication of entry.
*   **400** Bad request data.
*   **401** Unauthenticated request.
*   **403** Unauthorized request.
*   **404** Not Found.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### POST Sends a message from the end user to the rep or bot. The message is sent one at a time and each message can be in a different form, depending on the message type and its payload.

`POST /iamessage/api/v2/conversation/{conversationId}/message`

Operation ID: `sendMessage`. Tags: conversationV2.

If the administrator has configured Enhanced Chat so that the pre-chat form appears with every session, this API can also pass pre-chat data in the form of routing attributes. The maximum request payload size for this API is 8 KB.

#### Parameters

*   `conversationId` (path, string, required) The UUID of the conversation. The UUID must be in lowercase.  
    Pattern: ^\[0-9a-f\]{8}-\[0-9a-f\]{4}-4\[0-9a-f\]{3}-\[89ab\]\[0-9a-f\]{3}-\[0-9a-f\]{12}$.
    
    _Example_
    
    ```
    5461185f-abc6-4435-b1e1-3b3aa65719be
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `SendMessageRequestApi`.

#### Responses

*   **202** Successful publication of a message to a conversation.
    
    Media type: `application/json`. Schema: `SendMessageResponseApi`.
    
*   **400** Bad request.
*   **401** Unauthenticated Request.
*   **403** Unauthorized Request.
*   **417** No active messaging session present. Send the request with `isNewMessagingSession` value as true.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### POST Sends a list of conversation entries with “delivery” acknowledgements and “read” receipts. Each conversation entry in the list indicates whether the entry from the rep or bot has been delivered to or read by the end user.

`POST /iamessage/api/v2/conversation/{conversationId}/acknowledge-entries`

Operation ID: `sendDeliveryAcknowledgementsOrReadReceipts`. Tags: conversationV2.

#### Parameters

*   `conversationId` (path, string, required) The UUID of the conversation. The UUID must be in lowercase.

#### Request body (required)

Media type: `application/json`. Schema: `AcknowledgeEntriesRequestApi`.

#### Responses

*   **200** Successful acknowledgement of read/delivery entry.
*   **400** Bad request.
*   **401** Unauthenticated Request.
*   **403** Unauthorized Request.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### POST Sends a file attachment from the end user to the rep.

`POST /iamessage/api/v2/conversation/{conversationId}/file`

Operation ID: `sendFile`. Tags: conversationV2.

This endpoint requires a `Content-Type: multipart/form-data` Standard header. Accepts non-ASCII or binary data to support file uploads. The multipart/form-data request body must contain two or more parts.

Before you continue, verify that Inbound File Attachments is enabled for the Messaging channel.

As of capabilitiesVersion 63, the endpoint supports the following file types:

*   image/bmp
*   image/gif
*   image/jpg
*   image/jpeg
*   image/png
*   image/tiff
*   application/csv
*   application/doc
*   application/docx
*   application/pdf
*   application/txt
*   application/xlsx
*   application/xml

Files can only be sent one at a time, and the maximum size of each file is 5 MB.

Here's an example cURL command:

```
curl --location 'https://esw-sdb3-blitz.test1.my.pc-rnd.salesforce-scrt.com/iamessage/api/v2/conversation/4baa7397-a02e-4f93-9926-966870b2f8e8/file' \
--header Authorization: Bearer
--header 'Cookie: JSESSIONID=node01y2kzj3uoh4uromf49vqpappc25.node0' \
--form 'messageEntry="
    {
        \"message\": 
            {
                \"id\": \"376ac270-f583-4216-86f7-c758cc2888bc\",   
                \"fileId\": \"d9f9ab91-5f10-4199-9ad4-12cf565fa97d\",
                \"text\": \"Hello\",
                \"inReplyToMessageId\": \"59b98322-c7ed-4116-8499-9e8c98f6851d\" 
            }, 
        \"isNewMessagingSession\": false,
        \"esDeveloperName\": \"miawAPI\"
    }";type=application/json' \
--form 'fileData=@"/User//Downloads/ConversationTranscript.pdf"'
```

#### Parameters

*   `conversationId` (path, string, required) The UUID of the conversation. The UUID must be in lowercase.  
    Pattern: ^\[0-9a-f\]{8}-\[0-9a-f\]{4}-4\[0-9a-f\]{3}-\[89ab\]\[0-9a-f\]{3}-\[0-9a-f\]{12}$.
    
    _Example_
    
    ```
    5461185f-abc6-4435-b1e1-3b3aa65719be
    ```
    

#### Request body (required)

Media type: `multipart/form-data`. Schema: `object`.

*   `messageEntry` (_SendFilesRequestApi_, required)
*   `fileData` (_string (binary)_, required) The file you want to upload. Content type is `application/octet-stream`.

_Example_

```
Content-Disposition: form-data; name="messageEntry";
Content-Type: application/json
{
  "esDeveloperName": "myDeployment",
  "message": {
    "id": "bd8f4890-2640-4d94-8ac0-915155b672e8",
    "fileId": "6fc22906-c24a-4c53-b382-fd091dacd848",
    "text": "Lights on my broken router look like this",
    "inReplyToMessageId": "a133c185-73a7-4adf-b6d9"
  },
  "routingAttributes": {
    "_firstName": "John"
  },
  "isNewMessagingSession": true,
  "language" : "en_US"
}
Content-Type: application/octet-stream
Content-Disposition: form-data; name="fileData"; filename=7123025_logo_google_g_icon.png; 
<Base64 Binary Data>
```

#### Responses

*   **202** Successful publication of a file to a conversation.
    
    Media type: `application/json`. Schema: `SendMessageResponseApi`.
    
*   **400** Bad request.
*   **401** Unauthenticated Request.
*   **403** Unauthorized Request.
*   **415** Unsupported type.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### GET Retrieves the routing status of the specified conversation.

`GET /iamessage/api/v2/conversation/{conversationId}`

Operation ID: `retrieveConversationRoutingStatus`. Tags: queryV2.

#### Parameters

*   `conversationId` (path, string, required) The UUID of the conversation. The UUID must be in lowercase.

#### Responses

*   **200** Successful retrieval of the routing status.
    
    Media type: `application/json`. Schema: `ConversationStatusResponse`.
    
*   **400** Bad request data.
*   **401** Unauthenticated request.
*   **403** Unauthorized request.
*   **404** Not Found.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### DELETE Closes a conversation between an end user and a rep. After a conversation is closed, end users and reps can no longer send messages in this conversation. Instead, they must start a new conversation.

`DELETE /iamessage/api/v2/conversation/{conversationId}`

Operation ID: `closeConversation`. Tags: conversationV2.

#### Parameters

*   `esDeveloperName` (query, string, required)
    
    The API name of the Enhanced Chat Embedded Service deployment. The name can contain alphanumeric characters and underscores, and must begin with a letter. The deployment type that's associated with the `esDeveloperName` deployment must match the `deploymentType` in the access token.
    
    Verify that the Embedded Service deployment is configured to support the request.
    
    *   The deployment type for the Embedded Service deployment must be set to Custom Client. If properly configured, after you send the request, `deploymentType` in the response will be set to `api`. If `deploymentType` isn't set to `api`, create an Embedded Service deployment or use another deployment with deployment type set to Custom Client. See [Configure a Custom Client Deployment for Enhanced Chat](https://help.salesforce.com/s/articleView?id=service.miaw_deployment_custom.htm) for more information.
    
    _Example_
    
    ```
    {esDeveloperName}
    ```
    
*   `conversationId` (path, string, required) The UUID of the conversation to close. The UUID must be in lowercase.

#### Responses

*   **204** The conversation was closed successfully.
*   **400** Bad request data.
*   **401** Unauthenticated request.
*   **403** Unauthorized request.
*   **404** Not Found.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### DELETE Ends a messaging session within a conversation between an end user and a rep.

`DELETE /iamessage/api/v2/conversation/{conversationId}/session`

Operation ID: `endMessagingSession`. Tags: conversationV2.

This endpoint enables end users to end a messaging session, indicating that they have ended the engagement. Ending a messaging session doesn’t close the conversation. The conversation remains open until it’s actively closed. See [Close conversation](/docs/service/messaging-api/references/miaw-api-reference?meta=closeConversation) for more information. While open, authenticated users and reps can continue the conversation through an unlimited number of messaging sessions.

#### Parameters

*   `conversationId` (path, string, required) The UUID of the conversation to close the messaging session. The UUID must be in lowercase.
*   `esDeveloperName` (query, string, required) Required. The API name of the Enhanced Chat Embedded Service deployment. For example, esDeveloperName: "embeddedServiceDeveloperName".
    
    _Example_
    
    ```
    {esDeveloperName}
    ```
    

#### Responses

*   **204** No Content Empty.
*   **400** The esDeveloperName must be associated with a Messaging channel.
*   **401** Unauthenticated request.
*   **403** End user not found. The JWT is valid but the end user doesn't exist.
*   **404** Not Found.
*   **500** An internal error occurred. Contact Salesforce Customer Support.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### GET Returns a list of all conversations for a specific end user. This API is useful to determine if an end user is part of a specific conversation. The list is always returned in chronological ascending order.

`GET /iamessage/api/v2/conversation/list`

Operation ID: `listConversations`. Tags: queryV2.

#### Parameters

*   `inclClosedConvs` (query, boolean) Optional. Indicates whether the list of conversations returned should include conversations that end users have closed. The default value is false.  
    Default: `false`.
*   `limit` (query, integer (int32)) Optional. The maximum number of conversations to retrieve. For example, limit: 50. The value must be between 1-50. The default value is 20.
*   `conversationId` (query, string) Optional. The UUID of the conversation. The UUID must be in lowercase. Specify this value to filter the list to just conversations with the UUID. If the value isn't specified, the endpoint returns all conversations.
*   `startTimestamp` (query, integer (int64)) Optional. The start date and time (in UTC) used to determine which conversations to include in the response. Conversations that start on or after the specified start date and time are included in the list of conversations returned. For example, startTimestamp: 1641347196100. The start date and time can't be less than zero (0) or greater than the current time in milliseconds. If the value isn't specified, it takes the conversation from the very beginning.
*   `endTimestamp` (query, integer (int64)) Optional. The end date and time (in UTC) used to determine which conversations to include in the response. Conversations that start on or before the specified end date and time are included in the list of conversations returned. For example, endTimestamp: 1641347606585. The end timestamp can't be less than zero (0) or less than the start timestamp. If the value isn't specified, it defaults to the current timestamp.

#### Responses

*   **200** Supported http request methods.
    
    Media type: `application/json`. Schema: `ListConversationResponse`.
    
*   **400** Bad request data.
*   **401** Unauthenticated Request.
*   **403** Unauthorized Request.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### GET Lists conversation entries for the specified conversation.

`GET /iamessage/api/v2/conversation/{conversationId}/entries`

Operation ID: `listConversationEntries`. Tags: queryV2.

Users are only able to query the conversation entries that they've participated in. By default, the API returns 20 conversation entries at a time in reverse chronological order, starting with the newest conversation. To narrow down the list, use the query parameters to filter and customize the query.

Note: The `entryTypeFilter` query parameter represents the type of conversation entries you want to display in the list. This parameter is optional. Valid values include `CloseConversation`, `ParticipantChanged`, `Message`, `RoutingResult`, `RoutingWorkResult`, and `SessionStatusChanged`. List multiple entryTypeFilter values as comma-separated values. If entryTypeFilter values aren't specified, the endpoint returns conversation entries for all conversation entry types.

#### Parameters

*   `conversationId` (path, string, required) The UUID of the conversation. The UUID must be in lowercase.
*   `limit` (query, integer (int32)) Optional. The maximum number of conversation entries to retrieve. For example, limit: 50. The default value is 20.
*   `startTimestamp` (query, integer (int64)) Optional. The start date and time (in UTC) used to determine which conversations to include in the response. Conversations that start on or after the specified start date and time are included in the list of conversations returned. For example, startTimestamp: 1641347196100. The start date and time can't be less than zero (0) or greater than the current time in milliseconds. If the value isn't specified, it defaults to zero (0) and the API returns all conversations irrespective of the startTimestamp.
*   `endTimestamp` (query, integer (int64)) Optional. The end date and time (in UTC) used to determine which conversations to include in the response. Conversations that start on or before the specified end date and time are included in the list of conversations returned. For example, endTimestamp: 1641347606585. The end timestamp can't be less than zero (0) or less than the start timestamp. If the value isn't specified, it defaults to the current timestamp.
*   `direction` (query, string) Optional. Determines whether the API gets the entries starting with the newest one (FromEnd) or starting with the oldest one (FromStart) first within the specified endTimestamp and startTimestamp dates. The default value is FromEnd.
*   `entryTypeFilter (See Note)` (query, array of string, style: form, explode: true)
    
    Each item: Optional. The type of conversation entries you want to display in the list. You can derive these values from the entryType field in the response. List multiple entryType values as comma-separated values. For example, entryTypeFilter: 'Message', 'ParticipantChanged'. If the value isn't specified, the endpoint returns conversation entries for all event types.
    

#### Responses

*   **200** Successful retrieval of the conversation entries.
    
    Media type: `application/json`. Schema: `GetConversationEntriesResponse`.
    
*   **400** Bad request.
*   **401** Unauthenticated Request.
*   **403** Unauthorized Request.
*   **500** Internal server error.

### GET Generates a transcript of the last 200 conversation entries. The transcript is generated into binary format and saved as a PDF file.

`GET /iamessage/api/v2/conversation/{conversationId}/transcript`

Operation ID: `retrieveConversationTranscript`. Tags: queryV2.

Before you continue, verify that the administrator has turned on the ability to download transcripts for end users. See [Allow End Users to Download a Transcript of a Messaging Session](https://help.salesforce.com/s/articleView?id=service.miaw_download_transcript.htm) for more information.

#### Parameters

*   `esDeveloperName` (query, string, required)
    
    The API name of the Enhanced Chat Embedded Service deployment. The name can contain alphanumeric characters and underscores, and must begin with a letter.
    
    Verify that the Embedded Service deployment is configured to support the request.
    
    *   The deployment type for the Embedded Service deployment must be set to Custom Client. If properly configured, after you send the request, `deploymentType` in the response will be set to `api`. If `deploymentType` isn't set to `api`, create an Embedded Service deployment or use another deployment with deployment type set to Custom Client. See [Configure a Custom Client Deployment for Enhanced Chat](https://help.salesforce.com/s/articleView?id=service.miaw_deployment_custom.htm) for more information.
*   `conversationId` (path, string, required) The UUID of the conversation to generate a transcript for. The UUID must be in lowercase.

#### Responses

*   **200** Successful generation of transcript in PDF format.
    
    Media type: `application/octet-stream`. Schema: `string (binary)`.
    
    Type: `string (binary)`.
    
*   **400** Bad request data.
*   **401** Unauthenticated Request.
*   **403** Unauthorized Request.
*   **429** Too many requests.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### POST Registers a mobile device to support push notifications.

`POST /iamessage/api/v2/notification-registration`

Operation ID: `registerDeviceForPushNotifications`. Tags: notificationV2.

Before you begin, verify that the `platform` field in the access token (`accessToken`) used in this request is set to `mobile`. See [Generate access token](/docs/service/messaging-api/references/miaw-api-reference?meta=generateAccessTokenForAuthenticatedUser) or [Generate access token for unauthenticated user](/docs/service/messaging-api/references/miaw-api-reference?meta=generateAccessTokenForUnauthenticatedUser) for more information.

#### Request body (required)

Media type: `application/json`. Schema: `RegisterNotificationRequest`.

#### Responses

*   **204** Successful registration of the notification.
*   **400** Bad request data.
*   **401** Unauthenticated Request.
*   **403** Unauthorized Request.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

### DELETE Unregisters a mobile device from push notifications.

`DELETE /iamessage/api/v2/notification-registration`

Operation ID: `unregisterDeviceFromPushNotifications`. Tags: notificationV2.

Before you begin, verify that the `platform` field in the access token (`accessToken`) used in this request is set to `mobile`. See [Generate access token](/docs/service/messaging-api/references/miaw-api-reference?meta=generateAccessTokenForAuthenticatedUser) or [Generate access token for unauthenticated user](/docs/service/messaging-api/references/miaw-api-reference?meta=generateAccessTokenForUnauthenticatedUser) for more information.

#### Responses

*   **204** Successful unregistration from push notifications.
*   **400** Bad request data.
*   **401** Unauthenticated Request.
*   **403** Unauthorized Request.
*   **500** Internal server error.
*   **503** Service unavailable.
*   **504** Gateway timeout.

## Schemas

### AuthenticatedAccessTokenRequest

Request to issue an authorization token by supplying a valid identity token issued by the customer's IDP.

Includes all fields of `BaseAuthorizationRequest`.

*   `authorizationType` (_AuthorizationType_, required)
*   `customerIdentityToken` (_string_, required)
    
    The JSON Web Token (JWT) for the end user who initiates the conversation. This field is required.
    
    The token is issued by the customer’s identity provider (IdP) and is passed into the Enhanced Chat API to verify the authenticity of the end user. Verify that the JWT token hasn’t expired and includes the following claims:
    
    *   `sub`
    *   `alg`
    *   `kid`
    *   `iss`
    
    The JWT claims can’t be null or empty.
    

### AccessTokenResponse

Non persisted Access Token Request Payload

*   `accessToken` (_string_, required) The JWT to be used as a bearer token when sending requests that require authorization. When sending requests, set the Authorization header to Bearer `<JWT>`, where `<JWT>` is the value of the accessToken.  
    Example: `JWT`.
*   `lastEventId` (_string_, required) The ID used to help establish connections to the server-sent events (SSE) endpoint to receive messages and events from the server. See [Server-Sent Events](/docs/service/messaging-api/references/about/server-sent-events.html) for more information.
*   `context` (_AccessTokenRespContext_, required) The response context object.

### UnauthenticatedAuthorizationRequest

Request from an unauthenticated client for (limited) authorization to access API.

Includes all fields of `BaseAuthorizationRequest`.

### ContinueAccessTokenResponse

Non persisted Access Token Request Payload

*   `accessToken` (_string_, required) The JWT to be used as a bearer token when sending requests that require authorization. When sending requests, set the Authorization header to Bearer `<JWT>`, where `<JWT>` is the value of the accessToken.  
    Example: `JWT`.
*   `lastEventId` (_string_, required) The ID used to help establish connections to the server-sent events (SSE) endpoint to receive messages and events from the server. See [Server-Sent Events](/docs/service/messaging-api/references/about/server-sent-events.html) for more information.

### CreateConversationRequest

Create Conversation Request Payload

*   `conversationId` (_string_, required) The UUID of the conversation. The UUID must be in lowercase.  
    Example: `5461185f-abc6-4435-b1e1-3b3aa65719be`.
*   `routingAttributes` (_object_, nullable)  
    Example: `/** Description Information about the conversation captured from the pre-chat form that the end user completes. The attribute values can come from both visible and hidden fields in the pre-chat form, and the information comes in as string values. Omni Flow can send pre-chat form data to the messaging session for a more informed rep experience. See Map Pre-Chat Values in Omni-Channel Flow at https://help.salesforce.com/s/articleView?id=service.miaw_map_messaging_2.htm for more information. **/ Example: { "_firstName": "jacob", "_lastName": "jacobs", "_email": "jjacobs@acme.com" }` .
    
    Example: `/** Description Information about the conversation captured from the pre-chat form that the end user completes. The attribute values can come from both visible and hidden fields in the pre-chat form, and the information comes in as string values. Omni Flow can send pre-chat form data to the messaging session for a more informed rep experience. See Map Pre-Chat Values in Omni-Channel Flow at https://help.salesforce.com/s/articleView?id=service.miaw_map_messaging_2.htm for more information. **/ Example: { "_firstName": "jacob", "_lastName": "jacobs", "_email": "jjacobs@acme.com" }` .
    
    Additional properties: `string`.
    
*   `esDeveloperName` (_string_, required)
    
    The API name of the Enhanced Chat Embedded Service deployment. The name can contain alphanumeric characters and underscores, and must begin with a letter.
    
    Verify that the Embedded Service deployment is configured to support the request.
    
    *   The deployment type for the Embedded Service deployment must be set to Custom Client. If properly configured, after you send the request, `deploymentType` in the response will be set to `api`. If `deploymentType` isn't set to `api`, create an Embedded Service deployment or use another deployment with deployment type set to Custom Client. See [Configure a Custom Client Deployment for Enhanced Chat](https://help.salesforce.com/s/articleView?id=service.miaw_deployment_custom.htm) for more information.
    
      
    Example: `myDeployment`.
*   `language` (_string_, nullable) The language code for the language the end user wants to use. For example, `en_US`. For a list of Salesforce supported languages, see the [Supported Languages](https://help.salesforce.com/s/articleView?id=xcloud.faq_getstart_what_languages_does.htm&language=en_US&type=5) help page.  
    Example: `en_US`.

### SendEntriesRequestApi

Request for SendEntries API

*   `entryType` (_SendEntriesEntryType_, required)
*   `id` (_string_, required) The UUID of the TypingStartedIndicator or TypingStoppedIndicator event that's sent out when the participant starts or stops typing.  
    Example: `f7904eb6-5352-4c5e-adf6-5f100572cf5d`.

### SendMessageRequestApi

Send Message Request Payload

*   `message` (_StaticContentMessage | ChoicesResponseMessage | FormResponseMessage_, required)
    
    One of: `StaticContentMessage`, `ChoicesResponseMessage`, `FormResponseMessage`.
    
*   `esDeveloperName` (_string_, required)
    
    The API name of the Enhanced Chat Embedded Service deployment. The name can contain alphanumeric characters and underscores, and must begin with a letter.
    
    Verify that the Embedded Service deployment is configured to support the request.
    
    *   The deployment type for the Embedded Service deployment must be set to Custom Client. If properly configured, after you send the request, `deploymentType` in the response will be set to `api`. If `deploymentType` isn't set to `api`, create an Embedded Service deployment or use another deployment with deployment type set to Custom Client. See [Configure a Custom Client Deployment for Enhanced Chat](https://help.salesforce.com/s/articleView?id=service.miaw_deployment_custom.htm) for more information.
    
      
    Example: `myDeployment`.
*   `isNewMessagingSession` (_boolean_) Indicates whether this is the first message in the messaging session. This parameter value determines whether the routing attributes for the pre-chat form (routingAttributes) are sent.  
    Default: `false`.
*   `routingAttributes` (_object_, nullable)  
    Example: `/** Description Information about the conversation captured from the pre-chat form that the end user completes. The attribute values can come from both visible and hidden fields in the pre-chat form, and the information comes in as string values. Omni Flow can send pre-chat form data to the messaging session for a more informed rep experience. See Map Pre-Chat Values in Omni-Channel Flow at https://help.salesforce.com/s/articleView?id=service.miaw_map_messaging_2.htm for more information. Routing attributes are only sent when the end user starts a new session (isNewMessagingSession is true) and the pre-chat form has been configured to appear with every session. See [Customize Pre-Chat for Enhanced Chat at https://help.salesforce.com/s/articleView?id=service.miaw_custom_prechat_2.htm for more information. When the end user starts a new session and sends a text message and a file, the routing attributes are sent with whichever conversation entry (the message or file) goes out first. For example, if the end user starts a new session and sends the file before the text message, the routing attributes are sent with the file. **/ Example: { "_firstName": "jacob", "_lastName": "jacobs", "_email": "jjacobs@acme.com" }` .
    
    Example: `/** Description Information about the conversation captured from the pre-chat form that the end user completes. The attribute values can come from both visible and hidden fields in the pre-chat form, and the information comes in as string values. Omni Flow can send pre-chat form data to the messaging session for a more informed rep experience. See Map Pre-Chat Values in Omni-Channel Flow at https://help.salesforce.com/s/articleView?id=service.miaw_map_messaging_2.htm for more information. Routing attributes are only sent when the end user starts a new session (isNewMessagingSession is true) and the pre-chat form has been configured to appear with every session. See [Customize Pre-Chat for Enhanced Chat at https://help.salesforce.com/s/articleView?id=service.miaw_custom_prechat_2.htm for more information. When the end user starts a new session and sends a text message and a file, the routing attributes are sent with whichever conversation entry (the message or file) goes out first. For example, if the end user starts a new session and sends the file before the text message, the routing attributes are sent with the file. **/ Example: { "_firstName": "jacob", "_lastName": "jacobs", "_email": "jjacobs@acme.com" }` .
    
    Additional properties: `string`.
    
*   `language` (_string_, nullable) The language code for the language the end user wants to use. For example, `en_US`. For a list of Salesforce supported languages, see the [Supported Languages](https://help.salesforce.com/s/articleView?id=xcloud.faq_getstart_what_languages_does.htm&language=en_US&type=5) help page.

### SendMessageResponseApi

Non persisted Access Token Request Payload

*   `conversationEntries` (_array of ConversationEntryResult_, required)

### AcknowledgeEntriesRequestApi

Request for AcknowledgeEntry API

*   `acks` (_array of AcknowledgeEntryData_) An object representing an array of delivery acknowledgements or read receipts. The maximum number of objects per array is 25.

### SendFilesRequestApi

Send Files Request Payload. Each message object must contain a unique ID attribute. Content type is `application/json`.

*   `message` (_SendFilesMessageApi_, required) An object representing a message.
*   `esDeveloperName` (_string_, required)
    
    The API name of the Enhanced Chat Embedded Service deployment. The name can contain alphanumeric characters and underscores, and must begin with a letter.
    
    Verify that the Embedded Service deployment is configured to support the request.
    
    *   The deployment type for the Embedded Service deployment must be set to Custom Client. If properly configured, after you send the request, `deploymentType` in the response will be set to `api`. If `deploymentType` isn't set to `api`, create an Embedded Service deployment or use another deployment with deployment type set to Custom Client. See [Configure a Custom Client Deployment for Enhanced Chat](https://help.salesforce.com/s/articleView?id=service.miaw_deployment_custom.htm) for more information.
    
      
    Example: `myDeployment`.
*   `routingAttributes` (_object_, nullable)  
    Example: `/** Description Information about the conversation captured from the pre-chat form that the end user completes. The attribute values can come from both visible and hidden fields in the pre-chat form, and the information comes in as string values. Omni Flow can send pre-chat form data to the messaging session for a more informed rep experience. See Map Pre-Chat Values in Omni-Channel Flow at https://help.salesforce.com/s/articleView?id=service.miaw_map_messaging_2.htm for more information. Routing attributes are only sent when the end user starts a new session (isNewMessagingSession is true) and the pre-chat form has been configured to appear with every session. See [Customize Pre-Chat for Enhanced Chat at https://help.salesforce.com/s/articleView?id=service.miaw_custom_prechat_2.htm for more information. When the end user starts a new session and sends a text message and a file, the routing attributes are sent with whichever conversation entry (the message or file) goes out first. For example, if the end user starts a new session and sends the file before the text message, the routing attributes are sent with the file. **/ Example: { "_firstName": "jacob", "_lastName": "jacobs", "_email": "jjacobs@acme.com" }` .
    
    Example: `/** Description Information about the conversation captured from the pre-chat form that the end user completes. The attribute values can come from both visible and hidden fields in the pre-chat form, and the information comes in as string values. Omni Flow can send pre-chat form data to the messaging session for a more informed rep experience. See Map Pre-Chat Values in Omni-Channel Flow at https://help.salesforce.com/s/articleView?id=service.miaw_map_messaging_2.htm for more information. Routing attributes are only sent when the end user starts a new session (isNewMessagingSession is true) and the pre-chat form has been configured to appear with every session. See [Customize Pre-Chat for Enhanced Chat at https://help.salesforce.com/s/articleView?id=service.miaw_custom_prechat_2.htm for more information. When the end user starts a new session and sends a text message and a file, the routing attributes are sent with whichever conversation entry (the message or file) goes out first. For example, if the end user starts a new session and sends the file before the text message, the routing attributes are sent with the file. **/ Example: { "_firstName": "jacob", "_lastName": "jacobs", "_email": "jjacobs@acme.com" }` .
    
    Additional properties: `string`.
    
*   `isNewMessagingSession` (_boolean_) Indicates whether this is the first message in the messaging session. This parameter value determines whether the routing attributes for the pre-chat form (routingAttributes) are sent.  
    Default: `false`.
*   `language` (_string_, nullable) The language code for the language the end user wants to use. For example, `en_US`. For a list of Salesforce supported languages, see the [Supported Languages](https://help.salesforce.com/s/articleView?id=xcloud.faq_getstart_what_languages_does.htm&language=en_US&type=5) help page.

### ConversationStatusResponse

Current status response for a conversation.

*   `conversationId` (_string_, required) The UUID of the conversation.  
    Example: `e6475bcb-2b98-4abd-b248-150878a3980b`.
*   `routingStatus` (_string_)
    
    The status of the conversation. Customers can request the routing status at any point in the conversation. Possible values are:
    
    *   `ROUTED` - No router participant is in the conversation and the conversation is considered routed.
    *   `NEEDS_ROUTING` - No routing in progress and conversation needs to be routed.
    *   `INITIAL` - Initial routing in progress.
    *   `TRANSFER` - Transfer routing in progress.
    
      
    Example: `ROUTED`.

### ListConversationResponse

List Conversation Request Payload.

*   `conversations` (_array of ConversationDetails_, required)
    
    An object representing an array of conversation objects.
    
    The details of each conversation include the API name of the Enhanced Chat Embedded Service deployment (`esDeveloperName`), the ID of the message channel (`channelAddressIdentifier`) that's associated to the Embedded Service deployment, the ID of the conversation (`conversationId`), and when the conversation started (`startTimestamp`).
    
    If the conversation is closed (`isConversationClosed` is true), the `esDeveloperName` field isn't included in the response.
    
    If the conversation is open (`isConversationClosed` is false), the `endTimestamp` value is zero (0). If the conversation is closed (`isConversationClosed` is true), the `endTimestamp` value is the date and time (in UTC) when the conversation was closed.
    
*   `openConversationsFound` (_integer (int32)_, required) The number of open conversations found between the startTimestamp and endTimestamp date.  
    Example: `1`.
*   `closedConversationsFound` (_integer (int32)_, required) The number of closed conversations found between the startTimestamp and endTimestamp date.  
    Example: `0`.

### GetConversationEntriesResponse

List Conversation Entries response payload.

*   `conversationEntries` (_array of ConversationEntryDetails_, required) The list of conversation entries for a particular conversation.

### RegisterNotificationRequest

Notification registration request payload.

*   `pushServiceProvider` (_PushServiceProvider_, required)
*   `deviceToken` (_string_, required) The token of the device where push notifications are sent to. The token must be in the correct format as defined by the push notification service provider, such as APNS or FCM.  
    Example: `03ab25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2g`.

### BaseAuthorizationRequest

Base request used to acquire an authorization token.

*   `orgId` (_string_, required) The 15-character org ID of the Salesforce org where Enhanced Chat is set up.  
    Example: `00Dxx0000000xxx`.
*   `esDeveloperName` (_string_, required)
    
    The API name of the Enhanced Chat Embedded Service deployment. The name can contain alphanumeric characters and underscores, and must begin with a letter.
    
    *   The deployment type for the Embedded Service deployment must be set to Custom Client. If properly configured, after you send the request, `deploymentType` in the response will be set to `api`. If `deploymentType` isn't set to `api`, create an Embedded Service deployment or use another deployment with deployment type set to Custom Client. See [Configure a Custom Client Deployment for Enhanced Chat](https://help.salesforce.com/s/articleView?id=service.miaw_deployment_custom.htm) for more information.
    
      
    Example: `myDeployment`.
*   `capabilitiesVersion` (_CapabilitiesVersion_, required)
*   `platform` (_Platform_, required)
*   `deviceId` (_string_, nullable)
    
    The ID of the installation of the app in the device.
    
    For mobile apps, this is a required field. Generate a unique ID for the installation of the app in the device. The ID must be between 36 and 128 characters long. The ID should be reusable and the same ID should be consistently generated for the installation of the app in the device. The ID can be generated when the app is installed in the device. If multiple apps are installed in a device, each app must have their own unique device ID.
    
    For web apps, don't include this field. The service creates a unique ID that remains the same for the user for a specific deployment in an org.
    
      
    Example: `b8c06d01-b410-4097-bd8a-03cc71862d24`.
*   `context` (_AccessTokenRequestContext_)
*   `captchaToken` (_CaptchaToken_)

### AuthorizationType

The authorization type used to interact with the Enhanced Chat APIs. Set this value to JWT. This field is required.

Type: `string`.

Allowed values: `JWT`. Default: `JWT`.

### AccessTokenRespContext

Access token response context.

*   `deviceId` (_string_, required) For mobile apps, this is the same device ID (deviceId) that was sent in the request. For web apps, this must be a unique ID that's generated on the server.  
    Example: `b8c06d01-b410-4097-bd8a-03cc71862d24`.
*   `endUser` (_MessagingParticipant_)
*   `configuration` (_EmbeddedServiceConfigResponse_)

### SendEntriesEntryType

The type of conversation entry that determines whether the end user starts or stops typing a message. Possible values are:

*   `TypingStartedIndicator` to notify the reps or bots when the end user starts typing a message.
*   `TypingStoppedIndicator` to notify the reps or bots when the end user stops typing a message.

Type: `string`.

Allowed values: `TypingStartedIndicator`, `TypingStoppedIndicator`.

### StaticContentMessage

Non interactive MT or MO message with static content.

*   `inReplyToMessageId` (_InReplyToMessageId_)
*   `id` (_MessageId_, required)
*   `messageType` (_string_, required)  
    Allowed values: `StaticContentMessage`.
*   `staticContent` (_StaticContentText_, required)

### ChoicesResponseMessage

MO response message to a choices message

*   `inReplyToMessageId` (_InReplyToMessageId_)
*   `id` (_MessageId_, required)
*   `messageType` (_string_, required)  
    Allowed values: `ChoicesResponseMessage`.
*   `choicesResponse` (_ChoicesResponseSelections_, required)

### FormResponseMessage

MO Form response message

*   `inReplyToMessageId` (_InReplyToMessageId_)
*   `id` (_MessageId_, required)
*   `messageType` (_string_, required)  
    Allowed values: `FormResponseMessage`.
*   `formResponse` (_FormResponseInputs_, required)

### ConversationEntryResult

The details of the conversation entry, including the ID of the conversation entry and the date and time (in UTC) when the message was sent by the client.

*   `id` (_string_, required)  
    Example: `6fc22906-c24a-4c53-b382-fd091dacd848`.
*   `clientTimestamp` (_integer (int64)_, required) The time when the conversation entry was processed by the server.  
    Example: `1713390200`.

### AcknowledgeEntryData

Request object for acknowledge entry

*   `id` (_string_, required) The UUID of the delivery acknowledgement or read receipt. The UUID must be in lowercase. The value must be unique within the array.  
    Example: `b2104971-42a5-47d3-8d82-1a1118fa2af3`.
*   `entryType` (_AcknowledgeEntryType_, required)
*   `conversationEntryId` (_string_, required) The ID of the conversation entry that the delivery acknowledgement or read receipt is associated with. The combination of `conversationEntryId` and `entryType` must be unique within the array.  
    Example: `1c896056-3ecc-44f9-96fa-4a64c77b17e2`.

### SendFilesMessageApi

An object representing a message.

*   `id` (_string_, required) The UUID of the message. The ID must be unique to the conversation entry. If multiple messages are sent with the same ID, then only the first message will be processed.  
    Example: `57904eb6-5352-4c5e-adf6-5f100572cf5d`.
*   `fileId` (_string_, required) The ID of the file.
*   `inReplyToMessageId` (_string_, nullable) If the message is in reply to another message, this value is the UUID of the message being replied to.  
    Example: `a133c185-73a7-4adf-b6d9-b7fd62babb4e`.
*   `text` (_string_, nullable) The text, if any, that's sent with the file. The text must be 4000 characters or less.

### ConversationDetails

*   `conversationId` (_string_, required) The ID of the conversation.  
    Example: `4hLzy5R1l49Y9b98_xTLoV`.
*   `startTimestamp` (_integer (int64)_, required) When the conversation started.  
    Example: `1645432313000`.
*   `endTimestamp` (_integer (int64)_, required) When the conversation ended. If the conversation is open, the value is zero (0). If the conversation is closed, the value is the date and time (in UTC) when the conversation was closed.  
    Example: `0`.
*   `channelAddressIdentifier` (_string_, required) The ID of the Message channel.  
    Example: `dfbb03d3-4418-4584-bd0e-7ed895181f08`.
*   `esDeveloperName` (_string_)
    
    The API name of the Enhanced Chat Embedded Service deployment. The name can contain alphanumeric characters and underscores, and must begin with a letter.
    
    Verify that the Embedded Service deployment is configured to support the request.
    
    *   The deployment type for the Embedded Service deployment must be set to Custom Client. If properly configured, after you send the request, `deploymentType` in the response will be set to `api`. If `deploymentType` isn't set to `api`, create an Embedded Service deployment or use another deployment with deployment type set to Custom Client. See [Configure a Custom Client Deployment for Enhanced Chat](https://help.salesforce.com/s/articleView?id=service.miaw_deployment_custom.htm) for more information.
    
      
    Example: `myDeployment`.
*   `isConversationClosed` (_boolean_, required) Indicates that conversation is closed.  
    Example: `false`.

### ConversationEntryDetails

The details of the conversation entry, including the ID of the conversation entry and the date and time (in UTC) when the message was sent by the client.

*   `entryType` (_string_, required) The type of conversation entry. Examples of conversation entries include a block of message text, a participant change, a routing action, and a rep status update.  
    Example: `Message`.
*   `entryPayload` (_object_, required) The payload for the conversation entry. The payload details depend on the entryType.  
    Example: `{...}`.
*   `transcriptedTimestamp` (_integer (int64)_, required) The date and time (in UTC) when the conversation entry was received by the Salesforce server.  
    Example: `1645500204995`.
*   `sender` (_PublicParticipantDetails_, required)
*   `clientTimestamp` (_integer (int64)_, required) The date and time (in UTC) when the conversation entry was sent by the client.  
    Example: `1645500204976`.
*   `identifier` (_string_, required) The ID of the conversation entry.  
    Example: `27830232sasd12323425`.
*   `senderDisplayName` (_string_, required) The display name of the end user. This value always defaults to “Guest” for the end user.  
    Example: `Guest`.

### PushServiceProvider

The name of the push notification service provider. Possible values are:

*   `APNS` for Apple Push Notification Service
*   `FCM` for Firebase Cloud Messaging

Type: `string`.

Allowed values: `APNS`, `FCM`. Example: `APNS`.

### CapabilitiesVersion

The version number that determines the messaging content types that are supported for app capabilities. If the content type isn't supported by the capabilitiesVersion, the content is translated to text before the rep or bot sends the message. When the request is sent, the service registers the participant's device with the capabilitiesVersion or updates the version if one already exists. Use capabilitiesVersion 62 for progress indicators and capabilitiesVersion 63 for streaming tokens and enhanced messaging attachment file type support.

Type: `string`.

Allowed values: `1`, `62`, `63`. Example: `1`.

### Platform

Specifies whether the Embedded Service deployment (esDeveloperName) is used for a mobile or web application. Possible values are: “Mobile” and “Web”.

Type: `string`.

Allowed values: `Web`, `Mobile`. Default: `Web`. Example: `Web`.

### AccessTokenRequestContext

Access token request context

The request context object. Required for web apps.

*   `appName` (_string_)
    
    A name, such as the name of a business unit, that represents the app's intended use. Mobile and web apps in the same business unit should send the same name.
    
    The name can include alphanumeric characters and the underscore (\_) special character and be up to 40 characters long. The name is case sensitive. For example, “salesApp”, “sales\_app”, or xyz\_sales\_app”.
    
    For mobile apps, this is a required field. For web apps, don't include this field; if you include the field, it'll be ignored.
    
      
    Example: `salesApp`.
*   `clientVersion` (_string_)
    
    The customer's app version. The value must be 25 characters or less and follow the version numbering pattern `99`, `99.99`, or `99.99.99`.
    
    While this value isn't required, it can be useful when performing customer investigations.
    
      
    Example: `1.2.3`.

### CaptchaToken

reCAPTCHA Token for server-side validation.

Type: `string`.

Example: `<client generated token>`.

### MessagingParticipant

Conversation Participant

*   `appType` (_string_) The appType used for the conversation.  
    Example: `iamessage`.
*   `role` (_string_) The role of a participant.  
    Example: `EndUser`.
*   `subject` (_string_, required) Subject identifier for this participant.  
    Example: `<Subject of the EndUser generated by Salesforce>`.
*   `displayName` (_string_) The display name for this participant

### EmbeddedServiceConfigResponse

Contains the features that are configured in the setup. See [Sample Configuration File](/docs/service/messaging-api/references/about/sample-configuration.html) for a sample configuration that's returned.

*   `embeddedServiceConfig` (_EmbeddedServiceConfigInfo_, required)
*   `timestamp` (_integer (int64)_, required) The time when response was served from Core.  
    Example: `1609790105500`.

### InReplyToMessageId

If the message is in reply to another message, this value is the UUID of the message being replied to.

Type: `string`.

Example: `a133c185-73a7-4adf-b6d9-b7fd62babb4e`.

### MessageId

The UUID of the message. The ID must be unique to the conversation entry. If multiple messages are sent with the same ID, only the first message will be processed.

Type: `string`.

Example: `57904eb6-5352-4c5e-adf6-5f100572cf5d`.

### StaticContentText

Static text content

*   `formatType` (_any_, required)  
    Allowed values: `Text`.
*   `text` (_Text_, required)

### ChoicesResponseSelections

The selections to a choices message

*   `formatType` (_any_, required)  
    Allowed values: `Selections`.
*   `selectedOptions` (_array of SelectedOption_, required)  
    Minimum items: 1.

### FormResponseInputs

The input response values to a Form Message

*   `formatType` (_any_, required)  
    Allowed values: `Inputs`.
*   `formTitle` (_AbstractTitleItem_)
*   `inputValues` (_array of AbstractInputValue_, required)

### AcknowledgeEntryType

The type of conversation entry that indicates whether the entry from the rep or bot has been delivered to or read by the end user.

Possible values are `Read` to acknowledge that the end user has read the conversation entry, or `Delivery` to acknowledge that the conversation entry has been delivered to the end user.

Each delivery acknowledgement must be sent. If the end user reads multiple messages in a row, only the last read message needs to be acknowledged/sent.

Type: `string`.

Allowed values: `Read`, `Delivery`. Example: `Delivery`.

### PublicParticipantDetails

The participant who sent the conversation entry and the details associated with the sender.

The role (`role`) represents the participant that is responsible for the event, such as End User, Agent, Chatbot, System (when the system responds), or Router (when the request is being routed).

The subject (`subject`) is the unique subject ID of the sender participant.

*   `role` (_string_) The role of a participant.  
    Example: `endUser`.
*   `subject` (_string_, required) Subject identifier for this participant.  
    Example: `v1/iamessage/UNAUTH/f0363938-af24-4971-ad6b-45cd8daaec57/uid:34e21b0f-b81f-42ca-87a0-9e64d259bdb4`.

### EmbeddedServiceConfigInfo

*   `name` (_string_, required)  
    Example: `developerName`.
*   `deploymentType` (_string_, required) The deployment type for the Embedded Service deployment. This value is `api`, which represents deployment type Custom Client in the Salesforce Ligthning UI. If `deploymentType` isn't set to `api`, create an Embedded Service deployment or use another deployment with deployment type set to Custom Client. See [Configure a Custom Client Deployment for Enhanced Chat](https://help.salesforce.com/s/articleView?id=service.miaw_deployment_custom.htm) for more information.  
    Example: `api`.
*   `embeddedServiceMessagingChannel` (_EmbeddedServiceMessagingChannel_)
*   `forms` (_array of ESWForm_, required)
*   `attachments` (_AttachmentConfig_, required)
*   `choiceListConfig` (_ChoiceListConfigInfo_)
*   `transcript` (_TranscriptConfig_, required)

### Text

The text that's sent with the message. The text must be 4000 characters or less.

Type: `string`.

### SelectedOption

A selection option from a ChoicesSelectionsMessage

*   `optionIdentifier` (_UniqueIdentifier_, required)

### AbstractTitleItem

Discriminator: `itemType` selects the concrete type.

*   `itemType` (_TitleItemType_, required)
*   `title` (_string_, required)
*   `subTitle` (_string_)
*   `secondarySubTitle` (_string_)
*   `tertiarySubTitle` (_string_)
*   `referenceId` (_UniqueId_)

### AbstractInputValue

Discriminator: `inputValueType` selects the concrete type.

*   `inputValueType` (_InputValueType_, required)
*   `inputId` (_InputId_, required)
*   `inputlabel` (_AbstractTitleItem_)

### EmbeddedServiceMessagingChannel

*   `channelAddressIdentifier` (_string_, required)  
    Example: `43bb33f4-5c13-4815-ab1b-7ccd679de4dc`.
*   `authMode` (_string_) Enum field Values from Core Auth or UnAuth  
    Allowed values: `Auth`, `UnAuth`.

### ESWForm

*   `formType` (_string_, required) Supported types of forms.  
    Allowed values: `PreChat`.
*   `displayContext` (_string_, required) Display context of the form.  
    Allowed values: `Conversation`, `Session`.
*   `formFields` (_array of ESWFormFields_, required)

### AttachmentConfig

*   `endUserToAgent` (_boolean_, required)
*   `maxFileSize` (_integer (int32)_) The maximum allowed file size for each attachment. See [Send Images and Files in Messaging Sessions](https://help.salesforce.com/s/articleView?id=service.livemessage_agent_send_files.htm) for more information about maximum file sizes for message attachments.  
    Example: `5242880`.
*   `allowedFileTypes` (_object_) A list of file types and the file formats they support. File types include `image`, `audio`, `video`, `text`, and `other`. If a file type doesn't support any file formats, the value is set to empty square brackets (`[]`). See [Send Images and Files in Messaging Sessions](https://help.salesforce.com/s/articleView?id=service.livemessage_agent_send_files.htm) for more information about allowed file types.
    
    Additional properties: `array of string`.
    
    _Example_
    
    ```
    {
      "image": [
        "png",
        "bmp",
        "tiff",
        "gif"
      ],
      "audio": [],
      "video": [
        "mp4"
      ],
      "text": [
        "csv",
        "txt"
      ],
      "other": [
        "xml",
        "xls",
        "xlsx"
      ]
    }
    ```
    

### ChoiceListConfigInfo

*   `choiceList` (_array of ChoiceListInfo_)

### TranscriptConfig

*   `allowTranscriptDownload` (_boolean_, required) Flag to indicate whether end user can download the transcript or not.

### UniqueIdentifier

An string identifier that identifies objects or items uniquely per message instance

Type: `string`.

### TitleItemType

Type: `string`.

Allowed values: `TitleItem`, `TitleImageItem`, `TitleVideoItem`.

### UniqueId

A UUID that identifies objects or items uniquely per message instance

Type: `string`.

Example: `cbd4e3fe-f210-43b8-a4b7-dd77e39ee5e1`.

### InputValueType

Type: `string`.

Allowed values: `SingleInputValue`, `SelectedOptionsInputValue`.

### InputId

An id that uniquely identifies an input in a form message

Type: `string`.

### ESWFormFields

*   `name` (_string_, required) The external name used to identify the prechat field.
*   `order` (_integer (int32)_, required) Order of the prechat field.
*   `type` (_string_, required) Supported types of prechat fields for both standard and custom.  
    Allowed values: `Text`, `Email`, `Number`, `Checkbox`, `Phone`, `ChoiceList`.
*   `required` (_boolean_, required) States if value is required for the prechat field.
*   `maxLength` (_integer (int32)_, required) The maximum allowed characters for the prechat field.
*   `isHidden` (_boolean_, required) is the prechat field hidden.
*   `choiceListId` (_string_) The id of the choice list associated with this form field.

### ChoiceListInfo

*   `choiceListId` (_string_)  
    Example: `choice_list_id`.
*   `choiceListValues` (_array of ChoiceListValueInfo_)

### ChoiceListValueInfo

*   `order` (_integer_)  
    Example: `0`.
*   `choiceListValueName` (_string_)  
    Example: `choice_list_value_name`.
*   `choiceListValueId` (_string_)  
    Example: `choice_list_value_id`.
*   `isDefaultValue` (_boolean_)

### AbstractMessage

An object representing a message.

Discriminator: `messageType` selects the concrete type.

*   `inReplyToMessageId` (_InReplyToMessageId_)
*   `id` (_MessageId_, required)
*   `messageType` (_MessageType_, required)

### AbstractChoicesResponse

Discriminator: `formatType` selects the concrete type.

*   `formatType` (_ChoicesResponseFormatType_, required)

### AbstractFormResponse

Discriminator: `formatType` selects the concrete type.

*   `formatType` (_SecureFormFormatType_, required)

### TitleItem

Includes all fields of `AbstractTitleItem`.

### TitleImageItem

Includes all fields of `AbstractTitleItem`.

*   `imageId` (_UniqueId_, required)
*   `imageSubTitle` (_string_)

### TitleVideoItem

Includes all fields of `AbstractTitleItem`.

*   `videoId` (_UniqueId_, required)
*   `imageId` (_UniqueId_)

### SingleInputValue

Single value of an input

Includes all fields of `AbstractInputValue`.

*   `displayValue` (_string_)
*   `value` (_AbstractValue_, required)

### SelectedOptionsInputValue

The select options of a select/picker input

Includes all fields of `AbstractInputValue`.

*   `selectedOptions` (_array of SelectedFormOption_, required)

### TextValue

A text value

Includes all fields of `AbstractValue`.

*   `textValue` (_string_, required)

### DoubleValue

A double value

Includes all fields of `AbstractValue`.

*   `doubleValue` (_number (double)_, required)

### IntegerValue

An integer value

Includes all fields of `AbstractValue`.

*   `integerValue` (_integer_, required)

### UrlValue

An url value

Includes all fields of `AbstractValue`.

*   `urlValue` (_Url_, required)

### DateValue

A date value as defined by rfc3339

Includes all fields of `AbstractValue`.

*   `dateValue` (_string (date)_, required)

### DateTimeValue

A date time value as defined by rfc3339

Includes all fields of `AbstractValue`.

*   `dateTimeValue` (_string (date-time)_, required)

### AbstractStaticContent

Discriminator: `formatType` selects the concrete type.

*   `formatType` (_StaticContentFormatType_, required)

### StaticContentExternalAttachments

Encrypted attachments with optional text

Includes all fields of `AbstractStaticContent`.

*   `text` (_Text_)
*   `attachments` (_array of EncryptedAttachment_, required)  
    Minimum items: 1.

### OctetJwk

A JWK with key type 'oct'. [https://tools.ietf.org/html/rfc7518#section-6.4](https://tools.ietf.org/html/rfc7518#section-6.4)

Includes all fields of `AbstractJwk`.

*   `alg` (_OctetJwkAlgorythmType_, required)
*   `k` (_string_, required)

### StaticContentLinks

A list of web links.

Includes all fields of `AbstractStaticContent`.

*   `links` (_array of Link_, required)  
    Minimum items: 1. Maximum items: 1.

### BaseRenewTokenRequest

Renew token request with common fields.

*   `accessToken` (_string_, required) Expired access token
*   `refreshToken` (_string_, required) Valid refresh token
*   `deviceId` (_string_) Globally unique device identifier

### DeviceInfo

Captures all the details related to the device that is being used in the conversation. Used for metric and data analysis.

*   `appName` (_string_) Name of the app current using the API
*   `os` (_string_) Captures information about operating system.
*   `osVersion` (_string_) Captures version of operating system.
*   `browser` (_string_) Captures information about the browser.
*   `browserVersion` (_string_) Captures information about the browser version.
*   `clientVersion` (_string_) Captures additional information related to client version.
*   `deviceType` (_string_) Captures information on the device type, eg. Iphone13

### MessagingConversationInfo

Conversation Info

*   `conversationId` (_string_, required) The Id of the conversation.
*   `startTimestamp` (_integer (int64)_, required) The startTimestamp of the conversation.
*   `endTimestamp` (_integer (int64)_) The endTimestamp of the conversation.
*   `channelAddressIdentifier` (_string_, required) Unique Identifier associated with the Messaging channel record.
*   `participants` (_array of MessagingParticipant_, required) The participants associated with the conversations.

### MessagingConversationEntry

*   `entryType` (_string_, required) The type of the ConversationEntry, replicated from entryPayload. Required.
*   `entryPayload` (_string_, required) Json serialized entry payload.
*   `transcriptedTimestamp` (_integer (int64)_, required) The UNIX Epoch time of when this message was received by the server. Required.
*   `sender` (_MessagingParticipant_, required)
*   `clientTimestamp` (_integer (int64)_, required) The UNIX Epoch time of when this message was sent by the client. Required.
*   `identifier` (_string_, required) The id of the entry.Required.
*   `senderDisplayName` (_string_, required) The displayName for the sender of this Conversation Entry.

### AcknowledgementData

The acknowledgement data made for a conversation per participant.

*   `conversationEntryId` (_string_, required) The unique identifier for the conversation entry this acknowledgement is associated with.

### QueryDirection

Type: `string`.

Allowed values: `FromStart`, `FromEnd`.

### EntryType

Enum listing unique identifiers types of entries.

Type: `string`.

Allowed values: `Message`, `TypingIndicator`, `ParticipantChanged`, `MessageDeliveryFailed`, `UndeliveredConversationEntry`, `TypingStartedIndicator`, `TypingStoppedIndicator`, `DeliveryAcknowledgement`, `ReadAcknowledgement`, `RoutingResult`, `RoutingWorkResult`, `CloseConversation`, `SessionStatusChanged`.

### ChoicesResponseFormatType

The rendering format of a message. How it looks.

Type: `string`.

Allowed values: `Text`, `Selections`. Example: `Selections`.

### StaticContentFormatType

The rendering format of a message. How it looks.

Type: `string`.

Allowed values: `Text`, `ExternalAttachments`, `Links`. Example: `Text`.

### Link

A web link.

*   `url` (_string_, required)

### OctetJwkAlgorythmType

Type: `string`.

Allowed values: `A256GCM`.

### JwkKeyType

The key type of the JWK. [https://tools.ietf.org/html/rfc7517#section-4.1](https://tools.ietf.org/html/rfc7517#section-4.1)

Type: `string`.

Allowed values: `oct`.

### Attachment

A file sent as an attachment with a message.

*   `name` (_string_, required)
*   `id` (_UniqueId_, required)
*   `mimeType` (_MimeType_, required)
*   `url` (_Url_, required)
*   `referenceId` (_UniqueId_)

### MimeType

A mime type

Type: `string`.

### Url

A url

Type: `string`.

### EncryptedAttachmentStatus

The status of an encrypted attachment

Type: `string`.

Allowed values: `Available`, `PendingUpload`. Example: `Available`.

### MessageType

The type of message being sent to the rep or bot. Possible values include: `StaticContentMessage`, `ChoicesMessage`, and `FormMessage`. For example, a `messageType` of `StaticContentMessage` represents a message that contains static content.

This value also determines the message format type (`formatType`) and how it's defined.

Type: `string`.

Allowed values: `StaticContentMessage`, `ChoicesResponseMessage`, `FormResponseMessage`.

### ValueType

The type of a value

Type: `string`.

Allowed values: `TextValue`, `IntegerValue`, `DoubleValue`, `UrlValue`, `DateValue`, `DateTimeValue`.

### SecureFormFormatType

The rendering format of a message. How it looks.

Type: `string`.

Allowed values: `Inputs`. Example: `Inputs`.

### SelectedFormOption

A selection option from a SecureFormsInputsResponse message

*   `optionIdentifier` (_UniqueIdentifier_, required)
*   `optionTitle` (_AbstractTitleItem_)
*   `optionId` (_UniqueId_)

### AbstractValue

The base type from which simple value types extends

Discriminator: `valueType` selects the concrete type.

*   `valueType` (_ValueType_, required)

### AbstractJwk

Discriminator: `kty` selects the concrete type.

*   `kty` (_JwkKeyType_, required)

### EncryptedAttachment

A file sent as an encrypted attachment with a message.

*   `attachment` (_Attachment_, required)
*   `iv` (_string_, required)
*   `jwk` (_OctetJwk_, required)
*   `sizeInBytes` (_integer_)
*   `status` (_EncryptedAttachmentStatus_)