NAV Navigation
Shell Node.js HTTP

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.

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

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

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.
email 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 ->

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 ->

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 ->

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
email 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
email 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
email 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
email 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
email 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
email 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