Overview

A Group is a logical collection of the resources. In this version, Avaya Experience Platform™ allows grouping of users. Future versions will support grouping of other resources. Group of Users is used in Avaya Experience Platform™ to establish the mapping between Agents and Supervisors.

  • A privileged User creates the groups with resources (agents/users) via Group Administration APIs. For example: Credit Card Agents
  • A supervisor is identified as the one who has a Supervisor role. A supervisor is made the owner of Credit Card Agents group through the field ownedGroups in User definition.
  • There can be multiple supervisors for the same Credit Card Agents group.
  • A supervisor can have multiple agent groups, i.e. made the owner of multiple groups.

Before you begin

Refer to How to Authenticate with Avaya Experience Platform™ APIs required to invoke Group APIs.

Group APIs require the Account Administrator role for access.

Resource/Member Of

These are the entities which are member of particular group. Whoever has access to the group they will be able to access the resource ID's present in that group. e.g. User Id which are present in particular group.

Assigned User/Own Group

These are the users which have access to the particular group. Groups can have multiple types and resources as per the type. Below are the steps for Group creation and resource assignment.

  1. Account Administrator invokes REST API or create a group with few resources (agents/users). For example: Credit card Agents
  2. The group gets created as a resource with the A&A interface.
  3. During group creation, account admin can add resources into it. After group creation is successful, the group Credit card Agents can be assigned to that supervisor through User APIs.
  4. During group creation, account admin can add resources into it. After group creation is successful, the group Credit card Agents can be assigned to that supervisor through User APIs.
  5. Any supervisor who has been assigned that group will have access to all the agents in that group. This information will be extracted using access token. There can be multiple supervisors who can be assigned one group.

Creating a Group

To create a new Group you should invoke Create Group. You should provide basic details such as a name, accountId and description. It is recommended to have descriptive and meaningful names that convey the Group's purpose. For example, User-Resource-Group, Agent-Group, etc.

  • When creating a Group for the User resource, add the resources by specifying the type as users and actual resources under resources field to specify a group the of the users.
  • Use the organizationNodeId field to create the group under Account's hierarchy.

POST /groups

/v1/accounts/ABCDEF/groups

Request Body:

{
  "name": "AgentGroup",
  "description": "Group user",
  "resources": [
    {
      "type": "User",
      "resourceIds": [
        "673dab47-5a08-4593-be5a-cdc4d23df814"
      ]
    }
  ],
  "organizationNodeId": "QTRWAD"
}

After the Group has been created you will receive a groupId in the response that you should use in all subsequent requests related to that Group.

HTTP 201 Created

{
  "name": "AgentGroup",
  "groupId": "cd79f1f0-9e35-470c-bf70-542a39882b2d",
  "description": "Group user",
  "resources": [
    {
      "type": "User",
      "resourceIds": [
        "673dab47-5a08-4593-be5a-cdc4d23df814"
      ]
    }
  ],
  "organizationNodeId": "QTRWAD"
}

Updating a Group

To update a Group you should invoke Update Group. You should include all the details of the Group. Fields that are omitted from the update that were previously present will be removed.

The same basic principle applies to any updates made to the Group. It is treated as a complete replacement.

PUT /groups/{groupId}

/v1/accounts/ABCDEF/group/c8c2909d-75e9-484a-94c0-b7e8d29771fe

Request Body:

{
  "name": "AgentGroup",
  "description": "Group user",
  "resources": [
    {
      "type": "User",
      "resourceIds": [
        "673dab47-5a08-4593-be5a-cdc4d23df814"
      ]
    }
  ],
  "organizationNodeId": "QTRWAD"
}

HTTP 200 OK

{
  "name": "AgentGroup",
  "groupId": "cd79f1f0-9e35-470c-bf70-542a39882b2d",
  "description": "Group user",
  "resources": [
    {
      "type": "User",
      "resourceIds": [
        "673dab47-5a08-4593-be5a-cdc4d23df814"
      ]
    }
  ],
  "organizationNodeId": "QTRWAD"
}

Deleting a Group

To delete a Group you should invoke Delete Group. No response body is returned from this request.

DELETE /groups/{groupId}

/v1/accounts/ABCDEF/groups/c8c2909d-75e9-484a-94c0-b7e8d29771fe

HTTP 204 No Content

After a Group has been deleted Get Group will return HTTP 404 Not Found.