OpenChat

Chat bots can add buttons in chat messages that on click will open an existing chat room or start a chat with a specific user or group of users.

This can be useful to help Symphony users easily navigate from one chat to another, or to reference another discussion happening in a different chat.

The new chat can either replace the current chat, or open on the side instead.

MessageML tag

OpenChat is represented in MessageML as a <ui-action action='open-im'> tag and wraps a single button.

The <ui-action> tag for OpenChat supports the following attributes:

Attribute

Type

Required?

Description

action

String

Yes

For OpenChat, always set to action='open-im'

user-ids

List of Integers

Exclusive with stream-id

List of ids of the users with whom the MIM must be opened when the Symphony user triggers the OpenChat functionality.

stream-id

String

Exclusive with user-ids

The id of the room/IM that must be opened when the Symphony user triggers the OpenChat functionality.

NB: Please note that the stream-id is the exact Conversation ID that you can find in the UI, and not the URLSafe64 converted id (see more details in Overview of Streams)

side-by-side

Boolean

No.

Default to true

If set to false, the current chat will be replaced by the new chat to be opened when the Symphony user triggers the OpenChat functionality.

Accessibility

Symphony users can interact with the OpenChat functionality via their keyboard using either "Enter" of "Space" to trigger the click action, once the UI component used for the OpenChat (i.e. button element) is in focus. Symphony users can move from one Element to another using "Tab".

Examples

The following examples show the OpenChat functionality being used as follows:

  • The first open-im shows how the Symphony user may interact with a primary button that is empowered with the OpenChat functionality that opens a specific stream on the side of the current chat. Note that the trigger and side-by-side attributes are not mentioned, as they are not mandatory: they are then defined by their default behaviour.

  • The second open-im shows how the Symphony user may interact with a secondary button that is empowered with the OpenChat functionality that opens an IM with a specific user on the side of the current chat.

  • The third open-im shows how the Symphony user may interact with a tertiary button that is empowered with the OpenChat functionality that opens a chat with a specific list of users on the side of the current chat.

  • The fourth open-im shows how the Symphony user may interact with a destructive button that is empowered with the OpenChat functionality that opens a specific stream that replaces the current chat.

<messageML>
  <ui-action action='open-im' stream-id='rKiuGRoGDTrPtpHSIgmUgH///oVFs7kzdA=='><button>Stream</button></ui-action>
  <ui-action action='open-im' trigger='click' user-ids='[13056700583037]'><button class='secondary'>User A</button></ui-action>
  <ui-action action='open-im' trigger='click' user-ids='[13056700583037,13056700583039]'><button class='tertiary'>List of Users</button></ui-action>
  <ui-action action='open-im' trigger='click' stream-id='rKiuGRoGDTrPtpHSIgmUgH///oVFs7kzdA==' side-by-side='false'><button class='destructive'>Replace current chat</button></ui-action>
</messageML>

Rules and Limitations

  • The max length of any ui-action attribute is 256 except user-ids attribute which max length is set to a list 15 ids.

  • The OpenChat functionality is not supported in forms (see Symphony Elements).

  • Please note that the attribute type of the button is not supported when wrapped by a <ui-action> tag.

  • When using user-ids attribute with 2 or more ids in the list, the functionality will always create a new chat between the considered users; it will not reopen an existing chat between these same users. This is a known limitation that might change in the future.

  • In case the side-by-side attribute is set to true, when the Symphony user interacts with the OpenChat component, the IM/Chatroom appears on the side of current module in focus. In case the current module is not part of a workspace, then clicking on the button automatically creates workspace and focuses automatically to the desired IM/chat.

  • The OpenChat feature is supported in popped-out mode with the following behaviour:

    • Current chat/IM on focus is popped-out independently from a workspace:

      • In case the side-by-side attribute is set to false, the popped-out module is replaced by the desired one

      • In case the side-by-side attribute is set to true, the popped-out module remains in place and the desired one opens in the main Symphony client

    • Current chat/IM on focus is part of a popped-out workspace (Capital Markets view only): same behaviour as if the workspace was not popped out: if the specific chat to be opened is not part of the workspace, it is automatically added, and then opened either on the side or in the place of the previous focused chat depending on the side-by-side attribute.

  • When opening a specific chatroom where the user is not part of, then:

    • If it is a private room, a modal dialog will appear informing the user he cannot perform the action

    • If it is a public room, then the user is automatically added to the room and the considered stream is opened

  • The side-by-side attribute set to false is meaningful only for users in Client 2.0

Versions and Compatibility

Main features introduced

Agent needed to parse message sent by the bot

Client 2.0 release

Client 1.5 release

Backward client-compatibility behavior (e.g. external rooms)

Initial release

20.12.2

21.7

20.13

Not working

Last updated