Update Room

Update the attributes of an existing chatroom.

POSTyourpodURL.symphony.com/pod/v3/room/{id}/update
Path parameters
id*string

Room streamId

Header parameters
Body
namestring

Room name.

Example: "API room"
keywordsarray of RoomTag (object)

Keywords for search to use to find this room

descriptionstring

Room description.

Example: "Created via the API"
membersCanInviteboolean

If true, any chatroom participant can add new participants. If false, only owners can add new participants.

Example: true
discoverableboolean

If true, this chatroom (name, description and messages) can be searched and listed by non-participants. If false, only participants can search this room.

Example: false
publicboolean

If true, this is a public chatroom. IF false, a private chatroom.

Example: false
readOnlyboolean

If true, only stream owners can send messages.

Example: false
copyProtectedboolean

If true, clients disable the clipboard copy for content in this stream.

Example: false
crossPodboolean

If true, this room is a cross pod room

Example: false
viewHistoryboolean

If true, new members can view the room chat history of the room.

Example: false
multiLateralRoomboolean

If true, this is a multi lateral room where we can find users belonging to more than 2 companies.

Example: false
scheduledMeetingboolean

If true, this room is for a scheduled meeting.

Example: false
subTypestring

This field is ignored when creating a new room as it was only used for email integration which is now sunset.

pinnedMessageIdstring

UrlSafe message id of the pinned message inside the room. To perform unpin operation, send an empty string.

Example: "vd7qwNb6hLoUV0BfXXPC43___oPIvkwJbQ"
groupChatboolean

If true, this room is a group chat. Note: this parameter is ignored for creating rooms. Since SBE 20.16.

Example: false
Response

OK

Body
roomAttributesV3RoomAttributes (object)
roomSystemInfoRoomSystemInfo (object)
groupsarray of GroupItem (object)

List of groups (aka SDLs) that were added to the room.

Request
const response = await fetch('yourpodURL.symphony.com/pod/v3/room/{id}/update', {
    method: 'POST',
    headers: {
      "sessionToken": "text",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "roomAttributes": {
    "name": "API room",
    "keywords": [
      {
        "key": "region",
        "value": "EMEA"
      },
      {
        "key": "lead",
        "value": "Daffy Duck"
      }
    ],
    "description": "Created via the API",
    "membersCanInvite": true,
    "discoverable": false,
    "public": false,
    "readOnly": false,
    "copyProtected": false,
    "crossPod": false,
    "viewHistory": false,
    "multiLateralRoom": false,
    "scheduledMeeting": false,
    "subType": "text",
    "pinnedMessageId": "vd7qwNb6hLoUV0BfXXPC43___oPIvkwJbQ",
    "groupChat": false
  },
  "roomSystemInfo": {
    "id": "bjHSiY4iz3ar4iIh6-VzCX___peoM7cPdA",
    "creationDate": 1547661232368,
    "createdByUserId": 14362370637825,
    "active": true
  },
  "groups": [
    {
      "id": 68719476744,
      "addedBy": 68719476743
    }
  ]
}

Returns an error when:

  • The call doesn’t include an update to at least one editable attribute.

  • The attribute being updated is read-only, such as `copyProtected. See Attributes below.

📘 Stream ID

The stream ID can be located in the Symphony web or desktop client by clicking on the timestamp of any message in the conversation. This will open the Message Status module overlay, and the Conversation ID can be found in the overlay footer.

The stream ID in the UI is in Standard Base64 encoding. When the stream ID needs to be used in a URL, it should be in URLSafe Base64 encoding. To obtain the URLSafe Base64 stream ID, replace forward slashes with underscores, replace pluses with minuses, and ignore any trailing equal signs.

Note: visit Overview of streams for more information.

🚧 Attributes

  • Once set to true, copyProtected cannot be set to false. Copy protection can be added to a room but cannot be removed.

  • The discoverable attribute cannot be true if crossPod is set.

  • membersCanInvite and discoverable cannot be changed for public Rooms.

  • Via the API only, the viewHistory attribute can be changed:

    • either by a room owner, in any condition;

    • or by any other member having the entitlement "Can Toggle Room's Share History Property" enabled.

  • The pinnedMessageId attribute allows to display an exact copy of the original message in a pinned area placed beneath the chat header and that remains always visible to all users. From this area, they can interact with the message content (i.e. forms or ui actions buttons), and they are able to automatically jump to the original message in the chat canvas. You can use this attribute as follows:

    • either by entering the URLSafe Base 64 ID of the message you wish to pin beneath the chat header (as you can see in the example). Even if another message is pinned, this new message will replace it in the pinned area;

    • either by entering an empty value to upin any message and remove therefore this area from being visible to users as follows: "pinnedMessageId": "";

    • Please note that these actions (pin/unpin) can also be performed by end users when they are owners of the room.

📘 Note - Groups

Since 20.14, please note that the object groups has been added in the payload only if at least a Group has been added to the room. It is an array containing:

  • id attribute: ID of the Group,

  • addedBy: ID of the user who added the Group to the room

See Groups for more information.

🚧 Required Permissions

Rooms can only be updated by owners of the room. See Bot Permissions for a list of roles and associated privileges.

Last updated