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

String object list - All accounts and entitlements are not fully imported into saviynt

Shaik-Misba
New Contributor III
New Contributor III

I am trying to import accounts and entitlements from the rest application. I am able import only 50 accounts and 6 entitlements. Here I am importing entitlements from the accounts itself. In the api response header there is a link field, there is no count and starting page info in both response and header. I am providing the json and the sample response and link.

{
    "accountParams": {
        "connection": "acctAuth",
        "createUsers": false,
        "adminName": "admin",
        "processingType": "SequentialAndIterative",
        "call": {
            "call1": {
                "callOrder": 0,
                "stageNumber": 0,
                "showResponse": true,
                "http": {
                    "url": "https://xxxxxxx/admin/api/2024-07/users.json",
                    "httpParams": "",
                    "httpMethod": "GET",
                    "httpHeaders": {
                        "X-abc-Access-Token": "${access_token}"
                    }
                },
                "listField": "users",
                "keyField": "accountID",
                "colsToPropsMap": {
                    "accountID": "id~#~char",
                    "name": "first_name~#~char",
                    "customproperty3": "email~#~char",
                    "customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
                },
                "pagination": {
                    "nextUrl": {
                        "nextUrlPath": "${headers?.Link==null?'':headers?.Link?.contains('next')?headers?.Link?.split(',')?.size()==2?headers?.Link?.split(',')[0]?.replace('<', '')?.replace('>; rel=\"next\"','')?.trim():headers?.Link?.split(',')[1].replace('<', '').replace('>; rel=\"next\"','').trim():''}"    
                    }
 
 
                }
            }
        },
        "acctEntMappings": {
            "Permissions": {
                "listPath": "permissions",
                "idPath": "",
                "keyField": "entitlementID"
            }
        }
    },
    "entitlementParams": {
        "connection": "acctAuth",
        "processingType": "SequentialAndIterative",
        "entTypes": {
            "Permissions": {
                "entTypeOrder": 0,
                "call": {
                    "call1": {
                        "callOrder": 0,
                        "stageNumber": 0,
                        "showResponse": true,
                        "http": {
                            "url": "https://xxxxxx/admin/api/2024-07/users.json",
                            "httpParams": "",
                            "httpMethod": "GET",
                            "httpHeaders": {
                                "X-abc-Token": "${access_token}"
                            }
                        },
                        "listField": "users",
                        "keyField": "entitlementID",
                        "colsToPropsMap": {
                            "entitlementID": "permissions[0]~#~char",
                            "entitlement_value": "permissions[0]~#~char"
                        },
                        "pagination": {
                            "nextUrl": {
                                "nextUrlPath": "${headers?.Link==null?'':headers?.Link?.contains('next')?headers?.Link?.split(',')?.size()==2?headers?.Link?.split(',')[0]?.replace('<', '')?.replace('>; rel=\"next\"','')?.trim():headers?.Link?.split(',')[1].replace('<', '').replace('>; rel=\"next\"','').trim():''}"    
                            }
}
                    }
                }
            }
        }
    },
    "acctEntParams": {
        "processingType": "acctToEntMapping"
    }
}

Here is the Postman response:-

{
    "users": [
        {
            "id"test19,
            "first_name""firstName",
            "email""abc@gmail.com",
            "url"null,
            "im"null,
            "screen_name"null,
            "phone"null,
            "last_name""Edler",
            "account_owner"false,
            "receive_announcements"0,
            "bio"null,
            "permissions": [
                "applications",
                "channels",
                "customers",
                "dashboard",
                "domains",
                "draft_orders",
                "edit_orders",
                "gift_cards",
                "links",
                "locations",
              
            ],
            "locale""en-GX",
            "user_type""regular",
            "admin_graphql_api_id""gid://xxx/AdxxabrSerializerxxxx",
            "tfa_enabled?"false
        }
]
}
Could you please help me out?
3 REPLIES 3

Dhruv_S
Saviynt Employee
Saviynt Employee

Please refer to the REST connector guide for JSON construction and supported formats.

Examples for JSON Construction (saviyntcloud.com)

Shaik-Misba
New Contributor III
New Contributor III

CP31 value is populated in Saviynt Still the all the entitlements are not imported. Now the accounts are imported but the entitlements count is only 13 

Issue resolved. I am sharing the updated json for your reference.

{
"accountParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"call": {
"call0": {
"callOrder": 1,
"stageNumber": 1,
"http": {
"httpMethod": "GET",
"url": "xxxxx/admin/api/2024-07/users.json",
"httpHeaders": {
"X-xx-Access-Token": "${access_token}",
"Accept": "*/*"
}
},
"listField": "users",
"keyField": "accountID",
"colsToPropsMap": {
"accountID": "id~#~char",
"name": "email~#~char",
"customproperty1": "firstName~#~char",
"customproperty2": "lastName~#~char",
"customproperty3": "email~#~char",
"customproperty4": "permissions[0]~#~char",
"customproperty31": "STORE#ACC#ENT#MAPPINGINFO~#~char"
},
"pagination": {
"nextUrl": {
"nextUrlPath": "${headers?.link==null?'':headers?.link?.contains('next')?headers?.link?.split(',')?.size()==2?headers?.link?.split(',')[1]?.replace('<', '')?.replace('>; rel=\"next\"','')?.trim():headers?.link?.split(',')[0].replace('<', '').replace('>; rel=\"next\"','').trim():''}"
}
}
}
},
"acctEntMappings": {
"permissions": {
"listPath": "permissions",
"idPath": "",
"keyField": "entitlementID",
"colsToPropsMap": {
"entitlementID":"#CONST#${return response?.toString()}~#~char",
"entitlement_value":"#CONST#${return response?.toString()}~#~char"
}

}
}
},
"entitlementParams": {
"connection": "userAuth",
"processingType": "SequentialAndIterative",
"entTypes": {
"permissions": {

}
}
},
"acctEntParams": {
"entTypes": {
"permissions": {
"call": {
"call1": {
"callOrder": 0,
"stageNumber": 0,
"processingType": "acctToEntMapping"
}
}
}
}
}
}