Announcing the Saviynt Knowledge Exchange unifying the Saviynt forums, documentation, training,
and more in a single search tool across platforms. Read the announcement here.

Import Coupa Roles/Entitlements

LeeEG
New Contributor II
New Contributor II

Hello, my team and I are trying to pull in roles from our client's Coupa environment to add as entitlements in Saviynt. Because Coupa has no roles endpoint, we are using a single user as the container for all the roles to be imported and mapped. However, we are having issues in getting Saviynt to run through the embedded list of roles properly (See JSON and Response from GET call below). Any ideas or help would be greatly appreciated. The bolded items under call response are the items we want to import as roles for both the user account to associate it to and the overall list of roles for the app when we iterate through all the users.

v23.12

JSON:

{
"accountParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"url": "https://domain-test.coupahost.com/api/users?offset=50",
"httpContentType": "application/json",
"httpMethod": "GET",
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
}
},
"listField": "",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "id~#~char",
"customproperty1": "email~#~char",
"name": "login~#~char",
"customproperty2": "firstname~#~char",
"customproperty3": "lastname~#~char",
"customproperty4": "fullname~#~char",
"customproperty6": "company~#~char",
"customproperty8": "purchasing-user~#~char",
"customproperty9": "expense-user~#~char",
"customproperty10": "sourcing-user~#~char",
"customproperty11": "inventory-user~#~char",
"customproperty12": "contracts-user~#~char",
"customproperty13": "analytics-user~#~char",
"customproperty14": "created-by.id~#~char",
"customproperty15": "sso-identifier~#~char",
"customproperty16": "employee-number~#~char",
"customproperty17": "active~#~char"
},
"pagination": {
"offset": {
"offsetParam": "offset",
"batchParam": "limit",
"batchSize": 50,
"totalCountPath": 85000
}
}
}
},
"acctEntMappings": {
"Roles": {
"listPath": "",
"idPath": "roles",
"keyField": "entitlementID",
"importAsEntitlement": true,
"colsToPropsMap": {
"entitlement_value": "name~#~char",
"entitlementID": "id~#~char",
"displayname": "name~#~char"
}
}
}
},
"entitlementParams": {
"connection": "acctAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"Roles": {
"entTypeOrder": 0,
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"http": {
"httpHeaders": {
"Authorization": "${access_token}",
"Accept": "application/json"
},
"url": "https://domain-test.coupahost.com/api/users?id=329 ",
"httpContentType": "application/json",
"httpMethod": "GET"
},
"listField": "roles",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID": "id~#~char",
"entitlement_value": "name~#~char",
"description": "description~#~char"
}
}
}
}
}
},
"acctEntParams": {
"processingType": "acctToEntMapping"
}
}

Call Response:

[
{
"id": 329,
"created-at": "2024-01-09T09:48:37-05:00",
"updated-at": "2024-01-09T09:50:01-05:00",
"login": "entitlementTest@test.com",
"email": "entitlementTest@test.com",
"risk-assess-user": false,
"employee-number": "1234565589",
"firstname": "entitlement",
"lastname": "test",
"fullname": "entitlement test",
"account-security-type": 0,
"authentication-method": "saml",
"sso-identifier": "entitlementTest@coupa.com",
"default-locale": null,
"business-group-security-type": 1,
"mention-name": "entitlementTest.raah.ca",
"seniority-level": null,
"business-function": null,
"employee-payment-channel": "ERP",
"allow-employee-payment-account-creation": false,
"middlename": null,
"active": true,
"api-user": false,
"aic-user": false,
"purchasing-user": true,
"expense-user": false,
"sourcing-user": false,
"inventory-user": false,
"contracts-user": false,
"analytics-user": false,
"spend-guard-user": false,
"ccw-user": false,
"clm-advanced-user": false,
"supply-chain-user": false,
"travel-user": false,
"treasury-user": false,
"invoicing-user": false,
"phone-work": {
"country-code": "1",
"area-code": "650",
"number": "5856306",
"extension": null
},
"phone-mobile": null,
"country-of-residence": null,
"roles": [
{
"id": 7,
"name": "Accounting Supervisor",
"description": "Adds ability to manage suppliers, financial setup, budgets and approve on-hold invoices",
"omnipotent": false,
"system-role": true
}
],
"manager": null,
"default-address": null,
"default-account": null,
"default-account-type": null,
"default-currency": {
"id": 1,
"code": "USD",
"decimals": 2
},
"department": null,
"requisition-approval-limit": {
"id": 12,
"name": "10,000.00 USD",
"amount": "10000.00",
"subject": "requisition_header"
},
"invoice-approval-limit": {
"id": 77,
"name": "15,000.00 USD",
"amount": "15000.00",
"subject": "invoice_header"
},
"requisition-self-approval-limit": {
"id": 41,
"name": "500.00 USD",
"amount": "500.00",
"subject": "requisition_header"
},
"invoice-self-approval-limit": null,
"content-groups": [],
"account-groups": [],
"user-groups": [],
"created-by": {
"id": 217,
"login": "Saviynt_Sandbox",
"employee-number": null
},
"updated-by": {
"id": 217,
"login": "Saviynt_Sandbox",
"employee-number": null
}
}
]

[This message has been edited by moderator to disable url hyperlink]

Who Me Too'd this topic