Built something you're proud of? Tell the story. A quick G2 review of App Engine or Build Agent helps other developers see what's possible on ServiceNow. Share your experience.

User Field Empty SSO Software Subscription– Could This Be Due to Incomplete Entra ID Ingestion?

Michyyy
Giga Contributor

Hi everyone,

We’re seeing an issue in SAM Pro where some User fields in software subscription records are empty, even though users exist in sys_user.

Setup:

  • Using SSO Integration Profile to bring in users from Microsoft Entra ID (Azure AD).
  • Users are matched in SAM Pro via username / user ID.
  • The SSO Integration Profile download runs:
    • Microsoft Entra ID - Download Users (Completed) = Created at 13-01-2026 10:43:50 - 13:01-2026 11:24:40
    • Microsoft Entra ID - Download Groups (Failed - Socket Error) = Created at 13-01-2026 11:24:40 - 14:01-2026 00:38:32
    • Microsoft Entra ID - Download Users (Completed) = Created at 14-01-2026 02:40:19 - 14-01-2026 02:43:17
    • Microsoft Entra ID - Download Groups (In progress) = Created at 14-01-2026 02:43:19 - 14-01-2026 02:43:19
  • Some empty-user records have first name / last name in the imported data.

Understanding:
It seems the empty User fields are due to incomplete ingestion from the SSO Integration Profile, not a mapping issue or sys_user problem.

Question:
Can anyone confirm if an incomplete or failed SSO Integration Profile run can result in empty User fields in SAM Pro? And are there recommended steps to safely fix these missing users?

 

Thanks for any insights!

6 REPLIES 6

No UPN values were found with @r followed by a numeric identifier (e.g., @r1, @r2@Tanushree Maiti 

Create a Before insert,update BR on subscription table, which will  execute at the end (highest order) ..Give proper trigger condition.

Sample screen shot.

Screenshot 2026-04-08 220812.png

 

 

Sample code (if any modification is required ,do it):

 

(function executeRule(current, previous /*null when async*/ ) {
var op = current.operation();

if (op == "update") {
if (current.user_principal_name && current.user == '') {
var upnp = current.user_principal_name;

var userGrp = new GlideRecord('sys_user');
userGrp.addEncodedQuery('email=' + upnp + '^ORuser_nameSTARTSWITH' + upnp );
userGrp.orderByDesc('sys_created_on');
userGrp.query();

if (userGrp.next()) {
current.user = userGrp.sys_id.toString();
}
} else {

var upn = current.user_principal_name;

var userGr = new GlideRecord('sys_user');
userGr.addEncodedQuery('email=' + upn + '^ORuser_nameSTARTSWITH' + upn );
userGr.orderByDesc('sys_created_on');
userGr.query();

if (userGr.next()) {
current.user = userGr.sys_id.toString();
}
}
}
})(current, previous);

 

Once done, Run the O365 job and  confirm whether your issue fixed or not.

Please mark this response as Helpful & Accept it as solution if it assisted you with your question.
Regards
Tanushree Maiti
ServiceNow Technical Architect
Linkedin: