---
# System prepended metadata

title: COTMessage
tags: [communications data models, done]

---

# COTMessage

###### tags: `done` `communications data models`

## Description {#description}

A message model (COTMessage) contains all the information concerning a particular message sent through the [channel workspace chat](/docs/documentation/client/channels#channel-workspace-layout). Messages can contain text, multimedia files, answered surveys, or system-generated responses.



## JSON Samples {#json-sample}

### Text Message {#text-message}
```json
{
    "_id": "613647a1c7d8ac89ffd60e7d",
    "channel": "612e468581155c0007baa084",
    "content": "Hello, world!",
    "contentType": "text/plain",
    "createdAt": 1630947233455,
    "isActive": true,
    "isHidden": false,
    "isSaved": 16,
    "modifiedAt": "2021-09-06T16:54:14.517Z",
    "sentBy": "600ac7d8df54617a28ac89ff",
}
```

### Survey Message {#survey-message}
```json
{
    "_id": "613fd15cc7d8ac89ffa972fc",
    "answer": "613fd15cc7d8ac89ff82d9c9#613fd0e14a8541000782ed58",
    "channel": "612e468581155c0007baa084",
    "contentArray": [
        "613fd0e14a8541000782ed5c",
        "613fd0e14a8541000782ed5d"
    ],
    "contentType": "application/vnd.cotalker.survey",
    "createdAt": 1631572327913,
    "form": {
        "modifiedAt": [
            "2021-09-13T22:32:07.911Z"
        ],
        "id": "613fd1674a8541000782f29e",
        "createdAt": "2021-09-13T22:32:07.911Z"
    },
    "isActive": true,
    "isSaved": 16,
    "modifiedAt": "2021-09-13T22:32:07.926Z",
    "modifiedLocal": 1631572327639,
    "responses": [
        {
            "cdata": [],
            "_id": "613fd1674a8541000782f2a3",
            "cref": "613fd0e14a8541000782ed5c"
        },
        {
            "cdata": [
                "{\"_id\":\"613fd0154a8541000782eb14\",\"subproperty\":[],\"isActive\":true,\"name\":{\"code\":\"nyc_00\",\"display\":\"New York\"},\"propertyType\":\"location\",\"company\":\"600ac7d8df5461626aac89c0\",\"createdAt\":\"2021-09-13T22:26:29.673Z\",\"modifiedAt\":\"2021-09-13T22:26:29.686Z\"}"
            ],
            "_id": "613fd1674a8541000782f2a4",
            "cref": "613fd0e14a8541000782ed5d"
        }
    ],
    "sentBy": "600ac7d8df54617a28ac89ff"
}
```



## Field {#fields}

| Field | Description | [Type](/docs/documentation/models/overview_model#data-types) | Notes |
| ----  | ---- | ----------- | ----  |
| \_id | Message ID number | ObjectId<COTMessage\> | |
| answer | A survey _answer_ that is sent back as a message in the channel workspace | ObjectId<COTAnswer.uuid\> #ObjectId<COTSurvey\> | [Answers Model](/docs/documentation/models/surveys/model_answers), [Survey Model](/docs/documentation/models/surveys/model_surveys) |
| channel | The channel the message is sent in | ObjectId<COTChannel\> | [Channel Model](/docs/documentation/models/communication/model_channels) |
| content | Displayed data; could be user text input, system message, or file object. | string | Required. For details, go to [COTMessageContentType](/docs/documentation/models/communication/model_messageContent). |
| contentArray | ID number of survey _questions_ answered | ObjectId<COTQuestion\>[ ] | [Question Model](/docs/documentation/models/surveys/model_questions) |
| contentType | Indicates content type, for example: `text/plain` (user text input), `application/vnd.cotalker.survey` (answered survey), `application/pdf` (pdf file), `image/gif` (uploaded gif image) | string | Required. For details, go to [COTMessageContentType](/docs/documentation/models/communication/model_messageContent). |
| createdAt | The date and time the message was created | number | Unix epoch time format |
| extendsAnswer | Indicates an answer from a survey extends or adds information to another survey answer | string | Superseded by [COTQuestion](/docs/documentation/models/surveys/model_questions) Content Type `survey+survey`. See also [Survey Component](/docs/documentation/admin/survey/components/survey). |
| form | General information of a submitted form. | object | A copy of the question responses can be found in `messages.responses` |
| form.createdAt | Date the form was submitted originally submitted | ISODate | YYYY-MM-DDTHH:mm:ss.SSSZ |
| form.id | Contains the main-survey ID, unique for the entire survey. | ObjectId | |
| form.modifiedAt | List of dates the form was modified | ISODate[ ] | YYYY-MM-DDTHH:mm:ss.SSSZ  |
| form.subid | contains the sub-survey ID, unique per sub-survey (null for the non-sub-survey parts) | ObjectId | |
| isHidden | Used to hide sent messages from the view of other users in the chat room | boolean | When users choose to delete a message from the channel's workspace, this option is set to `true`; messages are never truly deleted, just hidden. |
| isSaved | Used to indicate the message state. `2` is used for sending a regular message; `8` is used for sending unanswered surveys; `16` is used to indicate a message has already been delivered. | number | Use with precaution; consult the [Cotalker Platform Community](https://github.com/Cotalker/documentation/discussions) for further details |
| reply | List of messages this message is replying to | ObjectID<COTMessage\>[ ] | |
| modifiedAt | Date and time last modified | ISODate | YYYY-MM-DDTHH:mm:ss.SSSZ  |
| modifiedLocal | Date and time last modified | number | Unix epoch time format |
| responses | List of responses filled out in a form | object[ ] | Check `message.form` for the forms identification data | 
| responses[index].cdata | Contains the responses to a given survey question | string[ ] | |
| responses[index].cref | References the question | ObjectId<COTQuestion\> | [Question Model](/docs/documentation/models/surveys/model_questions) |
| reactions | Emoji reactions to message | object | Emojis used on message appear as object keys, e.g., `reactions.laugh`, `reactions.rocket` |
| sentBy | Indicates the ID number of the user that sent the message | ObjectId<COTUser\> | [User Model](/docs/documentation/models/users/model_users) |

## Deprecated or Not to be used {#deprecated}
| Field | Description | [Type](/docs/documentation/models/overview_model#data-types) | Notes |
| ----  | ---- | ----------- | ----  |
| isActive | Used for hiding messages; replaced by `messages.isHidden` | boolean | DEPRECATED |
| responses[index].\_id | Automatically generated internal system code | ObjectId | Not to be used |
| readBy | Users that have read the message | ObjectId<COTUser\>[ ] | DEPRECATED |
| cmd | Used in mobile apps to calculate and save commanded message visibility | object | DEPRECATED |
| cmd.ids | List of users I can command | ObjectID<COTUser\>[ ] | DEPRECATED |
| cmd.by | User that commands me | ObjectId<COTUser\> | DEPRECATED |
| cmd.status | `1`: _ids_ calculated; `2`: _by_ calculated; `3`: both | number | DEPRECATED |
| cmd.visibility | My current state | boolean | DEPRECATED |