Get message data

Ask the Community

Fetch data for a specific message


Overview #

This method allows you fetch data for a single message, including live updates.
React:
import { thread } from '@cord-sdk/react';
const message = thread.useMessage('my-awesome-message-id');

return message && <div>Message with id: {message.id} found!</div>;
Vanilla JavaScript:
const ref = window.CordSDK.thread.observeMessage(
  'my-awesome-message-id',
  (message) => {
    console.log('Got a thread data update:');
    if (message === undefined) {
      console.log('Loading...');
    }
    if (message) {
      console.log(`Message /${message.id} was authored by: /${message.authorID}`)
    }
  }
);
// ... Later, when updates are no longer needed ...
window.CordSDK.thread.unobserveMessage(ref);
import { thread } from '@cord-sdk/react';
const message = thread.useMessage('my-awesome-message-id');

return message && <div>Message with id: {message.id} found!</div>;
Copy

Available Data #

The API provides an object which has the following fields:


seen #

boolean
Whether the message has been seen by the current viewer.


id #

string
The ID for the message. If a message is created with no ID, a random UUID-based ID will be automatically created for it.


authorID #

string
The ID for the user that sent the message.


groupID #

string
The ID for the group this message belongs to.


threadID #

string
The ID for the thread this message is part of.


content #

MessageContent
The content of the message.

This is an array of items. Each item can be one of the following:

  • MessageAssigneeNode

    This is an object with the following fields:

    Show property details

  • MessageBulletNode

    This is an object with the following fields:

    Show property details

  • MessageCodeNode

    This is an object with the following fields:

    Show property details

  • MessageLinkNode

    This is an object with the following fields:

    Show property details

  • MessageMentionNode

    This is an object with the following fields:

    Show property details

  • MessageNumberBulletNode

    This is an object with the following fields:

    Show property details

  • MessageParagraphNode

    This is an object with the following fields:

    Show property details

  • MessageQuoteNode

    This is an object with the following fields:

    Show property details

  • MessageTextNode

    This is an object with the following fields:

    Show property details

  • MessageTodoNode

    This is an object with the following fields:

    Show property details

  • MessageMarkdownNode

    This is an object with the following fields:

    Show property details



plaintext #

string
A plaintext version of the structured message content.


url #

string | null
A URL where the message can be seen. This determines where a user is sent when they click on a reference to this message, such as in a notification. If unset, it defaults to the thread's URL.


createdTimestamp #

Date
The timestamp when this message was created. The default value is the current time.


deletedTimestamp #

Date | null
The timestamp when this message was deleted, if it was. If unset, the message is not deleted.


updatedTimestamp #

Date | null
The timestamp when this message was last edited, if it ever was. If unset, the message does not show as edited.


iconURL #

string | null
The URL of the icon to show next to the message. This is only used for action_message messages; other messages show the avatar of the author. If an action_message does not have an icon set, no icon is shown.


translationKey #

string | null
An optional translation key used for this message. This is useful for system-generated messages where you might want to translate or customize them at runtime. See the translations documentation for more information.


type #

"action_message" | "user_message"
The type of message this is. A user_message is a message that the author sent. An action_message is a message about something that happened, such as the thread being resolved. The default value is user_message.


metadata #

EntityMetadata
Arbitrary key-value pairs that can be used to store additional information.


extraClassnames #

string | null
A optional space separated list of classnames to add to the message.


attachments #

MessageAttachment[]
The items attached to this message.

This is an array of items. Each item can be one of the following:

  • MessageFileAttachment

    This is an object with the following fields:

    Show property details

  • MessageAnnotationAttachment

    This is an object with the following fields:

    Show property details

  • MessageScreenshotAttachment

    This is an object with the following fields:

    Show property details

  • MessageLinkPreviewAttachment

    This is an object with the following fields:

    Show property details



reactions #

Reaction[]
The reactions to this message.

This is an array of objects, each of which has the following fields:

Show property details



seenBy #

string[]
A list of IDs of the users that have seen the message.


skipLinkPreviews #

boolean
If set, Cord won't analyze links in the message to generate previews.

What this function returns #

The hook will initially return undefined while the data loads from our API. Once it has loaded, your component will re-render and the hook will return an an object containing the message data. If no message matching the provided messageID is found, it will return null instead.

Arguments this function takes #


messageID #

required
string
The ID of the message.

Not finding the answer you need? Ask our Developer Community

Ask Cordy