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:

 

PATCH

Updates the following attributes of a user:

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 "https://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 "https://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 about 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".

Updating 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 "https://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
Timezone String
Active String
Email Collection
Roles.Display 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 "https://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
Roles.Display 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 and Considerations

Limitations to note when using Postman and SCIM:

  • User permissions cannot be updated using Process Manager SCIM API

Role considerations:

  • For POST and PUT requests, roles that do not exist in Process Manager will be created and the user added to the new role.
  • For PUT requests with a roles attribute, the request will remove the user from a role if the role is not included in the request.
  • For PUT requests that do not include a roles attribute, the request will leave the roles unchanged (the user will not be removed from any roles).
  • For PATCH requests, Add and Replace operations with roles that do not exist in Process Manager will create the role and add the user to that role.
  • For Add and Replace PATCH operations, roles that do not exist in Process Manager will be created and the user added to the new role.
  • For Remove and Replace PATCH operations, users will be removed from the role if the path matches.