Alvaria Cloud User Management REST API v3.1
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Overview
The Alvaria™ Cloud User Management REST APIs enable developers to retrieve and manage properties related to the following Alvaria™ Cloud resources.
- Users - individual accounts created in Alvaria™ Cloud for example, Agent, Manager and Team Lead
- Teams - groups that contain specific Alvaria™ Cloud users
Note: The domain in the base URL corresponds to the Alvaria™ website that hosts the API. Presently, it differs by cloud vendor.
Table 1: base URLs for each cloud solution
| Cloud Vendor | Details | Domain |
|---|---|---|
| Amazon Web Service (AWS) | via.aspect-cloud.net | |
| Amazon Web Service (AWS) | tri (workforce only) | wos.alvaria.cloud |
| GCP | apc.alvaria.cloud |
Base URLs:
License: License: Creative Commons Attribution 4.0 International Public License
Authentication
- oAuth2 authentication. Oauth2 security definition describing client credentials grant. auth_server_domain should be modified in a generated client code to match your region and organization name i.e. auth_server_domain should be replaced with your regional endpoint and orgId should be replaced with your organization alias. Please, refer to a table below in order to pick correct url for access_token endpoint
Table 2: access_token endpoints for each region
| Cloud Vendor | Region (where applicable) | Url |
|---|---|---|
| Amazon Web Service (AWS) | US | https://myaspect.id.aspect-cloud.net/tokenservice/oauth2/access_token?realm=orgId |
| Amazon Web Service (AWS) | Europe | https://myaspect.eu.id.aspect-cloud.net/tokenservice/oauth2/access_token?realm=orgId |
| Amazon Web Service (AWS) | UK | https://myaspect.uk.id.aspect-cloud.net/tokenservice/oauth2/access_token?realm=orgId |
| Amazon Web Service (AWS) | Canada | https://myaspect.ca.id.aspect-cloud.net/tokenservice/oauth2/access_token?realm=orgId |
| Amazon Web Service (AWS) | US-East (tri) | https://myaccount.tri1.wss.alvaria.cloud/tokenservice/oauth2/access_token?realm=orgId |
| Google Cloud | https://myaccount.dsm.sre.alvaria.cloud/tokenservice/oauth2/access_token?realm=orgId |
- Flow: client crendentials
- Token URL = [https://auth_server_domain/tokenservice/oauth2/access_token](https://auth_server_domain/tokenservice/oauth2/access_token)
| Scope | Scope Description |
|---|---|
| myaccount.users.list | Can list users |
| myaccount.users.create | Can create users |
| myaccount.users.view | Can view users |
| myaccount.users.modify | Can modify users |
| myaccount.users.delete | Can delete users |
| myaccount.users.suspend | Can suspend users |
| myaccount.users.list.managed.teams | Can list teams managed by a user |
| myaccount.users.bulk.modify.list | Can export users in csv format |
| myaccount.users.bulk.status.list | Can list submitted bulk jobs |
| myaccount.users.bulk.create | Can upload users in csv format for them to be created |
| myaccount.users.bulk.modify | Can upload users in csv format for them to be modified |
| myaccount.users.bulk.delete | Can upload users in csv format for them to be delete |
| myaccount.users.bulk.status | Can view status of a particular bulk job |
| myaccount.users.bulk.report | Can view report of a particular bulk job |
| myaccount.teams.list | Can list teams |
| myaccount.teams.create | Can create teams |
| myaccount.teams.view | Can view teams |
| myaccount.teams.modify | Can modify teams |
| myaccount.teams.delete | Can delete teams |
| myaccount.teams.list.members | Can list team members |
| myaccount.teams.list.managers | Can list team managers |
| myaccount.users.view.wfm | Can view Workforce Management security and employee profiles |
- API Key (apiKey)
- Parameter Name: x-api-key, in: header.
Bulk Operations
Retrieves a collection of Users in csv format
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/csv \
-H 'Accept: text/csv' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'text/csv',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/csv',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/csv HTTP/1.1
Host: orgid.domain
Accept: text/csv
GET /via/v3/organizations/{orgId}/userManagement/users/jobs/csv
Retrieves a collection of Users in csv format suitable for bulk modify operation
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
| query | string | false | Filters the list based on the email of a user - single value, case-insensitive substring match. | |
| role | query | string | false | Filters the list based on the role of a user - single value, case-insensitive substring match. |
| team | query | string | false | Filters the list based on the team of a user - single value, case-insensitive substring match. |
| givenName | query | string | false | [Deprecated] Filters the list based on the given name of a user - single value, case-insensitive substring match. The 'firstName' filter parameter should be used instead. |
| firstName | query | string | false | Filters the list based on the first name of a user - single value, case-insensitive substring match. |
| sn | query | string | false | [Deprecated] Filters the list based on the surname of a user - single value, case-insensitive substring match. The 'lastName' filter parameter should be used instead. |
| lastName | query | string | false | Filters the list based on the last name of a user - single value, case-insensitive substring match. |
| telephoneNumber | query | string | false | Filters the list based on the phoneNumber of a user - single value, case-insensitive substring match. |
| managerOf | query | string | false | Filters the list based on the names of teams user manages - single value, case-insensitive substring match or * to indicate that user should manage at least one team. |
| uiStatus | query | string | false | Filters the list based on the status of a user - single value, case-insensitive substring match |
| corpEmail | query | string | false | Filters the list based on the organization email of a user - single value, case-insensitive substring match |
Example responses
Ok
401 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | string |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Get Bulk Operation Jobs
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs HTTP/1.1
Host: orgid.domain
Accept: application/json
GET /via/v3/organizations/{orgId}/userManagement/users/jobs
Get Bulk Operation Jobs
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
Example responses
200 Response
{
"jobs": [
{
"status": "pending",
"jobType": "upload",
"createdAt": "",
"createdBy": "",
"id": "c9665020-5cfd-47ec-9079-7f1a3b4f3963",
"upsert": false,
"sendCompletionEmail": false
}
],
"totalItems": 1
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | BulkUserJobCollection |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Get CSV Template for a Create Bulk Operation Job
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/upload/template \
-H 'Accept: text/csv' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'text/csv',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/upload/template',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/upload/template HTTP/1.1
Host: orgid.domain
Accept: text/csv
GET /via/v3/organizations/{orgId}/userManagement/users/jobs/upload/template
Get CSV Template for a Create Bulk Operation Job
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
Example responses
200 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | string |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 200 | Content-Disposition | string | Filename and Type |
Get CSV Template for a Modify Bulk Operation Job
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/modify/template \
-H 'Accept: text/csv' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'text/csv',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/modify/template',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/modify/template HTTP/1.1
Host: orgid.domain
Accept: text/csv
GET /via/v3/organizations/{orgId}/userManagement/users/jobs/modify/template
Get CSV Template for a Modify Bulk Operation Job
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
Example responses
200 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | string |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 200 | Content-Disposition | string | Filename and Type |
Get CSV Template for a Delete Bulk Operation Job
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/delete/template \
-H 'Accept: text/csv' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'text/csv',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/delete/template',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/delete/template HTTP/1.1
Host: orgid.domain
Accept: text/csv
GET /via/v3/organizations/{orgId}/userManagement/users/jobs/delete/template
Get CSV Template for a Delete Bulk Operation Job
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
Example responses
200 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | string |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 200 | Content-Disposition | string | Filename and Type |
Upload a CSV file for bulk create user operations
Code samples
# You can also use wget
curl -X POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/upload \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const inputBody = {
"users": "string"
};
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/upload',
{
method: 'POST',
body: JSON.stringify(inputBody),
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/upload HTTP/1.1
Host: orgid.domain
Content-Type: multipart/form-data
Accept: application/json
POST /via/v3/organizations/{orgId}/userManagement/users/jobs/upload
Upload a CSV file for bulk create user operations
Body parameter
users: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » users | body | string(binary) | true | MultiPart form CSV. First Name,Last Name,Display Name,Email,Telephone,Role,Country,Timezone,Language,Manager of Team,Member of Team,User Capabilities,WFM SecurityProfile Code,WFM EmployeeFilterProfile Code,Employee ID,Organization Email,RD Web Access a,bulk2,abulk2,a.bulk2@cork.com,123456789,agent,US,America/New_York,en,none,a,WorkforceManagement |
| orgId | path | string | true | Name of a customer organization. |
Detailed descriptions
» users: MultiPart form CSV. First Name,Last Name,Display Name,Email,Telephone,Role,Country,Timezone,Language,Manager of Team,Member of Team,User Capabilities,WFM SecurityProfile Code,WFM EmployeeFilterProfile Code,Employee ID,Organization Email,RD Web Access a,bulk2,abulk2,a.bulk2@cork.com,123456789,agent,US,America/New_York,en,none,a,WorkforceManagement|Outreach,Admin,EmpProfile98,123456,a.bulk2@cork.com,true a,bulk3,abulk3,a.bulk3@cork.com,123456789,agent,US,America/New_York,en,none,a,WorkforceManagement,Admin,EmpProfile98,1234567,a.bulk3@cork.com,false a,bulk4,abulk4,a.bulk4@cork.com,123456789,agent,US,America/New_York,en,none,a,Outreach,Admin,EmpProfile98,12345678,a.bulk4@cork.com, Allowed values in CSV fields ->
-
Role -> agent, teamlead, manager, developer, useradministrator NOTE that roles must be lowercase
-
User Capabilities -> performancemanagement, qualitymanagement, qualitymanagementscreencapture, qualitymanagementvoicerecording, viacoreinbound, viacoreoutreach, workforcemanagement, workforcemanagementencompass If the "Organization Email" field is empty for a user then the user's orgEmail field will be defaulted to the value from the Email field.
Example responses
202 Response
{
"status": "pending",
"jobType": "upload",
"createdAt": "",
"createdBy": "",
"id": "c9665020-5cfd-47ec-9079-7f1a3b4f3963",
"upsert": false,
"sendCompletionEmail": false
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 202 | Accepted | Accepted | BulkUserOperationResponse |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 413 | Payload Too Large | Payload Too Large | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Upload a CSV file for bulk modify user operations
Code samples
# You can also use wget
curl -X POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/modify \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const inputBody = {
"users": "string"
};
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/modify',
{
method: 'POST',
body: JSON.stringify(inputBody),
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/modify HTTP/1.1
Host: orgid.domain
Content-Type: multipart/form-data
Accept: application/json
POST /via/v3/organizations/{orgId}/userManagement/users/jobs/modify
Upload a CSV file for bulk modify user operations
Body parameter
users: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » users | body | string(binary) | true | MultiPart form CSV. First Name,Last Name,Display Name,Current Email,Modified Email,Telephone,Role,Country,Timezone,Language,Manager of Team,Member of Team,User Capabilities,WFM SecurityProfile Code,WFM EmployeeFilterProfile Code,Employee ID,Organization Email,RD Web Access a,bulk2,abulk2,a.bulk2@cork.com,b.coke5@cork.com,123456789,manager,US,America/New_York,en,team1,a,WorkforceManagement |
| orgId | path | string | true | Name of a customer organization. |
Detailed descriptions
» users: MultiPart form CSV. First Name,Last Name,Display Name,Current Email,Modified Email,Telephone,Role,Country,Timezone,Language,Manager of Team,Member of Team,User Capabilities,WFM SecurityProfile Code,WFM EmployeeFilterProfile Code,Employee ID,Organization Email,RD Web Access a,bulk2,abulk2,a.bulk2@cork.com,b.coke5@cork.com,123456789,manager,US,America/New_York,en,team1,a,WorkforceManagement|Outreach,Admin,EmpProfile98,123456,a.bulk2@cork.com,true a,bulk3,abulk3,a.bulk3@cork.com,none,123456789,agent,US,America/New_York,en,none,a,WorkforceManagement,Admin,EmpProfile98,1234567,a.bulk3@cork.com,false a,bulk4,abulk4,a.bulk4@cork.com,none,123456789,agent,US,America/New_York,en,none,a,Outreach,Admin,EmpProfile98,12345678,a.bulk4@cork.com, Allowed values in CSV fields ->
-
Role -> agent, teamlead, manager, developer, useradministrator NOTE that roles must be lowercase
-
User Capabilities -> performancemanagement, qualitymanagement, qualitymanagementscreencapture, qualitymanagementvoicerecording, viacoreinbound, viacoreoutreach, workforcemanagement, workforcemanagementencompass If the "Organization Email" field is empty for a user then the user's orgEmail field will be defaulted to the value from the Email field.
Example responses
202 Response
{
"status": "pending",
"jobType": "upload",
"createdAt": "",
"createdBy": "",
"id": "c9665020-5cfd-47ec-9079-7f1a3b4f3963",
"upsert": false,
"sendCompletionEmail": false
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 202 | Accepted | Accepted | BulkUserOperationResponse |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 413 | Payload Too Large | Payload Too Large | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Upload a CSV file for bulk delete user operations
Code samples
# You can also use wget
curl -X POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/delete \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const inputBody = {
"users": "string"
};
const headers = {
'Content-Type':'multipart/form-data',
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/delete',
{
method: 'POST',
body: JSON.stringify(inputBody),
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/jobs/delete HTTP/1.1
Host: orgid.domain
Content-Type: multipart/form-data
Accept: application/json
POST /via/v3/organizations/{orgId}/userManagement/users/jobs/delete
Upload a CSV file for bulk delete user operations
Body parameter
users: string
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » users | body | string(binary) | true | MultiPart form CSV. Email To Delete,Manager To Delegate a.bulk2@cork.com,a.manager1@cork.com a.bulk3@cork.com,a.manager2@cork.com a.bulk4@cork.com,a.manager3@cork.com |
| orgId | path | string | true | Name of a customer organization. |
Detailed descriptions
» users: MultiPart form CSV. Email To Delete,Manager To Delegate a.bulk2@cork.com,a.manager1@cork.com a.bulk3@cork.com,a.manager2@cork.com a.bulk4@cork.com,a.manager3@cork.com Allowed values in CSV fields ->
-
Role -> agent, teamlead, manager, developer, useradministrator NOTE that roles must be lowercase
-
User Capabilities -> performancemanagement, qualitymanagement, qualitymanagementscreencapture, qualitymanagementvoicerecording, viacoreinbound, viacoreoutreach, workforcemanagement, workforcemanagementencompass
Example responses
202 Response
{
"status": "pending",
"jobType": "upload",
"createdAt": "",
"createdBy": "",
"id": "c9665020-5cfd-47ec-9079-7f1a3b4f3963",
"upsert": false,
"sendCompletionEmail": false
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 202 | Accepted | Accepted | BulkUserOperationResponse |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 413 | Payload Too Large | Payload Too Large | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Get Bulk Operation Job Status
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/jobs/{jobId}/status \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/jobs/{jobId}/status',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/jobs/{jobId}/status HTTP/1.1
Host: orgid.domain
Accept: application/json
GET /via/v3/organizations/{orgId}/userManagement/jobs/{jobId}/status
Get Bulk Operation Job Status
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
| jobId | path | string | true | Alvaria-generated unique ID for a Bulk Operation Job. |
Example responses
200 Response
{
"status": "pending",
"jobType": "upload",
"createdAt": "",
"id": "c9665020-5cfd-47ec-9079-7f1a3b4f3963",
"percentageDone": 50,
"timeLeftSeconds": "0",
"location": "https://orgName.via.aspect-cloud.net/via/v3/organizations/orgName/userManagement/jobs/c9665020-5cfd-47ec-9079-7f1a3b4f3963/report",
"jobSummary": {
"pending": 0,
"failed": 0,
"total": 0,
"expired": 0,
"completed": 0
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | JobStatusResponse |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Get Bulk Operation Job Report
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/jobs/{jobId}/report \
-H 'Accept: text/csv' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'text/csv',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/jobs/{jobId}/report',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/jobs/{jobId}/report HTTP/1.1
Host: orgid.domain
Accept: text/csv
GET /via/v3/organizations/{orgId}/userManagement/jobs/{jobId}/report
Get Bulk Operation Job Report
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
| jobId | path | string | true | Alvaria-generated unique ID for a Bulk Operation Job. |
Example responses
Ok
401 Response
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Ok | string |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Response Headers
| Status | Header | Type | Format | Description |
|---|---|---|---|---|
| 200 | Content-Disposition | string | Filename and Type |
Users
Get Users
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users HTTP/1.1
Host: orgid.domain
Accept: application/json
GET /via/v3/organizations/{orgId}/userManagement/users
Retrieves a paginated collection of users in JSON format. Note: Output in CSV format is deprecated. Please, use getBulkUsersInCsv endpoint.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| query | string | false | Filters the list based on the email of a user - single value, case-insensitive substring match. | |
| firstName | query | string | false | Filters the list based on the first name of a user - single value, case-insensitive substring match. |
| lastName | query | string | false | Filters the list based on the last name of a user - single value, case-insensitive substring match. |
| phoneNumber | query | string | false | Filters the list based on the phoneNumber of a user - single value, case-insensitive substring match. |
| startIndex | query | integer | false | Index of the starting record. This is used to set the beginning record for the result set when multiple GET Collection requests are required due to the pagination of a large result set. |
| maxResults | query | integer | false | Maximum results. This is used to specify the maximum number of records to return in the result set. You can use this to set a result set limit that is less than the system/API-specific limit. |
| role | query | string | false | Filters the list based on the role of a user - single value, case-insensitive substring match. |
| team | query | string | false | Filters the list based on the team of a user - single value, case-insensitive substring match. |
| managerOf | query | string | false | Filters the list based on the names of teams user manages - single value, case-insensitive substring match or * to indicate that user should manage at least one team. |
| uiStatus | query | string | false | Filters the list based on the status of a user - single value, case-insensitive substring match |
| corpEmail | query | string | false | Filters the list based on the organization email of a user - single value, case-insensitive substring match |
| orgId | path | string | true | Name of a customer organization. |
Example responses
Successful response
{
"kind": "via#userList",
"users": [
{
"active": true,
"kind": "via#user",
"id": "192e14fab017122",
"email": "user1@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"phoneNumber": "123456789",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"entitlements": [
"viacoreinbound",
"workforcemanagement"
],
"team": "alphaTeam",
"managerOf": [
"alphaTeam",
"betaTeam"
],
"orgEmail": "alvaria.user@orgname.com",
"mfaStage": "ENROLLMENT",
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z"
}
],
"totalItems": 1
}
400 Response
{
"timestamp": "2020-09-11T23:19:49Z",
"status": 400,
"error": "Bad Request",
"message": "Team 7284fa1f-ef75-49b4-a2ba-d836ddc02f03 doesn't exist",
"path": "/via/v3/organizations/pwdcustomorg/userManagement/users"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful response | V3UserCollection |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Create User
Code samples
# You can also use wget
curl -X POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const inputBody = {
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"managerOf": [
"2dc7f7a5-98d0-4812-9895-0992dbecd434",
"f718bd59-d647-4251-a2a2-a62324e8d559"
],
"password": "aZcX!2E4$6wDyB",
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"securityProfile": "-979999789076",
"employeeFilterProfile": "-979999789076",
"employeeId": "123456",
"orgEmail": "alvaria.user@orgname.com",
"rdWebAccess": false
};
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users',
{
method: 'POST',
body: JSON.stringify(inputBody),
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users HTTP/1.1
Host: orgid.domain
Content-Type: application/json
Accept: application/json
POST /via/v3/organizations/{orgId}/userManagement/users
Creates a User
Body parameter
{
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"managerOf": [
"2dc7f7a5-98d0-4812-9895-0992dbecd434",
"f718bd59-d647-4251-a2a2-a62324e8d559"
],
"password": "aZcX!2E4$6wDyB",
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"securityProfile": "-979999789076",
"employeeFilterProfile": "-979999789076",
"employeeId": "123456",
"orgEmail": "alvaria.user@orgname.com",
"rdWebAccess": false
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | V3CreateUserRequest | true | The create user request |
| orgId | path | string | true | Name of a customer organization. |
Example responses
201 Response
{
"active": true,
"kind": "via#user",
"id": "2049f439be17920",
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"managerOf": [
"2dc7f7a5-98d0-4812-9895-0992dbecd434",
"f718bd59-d647-4251-a2a2-a62324e8d559"
],
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"securityProfile": "-979999789076",
"employeeFilterProfile": "-979999789076",
"employeeId": "123456",
"orgEmail": "alvaria.user@orgname.com",
"mfaStage": "ENROLLMENT",
"rdWebAccess": false,
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z",
"emailVerified": false
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | User created | V3User |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Get User
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId} HTTP/1.1
Host: orgid.domain
Accept: application/json
GET /via/v3/organizations/{orgId}/userManagement/users/{userId}
Retrieves a User
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
| userId | path | string | true | Alvaria-generated unique identifier for the user. The userId value to use can be resolved through a call to the GET /users endpoint. |
Example responses
200 Response
{
"active": true,
"kind": "via#user",
"id": "2049f439be17920",
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"managerOf": [
"2dc7f7a5-98d0-4812-9895-0992dbecd434",
"f718bd59-d647-4251-a2a2-a62324e8d559"
],
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"securityProfile": "-979999789076",
"employeeFilterProfile": "-979999789076",
"employeeId": "123456",
"orgEmail": "alvaria.user@orgname.com",
"mfaStage": "ENROLLMENT",
"rdWebAccess": false,
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z",
"emailVerified": false
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful response | V3User |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Update User
Code samples
# You can also use wget
curl -X PUT https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const inputBody = {
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"managerOf": [
"2dc7f7a5-98d0-4812-9895-0992dbecd434",
"f718bd59-d647-4251-a2a2-a62324e8d559"
],
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"securityProfile": "-979999789076",
"employeeFilterProfile": "-979999789076",
"employeeId": "123456",
"orgEmail": "alvaria.user@orgname.com",
"rdWebAccess": false
};
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}',
{
method: 'PUT',
body: JSON.stringify(inputBody),
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
PUT https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId} HTTP/1.1
Host: orgid.domain
Content-Type: application/json
Accept: application/json
PUT /via/v3/organizations/{orgId}/userManagement/users/{userId}
Updates a User
Body parameter
{
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"managerOf": [
"2dc7f7a5-98d0-4812-9895-0992dbecd434",
"f718bd59-d647-4251-a2a2-a62324e8d559"
],
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"securityProfile": "-979999789076",
"employeeFilterProfile": "-979999789076",
"employeeId": "123456",
"orgEmail": "alvaria.user@orgname.com",
"rdWebAccess": false
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | V3UpdateUserRequest | true | The update user request |
| orgId | path | string | true | Name of a customer organization. |
| userId | path | string | true | Alvaria-generated unique identifier for the user. The userId value to use can be resolved through a call to the GET /users endpoint. |
Example responses
200 Response
{
"active": true,
"kind": "via#user",
"id": "2049f439be17920",
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"managerOf": [
"2dc7f7a5-98d0-4812-9895-0992dbecd434",
"f718bd59-d647-4251-a2a2-a62324e8d559"
],
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"securityProfile": "-979999789076",
"employeeFilterProfile": "-979999789076",
"employeeId": "123456",
"orgEmail": "alvaria.user@orgname.com",
"mfaStage": "ENROLLMENT",
"rdWebAccess": false,
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z",
"emailVerified": false
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | User updated | V3User |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Delete User (deprecated)
Code samples
# You can also use wget
curl -X DELETE https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const inputBody = {
"managerToAssignAssets": "alvaria.manager@orgname.com"
};
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}',
{
method: 'DELETE',
body: JSON.stringify(inputBody),
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId} HTTP/1.1
Host: orgid.domain
Content-Type: application/json
Accept: application/json
DELETE /via/v3/organizations/{orgId}/userManagement/users/{userId}
Deletes a User. This endpoint immediately removes a user. It is recommended to use v4 version of this API. New v4 API brings more reliable deletion process that is suitable for a distributed user provisioning process.
Body parameter
{
"managerToAssignAssets": "alvaria.manager@orgname.com"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | V3RemoveUserRequest | true | The user deletion request |
| orgId | path | string | true | Name of a customer organization. |
| userId | path | string | true | Alvaria-generated unique identifier for the user. The userId value to use can be resolved through a call to the GET /users endpoint. |
Example responses
400 Response
{
"timestamp": "2020-09-11T23:19:49Z",
"status": 400,
"error": "Bad Request",
"message": "Team 7284fa1f-ef75-49b4-a2ba-d836ddc02f03 doesn't exist",
"path": "/via/v3/organizations/pwdcustomorg/userManagement/users"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | User removed | None |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not found | ErrorResponse |
| 409 | Conflict | Cannot remove accountowner | ErrorResponse |
| 412 | Precondition Failed | Cannot remove inactive users, Not allowed by truth source | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Update User Suspend Status
Code samples
# You can also use wget
curl -X POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}/suspend \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const inputBody = {
"suspend": true
};
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}/suspend',
{
method: 'POST',
body: JSON.stringify(inputBody),
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}/suspend HTTP/1.1
Host: orgid.domain
Content-Type: application/json
Accept: application/json
POST /via/v3/organizations/{orgId}/userManagement/users/{userId}/suspend
Updates the suspend status of a User
Body parameter
{
"suspend": true
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | V3UserSuspendRequest | true | The suspend status update request |
| orgId | path | string | true | Name of a customer organization. |
| userId | path | string | true | Alvaria-generated unique identifier for the user. The userId value to use can be resolved through a call to the GET /users endpoint. |
Example responses
400 Response
{
"timestamp": "2020-09-11T23:19:49Z",
"status": 400,
"error": "Bad Request",
"message": "Team 7284fa1f-ef75-49b4-a2ba-d836ddc02f03 doesn't exist",
"path": "/via/v3/organizations/pwdcustomorg/userManagement/users"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | User suspend status updated | None |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Get Teams Managed By User
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}/managerOf \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}/managerOf',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}/managerOf HTTP/1.1
Host: orgid.domain
Accept: application/json
GET /via/v3/organizations/{orgId}/userManagement/users/{userId}/managerOf
Retrieves the Teams managed by a User
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
| userId | path | string | true | Alvaria-generated unique identifier for the user. The userId value to use can be resolved through a call to the GET /users endpoint. |
Example responses
200 Response
{
"kind": "via#teamList",
"teams": [
{
"active": true,
"kind": "via#team",
"id": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"friendlyName": [
{
"locale": "en-US",
"value": "alphaTeam"
}
],
"description": "Customer Support Team 1"
},
{
"active": true,
"kind": "via#team",
"id": "f718bd59-d647-4251-a2a2-a62324e8d559",
"friendlyName": [
{
"locale": "en-US",
"value": "betaTeam"
}
],
"description": "Customer Support Team 2"
}
],
"totalItems": 2
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful response | V3TeamCollection |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Get WFM Information available for a given user
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}/workforce/info \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}/workforce/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/users/{userId}/workforce/info HTTP/1.1
Host: orgid.domain
Accept: application/json
GET /via/v3/organizations/{orgId}/userManagement/users/{userId}/workforce/info
Retrieves the WFM Security and Employee Filter Profile key values available for use in create User and update User requests
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
| userId | path | string | true | Alvaria-generated unique identifier for the user. The userId value to use can be resolved through a call to the GET /users endpoint. |
Example responses
200 Response
{
"securityProfiles": [
{
"code": "LIMITED",
"description": "Limited Access",
"key": "-979999789076"
}
],
"employeeFilterProfiles": [
{
"code": "LIMITED",
"description": "Limited Access",
"key": "-979999789076"
}
],
"employeeIdSize": 10
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful response | V3WfmInfo |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not Found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 412 | Precondition Failed | Organization doesn't have wfm capabilities | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Delete User
Code samples
# You can also use wget
curl -X DELETE https://orgId.domain/via/v4/organizations/{orgId}/userManagement/users/{userId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const inputBody = {
"managerToAssignAssets": "alvaria.manager@orgname.com"
};
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v4/organizations/{orgId}/userManagement/users/{userId}',
{
method: 'DELETE',
body: JSON.stringify(inputBody),
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE https://orgId.domain/via/v4/organizations/{orgId}/userManagement/users/{userId} HTTP/1.1
Host: orgid.domain
Content-Type: application/json
Accept: application/json
DELETE /via/v4/organizations/{orgId}/userManagement/users/{userId}
Deletes a User. By calling this endpoint developer can submit a request to delete the user. User's deletion status can be checked by calling Get User API and checking user's status. Once user is successfully deleted, Get User API will return a 404 response.
Body parameter
{
"managerToAssignAssets": "alvaria.manager@orgname.com"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | V4RemoveUserRequest | true | The user deletion request |
| orgId | path | string | true | Name of a customer organization. |
| userId | path | string | true | Alvaria-generated unique identifier for the user. The userId value to use can be resolved through a call to the GET /users endpoint. |
Example responses
202 Response
{
"message": "User deletion request accepted",
"id": "user123",
"checkStatusEndpoint": "/users/user123"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 202 | Accepted | User delete request accepted | V4RemoveUserResponse |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not found | ErrorResponse |
| 409 | Conflict | Cannot remove accountowner | ErrorResponse |
| 412 | Precondition Failed | Cannot remove inactive users, Not allowed by truth source | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Teams
Get Teams
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams HTTP/1.1
Host: orgid.domain
Accept: application/json
GET /via/v3/organizations/{orgId}/userManagement/teams
Retrieves a list of Teams (WEM 22+ Orgs Only)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| name | query | string | false | Filters the list based on the name of a team - single value, case-insensitive substring match. |
| startIndex | query | integer | false | Index of the starting record. This is used to set the beginning record for the result set when multiple GET Collection requests are required due to the pagination of a large result set. |
| maxResults | query | integer | false | Maximum results. This is used to specify the maximum number of records to return in the result set. You can use this to set a result set limit that is less than the system/API-specific limit. |
| orgId | path | string | true | Name of a customer organization. |
Example responses
200 Response
{
"kind": "via#teamList",
"teams": [
{
"active": true,
"kind": "via#team",
"id": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"friendlyName": [
{
"locale": "en-US",
"value": "alphaTeam"
}
],
"description": "Customer Support Team 1"
},
{
"active": true,
"kind": "via#team",
"id": "f718bd59-d647-4251-a2a2-a62324e8d559",
"friendlyName": [
{
"locale": "en-US",
"value": "betaTeam"
}
],
"description": "Customer Support Team 2"
}
],
"totalItems": 2
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful response | V3TeamCollection |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Create Team
Code samples
# You can also use wget
curl -X POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const inputBody = {
"name": "team1",
"description": "Customer Support Team 1"
};
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams',
{
method: 'POST',
body: JSON.stringify(inputBody),
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
POST https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams HTTP/1.1
Host: orgid.domain
Content-Type: application/json
Accept: application/json
POST /via/v3/organizations/{orgId}/userManagement/teams
Creates a Team (WEM 22+ Orgs Only)
Body parameter
{
"name": "team1",
"description": "Customer Support Team 1"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | V3CreateTeamRequest | true | The team to create |
| orgId | path | string | true | Name of a customer organization. |
Example responses
201 Response
{
"kind": "via#team",
"active": true,
"id": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"friendlyName": [
{
"locale": "en-US",
"value": "team1"
}
],
"description": "Customer Support Team 1"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Team created | V3Team |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 409 | Conflict | Team with this name already exists | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Get Team
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId} HTTP/1.1
Host: orgid.domain
Accept: application/json
GET /via/v3/organizations/{orgId}/userManagement/teams/{teamId}
Retrieves a Team (WEM 22+ Orgs Only)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
| teamId | path | string | true | Alvaria-generated unique identifier for the team instance. The teamId value to use can be resolved through a call to Get Teams endpoint. |
Example responses
200 Response
{
"kind": "via#team",
"active": true,
"id": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"friendlyName": [
{
"locale": "en-US",
"value": "team1"
}
],
"description": "Customer Support Team 1"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Team retrieved | V3Team |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Team Not found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Update Team
Code samples
# You can also use wget
curl -X PUT https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const inputBody = {
"name": "team1",
"description": "Customer Support Team 1"
};
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId}',
{
method: 'PUT',
body: JSON.stringify(inputBody),
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
PUT https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId} HTTP/1.1
Host: orgid.domain
Content-Type: application/json
Accept: application/json
PUT /via/v3/organizations/{orgId}/userManagement/teams/{teamId}
Updates a Team (WEM 22+ Orgs Only)
Body parameter
{
"name": "team1",
"description": "Customer Support Team 1"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | V3UpdateTeamRequest | true | The team to create |
| orgId | path | string | true | Name of a customer organization. |
| teamId | path | string | true | Alvaria-generated unique identifier for the team instance. The teamId value to use can be resolved through a call to Get Teams endpoint. |
Example responses
200 Response
{
"kind": "via#team",
"active": true,
"id": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"friendlyName": [
{
"locale": "en-US",
"value": "team1"
}
],
"description": "Customer Support Team 1"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Team updated | V3Team |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not found | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 409 | Conflict | Team with this name already exists | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Delete Team
Code samples
# You can also use wget
curl -X DELETE https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId} HTTP/1.1
Host: orgid.domain
Accept: application/json
DELETE /via/v3/organizations/{orgId}/userManagement/teams/{teamId}
Deletes a Team (WEM 22+ Orgs Only). Only Teams with no members assigned can be removed.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
| teamId | path | string | true | Alvaria-generated unique identifier for the team instance. The teamId value to use can be resolved through a call to Get Teams endpoint. |
Example responses
400 Response
{
"timestamp": "2020-09-11T23:19:49Z",
"status": 400,
"error": "Bad Request",
"message": "Team 7284fa1f-ef75-49b4-a2ba-d836ddc02f03 doesn't exist",
"path": "/via/v3/organizations/pwdcustomorg/userManagement/users"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Team removed | None |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 404 | Not Found | Not found | ErrorResponse |
| 412 | Precondition Failed | Team cannot be deleted | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Get Team Members
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId}/members \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId}/members',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId}/members HTTP/1.1
Host: orgid.domain
Accept: application/json
GET /via/v3/organizations/{orgId}/userManagement/teams/{teamId}/members
Retrieves the members of a Team (WEM 22+ Orgs Only)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
| teamId | path | string | true | Alvaria-generated unique identifier for the team instance. The teamId value to use can be resolved through a call to Get Teams endpoint. |
| startIndex | query | integer | false | Index of the starting record. This is used to set the beginning record for the result set when multiple GET Collection requests are required due to the pagination of a large result set. |
| maxResults | query | integer | false | Maximum results. This is used to specify the maximum number of records to return in the result set. You can use this to set a result set limit that is less than the system/API-specific limit. |
Example responses
200 Response
{
"kind": "via#userList",
"users": [
{
"active": true,
"kind": "via#user",
"id": "192e14fab017122",
"email": "user1@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"role": "agent",
"teamId": "67455bfd-eb13-40a7-ba74-e632edec3106",
"mfaStage": "ENROLLMENT",
"rdWebAccess": false,
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z"
}
],
"totalItems": 1
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful response | V3UserFragmentCollection |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Get Team Managers
Code samples
# You can also use wget
curl -X GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId}/managers \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'x-api-key: API_KEY'
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}',
'x-api-key':'API_KEY'
};
fetch('https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId}/managers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
GET https://orgId.domain/via/v3/organizations/{orgId}/userManagement/teams/{teamId}/managers HTTP/1.1
Host: orgid.domain
Accept: application/json
GET /via/v3/organizations/{orgId}/userManagement/teams/{teamId}/managers
Retrieves the managers of a Team (WEM 22+ Orgs Only)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| orgId | path | string | true | Name of a customer organization. |
| teamId | path | string | true | Alvaria-generated unique identifier for the team instance. The teamId value to use can be resolved through a call to Get Teams endpoint. |
| startIndex | query | integer | false | Index of the starting record. This is used to set the beginning record for the result set when multiple GET Collection requests are required due to the pagination of a large result set. |
| maxResults | query | integer | false | Maximum results. This is used to specify the maximum number of records to return in the result set. You can use this to set a result set limit that is less than the system/API-specific limit. |
Example responses
200 Response
{
"kind": "via#userList",
"users": [
{
"active": true,
"kind": "via#user",
"id": "192e14fab017122",
"email": "user1@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"role": "agent",
"teamId": "67455bfd-eb13-40a7-ba74-e632edec3106",
"mfaStage": "ENROLLMENT",
"rdWebAccess": false,
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z"
}
],
"totalItems": 1
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful response | V3UserFragmentCollection |
| 400 | Bad Request | Bad Request | ErrorResponse |
| 401 | Unauthorized | Unauthorized | ErrorResponse |
| 403 | Forbidden | Forbidden | ErrorResponse |
| 405 | Method Not Allowed | Method Not Allowed | ErrorResponse |
| 429 | Too Many Requests | Throttled | ErrorResponse |
| 500 | Internal Server Error | Internal server error | ErrorResponse |
Schemas
ErrorResponse
{
"timestamp": "2020-09-11T23:19:49Z",
"status": 400,
"error": "Bad Request",
"message": "Team 7284fa1f-ef75-49b4-a2ba-d836ddc02f03 doesn't exist",
"path": "/via/v3/organizations/pwdcustomorg/userManagement/users"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| timestamp | string(date-time) | false | none | none |
| status | integer(int32) | false | none | none |
| error | string | false | none | none |
| message | string | false | none | none |
| path | string | false | none | none |
V3UserCollection
{
"kind": "via#userList",
"users": [
{
"active": true,
"kind": "via#user",
"id": "2049f439be17920",
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "alphaTeam",
"managerOf": [
"alphaTeam",
"betaTeam"
],
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"orgEmail": "alvaria.user@orgname.com",
"mfaStage": "ENROLLMENT",
"rdWebAccess": false,
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z",
"emailVerified": false
}
],
"totalItems": 1
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| kind | string | true | none | Identifier used by Alvaria™ Cloud components to serialize the payload of the results. |
| users | [V3UserItem] | true | none | none |
| totalItems | integer | true | none | The total number of Entity instances existing in the system. |
V3UserFragmentCollection
{
"kind": "via#userList",
"users": [
{
"active": true,
"kind": "via#user",
"id": "192e14fab017122",
"email": "user1@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"role": "agent",
"teamId": "67455bfd-eb13-40a7-ba74-e632edec3106",
"mfaStage": "ENROLLMENT",
"rdWebAccess": false,
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z"
}
],
"totalItems": 1
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| kind | string | true | none | Identifier used by Alvaria™ Cloud components to serialize the payload of the results. |
| users | [V3UserFragment] | true | none | none |
| totalItems | integer | true | none | The total number of Entity instances existing in the system. |
V3UserFragment
{
"active": true,
"kind": "via#user",
"id": "192e14fab017122",
"email": "user1@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"role": "agent",
"teamId": "67455bfd-eb13-40a7-ba74-e632edec3106",
"mfaStage": "ENROLLMENT",
"rdWebAccess": false,
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z"
}
UserFragment
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| active | boolean | false | none | Set to True if the entity is available for use. |
| kind | string | false | none | Identifier used by Alvaria™ Cloud components to serialize the payload of the results. |
| id | string | false | none | Alvaria-generated unique identifier for the user |
| string | false | none | Email address of the User entity. | |
| firstName | string | false | none | First name of the User entity. |
| lastName | string | false | none | Last name of the User entity. |
| friendlyName | [FriendlyName] | false | none | Friendly name, which is the user's first and last name from the user's My Account profile. |
| role | string | false | none | Via role of the User entity. |
| teamId | string | false | none | Alvaria-generated unique identifier for the team this user is a member of. The details for the team can be retrieved through a call to the GET /teams endpoint. |
| mfaStage | string | false | none | Mfa stage of a user: UNKNOWN is an initial mfa stage of a user, in ENROLLMENT stage user is in the process of setting up MFA, in ENFORCE stage user is challenged MFA on login |
| rdWebAccess | boolean | false | none | Indicates whether user can have an access to RD Web. Field is ignored for non WFM users. |
| creationTime | string(date-time) | false | none | The time the user instance was created |
| lastModifiedTime | string(date-time) | false | none | The time of the most recent change to the user instance |
| lastLoginTime | string(date-time) | false | none | The time of the most recent login for the user instance |
Enumerated Values
| Property | Value |
|---|---|
| mfaStage | UNKNOWN |
| mfaStage | ENROLLMENT |
| mfaStage | ENFORCE |
V3User
{
"active": true,
"kind": "via#user",
"id": "2049f439be17920",
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"managerOf": [
"2dc7f7a5-98d0-4812-9895-0992dbecd434",
"f718bd59-d647-4251-a2a2-a62324e8d559"
],
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"securityProfile": "-979999789076",
"employeeFilterProfile": "-979999789076",
"employeeId": "123456",
"orgEmail": "alvaria.user@orgname.com",
"mfaStage": "ENROLLMENT",
"rdWebAccess": false,
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z",
"emailVerified": false
}
UserResponse
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| active | boolean | true | none | Set to True if the User entity is available for use. |
| kind | string | true | none | Identifier used by Alvaria™ Cloud components to serialize the payload of the results. |
| id | string | true | none | Alvaria-generated unique identifier for the user |
| string | false | none | Email address of the user | |
| firstName | string | false | none | First name of the user |
| lastName | string | false | none | Last name of the user |
| displayName | string | false | none | Display name of the user |
| friendlyName | [FriendlyName] | false | none | Friendly name, which is the user's first and last name from the user's My Account profile. |
| phoneNumber | string | false | none | Phone number of the user |
| role | string | false | none | Via role of the User entity. |
| country | string | false | none | Country code of the user |
| timezone | string | false | none | Timezone of the user |
| language | string | false | none | Preferred language of the user |
| team | string | false | none | Alvaria-generated unique identifier for the team this user is a member of. The details for the team can be retrieved through a call to the GET /teams/{ID} endpoint. |
| managerOf | [string] | false | none | List of IDs for the teams this user is a manager of (if manager). The details for each team can be retrieved through a call to the GET /teams/{ID} endpoint. |
| entitlements | [string] | false | none | The entitlements of the user |
| securityProfile | string | false | none | The user's WFM Security profile key. Defines the set of permissions that determine which application features a user can access within WFM. The details for this securityProfile can be retrieved through a call to the GET /wfminfo endpoint. |
| employeeFilterProfile | string | false | none | The user's WFM employee filter profile key. Defines the set of permissions that determine which employee records a user can access within WFM. The details for this employeeFilterProfile can be retrieved through a call to the GET /wfminfo endpoint. |
| employeeId | string | false | none | Unique, human-readable identifier for the WFM employee record associated with this user. |
| orgEmail | string | false | none | Email address of the user [maximum of 64 characters, contains a single @ character, @ character not preceded by a dot character, valid characters [a-zA-Z0-9@$'-_.]]. This email is used for MFA enrollment |
| mfaStage | string | false | none | Mfa stage of a user: UNKNOWN is an initial mfa stage of a user, in ENROLLMENT stage user is in the process of setting up MFA, in ENFORCE stage user is challenged MFA on login |
| rdWebAccess | boolean | false | none | Indicates whether user can have an access to RD Web. Field is ignored for non WFM users. |
| creationTime | string(date-time) | false | none | The time the user instance was created |
| lastModifiedTime | string(date-time) | false | none | The time of the most recent change to the user instance |
| lastLoginTime | string(date-time) | false | none | The time of the most recent login for the user instance |
| emailVerified | boolean | false | none | Indicates whether the user's email address has been verified if the feature is enabled for the org |
Enumerated Values
| Property | Value |
|---|---|
| mfaStage | UNKNOWN |
| mfaStage | ENROLLMENT |
| mfaStage | ENFORCE |
V3UserItem
{
"active": true,
"kind": "via#user",
"id": "2049f439be17920",
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"friendlyName": [
{
"locale": "en-US",
"value": "alvaria user"
}
],
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "alphaTeam",
"managerOf": [
"alphaTeam",
"betaTeam"
],
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"orgEmail": "alvaria.user@orgname.com",
"mfaStage": "ENROLLMENT",
"rdWebAccess": false,
"creationTime": "2020-09-11T23:19:49Z",
"lastModifiedTime": "2020-10-18T16:05:52Z",
"lastLoginTime": "2020-11-14T18:24:42Z",
"emailVerified": false
}
UserListItem
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| active | boolean | true | none | Set to True if the User entity is available for use. |
| kind | string | true | none | Identifier used by Alvaria™ Cloud components to serialize the payload of the results. |
| id | string | true | none | Alvaria-generated unique identifier for the user |
| string | false | none | Email address of the user | |
| firstName | string | false | none | First name of the user |
| lastName | string | false | none | Last name of the user |
| displayName | string | false | none | Display name of the user |
| friendlyName | [FriendlyName] | false | none | Friendly name, which is the user's first and last name from the user's My Account profile. |
| phoneNumber | string | false | none | Phone number of the user |
| role | string | false | none | Via role of the User entity. |
| country | string | false | none | Country code of the user |
| timezone | string | false | none | Timezone of the user |
| language | string | false | none | Preferred language of the user |
| team | string | false | none | The name of the team the user is a member of |
| managerOf | [string] | false | none | List of team names this user is manager of (if manager) |
| entitlements | [string] | false | none | The entitlements of the user |
| orgEmail | string | false | none | Email address of the user, used for MFA enrollment |
| mfaStage | string | false | none | Mfa stage of a user: UNKNOWN is an initial mfa stage of a user, in ENROLLMENT stage user is in the process of setting up MFA, in ENFORCE stage user is challenged MFA on login |
| rdWebAccess | boolean | false | none | Indicates whether user can have an access to RD Web. Field is ignored for non WFM users. |
| creationTime | string(date-time) | false | none | The time the user instance was created |
| lastModifiedTime | string(date-time) | false | none | The time of the most recent change to the user instance |
| lastLoginTime | string(date-time) | false | none | The time of the most recent login for the user instance |
| emailVerified | boolean | false | none | Indicates whether the user's email address has been verified if the feature is enabled for the org |
Enumerated Values
| Property | Value |
|---|---|
| mfaStage | UNKNOWN |
| mfaStage | ENROLLMENT |
| mfaStage | ENFORCE |
FriendlyName
{
"locale": "en-US",
"value": "andrea anderson"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| locale | string | true | none | The IETF Language Tag. |
| value | string | true | none | The Localized value of the Entity Name. |
BulkUserJobCollection
{
"jobs": [
{
"status": "pending",
"jobType": "upload",
"createdAt": "",
"createdBy": "",
"id": "c9665020-5cfd-47ec-9079-7f1a3b4f3963",
"upsert": false,
"sendCompletionEmail": false
}
],
"totalItems": 1
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| jobs | [BulkUserOperationResponse] | true | none | none |
| totalItems | integer | true | none | The total number of Entity instances existing in the system. |
BulkUserOperationResponse
{
"status": "pending",
"jobType": "upload",
"createdAt": "",
"createdBy": "",
"id": "c9665020-5cfd-47ec-9079-7f1a3b4f3963",
"upsert": false,
"sendCompletionEmail": false
}
BulkUserJob
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | Status of the Job |
| jobType | string | true | none | Type of the Job |
| createdAt | string | true | none | Time of Job Creation |
| createdBy | string | true | none | User who created the Job |
| id | string | true | none | Alvaria-generated unique identifier for the Job |
| upsert | boolean | true | none | Set to True if the operation was an Upsert. |
| sendCompletionEmail | boolean | true | none | Set to True if an email will be sent on Bob completetion. |
V3WfmInfo
{
"securityProfiles": [
{
"code": "LIMITED",
"description": "Limited Access",
"key": "-979999789076"
}
],
"employeeFilterProfiles": [
{
"code": "LIMITED",
"description": "Limited Access",
"key": "-979999789076"
}
],
"employeeIdSize": 10
}
WFMInfoResponse
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| securityProfiles | [WFMProfile] | false | none | Defines the set of permissions that determine the application features a user can access within WFM. |
| employeeFilterProfiles | [WFMProfile] | false | none | Defines the set of permissions that determine the employee records a user can access within WFM. |
| employeeIdSize | integer | false | none | Defines the size limit in WFM for the employeeId field used in the create and update user requests |
WFMProfile
{
"code": "LIMITED",
"description": "Limited Access",
"key": "-979999789076"
}
WFMProfile
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | false | none | Code value of the profile |
| description | string | false | none | Description of the profile |
| key | string | false | none | Unique WFM ID of the profile |
JobStatusResponse
{
"status": "pending",
"jobType": "upload",
"createdAt": "",
"id": "c9665020-5cfd-47ec-9079-7f1a3b4f3963",
"percentageDone": 50,
"timeLeftSeconds": "0",
"location": "https://orgName.via.aspect-cloud.net/via/v3/organizations/orgName/userManagement/jobs/c9665020-5cfd-47ec-9079-7f1a3b4f3963/report",
"jobSummary": {
"pending": 0,
"failed": 0,
"total": 0,
"expired": 0,
"completed": 0
}
}
JobStatusResponse
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | Status of the Job |
| jobType | string | true | none | Type of the Job |
| createdAt | string | true | none | Time of Job Creation |
| id | string | true | none | Alvaria-generated unique identifier for the Job |
| percentageDone | integer | false | none | Indicator for what percentage of the Job is done. |
| timeLeftSeconds | string | false | none | Unused |
| location | string | false | none | Location for the Job Report. |
| jobSummary | MyaspectJobStats | false | none | none |
MyaspectJobStats
{
"pending": 0,
"failed": 0,
"total": 0,
"expired": 0,
"completed": 0
}
MyaspectJobStats
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| pending | integer | true | none | Number of pending rows in Job |
| failed | integer | true | none | Number of failed rows in Job |
| total | integer | true | none | Number of total rows in Job |
| expired | integer | true | none | Number of expired rows in Job |
| completed | integer | true | none | Number of completed rows in Job |
V3TeamCollection
{
"kind": "via#teamList",
"teams": [
{
"active": true,
"kind": "via#team",
"id": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"friendlyName": [
{
"locale": "en-US",
"value": "alphaTeam"
}
],
"description": "Customer Support Team 1"
},
{
"active": true,
"kind": "via#team",
"id": "f718bd59-d647-4251-a2a2-a62324e8d559",
"friendlyName": [
{
"locale": "en-US",
"value": "betaTeam"
}
],
"description": "Customer Support Team 2"
}
],
"totalItems": 2
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| kind | string | true | none | Identifier used by Alvaria™ Cloud components to serialize the payload of the results. |
| teams | [V3Team] | true | none | none |
| totalItems | integer | true | none | The total number of Entity instances existing in the system. |
V3Team
{
"kind": "via#team",
"active": true,
"id": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"friendlyName": [
{
"locale": "en-US",
"value": "team1"
}
],
"description": "Customer Support Team 1"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| kind | string | true | none | Identifier used by Alvaria™ Cloud components to serialize the payload of the results. |
| active | boolean | true | none | Set to True if the entity is available for use. |
| id | string | true | none | Alvaria-generated unique identifier for the Entity |
| friendlyName | [FriendlyName] | true | none | Unique descriptive name for this Team instance |
| description | string | true | none | Description of the Team |
V3CreateTeamRequest
{
"name": "team1",
"description": "Customer Support Team 1"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | Name of the Team. Must be unique across the org - Maximum 63 chars, valid characters [A-Za-z0-9_-], cannot start with characters [0-9_-] |
| description | string | false | none | Description of the Team |
V3UpdateTeamRequest
{
"name": "team1",
"description": "Customer Support Team 1"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | Name of the Team. Must be unique across the org - Maximum 63 chars, valid characters [A-Za-z0-9_-], cannot start with characters [0-9_-] |
| description | string | false | none | Description of the Team |
V3RemoveUserRequest
{
"managerToAssignAssets": "alvaria.manager@orgname.com"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| managerToAssignAssets | string | true | none | Email address or unique identifier of a manager user to assign open assets of the deleted user to. The selected manager user must be a different user to the one being deleted. |
V3UserSuspendRequest
{
"suspend": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| suspend | boolean | true | none | Flag indicating whether to suspend (true) or unsuspend (false) a user. A user must have an 'Active' status in order to be suspended and an 'Inactive' status in order to be unsuspended. |
V3CreateUserRequest
{
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"managerOf": [
"2dc7f7a5-98d0-4812-9895-0992dbecd434",
"f718bd59-d647-4251-a2a2-a62324e8d559"
],
"password": "aZcX!2E4$6wDyB",
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"securityProfile": "-979999789076",
"employeeFilterProfile": "-979999789076",
"employeeId": "123456",
"orgEmail": "alvaria.user@orgname.com",
"rdWebAccess": false
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| string | true | none | Login email - maximum of 64 characters, contains a single @ character, @ character not preceded by a dot character, valid characters [a-zA-Z0-9@$'-_.]. Also used for email correspondence purposes should no orgEmail field be set. | |
| firstName | string | true | none | First name - non-empty, maximum 60 characters, must not contain the following characters [/*()&![]"#%^{}] |
| lastName | string | true | none | Last name - non-empty, maximum 60 characters, must not contain the following characters [/*()&![]"#%^{}] |
| displayName | string | true | none | Display name - maximum 500 characters |
| phoneNumber | string | true | none | Phone number - numeric [0-9] characters only, contains between 1 to 20 characters |
| role | string | true | none | Via user role - [useradministrator, developer, manager, teamlead, agent] |
| country | string | true | none | Country code of the user - [US, GB, AR, AU, AT, BE, BR, BG, CA, CL, CN, CO, CR, HR, CY, CZ, DK, DO, SV, EE, FI, FR, DE, GR, GT, HN, HU, IN, IE, IT, JM, JP, LV, LT, LU, MT, MX, NL, NI, NO, PA, PE, PH, PL, PT, RO, SK, SI, ES, SE, CH, TT, VE] |
| timezone | string | true | none | Timezone of the user - [Pacific/Honolulu, America/Anchorage, America/Los_Angeles, America/Phoenix, America/Denver, America/Chicago, America/Mexico_City, America/New_York, America/Halifax, America/Puerto_Rico, America/St_Johns, America/Argentina/Buenos_Aires, America/Sao_Paulo, America/Bogota, Atlantic/South_Georgia, Atlantic/Cape_Verde, Europe/London, Europe/Berlin, Africa/Maputo, Africa/Cairo, EET, Africa/Nairobi, Asia/Riyadh, Asia/Yerevan, Asia/Kolkata, Asia/Dhaka, Asia/Ho_Chi_Minh, Asia/Shanghai, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Sydney, Pacific/Guadalcanal, Pacific/Auckland] |
| language | string | true | none | Preferred language - [ca, hr, cs, da, nl, en, et, fi, fr, de, el, hu, is, ga, it, jp, lv, lt, mt, no, pl, pt, ro, es] |
| team | string | false | none | Alvaria-generated unique identifier for the team this user is a member of. Team ID values to use can be retrieved through a call to the GET /teams endpoint. |
| managerOf | [string] | false | none | List of Alvaria-generated unique identifiers for the teams the user manages (if manager). The Team ID values to use can be retrieved through a call to the GET /teams endpoint. |
| password | string | false | none | The password field will behave differently based on your organization's configuration. Legacy configuration (reset password disabled) - required field, must conform with the following format minimum of 14 characters, 1 uppercase letter, 1 lowercase letter, at least 1 special character from }{[]!"$%^&*()@~=+;:?>/.,_-`#< and not matching either the username, firstname, lastname fields. New configuration (reset password enabled) - optional field, any value supplied will be ignored and a random password generated instead. By default end users must manually reset their password using the MyAccount UI forgot password flow in order to gain access to newly created accounts, alternatively if preferred your organization can be configured to automatically send a password reset email directly after the creation of a new user via a support request. It is required that users are associated with a valid and functioning dedicated business email address. |
| entitlements | [string] | false | none | Entitlements to assign to the user - [motivate, motivateactive, performancemanagement, qualitymanagement, qualitymanagementscreencapture,qualitymanagementvoicerecording, viacoreinbound, viacoreoutreach, workforcemanagement, workforcemanagementencompass] |
| securityProfile | string | false | none | The user's WFM Security profile key. Defines the set of permissions that determine which application features a user can access within WFM. Required field when a wfm entitlement (workforcemanagement, workforcemanagementencompass) is included as a user entitlement and role is either (agent, teamlead, manager). A list of valid security profiles can be retrieved through a call to the GET /wfminfo endpoint. |
| employeeFilterProfile | string | false | none | The user's WFM employee filter profile key. Defines the set of permissions that determine which employee records a user can access within WFM. Required field when a wfm entitlement (workforcemanagement, workforcemanagementencompass) is included as a user entitlement and role is either (agent, teamlead, manager). A list of valid employee filter profiles can be retrieved through a call to the GET /wfminfo endpoint. |
| employeeId | string | false | none | An optional, unique, human-readable employee identification code for a WFM user. Only 'agent' users with wfm entitlements (workforcemanagement, workforcemanagementencompass) assigned can have an employeeId value set otherwise this value will be ignored. If supplied then an employee record will be created in WFM and linked to the new user. If omitted no employee record will be created and the WFM user will not be activated. The maximum length for an employeeId can be retrieved through a call to the GET /wfminfo endpoint. |
| orgEmail | string | false | none | Correspondence email address (typically used when the login email isn't a valid email address) - maximum of 64 characters, contains a single @ character, @ character not preceded by a dot character, valid characters [a-zA-Z0-9@$'-_.]]. This email is used for MFA enrollment. If this field is not provided then the user will be created with orgEmail defaulted to the value from the email field. |
| rdWebAccess | boolean | false | none | Indicates whether user can have an access to RD Web. Field is ignored for non WFM users. |
V3UpdateUserRequest
{
"email": "alvaria.user@orgname.com",
"firstName": "alvaria",
"lastName": "user",
"displayName": "alvaria user",
"phoneNumber": "12345678",
"role": "manager",
"country": "US",
"timezone": "America/New_York",
"language": "en",
"team": "2dc7f7a5-98d0-4812-9895-0992dbecd434",
"managerOf": [
"2dc7f7a5-98d0-4812-9895-0992dbecd434",
"f718bd59-d647-4251-a2a2-a62324e8d559"
],
"entitlements": [
"viacoreinbound",
"viacoreoutreach",
"workforcemanagement"
],
"securityProfile": "-979999789076",
"employeeFilterProfile": "-979999789076",
"employeeId": "123456",
"orgEmail": "alvaria.user@orgname.com",
"rdWebAccess": false
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| string | true | none | Login Email - maximum of 64 characters, contains a single @ character, @ character not preceded by a dot character, valid characters [a-zA-Z0-9@$'-_.] | |
| firstName | string | true | none | First name - non-empty, maximum 60 characters, must not contain the following characters [/*()&![]"#%^{}] |
| lastName | string | true | none | Last name - non-empty, maximum 60 characters, must not contain the following characters [/*()&![]"#%^{}] |
| displayName | string | true | none | Display name - maximum 500 characters |
| phoneNumber | string | true | none | Phone number - numeric [0-9] characters only, contains between 1 to 20 characters |
| role | string | true | none | Via user role - [useradministrator, developer, manager, teamlead, agent] |
| country | string | true | none | Country code of the user - [US, GB, AR, AU, AT, BE, BR, BG, CA, CL, CN, CO, CR, HR, CY, CZ, DK, DO, SV, EE, FI, FR, DE, GR, GT, HN, HU, IN, IE, IT, JM, JP, LV, LT, LU, MT, MX, NL, NI, NO, PA, PE, PH, PL, PT, RO, SK, SI, ES, SE, CH, TT, VE] |
| timezone | string | true | none | Timezone - [Pacific/Honolulu, America/Anchorage, America/Los_Angeles, America/Phoenix, America/Denver, America/Chicago, America/Mexico_City, America/New_York, America/Halifax, America/Puerto_Rico, America/St_Johns, America/Argentina/Buenos_Aires, America/Sao_Paulo, America/Bogota, Atlantic/South_Georgia, Atlantic/Cape_Verde, Europe/London, Europe/Berlin, Africa/Maputo, Africa/Cairo, EET, Africa/Nairobi, Asia/Riyadh, Asia/Yerevan, Asia/Kolkata, Asia/Dhaka, Asia/Ho_Chi_Minh, Asia/Shanghai, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Sydney, Pacific/Guadalcanal, Pacific/Auckland] |
| language | string | true | none | Preferred language - [ca, hr, cs, da, nl, en, et, fi, fr, de, el, hu, is, ga, it, jp, lv, lt, mt, no, pl, pt, ro, es] |
| team | string | false | none | Alvaria-generated unique identifier for the team this user is a member of. Team ID values to use can be retrieved through a call to the GET /teams endpoint. |
| managerOf | [string] | false | none | List of Alvaria-generated unique identifiers for the teams the user manages (if manager). The Team ID values to use can be retrieved through a call to the GET /teams endpoint. |
| entitlements | [string] | false | none | Entitlements to assign to the user - [motivate, motivateactive, performancemanagement, qualitymanagement, qualitymanagementscreencapture,qualitymanagementvoicerecording, viacoreinbound, viacoreoutreach, workforcemanagement, workforcemanagementencompass] |
| securityProfile | string | false | none | The user's WFM Security profile key. Defines the set of permissions that determine which application features a user can access within WFM. Required field when a wfm entitlement (workforcemanagement, workforcemanagementencompass) is included as a user entitlement and role is either (agent, teamlead, manager). A list of valid security profiles can be retrieved through a call to the GET /wfminfo endpoint. |
| employeeFilterProfile | string | false | none | The user's WFM employee filter profile key. Defines the set of permissions that determine which employee records a user can access within WFM. Required field when a wfm entitlement (workforcemanagement, workforcemanagementencompass) is included as a user entitlement and role is either (agent, teamlead, manager). A list of valid employee filter profiles can be retrieved through a call to the GET /wfminfo endpoint. |
| employeeId | string | false | none | An optional, unique, human-readable employee identification code for a WFM user. Only 'agent' users with wfm entitlements (workforcemanagement, workforcemanagementencompass) assigned can have an employeeId value set otherwise this value will be ignored. If supplied then an employee record will be created in WFM and linked to the new user. If omitted no employee record will be created and the WFM user will not be activated. The maximum length for an employeeId can be retrieved through a call to the GET /wfminfo endpoint. |
| orgEmail | string | false | none | Correspondence email address (used when the login email isn't a valid email address) - maximum of 64 characters, contains a single @ character, @ character not preceded by a dot character, valid characters [a-zA-Z0-9@$'-_.]]. This email is used for MFA enrollment. If this field is not provided then the user will be updated with orgEmail defaulted to the value from the email field. |
| rdWebAccess | boolean | false | none | Indicates whether user can have an access to RD Web. Field is ignored for non WFM users. |
V4RemoveUserRequest
{
"managerToAssignAssets": "alvaria.manager@orgname.com"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| managerToAssignAssets | string | true | none | Email address or unique identifier of a manager user to assign open assets of the deleted user to. The selected manager user must be a different user to the one being deleted. |
V4RemoveUserResponse
{
"message": "User deletion request accepted",
"id": "user123",
"checkStatusEndpoint": "/users/user123"
}
V4RemoveUserResponse
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| message | string | true | none | Delete operation result |
| id | string | true | none | ID of the user being removed |
| checkStatusEndpoint | string | true | none | Endpoint where the actual user state can be tracked; returns 404 once deleted |