Users
This page talks about User Management in Avaya Experience Platform™.
Overview
The Users API provides access to User Management via a REST API interface.
Before you begin
Refer to How to Authenticate with Avaya Experience Platform™ APIs required to invoke User APIs.
User APIs require the Account Administrator role for access.
Overview
A contact center User assumes one of these personas:
- Agent and Supervisor responsible for handling calls, chats, messages and emails.
- Administrator responsible for contact center administration and operations.
Avaya Experience Platform™ simplifies User configuration through these methods:
- Profiles - provides a pre-configured template for contact center features (chat, messaging, email), routing attributes, roles and group memberships.
- Account Administrators can use out of the box Profiles or create new ones to provision users efficiently.
Profiles
A Profile can be used to provide a pre-configured template to apply common configuration, features, roles, and group memberships to Users.
- For example, if an Account Administrator needed to provision 1000 Users all with the same set of features they could create a common Profile.
- After creating the Profile, they could apply it to each User either during their creation or later via an update.
Once a Profile is applied to a User they will receive any updates that are applied to that Profile in real-time.
- For example, if an Account Administrator created a Profile that only had
voice
enabled but later addedchat
. - The Users with that Profile applied would receive the
chat
feature.
Creating a Profile
To create a new Profile you should invoke Create Profile. You should provide basic details such as a profileName
and description
. It is recommended to have descriptive and meaningful names that convey the Profile's purpose. For example, Digital-Only-Agent-Profile
, Omnichannel-Agent-Profile
, etc.
-
Agent to Supervisor association is achieved through a Group.
- When creating a Profile for an Agent, use the
memberOf
field to specify a group the agent should be automatically added to. - The ID of the Group can be queried from Avaya Experience Platform™ Group API.
- When creating a Profile for an Agent, use the
-
Use the
roles
field to specify the role names that users with this Profile are associated with.- For example, a Profile for an agent type User must have the role Agent.
- See the list of Available Roles.
-
Use the
features
field to enable and configure the contact center features and routing attributes.- The available
features
will depend on the Avaya Experience Platform™ subscription you have purchased. - Any changes to the
features
field will trigger asynchronous updates, the progress of which should be tracked by polling the List Profile Statuses.
- The available
POST /profiles
/v1beta/accounts/ABCDEF/profiles
Request Body:
{
"profileName": "Advanced",
"description": "A profile with all the features",
"uxProfileId": "6f482dcd-54a9-445f-ba6d-8ca5ebd5261a",
"roles": [
"Agent"
],
"memberOfGroups": [
"c8c2909d-75e9-484a-94c0-b7e8d29771fe"
],
"features": {
"matching": {
"attributes": [
"Language.English",
"Language.French"
],
"queues": [
{
"queueId": "620bbb28-7112-433a-af59-17ee0f15a247",
"proficiency": 10
}
]
},
"voice": {
"autoAnswer": false,
"afterContactWork": false
}
}
}
After the Profile has been created you will receive a profileId
in the response that you should use in all subsequent requests related to that Profile.
HTTP 202 Accepted
{
"profileId": "TELHGZ",
"profileName": "Advanced",
"description": "A profile with all the features",
"uxProfileId": "6f482dcd-54a9-445f-ba6d-8ca5ebd5261a",
"roles": [
"Agent"
],
"memberOfGroups": [
"c8c2909d-75e9-484a-94c0-b7e8d29771fe"
],
"features": {
"matching": {
"attributes": [
"Language.English",
"Language.French"
],
"queues": [
{
"queueId": "620bbb28-7112-433a-af59-17ee0f15a247",
"proficiency": 10
}
]
},
"voice": {
"autoAnswer": false,
"afterContactWork": false
}
}
}
Status Changes
The status on the List Profile Statuses for this Profile would go through the following changes:
1. Add In-Progress
[
{
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress",
"profileId": "TELHGZ",
"features": {
"voice": {
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress"
}
}
}
]
2. Add Completed
[
{
"action": "ADD",
"status": "COMPLETED",
"message": "Completed successfully",
"profileId": "TELHGZ",
"features": {
"voice": {
"action": "ADD",
"status": "COMPLETED",
"message": "Feature added successfully"
}
}
}
]
In the event of a failure the status would appear similar to the below.
- A client should re-attempt any failed
features
using the Update Profile.
Add Failed
[
{
"action": "ADD",
"status": "FAILED",
"message": "Operation failed",
"profileId": "TELHGZ",
"features": {
"voice": {
"action": "ADD",
"status": "FAILED",
"message": "The feature could not be added"
}
}
}
]
Updating a Profile
- Any changes to the
features
field will trigger asynchronous updates, the progress of which should be tracked by polling the List Profile Statuses.
Adding a new Feature
To add a new feature, e.g. chat
, to an existing Profile you should invoke Update Profile and include all the details of the Profile plus the new feature.
The same basic principle applies to any updates made to a Profile. It is treated as a complete replacement.
PUT /profiles/{profileId}
/v1beta/accounts/ABCDEF/profiles/TELHGZ
Request Body:
{
"profileName": "Advanced",
"description": "A profile with all the features",
"uxProfileId": "6f482dcd-54a9-445f-ba6d-8ca5ebd5261a",
"roles": [
"Agent"
],
"memberOfGroups": [
"c8c2909d-75e9-484a-94c0-b7e8d29771fe"
],
"features": {
"matching": {
"attributes": [
"Language.English",
"Language.French"
],
"queues": [
{
"queueId": "620bbb28-7112-433a-af59-17ee0f15a247",
"proficiency": 10
}
]
},
"chat": {
"autoAnswer": false,
"multiplicity": 5,
"afterContactWork": false
},
"voice": {
"autoAnswer": false,
"afterContactWork": false
}
}
}
After the update you will see the new chat
feature added to the features
section.
HTTP 202 Accepted
{
"profileId": "TELHGZ",
"profileName": "Advanced",
"description": "A profile with all the features",
"uxProfileId": "6f482dcd-54a9-445f-ba6d-8ca5ebd5261a",
"roles": [
"Agent"
],
"memberOfGroups": [
"c8c2909d-75e9-484a-94c0-b7e8d29771fe"
],
"features": {
"matching": {
"attributes": [
"Language.English",
"Language.French"
],
"queues": [
{
"queueId": "620bbb28-7112-433a-af59-17ee0f15a247",
"proficiency": 10
}
]
},
"chat": {
"autoAnswer": false,
"multiplicity": 5,
"afterContactWork": false
},
"voice": {
"autoAnswer": false,
"afterContactWork": false
}
}
}
Status Changes
The status on the List Profile Statuses for this Profile would go through the following changes:
1. Add In-Progress
[
{
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress",
"profileId": "TELHGZ",
"features": {
"chat": {
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress"
}
}
}
]
2. Add Completed
[
{
"action": "ADD",
"status": "COMPLETED",
"message": "Completed successfully",
"profileId": "TELHGZ",
"features": {
"chat": {
"action": "ADD",
"status": "COMPLETED",
"message": "Feature added successfully"
}
}
}
]
In the event of a failure the status would appear similar to the below.
- A client should re-attempt any failed
features
using the Update Profile.
Add Failed
[
{
"action": "ADD",
"status": "FAILED",
"message": "Operation failed",
"profileId": "TELHGZ",
"features": {
"chat": {
"action": "ADD",
"status": "FAILED",
"message": "The feature could not be added"
}
}
}
]
Removing an existing Feature
To remove an existing feature, e.g. chat
, from a Profile you should invoke Update Profile and include all the details of the Profile minus the feature you wish to remove.
The same basic principle applies to any updates made to a Profile. It is treated as a complete replacement.
PUT /profiles/{profileId}
/v1beta/accounts/ABCDEF/profiles/TELHGZ
Request Body:
{
"profileName": "Advanced",
"description": "A profile with all the features",
"uxProfileId": "6f482dcd-54a9-445f-ba6d-8ca5ebd5261a",
"roles": [
"Agent"
],
"memberOfGroups": [
"c8c2909d-75e9-484a-94c0-b7e8d29771fe"
],
"features": {
"matching": {
"attributes": [
"Language.English",
"Language.French"
],
"queues": [
{
"queueId": "620bbb28-7112-433a-af59-17ee0f15a247",
"proficiency": 10
}
]
},
"voice": {
"autoAnswer": false,
"afterContactWork": false
}
}
}
After the update you will see the chat
feature has been removed from the features
section.
HTTP 202 Accepted
{
"profileId": "TELHGZ",
"profileName": "Advanced",
"description": "A profile with all the features",
"uxProfileId": "6f482dcd-54a9-445f-ba6d-8ca5ebd5261a",
"roles": [
"Agent"
],
"memberOfGroups": [
"c8c2909d-75e9-484a-94c0-b7e8d29771fe"
],
"features": {
"matching": {
"attributes": [
"Language.English",
"Language.French"
],
"queues": [
{
"queueId": "620bbb28-7112-433a-af59-17ee0f15a247",
"proficiency": 10
}
]
},
"voice": {
"autoAnswer": false,
"afterContactWork": false
}
}
}
Status Changes
The status on the List Profile Statuses for this Profile would go through the following changes:
1. Delete In-Progress
[
{
"action": "DELETE",
"status": "IN_PROGRESS",
"message": "Operation is in progress",
"profileId": "TELHGZ",
"features": {
"chat": {
"action": "DELETE",
"status": "IN_PROGRESS",
"message": "Operation is in progress"
}
}
}
]
2. Delete Completed
[
{
"action": "DELETE",
"status": "COMPLETED",
"message": "Completed successfully",
"profileId": "TELHGZ",
"features": {
"chat": {
"action": "DELETE",
"status": "COMPLETED",
"message": "Feature added successfully"
}
}
}
]
In the event of a failure the status would appear similar to the below.
- A client should re-attempt any failed
features
using the Update Profile.
Delete Failed
[
{
"action": "DELETE",
"status": "FAILED",
"message": "Operation failed",
"profileId": "TELHGZ",
"features": {
"chat": {
"action": "DELETE",
"status": "FAILED",
"message": "The feature could not be delete"
}
}
}
]
Deleting a Profile
To delete a Profile you should invoke Delete Profile. No response body is returned from this request.
DELETE /profiles/{profileId}
/v1beta/accounts/ABCDEF/profiles/TELHGZ
HTTP 204 No Content
After a Profile has been deleted Get Profile will return HTTP 404 Not Found
. The status of the Profile will no longer be available via List Profile Statuses as it no longer exists.
Status Changes
The status on the List Profile Statuses for this Profile would go through the following changes:
1. Delete In-Progress
[
{
"action": "DELETE",
"status": "IN_PROGRESS",
"message": "Operation is in progress",
"profileId": "TELHGZ",
"features": {
"chat": {
"action": "DELETE",
"status": "IN_PROGRESS",
"message": "Operation is in progress"
}
}
}
]
2. Delete Completed
[
{
"action": "DELETE",
"status": "COMPLETED",
"message": "Completed successfully",
"profileId": "TELHGZ",
"features": {
"chat": {
"action": "DELETE",
"status": "COMPLETED",
"message": "Feature added successfully"
}
}
}
]
In the event of a failure the status would appear similar to the below. If there is a failure a delete can be re-attempted.
Delete Failed
[
{
"action": "DELETE",
"status": "FAILED",
"message": "Operation failed",
"profileId": "TELHGZ",
"features": {
"chat": {
"action": "DELETE",
"status": "FAILED",
"message": "The feature could not be delete"
}
}
}
]
Users
Represents a User in the organization. A User can be an Agent, Supervisor or an Administrator.
- Agent
- An Agent represents the person who handles incoming or outgoing customer engagements with the business.
- This is by far the most common User type that you will create.
- Supervisor
- A Supervisor can get involved in customer engagements through monitoring, reporting or escalation.
- Administrator
- Responsible for contact center administration and operations.
Types of User
For all User types you should remember:
- To provide basic User details such as
loginId
,firstName
,lastName
. - When using Enterprise IDP for authentication the
password
field should be left empty. - To provide the
accountId
as theorganizationNodeId
that this User should be added to.- Organization Node information can be retrieved from the Avaya Experience Platform™ Multi Tenancy API to create users at any level in the organization structure.
Agent
An Agent represents the person who handles incoming or outgoing customer engagements with the business. The Agent creation process is greatly simplified by using a Profile to setup the contact center features and memberships.
When creating an Agent you should remember:
- An Agent must have the role
Agent
assigned. - Optionally, provide a
profileId
to assignfeatures
androles
through a Profile. - Optionally, customize the
features
field to assign any additionalfeatures
.
Supervisor
A Supervisor can get involved in customer engagements through monitoring, reporting or escalation. The Supervisor creation process can be simplified by assigning a Profile with the Supervisor
role.
When creating a Supervisor you should remember:
- A Supervisor must have the role
Supervisor
assigned. - Optionally, provide a
profileId
to assignfeatures
androles
through a Profile. - Optionally, customize the
features
field to assign any additionalfeatures
. - Use the
ownedGroups
field to assign a group of Agents to a Supervisor. The IDs of the groups containing Agents can be queried from Avaya Experience Platform™ Group API.
Administrator
Unlike Agents and Supervisors, Administrators do not require contact center features.
When creating a Administrator you should remember:
- Administrators have different personas.
- Select roles like
Administrator
,Reporting_Administrator
,Workspaces Admin Widgets Administrator
, etc. to associate an Administrator with one or more personas.
- Select roles like
Creating a User
To create a new User you should invoke Create User. The fields that you supply will depend on the type of User you wish to create.
- Any changes to the
roles
orfeatures
field will trigger asynchronous updates, the progress of which should be tracked by polling the List User Statuses. - Changes to
roles
are atomic. For example:- Given
["Agent", "Business Analyst]"
- If for the
Agent
role cannot be assigned then neither will theBusiness Analyst
role. - In these cases the
status
forrole
on the List User Statuses will appear asFAILED
and themessage
will continue the specific reason for the failure.
- Given
The most basic User can be created using:
organizationNodeId
loginId
password
- This is a
write-only
field and will not appear in any responses.
- This is a
lastName
firstName
POST /users
/v1beta/accounts/ABCDEF/users
Request Body:
{
"organizationNodeId": "EXMPLE",
"loginId": "[email protected]",
"password": "ucP69e3sCw9%",
"lastName": "Stevens",
"firstName": "Alex",
"roles": [
"Agent",
"Business Analyst"
],
"features": {
"voice": {
"autoAnswer": false,
"afterContactWork": false
}
}
}
After the User has been created you will receive a userId
in the response that you should use in all subsequent requests related to that User.
HTTP 202 Accepted
{
"userId": "c8c2909d-75e9-484a-94c0-b7e8d29771fe",
"organizationNodeId": "EXMPLE",
"loginId": "[email protected]",
"lastName": "Stevens",
"firstName": "Alex",
"roles": [
"Agent",
"Business Analyst"
],
"features": {
"voice": {
"autoAnswer": false,
"afterContactWork": false,
"userExtension": "10021",
"emergencyLocationIdentificationNumber": "7798098090",
"providers": [
{
"providerAgentId": "0585aad8-decd-402c-b13f-bc05bd989fca",
"channelProviderId": "a8b6d39c-53c5-4d94-a640-c28bee987ed7"
}
]
}
}
}
Status Changes
The status on the List User Statuses for this User would go through the following changes:
1. Add In-Progress
[
{
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"role": {
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress"
},
"features": {
"voice": {
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress"
}
}
}
]
2. Add Completed
[
{
"action": "ADD",
"status": "COMPLETED",
"message": "Completed successfully",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"role": {
"action": "ADD",
"status": "COMPLETED",
"message": "Added successfully"
},
"features": {
"voice": {
"action": "ADD",
"status": "COMPLETED",
"message": "Feature added successfully"
}
}
}
]
In the event of a failure the status would appear similar to the below.
- A client should re-attempt any failed
roles
orfeatures
using the Update User.
Add Failed
[
{
"action": "ADD",
"status": "FAILED",
"message": "Operation failed",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"role": {
"action": "ADD",
"status": "FAILED",
"message": "The requested roles could not be added"
},
"features": {
"voice": {
"action": "ADD",
"status": "Failed",
"message": "The feature could not be added"
}
}
}
]
Applying a Profile to a User
A Profile can be applied to a User either during the initial create or later via an update.
To apply a Profile to a User via an update you should invoke Update User and supply the profileId
that you wish to apply. You should include all the details of the User.
It is important to remember the fields specified in the User request have a higher priority and will override any from the Profile.
- For example, if the User and Profile both contain settings for
features
, the Userfeatures
will be chosen.- The same applies to any other fields they have in common.
PUT /users/{userId}
/v1beta/accounts/ABCDEF/users/c8c2909d-75e9-484a-94c0-b7e8d29771fe
Request Body:
{
"organizationNodeId": "EXMPLE",
"loginId": "[email protected]",
"lastName": "Stevens",
"firstName": "Alex",
"profileId": "ASDFGH"
}
Once applied the fields present in the Profile will be returned as part of the User. Now every time the Profile is updated the User will receive those updates automatically.
HTTP 202 Accepted
{
"userId": "c8c2909d-75e9-484a-94c0-b7e8d29771fe",
"organizationNodeId": "EXMPLE",
"loginId": "[email protected]",
"lastName": "Stevens",
"firstName": "Alex",
"profileId": "ASDFGH",
"uxProfileId": "6f482dcd-54a9-445f-ba6d-8ca5ebd5261a",
"roles": [
"Agent"
],
"memberOfGroups": [
"c8c2909d-75e9-484a-94c0-b7e8d29771fe"
],
"features": {
"matching": {
"attributes": [
"Language.English",
"Language.French"
],
"queues": [
{
"queueId": "620bbb28-7112-433a-af59-17ee0f15a247",
"proficiency": 10
}
]
},
"voice": {
"autoAnswer": false,
"afterContactWork": false,
"userExtension": "10021",
"emergencyLocationIdentificationNumber": "7798098090",
"providers": [
{
"providerAgentId": "0585aad8-decd-402c-b13f-bc05bd989fca",
"channelProviderId": "a8b6d39c-53c5-4d94-a640-c28bee987ed7"
}
]
}
}
}
Status Changes
The status on the List User Statuses for this User would go through the following changes:
1. Add In-Progress
[
{
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"role": {
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress"
},
"features": {
"matching": {
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress"
},
"voice": {
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress"
}
}
}
]
2. Add Completed
[
{
"action": "ADD",
"status": "COMPLETED",
"message": "Completed successfully",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"role": {
"action": "ADD",
"status": "COMPLETED",
"message": "Added successfully"
},
"features": {
"matching": {
"action": "ADD",
"status": "COMPLETED",
"message": "Feature added successfully"
},
"voice": {
"action": "ADD",
"status": "COMPLETED",
"message": "Feature added successfully"
}
}
}
]
In the event of a failure the status would appear similar to the below.
- A client should re-attempt any failed
roles
orfeatures
using the Update User.
Add Failed
[
{
"action": "ADD",
"status": "FAILED",
"message": "Operation failed",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"role": {
"action": "ADD",
"status": "FAILED",
"message": "The requested roles could not be added"
},
"features": {
"matching": {
"action": "ADD",
"status": "FAILED",
"message": "The feature could not be added"
},
"voice": {
"action": "ADD",
"status": "FAILED",
"message": "The feature could not be added"
}
}
}
]
Updating a User
To update a User you should invoke Update User. You should include all the details of the User. As with Profiles, fields that are omitted from the update that were previously present will be removed.
The same basic principle applies to any updates made to a User. It is treated as a complete replacement.
PUT /users/{userId}
/v1beta/accounts/ABCDEF/users/c8c2909d-75e9-484a-94c0-b7e8d29771fe
Request Body:
{
"organizationNodeId": "EXMPLE",
"loginId": "[email protected]",
"lastName": "Stevens",
"firstName": "Alex",
"features": {
"voice": {
"autoAnswer": false,
"afterContactWork": false
}
}
}
HTTP 202 Accepted
{
"userId": "c8c2909d-75e9-484a-94c0-b7e8d29771fe",
"organizationNodeId": "EXMPLE",
"loginId": "[email protected]",
"lastName": "Stevens",
"firstName": "Alex",
"features": {
"voice": {
"autoAnswer": false,
"afterContactWork": false,
"userExtension": "10021",
"emergencyLocationIdentificationNumber": "7798098090",
"providers": [
{
"providerAgentId": "0585aad8-decd-402c-b13f-bc05bd989fca",
"channelProviderId": "a8b6d39c-53c5-4d94-a640-c28bee987ed7"
}
]
}
}
}
Status Changes
The status on the List User Statuses for this User would go through the following changes:
1. Add In-Progress
[
{
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"features": {
"voice": {
"action": "ADD",
"status": "IN_PROGRESS",
"message": "Operation is in progress"
}
}
}
]
2. Add Completed
[
{
"action": "ADD",
"status": "COMPLETED",
"message": "Completed successfully",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"features": {
"voice": {
"action": "ADD",
"status": "COMPLETED",
"message": "Feature added successfully"
}
}
}
]
In the event of a failure the status would appear similar to the below.
- A client should re-attempt any failed
roles
orfeatures
using the Update User.
Add Failed
[
{
"action": "ADD",
"status": "FAILED",
"message": "Operation failed",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"features": {
"voice": {
"action": "ADD",
"status": "FAILED",
"message": "The feature could not be added"
}
}
}
]
Deleting a User
To delete a User you should invoke Delete User. No response body is returned from this request.
DELETE /users/{userId}
/v1beta/accounts/ABCDEF/users/c8c2909d-75e9-484a-94c0-b7e8d29771fe
HTTP 204 No Content
After a User has been deleted Get User will return HTTP 404 Not Found
. The status of the User will no longer be available via List User Statuses as it no longer exists.
Status Changes
The status on the List User Statuses for this User would go through the following changes:
1. Delete In-Progress
[
{
"action": "DELETE",
"status": "DELETE_IN_PROGRESS",
"message": "Operation is in progress",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"features": {
"voice": {
"action": "DELETE",
"status": "DELETE_IN_PROGRESS",
"message": "Operation is in progress"
}
}
}
]
2. Delete Completed
[
{
"action": "DELETE",
"status": "DELETED",
"message": "Completed successfully",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"features": {
"voice": {
"action": "DELETE",
"status": "DELETED",
"message": "Feature deleted successfully"
}
}
}
]
In the event of a failure the status would appear similar to the below. If there is a failure a delete can be re-attempted.
Add Failed
[
{
"action": "DELETE",
"status": "FAILED",
"message": "Operation failed",
"userId": "c8c2909d-75e9-484a-94c0-b7e8d30771fe",
"features": {
"voice": {
"action": "DELETE",
"status": "FAILED",
"message": "The feature could not be deleted"
}
}
}
]
## Available Roles
- Administrator
- Agent
- Business Analyst
- Historical Reporting_Advanced
- Historical Reporting_Basic
- Historical Reporting_Consumer
- Reporting
- Reporting_Administrator
- Reporting_Supervisor
- Supervisor
- Workspaces Admin Widgets Administrator
Updated over 1 year ago