Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Multiple call-in account import JSON

navneetv
Regular Contributor II
Regular Contributor II

Hi All,

Need your help or suggestion. I am working to import user details; however, I'm not sure how to link all three calls together. If there were only two, it would be easy to use accountID in the second call, but I'm not sure how to pass another value to the third API call.

First API call from where we get the team ID, which will pass to second API call 

navneetv_0-1729165259790.png

 

Second API call where we get different team ID which will be passed in third API call

 

navneetv_1-1729165259805.png

 

third API call

navneetv_2-1729165259820.png

 

Note: Team ID is different in each call and that team id can be passed in next call example 

First api : get all team ID : example Team-11235


Second API :  whatever TeamID( TEAM-11235) we get in first  api, need to use in second API example. team-3323


Third API : whatever teamID , we get in second api( TEAM-3323), should be used in third API to get the user email address  

[This message has been edited by moderator to mask sensitive information]

11 REPLIES 11

NM
Esteemed Contributor
Esteemed Contributor

@navneetv make call 3 as a dependent call too.. should take take response from call 2


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'

rushikeshvartak
All-Star
All-Star

Refer https://docs.saviyntcloud.com/bundle/Dev-Handbook-REST-v24x/page/Content/Developers-Handbook.htm  for multi call

Refer Binding response values from one call to another


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

navneetv
Regular Contributor II
Regular Contributor II

 Hi @NM @rushikeshvartak  I am unable to test now due to an internal network change for our application webserver. I will post the results as soon as the Saviynt Connect 2.0 server can communicate with our application.

NM
Esteemed Contributor
Esteemed Contributor

@navneetv is it an in prem application?


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'

navneetv
Regular Contributor II
Regular Contributor II

Yes @NM , could you please also confirm meanwhile , if GET API call URL(below) for importing account is being supported by Saviynt or anything i need to change in URL ?

https://xyz..com/rest/api/latest/search?jql=project%20=%20Teams%20AND%20type%20=%20%22Group%22%20AND...

Since our on-premises system is disconnected due to IP address issues, we are working with our network team. Once it's up, I will test account import JSON by using binding and depends calls.

NM
Esteemed Contributor
Esteemed Contributor

@navneetv for me full url is not visible can you paste in text format.

Meanwhile url looks fine.


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'

navneetv
Regular Contributor II
Regular Contributor II
{
    "accountParams": {
        "connection": "acctAuth",
        "processingType": "SequentialAndIterative",
        "call": {
            "call1": {
                "callOrder": 0,
                "stageNumber": 0,
                "http": {
                    "url": "https://xyz.com/rest/api/latest/search?jql=project%20=%20Teams%20AND%20type%20=%20%22Group%22%20AND%20cf%5B19359%5D%20=%20AD:ABOffice%20AND%20%22Additional%20options%22%20in%20(%22ABO%20User%20Role%22)&maxResults=1000&fields=summary,customfield_17559",
                    "httpHeaders": {
                        "Authorization": "${access_token}",
                        "Accept": "application/json"
                    },
                    "httpContentType": "application/json",
                    "httpMethod": "GET"
                },
                "listField": "issues",
                "keyField": "accountID",
                "colsToPropsMap": {
                    "accountID": "key~#~char",
                    "name": "key~#~char",
                    "customproperty1": "fields.customfield_17559~#~char"
                }
            },
            "call2": {
                "callOrder": 1,
                "stageNumber": 2,
                "http": {
                    "url": "https://xyz.com/rest/api/latest/search?jql=issue%20in%20linkedIssues(%22${accountName}%22)%20AND%20issuetype%20%3D%20%22Team%20Member%22&maxResults=1000&fields=summary",
                    "httpHeaders": {
                        "Authorization": "${access_token}"
                    },
                    "httpContentType": "application/x-www-form-urlencoded",
                    "httpMethod": "GET"
                },
                "inputParams": {
                    "dependentCall": true
                },
                "listField": "issues",
                "keyField": "accountID",
                "nextApiKeyField": "accountID",
                "colsToPropsMap": {
                    "accountID": "key~#~char",
                    "name": "key~#~char"
                }
            },
            "call3": {
                "callOrder": 2,
                "stageNumber": 3,
                "http": {
                    "url": "https://xyz.com/rest/api/latest/search?jql=issue%20in%20linkedIssues(%22${accountName}%22)%20AND%20issuetype%20%3D%20Employee&maxResults=1000&fields=customfield_18851",


                    "httpHeaders": {
                        "Authorization": "${access_token}"
                    },
                    "httpContentType": "application/x-www-form-urlencoded",
                    "httpMethod": "GET"
                },
                "inputParams": {
                    "dependentCall": true
                },
                "listField": "issues",
                "keyField": "accountID",
                "nextApiKeyField": "accountID",
                "colsToPropsMap": {
                    "accountID": "key~#~char",
                    "name": "key~#~char",
                    "displayName": "fields.customfield_18851~#~char",
                    "customproperty3": "fields.customfield_18851~#~char"
                }
            }
        }
    }
}

Hi @NM @rushikeshvartak I have been able to get all users by using binding, but getting more entries from each call 

first call response body 

 

"issues": [
{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
"id": "9237469",
"key": "TEAM-112266",
"fields": {
"summary": "AD_office_IT",
"customfield_17559": "4454-a000-4d87-85af-0cca54f68c9b"
}
},

thrid call response 
{
"expand": "names,schema",
"startAt": 0,
"maxResults": 1000,
"total": 1,
"issues": [
{
"expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
"id": "8758736",
"key": "TEAM-222336",
"fields": {
"customfield_18851": "john.doe@abc.com"
}
}
]
}


I want to map two attributes from the first API call and the email address from the third API call. However, many entries appeared when I reconciled the data.

Can we have three entries based on email addresses where some attribute values should be mapped, which we obtained from the first API call?

navneetv_0-1729585124010.png

 

Its this custom product/application ?


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

navneetv
Regular Contributor II
Regular Contributor II

Its application, but we need to only import account(Third call) and ObjectID(first call) as based on ObjectID we will create the actionable report to add access in Active Directory's account. this is what we have a use case

  • Check with app team if they can create new API for saviynt integration

Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

navneetv
Regular Contributor II
Regular Contributor II

Hi @NM @rushikeshvartak Could you please help or suggest? Since there is  unique value in each call   which should be passed each call. I made accountID those unique values, it creates more entries.