Update Users through Postman

The System for Cross-domain Identity Management (SCIM) specification is a standard for automating the exchange of user identity information between identity domains, or IT systems. It makes managing user identities in cloud-based applications and services easier.

For more information on creating the SCIM access token refer to SCIM access token .

Support for Process Manager

Process Manager is compliant with the SCIM 2 standard. This means it implements the full API, however only the mandatory endpoints have been implemented.

These implemented endpoints include:

Resource Endpoint
Operation Description
User /Users
GET Retrieves a user with a specific identity.
POST Creates a new user in Nintex Process Manager.
PUT

Updates the following attributes of a user:

  • Username

  • First Name

  • Last Name

  • Email

  • User's Timezone

 

PATCH

Updates the following attributes of a user:

  • First Name

  • Last Name

  • Email

DELETE Deactivates the user in Nintex Process Manager.

Prerequisites

Before using Postman the following prerequisites must be met:

  • Create the SCIM access token following the steps outlined here

  • Download Postman

Once you have a token you can configure your application to make calls to the following URL:

https://api.promapp.com/api/scim

Create a request in Postman

  1. Download and open Postman.

  2. Create a request and choose the request type. The following methods are supported:

    • GET

    • PATCH

    • POST

    • PUT

    • DELETE

  3. Provide a correct URL e.g. https://api.promapp.com/api/scim/users in the address bar.

  4. Select the Authorization tab, and select “OAuth 2.0” as the auth type and valid access token.

  5. Add in the payload information or request parameters.

  6. Click Send.

  7. Review the response.

 

Create a user (POST request)

Creating a user can be done by making a Post request. The minimal model for creating a user requires the following SCIM user resource model attributes:

Note: The payload should be sent as part of the body and with the type as "application/json". Unassigned attributes are assigned default values of their type.

Create a user using POST request can also be done using a curl request. The curl URL for minimal model is as given below:

curl -X POST "http://api.promapp.com/api/scim/Users" -H "Authorization: Bearer 2y_M7vpO42o-NmbOJY4ZD6Xl-qBksINIQ7q3_Oq9I6U" -H "accept: application/json" -H "Content-Type: application/json-patch+json" -d "{ \"userName\": \"joe.bloggs\", \"name\": { \"familyName\": \"string\", \"givenName\": \"string\", \"timezone\": \"string\", \"active\": true, \"emails\": [ { \"value\": \"string\", } ],}"

The example model for all attributes currently supported by Nintex Process Manager to create a new user are as follows:

Create a user using POST request can also be done using curl request. The curl URL for with all the supported attribute is as given below:

curl -X POST "http://api.promapp.com/api/scim/Users" -H "Authorization: Bearer 2y_M7vpO42o-NmbOJY4ZD6Xl-qBksINIQ7q3_Oq9I6U" -H "accept: application/json" -H "Content-Type: application/json-patch+json" -d "{ \"userName\": \"joe.bloggs\", \"name\": { \"familyName\": \"Bloggs\". \"givenName\": \"Joe\" }, \"active\": true, \"password\":\"t1meMa$heen\", \"preferredLanguage\":\"en_US\", \"timezone\": \"America/Los_Angeles\", \"emails\": [ { \"value\": \"j/bloggs@example.com\" } ], \"roles\": [ { \"display\": \"Author\" }, { \"display\": \"Accountant\" } ],}"

The POST request to create a new user can result into the following responses:

Status CodeResponse
201Created
400Bad Request
401Unauthorized
500Internal Server Error

Get user information (GET request)

These types of requests are made to get information about the user. This request can also be used to search for, or gather information for a user.

Method URL
GET (using Id) https://api.promapp.com/api/scim/users/{id}
GET (using filters) https://api.promapp.com/api/scim/users?filter=username eq “jo”

 

This request can result into different types of responses.

Status Code Response
200 OK
401 Unauthorized
400 Bad Request
404 User Not Found
500 Internal Server Error

 

GET request can also be used with filter as described in the table below. There are different types of filters (operator) that can be used to filter the result.

Filter Type (Operator) Description Example
Eq Values of filter type and attribute must be the same. Filter=userName eq “bjensen”
Ne Values of filter type and attribute are not same. Filter=userName ne “doe”
Gt Value of attribute is greater than the operator value. Comparison also depends on the attribute type. filter=meta.lastModified gt "2011-05-13T04:42:34Z"
Ge Value of attribute is greater than or equal to the operator value. Comparison also depends on the attribute type. filter=meta.lastModified ge "2011-05-13T04:42:34Z"
Lt Value of the attribute is less than the operator value. Comparison also depends on the attribute type. filter=meta.lastModified lt "2011-05-13T04:42:34Z"
Le Value of the attribute is less than or equal to the operator value. Comparison also depends on the attribute type. filter=meta.lastModified le "2011-05-13T04:42:34Z"
Count The response does not contain result than the specified although may contain fewer than requested. filter=meta.created gt "2012-09-18T03:56:54Z" & count=10
And Logical operator. It can be used to use more than one operator, and evaluation of both expressions must be true. filter=title pr and userType eq "Employee"
Or Logical operator. It can be used to use more than one operator, and evaluation of either expression must be true. filter=title pr or userType eq "Intern"
Multi   filter=meta[created gt "2015-09-18T00:00:00Z" and created lt "2016-09-18T00:00:00Z"]

Update a user (PUT method)

This method can be used to update a specific user. The minimal model for updating a user requires the id of the user.

Method URL
PUT https://api.promapp.com/api/scim/users/{id}

 

Minimal model for updating the user is as given below:

Note: The payload should be sent as part of the body and with the type as "application/json".

Create a user using a PUT request can also be done using curl request. The curl URL for minimal model is as given below:

curl -X PUT "http://api.promapp.com/api/scim/Users" -H "Authorization: Bearer 2y_M7vpO42o-NmbOJY4ZD6Xl-qBksINIQ7q3_Oq9I6U" -H "accept: application/json" -H "Content-Type: application/json-patch+json" -d "{ \"userName\": \"joe.bloggs\", \"name\": { \"familyName\": \"Bloggs\". \"givenName\": \"Joe\" }, \"active\": true, \"password\":\"t1meMa$heen\", \"preferredLanguage\":\"en_US\", \"timezone\": \"America/Los_Angeles\", \"emails\": [ { \"value\": \"j/bloggs@example.com\" } ]}"

 

The table below lists the attributes that can be updated using PUT request:

Attribute Type
UserName String
Name.FamilyName String
Name.GivenName String
Name.MiddleName String
DisplayName String
NickName String
ProfileURL String
Title String
UserType String
PreferredLangauge String
Local String
Timezone String
Active String
Email Collection
Photos Collection
Entitlements Collection

 

This request can result into different types of responses.

Status Code Response
200 OK
401 Unauthorized
400 Bad Request
404 User Not Found
500 Internal Server Error

 

Patch a user (PATCH method)

This method can be used to patch a specific user. The minimal model for patching a user requires the id of the user and at least one operation (add, remove, or replace).

Method URL
PATCH https://api.promapp.com/api/scim/users/{id}

 

Minimal model for updating the user is as given below:

{

"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],

"operations": [

{

"op": "replace",

"path": "name.familyName",

"value": "BloggsPatched"

}

]

}

Note: The payload should be sent as part of the body and with the type as "application/json".

Patch a user using a PATCH request can also be done using curl request. The curl URL for minimal model is as given below:

curl -X POST "http://api.promapp.com/api/scim/Users" -H "Authorization: Bearer 2y_M7vpO42o-NmbOJY4ZD6Xl-qBksINIQ7q3_Oq9I6U" -H "accept: application/json" -H "Content-Type: application/json-patch+json" -d "{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "operations": [{ "op": "replace", "path": "name.familyName", "value": "BloggsPatched" } ]}"

The table below lists the attributes that can be updated using PATCH request:

Attribute Type
Name.FamilyName String
Name.GivenName String
Active Boolean
Emails Collection

 

This request can result into different types of responses.

Status Code Response
200 OK
401 Unauthorized
400 Bad Request
404 User Not Found
500 Internal Server Error

 

Deactivate a user (DELETE method)

Delete request needs to be done to deactivate a user using the id of the user.

Method URL
DELETE https://api.promapp.com/api/scim/users/{id}

 

This request can result into different types of responses.

Status Code Response
200 OK
401 Unauthorized
400 Bad Request
404 User Not Found
500 Internal Server Error
Note: If the user is already deleted or if the user has a relationship with data in the application (process ownership, etc.) then the user cannot be deleted, and the code responds as 404 error.

Limitations

There are a few limitations to note when it comes to using Postman and SCIM:

  • User permissions cannot be updated using Process Manager SCIM API.

  • Roles cannot currently be updated using the PUT or PATCH commands.