---
title: domain and extensions
slug: sdk/android-sdk-api-reference-domain-and-extensions
createdAt: 2026-11-04T11:40:05.352Z
---

# no.kindly.chatsdk.chat.domain

## MessageChat

`data class`

```kotlin
data class MessageChat(val systemDialogMessageType: SystemDialogueMessageType? = null, val sessionId: String? = null, val botId: Int? = null, val chatId: String? = null, val chatSource: String? = null, val chatLanguageCode: String? = null, val fromBot: Boolean? = false, val sender: String? = null, val replyToId: String? = null, val lastUserMessageId: String? = null, val skillSubscriptionId: String? = null, val isFollowup: Boolean? = null, val message: String?, val messageFormat: MessageFormatType? = null, val attachments: List<String> = listOf(), val attachmentIds: List<String>? = listOf(), val messageWithKindlyEntities: String? = null, var oEmbedResponse: OEmbedData? = null, val labelsTriggered: List<String> = listOf(), val imageCarousel: List<ImageItem>? = null, val imageCarouselSize: Int? = null, val urlTrigger: String? = null, val videoSource: String? = null, val thonImageAboveText: Boolean? = null, val exchangeType: String? = null, val exchangeId: String? = null, val title: String? = null, val parentExchangeId: String? = null, val chatbubbleHideInputField: Boolean? = null, val webhookUrl: String? = null, val score: Double? = null, val handler: String? = null, val triggeredChatStart: Boolean? = null, val replyType: String? = null, val fromWebhook: Boolean? = null, val agentJoined: Boolean? = null, val suggestions: List<SuggestionSDK> = listOf(), val emailReferences: List<String>? = listOf(), val emailFrom: List<String>? = listOf(), val emailTo: List<String>? = listOf(), val emailCc: List<String>? = listOf(), var created: String? = null, val v: Int? = null, var id: String? = null, val isMine: Boolean = false, val typing: Boolean = false, val isFile: Boolean = false, val buttons: List<ButtonChat> = mutableListOf(), val duringBusinessHours: Boolean? = null, val handoverRequestWhenTriggered: Boolean? = null, val name: String? = null, val avatar: String? = null, val systemDialogueCategory: SystemDialogueCategoryType? = null, val form: FormSDK? = null, val messageReferences: List<ChatMessageReferenceModel>? = listOf(), val eventMessage: String? = null, val temporaryId: String? = null, val newContext: Map<String, String>? = null, bubbleIndex: Int? = null)
```

Represents a chat message in the Kindly SDK. Received via the KindlySDKInteraction.didPressButton callback as part of the chat log.

| Member                         | Declaration                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Description |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `MessageChat`                  | `constructor(systemDialogMessageType: SystemDialogueMessageType? = null, sessionId: String? = null, botId: Int? = null, chatId: String? = null, chatSource: String? = null, chatLanguageCode: String? = null, fromBot: Boolean? = false, sender: String? = null, replyToId: String? = null, lastUserMessageId: String? = null, skillSubscriptionId: String? = null, isFollowup: Boolean? = null, message: String?, messageFormat: MessageFormatType? = null, attachments: List<String> = listOf(), attachmentIds: List<String>? = listOf(), messageWithKindlyEntities: String? = null, oEmbedResponse: OEmbedData? = null, labelsTriggered: List<String> = listOf(), imageCarousel: List<ImageItem>? = null, imageCarouselSize: Int? = null, urlTrigger: String? = null, videoSource: String? = null, thonImageAboveText: Boolean? = null, exchangeType: String? = null, exchangeId: String? = null, title: String? = null, parentExchangeId: String? = null, chatbubbleHideInputField: Boolean? = null, webhookUrl: String? = null, score: Double? = null, handler: String? = null, triggeredChatStart: Boolean? = null, replyType: String? = null, fromWebhook: Boolean? = null, agentJoined: Boolean? = null, suggestions: List<SuggestionSDK> = listOf(), emailReferences: List<String>? = listOf(), emailFrom: List<String>? = listOf(), emailTo: List<String>? = listOf(), emailCc: List<String>? = listOf(), created: String? = null, v: Int? = null, id: String? = null, isMine: Boolean = false, typing: Boolean = false, isFile: Boolean = false, buttons: List<ButtonChat> = mutableListOf(), duringBusinessHours: Boolean? = null, handoverRequestWhenTriggered: Boolean? = null, name: String? = null, avatar: String? = null, systemDialogueCategory: SystemDialogueCategoryType? = null, form: FormSDK? = null, messageReferences: List<ChatMessageReferenceModel>? = listOf(), eventMessage: String? = null, temporaryId: String? = null, newContext: Map<String, String>? = null, bubbleIndex: Int? = null)` |             |
| `agentJoined`                  | `val agentJoined: Boolean?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |             |
| `attachmentIds`                | `val attachmentIds: List<String>?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |             |
| `attachments`                  | `val attachments: List<String>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |             |
| `avatar`                       | `val avatar: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |             |
| `botId`                        | `val botId: Int?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |             |
| `buttons`                      | `val buttons: List<ButtonChat>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |             |
| `chatbubbleHideInputField`     | `val chatbubbleHideInputField: Boolean?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |             |
| `chatId`                       | `val chatId: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |             |
| `chatLanguageCode`             | `val chatLanguageCode: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |             |
| `chatSource`                   | `val chatSource: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |             |
| `created`                      | `var created: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |             |
| `duringBusinessHours`          | `val duringBusinessHours: Boolean?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |             |
| `emailCc`                      | `val emailCc: List<String>?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |             |
| `emailFrom`                    | `val emailFrom: List<String>?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |             |
| `emailReferences`              | `val emailReferences: List<String>?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |             |
| `emailTo`                      | `val emailTo: List<String>?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |             |
| `eventMessage`                 | `val eventMessage: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |             |
| `exchangeId`                   | `val exchangeId: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |             |
| `exchangeType`                 | `val exchangeType: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |             |
| `form`                         | `val form: FormSDK?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |             |
| `fromBot`                      | `val fromBot: Boolean?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |             |
| `fromWebhook`                  | `val fromWebhook: Boolean?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |             |
| `handler`                      | `val handler: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |             |
| `handoverRequestWhenTriggered` | `val handoverRequestWhenTriggered: Boolean?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |             |
| `hasOEmbedResponse`            | `val hasOEmbedResponse: Boolean`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |             |
| `id`                           | `var id: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |             |
| `imageCarousel`                | `val imageCarousel: List<ImageItem>?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |             |
| `imageCarouselSize`            | `val imageCarouselSize: Int?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |             |
| `isFile`                       | `val isFile: Boolean`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |             |
| `isFollowup`                   | `val isFollowup: Boolean?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |             |
| `isMine`                       | `val isMine: Boolean`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |             |
| `labelsTriggered`              | `val labelsTriggered: List<String>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |             |
| `lastUserMessageId`            | `val lastUserMessageId: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |             |
| `message`                      | `val message: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |             |
| `messageFormat`                | `val messageFormat: MessageFormatType?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |             |
| `messageReferences`            | `val messageReferences: List<ChatMessageReferenceModel>?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |             |
| `messageWithKindlyEntities`    | `val messageWithKindlyEntities: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |             |
| `name`                         | `val name: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |             |
| `newContext`                   | `val newContext: Map<String, String>?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |             |
| `oEmbedResponse`               | `var oEmbedResponse: OEmbedData?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |             |
| `parentExchangeId`             | `val parentExchangeId: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |             |
| `replyToId`                    | `val replyToId: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |             |
| `replyType`                    | `val replyType: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |             |
| `score`                        | `val score: Double?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |             |
| `sender`                       | `val sender: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |             |
| `sessionId`                    | `val sessionId: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |             |
| `skillSubscriptionId`          | `val skillSubscriptionId: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |             |
| `suggestions`                  | `val suggestions: List<SuggestionSDK>`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |             |
| `systemDialogMessageType`      | `val systemDialogMessageType: SystemDialogueMessageType?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |             |
| `systemDialogueCategory`       | `val systemDialogueCategory: SystemDialogueCategoryType?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |             |
| `temporaryId`                  | `val temporaryId: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |             |
| `thonImageAboveText`           | `val thonImageAboveText: Boolean?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |             |
| `title`                        | `val title: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |             |
| `triggeredChatStart`           | `val triggeredChatStart: Boolean?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |             |
| `typing`                       | `val typing: Boolean`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |             |
| `urlTrigger`                   | `val urlTrigger: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |             |
| `v`                            | `val v: Int?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |             |
| `videoSource`                  | `val videoSource: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |             |
| `webhookUrl`                   | `val webhookUrl: String?`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |             |

## MessageFormatType

`enum`

```kotlin
enum MessageFormatType : Enum<MessageFormatType>
```

Format type for chat message content.

| Member       | Declaration                                     | Description                                                                                                                                                                                                                                                                                                                |
| ------------ | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `TXT`        | `TXT`                                           |                                                                                                                                                                                                                                                                                                                            |
| `HTML`       | `HTML`                                          |                                                                                                                                                                                                                                                                                                                            |
| `entries`    | `val entries: EnumEntries<MessageFormatType>`   | Returns a representation of an immutable list of all enum entries, in the order they're declared. This method may be used to iterate over the enum entries.                                                                                                                                                                |
| `rawValue`   | `val rawValue: String`                          |                                                                                                                                                                                                                                                                                                                            |
| `toRawValue` | `fun toRawValue(): String`                      |                                                                                                                                                                                                                                                                                                                            |
| `valueOf`    | `fun valueOf(value: String): MessageFormatType` | Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.) **Throws** - `kotlin.IllegalArgumentException`: if this enum type has no constant with the specified name |
| `values`     | `fun values(): Array<MessageFormatType>`        | Returns an array containing the constants of this enum type, in the order they're declared. This method may be used to iterate over the constants.                                                                                                                                                                         |

## MessageFormatType.Companion

`object`

```kotlin
object Companion
```

| Member         | Declaration                                            | Description |
| -------------- | ------------------------------------------------------ | ----------- |
| `fromRawValue` | `fun fromRawValue(value: String?): MessageFormatType?` |             |

# no.kindly.chatsdk.chat.domain.entites

## ButtonChat

`data class`

```kotlin
data class ButtonChat(val id: String?, val buttonType: String?, val languageCode: String?, val label: String = "", val value: String?, val index: Int?, val createdAt: String? = "", val updatedAt: String? = "", val isActive: Boolean = true, val hideOutsideBusinessHours: Boolean?, var clicked: Boolean = false, val context: Map<String, Any>? = null, val sliderDetails: SliderDetails? = null, val contactDetails: ContactDetails? = null, val emailDetails: EmailDetails? = null)
```

Represents a chat button in the Kindly SDK. Received via the KindlySDKInteraction.didPressButton callback.

| Member                     | Declaration                                                                                                                                                                                                                                                                                                                                                                                                            | Description                                                                                     |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `ButtonChat`               | `constructor(id: String?, buttonType: String?, languageCode: String?, label: String = "", value: String?, index: Int?, createdAt: String? = "", updatedAt: String? = "", isActive: Boolean = true, hideOutsideBusinessHours: Boolean?, clicked: Boolean = false, context: Map<String, Any>? = null, sliderDetails: SliderDetails? = null, contactDetails: ContactDetails? = null, emailDetails: EmailDetails? = null)` |                                                                                                 |
| `accessibilityId`          | `val accessibilityId: String`                                                                                                                                                                                                                                                                                                                                                                                          | Generates a unique accessibility identifier for Appium automation Format: button\_`id`\_`label` |
| `buttonType`               | `val buttonType: String?`                                                                                                                                                                                                                                                                                                                                                                                              |                                                                                                 |
| `clicked`                  | `var clicked: Boolean`                                                                                                                                                                                                                                                                                                                                                                                                 |                                                                                                 |
| `contactDetails`           | `val contactDetails: ContactDetails?`                                                                                                                                                                                                                                                                                                                                                                                  | Present on `contact_details` buttons — the prompt, placeholder and contact type to capture.     |
| `context`                  | `val context: Map<String, Any>?`                                                                                                                                                                                                                                                                                                                                                                                       |                                                                                                 |
| `createdAt`                | `val createdAt: String?`                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                 |
| `emailDetails`             | `val emailDetails: EmailDetails?`                                                                                                                                                                                                                                                                                                                                                                                      | Present on `email` buttons — informational; the subject/body are already baked into `value`.    |
| `hideOutsideBusinessHours` | `val hideOutsideBusinessHours: Boolean?`                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                 |
| `id`                       | `val id: String?`                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                 |
| `index`                    | `val index: Int?`                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                 |
| `isActive`                 | `val isActive: Boolean`                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                 |
| `label`                    | `val label: String`                                                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                 |
| `languageCode`             | `val languageCode: String?`                                                                                                                                                                                                                                                                                                                                                                                            |                                                                                                 |
| `sliderDetails`            | `val sliderDetails: SliderDetails?`                                                                                                                                                                                                                                                                                                                                                                                    | Present on `slider` buttons — the range, step and affix to render.                              |
| `updatedAt`                | `val updatedAt: String?`                                                                                                                                                                                                                                                                                                                                                                                               |                                                                                                 |
| `value`                    | `val value: String?`                                                                                                                                                                                                                                                                                                                                                                                                   |                                                                                                 |

## ContactDetails

`data class`

```kotlin
@Serializable
data class ContactDetails(val id: String? = null, val contactType: String = CONTACT_TYPE_EMAIL, val label: String = "", val editText: String = "", val placeholder: String? = null)
```

Configuration for a `contact_details` button — an inline email or phone-number capture field.

The captured value does not travel on the normal button-click route; it is posted to the dedicated contact-details endpoint.

| Member           | Declaration                                                                                                                                         | Description                                                                                                       |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `ContactDetails` | `constructor(id: String? = null, contactType: String = CONTACT_TYPE_EMAIL, label: String = "", editText: String = "", placeholder: String? = null)` |                                                                                                                   |
| `contactType`    | `@SerialName(value = "contact_type") val contactType: String`                                                                                       | Either `email` or `phone_number`. The backend rejects any other value — note it is `phone_number`, never `phone`. |
| `editText`       | `@SerialName(value = "edit_text") val editText: String`                                                                                             | Label of the control that lets the user change an already-submitted value.                                        |
| `id`             | `@SerialName(value = "id") val id: String?`                                                                                                         |                                                                                                                   |
| `isEmail`        | `val isEmail: Boolean`                                                                                                                              | True when this button captures an email address rather than a phone number.                                       |
| `label`          | `@SerialName(value = "label") val label: String`                                                                                                    | Prompt shown above the input, e.g. "Your email:".                                                                 |
| `placeholder`    | `@SerialName(value = "placeholder") val placeholder: String?`                                                                                       | Placeholder shown inside the empty input.                                                                         |

## ContactDetails.Companion

`object`

```kotlin
object Companion
```

| Member               | Declaration                            | Description |
| -------------------- | -------------------------------------- | ----------- |
| `CONTACT_TYPE_EMAIL` | `const val CONTACT_TYPE_EMAIL: String` |             |
| `CONTACT_TYPE_PHONE` | `const val CONTACT_TYPE_PHONE: String` |             |

## EmailDetails

`data class`

```kotlin
@Serializable
data class EmailDetails(val id: String? = null, val subject: String? = null, val body: String? = null)
```

Configuration for an `email` button. The backend already interpolates the subject and body into the button's `value` query string, so this is informational for the client.

| Member         | Declaration                                                                      | Description |
| -------------- | -------------------------------------------------------------------------------- | ----------- |
| `EmailDetails` | `constructor(id: String? = null, subject: String? = null, body: String? = null)` |             |
| `body`         | `@SerialName(value = "body") val body: String?`                                  |             |
| `id`           | `@SerialName(value = "id") val id: String?`                                      |             |
| `subject`      | `@SerialName(value = "subject") val subject: String?`                            |             |

## ExternalNotification

`data class`

```kotlin
data class ExternalNotification(val id: String, val title: String, val body: String, val data: Map<String, String>)
```

A decrypted Kindly notification passed to the host app via `no.kindly.chatsdk.chat.common.KindlySDKInteraction.shouldHandleNotification`.

Forwarded for every Kindly silent push received and successfully decrypted, regardless of app state or which screen is on top. Use the host callback to take over the presentation of the notification; otherwise the SDK presents it itself.

| Member                 | Declaration                                                                       | Description                                                                                                                                                                      |
| ---------------------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ExternalNotification` | `constructor(id: String, title: String, body: String, data: Map<String, String>)` |                                                                                                                                                                                  |
| `body`                 | `val body: String`                                                                | Decrypted body.                                                                                                                                                                  |
| `data`                 | `val data: Map<String, String>`                                                   | The original `RemoteMessage.data` map, including `notification_source` and any extra fields the backend attached. Provided so the host can read fields the SDK does not surface. |
| `id`                   | `val id: String`                                                                  | Decrypted message id (from the encrypted `chat_id` field).                                                                                                                       |
| `title`                | `val title: String`                                                               | Decrypted title.                                                                                                                                                                 |

## SliderDetails

`data class`

```kotlin
@Serializable
data class SliderDetails(val id: String? = null, val fromValue: Double = 0.0, val toValue: Double = 100.0, val value: Double = 0.0, val stepValue: Double = 1.0, val affix: String? = null, val affixValue: String? = null)
```

Configuration for a `slider` button — a numeric input rendered inside a button group.

The chosen value is *not* sent when the slider moves; it is collected locally and delivered by the accompanying `submit` button in `new_context`, keyed by the button's lowercased label.

| Member          | Declaration                                                                                                                                                                          | Description                                                                                                                                                                                                                     |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SliderDetails` | `constructor(id: String? = null, fromValue: Double = 0.0, toValue: Double = 100.0, value: Double = 0.0, stepValue: Double = 1.0, affix: String? = null, affixValue: String? = null)` |                                                                                                                                                                                                                                 |
| `affix`         | `@SerialName(value = "affix") val affix: String?`                                                                                                                                    | Where `affixValue` is placed relative to the number: `PREFIX` or `SUFFIX`.                                                                                                                                                      |
| `affixValue`    | `@SerialName(value = "affix_value") val affixValue: String?`                                                                                                                         | The unit or symbol shown alongside the number, e.g. `$` or `kr`.                                                                                                                                                                |
| `fromValue`     | `@SerialName(value = "from_value") val fromValue: Double`                                                                                                                            | Lower bound of the slider.                                                                                                                                                                                                      |
| `id`            | `@SerialName(value = "id") val id: String?`                                                                                                                                          |                                                                                                                                                                                                                                 |
| `isPrefix`      | `val isPrefix: Boolean`                                                                                                                                                              | True when `affixValue` should be rendered before the number rather than after it.                                                                                                                                               |
| `stepValue`     | `@SerialName(value = "step_value") val stepValue: Double`                                                                                                                            | Increment between selectable values. May be fractional.                                                                                                                                                                         |
| `toValue`       | `@SerialName(value = "to_value") val toValue: Double`                                                                                                                                | Upper bound of the slider.                                                                                                                                                                                                      |
| `value`         | `@SerialName(value = "value") val value: Double`                                                                                                                                     | Initial position of the handle.                                                                                                                                                                                                 |
| `format`        | `fun format(number: Double): String`                                                                                                                                                 | Formats `number` with the configured affix, dropping a trailing `.0` for whole steps.                                                                                                                                           |
| `wireValue`     | `fun wireValue(number: Double): String`                                                                                                                                              | The bare, numeric-parsable string to send to the backend for `number` — no affix, and no trailing `.0` when the slider steps in whole numbers. The platform reads this back with a float parse, so it must stay a plain number. |

# no.kindly.chatsdk.chat.domain.mapper

## convertToAttachments

`function`

```kotlin
fun convertToAttachments(fileStore: FileStore, filesWithMimeTypes: List<Pair<String, String>>): ListAttachments
```

## toMessageSDK

`function`

```kotlin
fun MessageChat.toMessageSDK(): MessageSDK
```

## toTextPlaceholder

`function`

```kotlin
fun TextPlaceholderSDK.toTextPlaceholder(): Map<String, String>
```

Convert dynamic TextPlaceholderSDK to Map for backward compatibility. Now supports ANY language dynamically without hardcoded fields!

# no.kindly.chatsdk.chat.extensions

## appendIfNotExists

`function`

```kotlin
fun MutableList<MessageDataSDK>.appendIfNotExists(message: MessageDataSDK)
```

Appends a message to the list if it does not already exist.

**Parameters**

- `message`: The `MessageDataSDK` to append.

## indexForNewMessage

`function`

```kotlin
fun List<MessageDataSDK>.indexForNewMessage(newMessage: MessageData): Int?
```

## indexForNewMessage

`function`

```kotlin
fun List<MessageDataSDK>.indexForNewMessage(newMessage: MessageDataSDK): Int?
```

Finds the index at which a new message should be inserted to maintain chronological order.

**Parameters**

- `newMessage`: The `MessageDataSDK` to insert.

**Returns**

- The index at which to insert the new message, or `null` if it should be appended.

## insertInOrder

`function`

```kotlin
fun MutableList<MessageDataSDK>.insertInOrder(newMessage: MessageData)
```

## insertInOrder

`function`

```kotlin
fun MutableList<MessageDataSDK>.insertInOrder(newMessage: MessageDataSDK)
```

Inserts a new message into the list in chronological order.

**Parameters**

- `newMessage`: The `MessageDataSDK` to insert.

## shouldAdd

`function`

```kotlin
fun List<MessageDataSDK>.shouldAdd(message: MessageData): Boolean
```

## shouldAdd

`function`

```kotlin
fun List<MessageDataSDK>.shouldAdd(message: MessageDataSDK): Boolean
```

Determines whether a message should be added to the list.

**Parameters**

- `message`: The `MessageDataSDK` to check.

**Returns**

- `true` if the message should be added, `false` otherwise.

## toAnnotatedString

`function`

```kotlin
fun Spanned.toAnnotatedString(): AnnotatedString
```

## toList

`function`

```kotlin
fun JSONArray.toList(): List<Any?>
```

## toMap

`function`

```kotlin
fun JSONObject.toMap(): Map<String, Any?>
```
