Create a chat room with Groups (Distribution Lists) using Symphony REST APIs

Symphony messaging Groups are distribution lists that act as a single identity to chat with and provide support to individual end users. Groups can chat with either external or internal end users, and can only be created by designated users.

To create a chat room with Groups (Distribution Lists) using Symphony messaging REST APIs:

  1. Create a room: https://rest-api.symphony.com/main/streams-conversations/room-endpoints/create-room-v3
  2. Add required users to the room: https://rest-api.symphony.com/main/streams-conversations/room-endpoints/add-member
  3. User OAuth2 authentication API to use Groups - Distribution Lists management endpoints: https://rest-api.symphony.com/main/groups-distribution-lists/oauth2-authenticate

- set scope- profile-manager

  1. Once the API endpoint is authenticated you need to to retrieve the groups to gather the profile ID: https://rest-api.symphony.com/main/groups-distribution-lists/getgroup

You will see a a response with the details of the group:

{
 "type": "SDL",
 "ownerType": "TENANT",
 "ownerId": 100,
 "name": "Test Group",
 "id": "string",
 "createdDate": "2023-09-08T12:35:06.780Z",
 "createdBy": "string",
 "updatedDate": "2023-09-08T12:35:06.780Z",
 "updatedBy": "string",
 "status": "ACTIVE",
 "eTag": "e3a52e72-0854-4401-8c24-e0b17c0ca304",
 "members": [
   {
     "memberTenant": 100,
     "memberId": 12345678900000,
     "addedDate": "2023-09-08T12:35:06.780Z"
   }
 ],
 "profile": {
   "displayName": "Test Group",
   "companyName": "Acme Corporation",
   "email": "testgroup@acme.com",
   "mobile": "+33(0)600000000",
   "jobTitle": "string",
   "jobRole": "Director",
   "jobDepartment": "string",
   "jobDivision": "string",
   "jobPhone": "string",
   "jobCity": "string",
   "industryOfInterest": [
     "Services"
   ],
   "assetClassesOfInterest": [
     "Equities"
   ],
   "marketCoverage": [
     "EMEA"
   ],
   "responsibility": [
     "Escalation"
   ],
   "function": [
     "Collateral"
   ],
   "instrument": [
     "Equities"
   ],
   "id": "string",
   "avatars": [
     {
       "size": "string",
       "url": "string"
     }
   ]
 },
 "visibilityRestriction": {
   "restrictedTenantsList": [
     100
   ],
   "restrictedUsersList": [
     12345678900000
   ]
 },
 "implicitConnection": {
   "connectedTenantsList": [
     100
   ],
   "connectedUsersList": [
     12345678900000
   ]
 },
 "interactionTransfer": {
   "restrictedTenantsList": [
     100
   ],
   "restrictedUsersList": [
     12345678900000
   ]
 }
}

Example of an authenticated endpoint response

Be sure to take the Profile ID from this response, as it will act as your room userId. 

  1. Add the profile ID to the room by repeating Step 2. Your new room will now have the required members and the proper Groups as well.