A conversation object contains information about a channel-like thing in Slack. It might be a public channel, a private channel, a direct message, or a multi-person direct message.
You'll find these objects in the Conversations API.
{
"ok": true,
"channel": {
"id": "C123456",
"name": "general",
"is_channel": true,
"is_group": false,
"is_im": false,
"created": 1449252889,
"creator": "W123456",
"is_archived": false,
"is_general": true,
"unlinked": 0,
"name_normalized": "general",
"is_read_only": false,
"is_shared": false,
"is_ext_shared": false,
"is_org_shared": false,
"pending_shared": [],
"is_pending_ext_shared": false,
"updated": 1673495039568,
"is_member": true,
"is_private": false,
"is_mpim": false,
"last_read": "1502126650.228446",
"topic": {
"value": "For public discussion of generalities",
"creator": "W123456",
"last_set": 1449709364
},
"purpose": {
"value": "This part of the workspace is for fun. Make fun here.",
"creator": "W123456",
"last_set": 1449709364
},
"previous_names": [ "specifics", "abstractions", "etc" ],
"num_members": 23,
"locale": "en-US"
}
}
Property | Description |
---|---|
is_archived |
Indicates a conversation is archived, frozen in time. |
is_channel |
Indicates whether a conversation is a channel. Private channels created before March 2021 (with IDs that begin with G ) will return false , and is_group will be true instead. Use is_private to determine whether a channel is private or public. |
is_ext_shared |
Indicates whether a conversation is part of a Shared Channel with a remote organization. Your app should make sure the data it shares in such a channel is appropriate for both workspaces. is_shared will also be true . |
is_general |
Means the channel is the workspace's "general" discussion channel (even if it may not be named #general ). That might be important to your app because almost every user is a member. |
is_group |
Means the channel is a private channel created before March 2021. is_private will also be true . |
is_im |
Means the conversation is a direct message between two distinguished individuals or a user and a bot. is_private will also be true . |
is_member |
Indicates whether the user, bot user or Slack app associated with the token making the API call is itself a member of the conversation. |
is_mpim |
Represents an unnamed private conversation between multiple users. is_private will also be true . |
is_org_shared |
Explains whether this shared channel is shared between Enterprise Grid workspaces within the same organization. It's a little different from (externally) Shared Channels yet is_shared will be true . |
is_pending_ext_shared |
Means the conversation is ready to become an is_ext_shared channel but needs some kind of approval or sign off. Best to treat it as if it were a shared channel, even if it traverses only one workspace. |
is_private |
Means the conversation is privileged between two or more members. Meet their privacy expectations. |
is_read_only |
Means the conversation can't be written to by the user performing the API call. |
is_shared |
Means the conversation is in some way shared between multiple workspaces. Look for is_ext_shared and is_org_shared to learn which kind it is, and if that matters, act accordingly. |
Property | Type | Description |
---|---|---|
name |
String | Indicates the name of the channel-like thing, without a leading hash sign. Don't get too attached to that name. It might change. Don't even bother storing it. When thinking about channel-like things, think about their IDs, their type and the team/workspace they belong to. |
creator |
String | The ID of the member that created this conversation. |
created |
Int | Timestamp of when the conversation was created. |
conversation_host_id |
String | Appears on shared channel objects and indicates the "host" of the shared channel. The value may contain a workspace's ID (beginning with T ) or an enterprise grid organization's ID (beginning with E ). |
topic |
String | Provides information about the channel topic. |
purpose |
String | Provides information about the channel purpose. |
updated |
Int | The timestamp in milliseconds when the channel settings were updated - for example, the "topic" or "description" of the channel changed. |
Some API methods (such as conversations.join) will include extra state information for channels when the calling user is a member:
Property | Type | Description |
---|---|---|
last_read |
Int | The timestamp for the last message the calling user has read in this channel. |
unread_count |
Int | A full count of visible messages that the calling user has yet to read. |
unread_count_display |
Int | A count of messages that the calling user has yet to read that matter to them (this means it excludes things like join/leave messages). |
latest |
String | The latest message in the channel. |
These channel objects are not the same object type as those for private channels created before March 2021, which are considered group objects.