Skip to main content

About the EmpowerID Orchestration Pack for ServiceNow

The EmpowerID Orchestration Pack for ServiceNow provides ServiceNow process designers with workflow activities, web services, and example workflows to embed EmpowerID capabilities within their ServiceNow business processes. EmpowerID includes a job that synchronizes and maintains an up-to-date list of requestable groups and roles from the EmpowerID Identity Warehouse to custom tables in your ServiceNow tenants. Using the embedded EmpowerID workflow activities in your ServiceNow workflows, users can request access to entitlements in any EmpowerID-connected system from the familiar ServiceNow Service Catalog. In addition, the Orchestration Pack provides the ability to integrate an AI-powered chatbot virtual assistant, the EmpowerID Bot, into ServiceNow. With the bot, users can perform secure self-service, such as resetting their passwords, at any time within the ServiceNow portal.

The orchestration pack allows you to incorporate the power of EmpowerID’s Compliant Access Delivery platform into your business processes, enhancing those processes with the end-to-end security of EmpowerID. This ensures that only users with the necessary access level can initiate any ServiceNow business process that uses the activities within the pack, routing those processes for further approval where necessary. Upon approval, immediate fulfillment occurs in ServiceNow and any other target systems. EmpowerID maintains an audit log of these processes that is permanently stored in the Identity Warehouse with the details of “who, what, where, and when.” This gives you visibility over any activity occurring in ServiceNow that uses the workflow activities in the orchestration pack.

Example Workflows

Example workflows included in the orchestration pack include those listed below. While these example workflows can be used in production without modification, they are intended to be leveraged by ServiceNow process designers in existing and future workflows. For an example of using an EmpowerID workflow as a subflow for another workflow, see Extend ServiceNow with the Orchestration Pack.

EID – New Hire

This workflow is built to create a new user using the EmpowerID APIs. The workflow invokes the Admin Approval activity when a new hire request is submitted. Currently, this is a placeholder activity that sends an approval request to the system administrator to demonstrate approvals. Once approved by the system admin (If rejected, the request is marked as “closed incomplete,” and the workflow ends.), the workflow proceeds to execute the Run Script block. This block receives the input parameters from the submitted request form and triggers the API call to EmpowerID using these details. The details about the API call can be found in the Integrations section of this document. Once the call is made, the request is marked as “closed complete,” and the workflow ends.

EID – Add User to Group

This workflow is built to add users to a group within EmpowerID. When a request is submitted using this workflow, it runs a script block named “Subflow variable mapping”. This is an important step in case we want to use the EmpowerID workflow as a subflow in an existing customer workflow. The second step is the Approval activity, which is currently approved by the system administrator. Once approved (if rejected, the workflow sets the state of the request as “closed incomplete” and ends here), the workflow continues to the third step, which is where the actual API call to EmpowerID is made with all required parameters. Please refer to this article's Integrations section to know the API's details. After a successful call, the workflow marks the state of the RITM as “Closed Complete” and ends.

EID – Request Management Role

This workflow is built to associate a management role to a user within EmpowerID for a specified duration of time. At the very beginning, the workflow runs a script block that deals with variable mapping in the case when this workflow is being used as a subflow. The second step is the approval activity, which is currently approved by the system administrator. Once approved (if rejected, the workflow sets the state of the request as “closed incomplete” and ends here), the workflow continues to the third step, which is where the actual API call to EmpowerID is made with all required parameters. After the successful call, workflow marks the state of the RITM as “Closed Complete” and ends.

Data Model

The Orchestration Pack data model includes custom Groups and Management Roles data required for the EmpowerID workflows. In order to keep customer namespace uncluttered, EmpowerID does not use the default out-of-the-box tables for groups and roles, as many EmpowerID-specific attributes need to be maintained. The data for these custom tables is updated by EmpowerID via inbound API.

Tables

Groups (x_36687_eid_groups)
Column LabelColumn NameType
Group GUID (PK)group_guidString
NamenameString
Distinguished Namedistinguished_nameString
Is High Security Groupis_high_security_goupBoolean
Auto Accept Join Leave Requestauto_accept_join_leave_requestsBoolean
Group Usage Type Friendly Namegroup_usage_type_friendly_nameString
Friendly Namefriendly_nameString
Logon Namelogon_nameString
Account Store Friendly Nameaccount_store_friendly_nameString
Allow Join Requestsallow_join_requestsBoolean
EmailemailString
Valid Fromvalid_fromDate/Time
Valid Untilvalid_untilDate/Time
DescriptiondescriptionString
NotesnotesString
Owner Assignee IDowner_assignee_idString
Owner Login Nameowner_login_nameString
Owner Friendly Nameowner_friendly_nameString
Owner Emailowner_emailString
Extension Attribute 1extension_attribute_1String
Extension Attribute 2extension_attribute_2String
Extension Attribute 3extension_attribute_3String
Extension Attribute 4extension_attribute_4String
Extension Attribute 5extension_attribute_5String
Extension Attribute 6extension_attribute_6String
Extension Attribute 7extension_attribute_7String
Extension Attribute 8extension_attribute_8String
Extension Attribute 9extension_attribute_9String
Extension Attribute 10extension_attribute_10String
Extension Attribute 11extension_attribute_11String
Extension Attribute 12extension_attribute_12String
Extension Attribute 13extension_attribute_13String
Extension Attribute 14extension_attribute_14String
Extension Attribute 15extension_attribute_15String
Sys IDsys_idSys ID (GUID)
Updatessys_mod_countInteger
Updated Bysys_updated_byString
Updatedsys_updated_byString
Management Roles (x_36687_eid_management_roles)
Column LabelColumn NameType
Management Role GUID (PK)management_role_guidString
NamenameString
Friendly Namefriendly_nameString
Is High Security Groupis_high_security_goupBoolean
Auto Accept Join Leave Requestauto_accept_join_leave_requestsBoolean
Group Usage Type Friendly Namegroup_usage_type_friendly_nameString
Friendly Namefriendly_nameString
Logon Namelogon_nameString
Account Store Friendly Nameaccount_store_friendly_nameString
Allow Join Requestsallow_join_requestsBoolean
EmailemailString
Valid Fromvalid_fromDate/Time
Valid Untilvalid_untilDate/Time
DescriptiondescriptionString
NotesnotesString
Owner Assignee IDowner_assignee_idString
Owner Login Nameowner_login_nameString
Owner Friendly Nameowner_friendly_nameString
Owner Emailowner_emailString
Extension Attribute 1extension_attribute_1String
Extension Attribute 2extension_attribute_2String
Extension Attribute 3extension_attribute_3String
Extension Attribute 4extension_attribute_4String
Extension Attribute 5extension_attribute_5String
Extension Attribute 6extension_attribute_6String
Extension Attribute 7extension_attribute_7String
Extension Attribute 8extension_attribute_8String
Extension Attribute 9extension_attribute_9String
Extension Attribute 10extension_attribute_10String
Extension Attribute 11extension_attribute_11String
Extension Attribute 12extension_attribute_12String
Extension Attribute 13extension_attribute_13String
Extension Attribute 14extension_attribute_14String
Extension Attribute 15extension_attribute_15String
Sys IDsys_idSys ID (GUID)
Updatessys_mod_countInteger
Updated Bysys_updated_byString
Updatedsys_updated_byString

Integrations

The EmpowerID Orchestration Pack has a number of inbound and outbound integration APIs defined. These integrations form the core of communication between ServiceNow and EmpowerID. The API includes the following HTTP methods for the EmpowerID components affected by the activities and workflows of the Orchestration Pack. This information is included as reference material. To view it, expand the headings.

APIs Exposed by ServiceNow

Authentication

Use basic authentication and admin user’s credentials

Read Management Roles

GetMgmtRolesGUID

This endpoint retrieves a list of Management Roles currently present in ServiceNow.

HTTP Request

Method: GET

GET https://{FQDN_Of_Your_ServiceNow_Instance}/api/x_36687_eid/eid/getMgmtRolesGuid 

Header Key/Value Pairs

KeyValue
X-UserTokenYour access token
Acceptapplication/json
Content-Typeapplication/json

Response

Status Code 200 OK

Header Key/Value Pairs

KeyValue
Cache-ControlYour access token
Content-Encodinggzip
Content-Typeapplication/json;charsetUTF-8
DateDate / Time GMT
Expires0
Pragmano-store,no-cache
ServerServiceNow
Strict-Transport-Securitymax-age63072000; includeSubDomains
Transfer-Encodingchunked
X-Is-Logged-Intrue
X-Transaction-Id85d3c5addb2u8

Response Body

JSON object containing a list of Management Role GUIDs.

cURL Example

curl "https://YourServiceNowInstance/api/x_36687_eid/eid/getMgmtRolesGuid" \
--request GET \
--header "Accept:application/json" \
--user 'admin':'admin'

Read Management Groups

GetMgmtGroupsGUID

This endpoint retrieves a list of Management Groups currently present in ServiceNow.

HTTP Request

Method: GET

GET https://{FQDN_Of_Your_ServiceNow_Instance}/api/x_36687_eid/eid/getMgmtGroupsGuid 

Header Key/Value Pairs

KeyValue
X-UserTokenYour access token
Acceptapplication/json
Content-Typeapplication/json

Response

Status Code 200 OK

Header Key/Value Pairs

KeyValue
Cache-ControlYour access token
Content-Encodinggzip
Content-Typeapplication/json;charsetUTF-8
DateDate / Time GMT
Expires0
Pragmano-store,no-cache
ServerServiceNow
Strict-Transport-Securitymax-age63072000; includeSubDomains
Transfer-Encodingchunked
X-Is-Logged-Intrue
X-Transaction-Id85d3c5addb2u8

Response Body

JSON object containing a list of Management Group GUIDs

cURL Example

curl "https://YourServiceNowInstance/api/x_36687_eid/eid/getMgmtGroupsGuid" \
--request GET \
--header "Accept:application/json" \
--user 'admin':'admin'

Create Management Roles

MgmtRoles

This endpoint is used to create / push Management Roles from EmpowerID to ServiceNow

HTTP Request

Method: POST

POST https://{FQDN_Of_Your_ServiceNow_Instance}/api/x_36687_eid/eid/mgmtroles 

Request Data

Request data is sent to the API in JSON format.

[ //Array of records
{
‘<column name>’: ‘<value>’
'management_role_guid': 'd9896948-b708-420e-ae6c-4cb038180159',
'friendly_name':'Friendly Name Five',
'valid_from': '2018-07-31 21:43:11',
'valid_until': '2018-08-22 21:43:11',
'description': 'Test Description Five',
'name': 'Five Management Role',
.
.
.
},
{
'management_role_guid': 'd9896948-b908-420e-ae6c-4cb038180159',
'friendly_name':'Friendly Name Six',
'valid_from': '2018-07-31 21:43:11',
'valid_until': '2018-08-22 21:43:11',
'description': 'Test Description Six'
},
.
.
.
]
ElementDescriptionTypeRequired
management_role_guidGUID of the Management RoleStringYes
friendly_nameDisplay Name of the Management RoleStringYes
valid_fromBeginning date and time the Management Role is validDate/TimeYes
valid_untilEnding date and time the Management Role is validDate/TimeYes
descriptionDescription of the Management RoleStringYes
nameName of the Management RoleStringYes
auto_accept_join_leave_requestsAccept join and leave requests without requiring approvalBooleanYes
emailEmail address for the Management RoleStringYes
instructionsInstructions about the Management RoleStringYes
is_high_securityIs the role high security?BooleanYes
owner_assignee_idID of the EmpowerID Person owning the Management RoleIntegerYes
owner_emailEmail address of the EmpowerID Person owning the Management RoleStringYes
owner_friendly_nameFriendly Name of the EmpowerID Person owning the Management RoleStringYes
owner_logon_nameLogon Name of the EmpowerID Person owning the Management RoleStringYes
requestableCan users request access to the role?BooleanYes
risk_factor_totalRisk factor of the roleIntegerYes
extension_attribute_1Extension attributeStringYes
extension_attribute_2Extension attributeStringYes
extension_attribute_3Extension attributeStringYes
extension_attribute_4Extension attributeStringYes
extension_attribute_5Extension attributeStringYes
extension_attribute_6Extension attributeStringYes
extension_attribute_7Extension attributeStringYes
extension_attribute_8Extension attributeStringYes
extension_attribute_9Extension attributeStringYes
extension_attribute_10Extension attributeStringYes
extension_attribute_11Extension attributeStringYes
extension_attribute_12Extension attributeStringYes
extension_attribute_13Extension attributeStringYes
extension_attribute_14Extension attributeStringYes
extension_attribute_15Extension attributeStringYes

Create Management Groups

MgmtGroups

This endpoint is used to create / push Management Groups from EmpowerID to ServiceNow

HTTP Request

Method: POST

POST https://{FQDN_Of_Your_ServiceNow_Instance}/api/x_36687_eid/eid/mgmtgroups 

Request Data

Request data is sent to the API in JSON format.

[ //Array of records
{
‘<column name>’: ‘<value>’
'group_guid': 'd9896948-b708-420e-ae6c-4cb038180159',
'friendly_name':'Friendly Name Five',
'valid_from': '2018-07-31 21:43:11',
'valid_until': '2018-08-22 21:43:11',
'description': 'Test Description Five',
'name': 'Five Group',
.
.
.
},
{
'management_role_guid': 'd9896948-b908-420e-ae6c-4cb038180159',
'friendly_name':'Friendly Name Six',
'valid_from': '2018-07-31 21:43:11',
'valid_until': '2018-08-22 21:43:11',
'description': 'Test Description Six'
},
.
.
.
]
ElementDescriptionTypeRequired
group_guidGUID of the groupStringYes
friendly_nameDisplay Name of the groupStringYes
distinguished_nameDistinguished name of the groupStringYes
account_store_distinguished_nameDistinguished name of the account store the group belongs toStringYes
valid_fromBeginning date and time the group is validDate/TimeYes
valid_untilEnding date and time the group is validDate/TimeYes
descriptionDescription of the groupStringYes
nameName of the groupStringYes
allow_join_requestsCan users request to join the group?BooleanYes
auto_accept_join_leave_requestsAccept join and leave requests without requiring approvalBooleanYes
emailEmail address of the groupStringYes
notesNotes about the groupStringYes
is_high_security_groupIs the group high security?BooleanYes
owner_assignee_idID of the EmpowerID Person owning the groupIntegerYes
owner_emailEmail address of the EmpowerID Person owning the groupStringYes
owner_friendly_nameFriendly Name of the EmpowerID Person owning the groupStringYes
owner_logon_nameLogon Name of the EmpowerID Person owning the groupStringYes
extension_attribute_1Extension attributeStringYes
extension_attribute_2Extension attributeStringYes
extension_attribute_3Extension attributeStringYes
extension_attribute_4Extension attributeStringYes
extension_attribute_5Extension attributeStringYes
extension_attribute_6Extension attributeStringYes
extension_attribute_7Extension attributeStringYes
extension_attribute_8Extension attributeStringYes
extension_attribute_9Extension attributeStringYes
extension_attribute_10Extension attributeStringYes
extension_attribute_11Extension attributeStringYes
extension_attribute_12Extension attributeStringYes
extension_attribute_13Extension attributeStringYes
extension_attribute_14Extension attributeStringYes
extension_attribute_15Extension attributeStringYes

Delete Management Roles

deleteMgmtRoles

Use this endpoint to delete EmpowerID Management Roles currently present in ServiceNow.

HTTP Request

Method: POST

POST https://{FQDN_Of_Your_ServiceNow_Instance}/api/x_36687_eid/eid/deleteMgmtRoles 

Header Key/Value Pairs

KeyValue
X-UserTokenYour access token
Acceptapplication/json
Content-Typeapplication/json

Response

Status Code 200 OK

Header Key/Value Pairs

KeyValue
Content-Encodinggzip
DateDate / Time GMT
ServerServiceNow
Strict-Transport-Securitymax-age63072000; includeSubDomains
Transfer-Encodingchunked
X-Is-Logged-Intrue
X-Transaction-Id85d3c5addb2u8

cURL Example

curl "https://YourServiceNowInstance/api/x_36687_eid/eid/deleteMgmtRoles" \
--request POST \
--header "Accept:application/json" \
--user 'admin':'admin'

Delete Management Groups

deleteMgmtGroups

Use this endpoint to delete EmpowerID Groups currently present in ServiceNow.

HTTP Request

Method: POST

POST https://{FQDN_Of_Your_ServiceNow_Instance}/api/x_36687_eid/eid/deleteMgmtGroups 

Header Key/Value Pairs

KeyValue
X-UserTokenYour access token
Acceptapplication/json
Content-Typeapplication/json

Response

Status Code 200 OK

Header Key/Value Pairs

KeyValue
Content-Encodinggzip
DateDate / Time GMT
ServerServiceNow
Strict-Transport-Securitymax-age63072000; includeSubDomains
Transfer-Encodingchunked
X-Is-Logged-Intrue
X-Transaction-Id85d3c5addb2u8

cURL Example

curl "https://YourServiceNowInstance/api/x_36687_eid/eid/deleteMgmtGroups" \
--request POST \
--header "Accept:application/json" \
--user 'admin':'admin'
EmpowerID APIs Consumed by ServiceNow

There are 3 main tasks performed in EmpowerID workflows within ServiceNow that are accomplished by making an API call to EmpowerID application. These tasks are as below:

  1. Create Employee
  2. Assign Group
  3. Assign Management Role
info

To invoke the above API calls, the identity making the call must have a valid token.

Create Employee

HTTP Method: POST

Endpoint

https://{FQDN_OF_Your_EmpowerID_Web_Server}/api/services/v1/ExecuteWorkflow/start

Header Key/Value Pairs

KeyValue
AuthorizationBearer ${token}
X-EmpowerID-API-Keyf0f46cce-7cd1-4c34-8f7e-d54e96a2ab41
Content-Typeapplication/json

Request Data

Request data is sent to the API in JSON format.

{
"Name": "SNOWCreatePersonAdvanced",
"InputParameters":
{
"TargetPerson" :
{
"LastName": "${FirstName}",
"FirstName": "${LastName}",
"Password": "${Password}",
"Email": "${Email}",
"Login": "${Username}"
},
"GroupsToAddGuids" : "${MgmtGroupsToAdd}",
"GroupRequestInitiator" : "${GroupRequestInitiator}",
"GroupRequestApprover" : "${GroupRequestApprover}",
"GroupStartAccess" : "${GroupStartAccess}",
"GroupEndAccess" : "${GroupEndAccess}",
"ManagementRoleToJoinGuids" : "${MgmtRolesToAdd}",
"ManagementRoleRequestInitiator" : "${RolesRequestInitiator}",
"ManagementRoleRequestApprover" : "${RolesRequestApprover}",
"ManagementRoleStartAccess" : "${RoleStartAccess}",
"ManagementRoleEndAccess" : "${RoleEndAccess}",
"AccountStoreGUID" : "${AccountStoreGUID}"
}
}

Assign Group

HTTP Method: POST

Endpoint

https://{FQDN_OF_Your_EmpowerID_Web_Server}/api/services/v1/ExecuteWorkflow/start

Header Key/Value Pairs

KeyValue
AuthorizationBearer ${token}
X-EmpowerID-API-Keyf0f46cce-7cd1-4c34-8f7e-d54e96a2ab41
Content-Typeapplication/json

Request Data

Request data is sent to the API in JSON format.

{
"Name": "SnowUpdatePersonDirectAssignment",
"InputParameters":
{
"TargetPersonLogonName" : "${TargetPersonLogin}",
"GroupsToAddGuids" : "${GroupToAssign}",
"GroupsToRemoveGuids" : "${GroupsToRemove}",
"RequestInitiator" : "${Requester}",
"RequestApprover" : "${Approver}",
"AccountStoreGUID" : "F4047F57-0AFE-478D-BB2B-2E5F6E8C50FE"
}
}

Assign Management Role

HTTP Method: POST

Endpoint

https://{FQDN_OF_Your_EmpowerID_Web_Server}/api/services/v1/ExecuteWorkflow/start

Header Key/Value Pairs

KeyValue
AuthorizationBearer ${token}
X-EmpowerID-API-Keyf0f46cce-7cd1-4c34-8f7e-d54e96a2ab41
Content-Typeapplication/json

Request Data Request data is sent to the API in JSON format.

{
"Name": "SNOWUpdatePersonMgmtRole",
"InputParameters":
{
"TargetPersonLogonName" : "${TargetPersonLogin}",
"ManagementRoleToJoinGuids" : "${ManagementRoleToJoin}",
"ManagementRoleToLeaveGuids" : "${ManagementRoleToLeave}",
"RequestInitiator" : "${Requester}",
"RequestApprover" : "${Approver}",
"AccountStoreGUID" : "{AccountStoreGUID}",
"StartAccess" : "${StartDate}",
"EndAccess" : "${EndDate}"
}
}