<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Business Rule or similar to update the manager field when a user logs in in Community Central forum</title>
    <link>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3411938#M5211</link>
    <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I have an issue where when a user logs in I want the system to change the manager to a set person if the manager field is either empty or the manager in there is either inactive or locked out.&lt;BR /&gt;&lt;BR /&gt;I have an async business rule set to run after update and run the below script but it doesn't seem to be triggering or working as expected.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;(function executeRule(current, previous /*null when async*/) {


    var currentUserID = currentUser.getID(); 
    var user = new GlideRecord('sys_user');

    if (user.get(currentUserID)) {
        var managerID = user.manager;
        var manager = new GlideRecord('sys_user');

        // Check if manager is empty
        if (!managerID) {
            jslog('No manager assigned. Changing manager for user: ' + user.user_name);
            user.manager = '7c7b45b31bfa7910bc98eb59b04bcb76'; // Replace with the new manager's sys_id
            user.update();
            return;
        }

        // Check if the current manager is active or not locked out
        if (manager.get(managerID)) {
            if (!manager.active || manager.locked_out) {
                jslog('Manager is inactive or locked out. Changing manager for user: ' + user.user_name);
                user.manager = '7c7b45b31bfa7910bc98eb59b04bcb76'; // Replace with the new manager's sys_id
                user.update();
            }
        }
    }

    function jslog(message) {
        gs.info('Business Rule: Update Manager on Login - ' + message);
    }

})(current, previous);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help to get this working would be greatly appreciated.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 24 Oct 2025 07:11:04 GMT</pubDate>
    <dc:creator>wiganmichae</dc:creator>
    <dc:date>2025-10-24T07:11:04Z</dc:date>
    <item>
      <title>Business Rule or similar to update the manager field when a user logs in</title>
      <link>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3411938#M5211</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I have an issue where when a user logs in I want the system to change the manager to a set person if the manager field is either empty or the manager in there is either inactive or locked out.&lt;BR /&gt;&lt;BR /&gt;I have an async business rule set to run after update and run the below script but it doesn't seem to be triggering or working as expected.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;(function executeRule(current, previous /*null when async*/) {


    var currentUserID = currentUser.getID(); 
    var user = new GlideRecord('sys_user');

    if (user.get(currentUserID)) {
        var managerID = user.manager;
        var manager = new GlideRecord('sys_user');

        // Check if manager is empty
        if (!managerID) {
            jslog('No manager assigned. Changing manager for user: ' + user.user_name);
            user.manager = '7c7b45b31bfa7910bc98eb59b04bcb76'; // Replace with the new manager's sys_id
            user.update();
            return;
        }

        // Check if the current manager is active or not locked out
        if (manager.get(managerID)) {
            if (!manager.active || manager.locked_out) {
                jslog('Manager is inactive or locked out. Changing manager for user: ' + user.user_name);
                user.manager = '7c7b45b31bfa7910bc98eb59b04bcb76'; // Replace with the new manager's sys_id
                user.update();
            }
        }
    }

    function jslog(message) {
        gs.info('Business Rule: Update Manager on Login - ' + message);
    }

})(current, previous);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help to get this working would be greatly appreciated.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Oct 2025 07:11:04 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3411938#M5211</guid>
      <dc:creator>wiganmichae</dc:creator>
      <dc:date>2025-10-24T07:11:04Z</dc:date>
    </item>
    <item>
      <title>Re: Business Rule or similar to update the manager field when a user logs in</title>
      <link>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3411941#M5212</link>
      <description>&lt;P&gt;ServiceNow – Set/Correct a User’s Manager at Login (without recursion)&lt;/P&gt;&lt;P&gt;Why your current approach fails&lt;BR /&gt;- An AFTER UPDATE Business Rule on sys_user will NOT run on login (logging in does not update sys_user).&lt;BR /&gt;- The code uses currentUser.getID() (undefined). Use gs.getUserID().&lt;BR /&gt;- Calling user.update() from arbitrary contexts can retrigger BRs; prefer a login-triggered context and a silent update.&lt;/P&gt;&lt;P&gt;Two supported patterns&lt;BR /&gt;======================&lt;/P&gt;&lt;P&gt;Pattern A — Script Action on 'user.login' (recommended)&lt;BR /&gt;------------------------------------------------------&lt;BR /&gt;1) Go to: System Policy &amp;gt; Script Actions → New&lt;BR /&gt;2) Set:&lt;BR /&gt;- Active: true&lt;BR /&gt;- When to run: After&lt;BR /&gt;- Event name: user.login (built-in event fired on successful login)&lt;BR /&gt;3) Script (replace MANAGER_SYSID with your manager user sys_id):&lt;/P&gt;&lt;P&gt;(function() {&lt;BR /&gt;var MANAGER_SYSID = '7c7b45b31bfa7910bc98eb59b04bcb76';&lt;/P&gt;&lt;P&gt;var uid = gs.getUserID();&lt;BR /&gt;if (!uid) return;&lt;/P&gt;&lt;P&gt;// Do not run for special users if desired&lt;BR /&gt;// if (gs.hasRole('admin')) return; // optional&lt;/P&gt;&lt;P&gt;var u = new GlideRecord('sys_user');&lt;BR /&gt;if (!u.get(uid)) return;&lt;/P&gt;&lt;P&gt;var needsChange = false;&lt;/P&gt;&lt;P&gt;// If manager is empty&lt;BR /&gt;if (!u.getValue('manager')) {&lt;BR /&gt;needsChange = true;&lt;BR /&gt;} else {&lt;BR /&gt;// Load manager and validate&lt;BR /&gt;var mgr = u.getElement('manager').getRefRecord();&lt;BR /&gt;if (!mgr || mgr.active == false || mgr.locked_out == true) {&lt;BR /&gt;needsChange = true;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;if (needsChange) {&lt;BR /&gt;u.setWorkflow(false); // avoid BR/Flow/Notifications&lt;BR /&gt;u.setUseEngines(false);&lt;BR /&gt;u.setValue('manager', MANAGER_SYSID);&lt;BR /&gt;u.update();&lt;BR /&gt;}&lt;BR /&gt;})();&lt;/P&gt;&lt;P&gt;Notes:&lt;BR /&gt;- Runs ONLY when a user logs in (no need to watch table updates).&lt;BR /&gt;- setWorkflow(false)/setUseEngines(false) prevents side effects.&lt;/P&gt;&lt;P&gt;Pattern B — Business Rule on sys_user_session (after insert)&lt;BR /&gt;------------------------------------------------------------&lt;BR /&gt;1) Table: sys_user_session&lt;BR /&gt;2) When: After Insert (a row is created at login)&lt;BR /&gt;3) Condition: current.user IS NOT EMPTY&lt;BR /&gt;4) Script:&lt;/P&gt;&lt;P&gt;(function executeRule(current, previous /*null when async*/) {&lt;BR /&gt;var MANAGER_SYSID = '7c7b45b31bfa7910bc98eb59b04bcb76';&lt;BR /&gt;var uid = current.user.toString();&lt;BR /&gt;if (!uid) return;&lt;/P&gt;&lt;P&gt;var u = new GlideRecord('sys_user');&lt;BR /&gt;if (!u.get(uid)) return;&lt;/P&gt;&lt;P&gt;var needsChange = false;&lt;/P&gt;&lt;P&gt;if (!u.getValue('manager')) {&lt;BR /&gt;needsChange = true;&lt;BR /&gt;} else {&lt;BR /&gt;var mgr = u.getElement('manager').getRefRecord();&lt;BR /&gt;if (!mgr || mgr.active == false || mgr.locked_out == true) {&lt;BR /&gt;needsChange = true;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;if (needsChange) {&lt;BR /&gt;u.setWorkflow(false);&lt;BR /&gt;u.setUseEngines(false);&lt;BR /&gt;u.setValue('manager', MANAGER_SYSID);&lt;BR /&gt;u.update();&lt;BR /&gt;}&lt;BR /&gt;})(current, previous);&lt;/P&gt;&lt;P&gt;Troubleshooting &amp;amp; tips&lt;BR /&gt;----------------------&lt;BR /&gt;- Ensure the MANAGER_SYSID points to an ACTIVE, not locked_out user.&lt;BR /&gt;- Avoid recursion: never place this on an UPDATE rule against sys_user.&lt;BR /&gt;- Logging: use gs.info(...) in the script action while testing.&lt;BR /&gt;- Security: confirm the account running the script has rights to update sys_user.manager.&lt;BR /&gt;- If you must run conditionally (e.g., only for certain companies), add checks before update.&lt;/P&gt;&lt;P&gt;TL;DR&lt;BR /&gt;-----&lt;BR /&gt;Don’t use an AFTER UPDATE Business Rule on sys_user for login logic. Use a **Script Action on user.login** (or BR on sys_user_session AFTER INSERT), then do a **silent update** of the manager when empty/inactive/locked_out.&lt;/P&gt;</description>
      <pubDate>Fri, 24 Oct 2025 07:13:29 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3411941#M5212</guid>
      <dc:creator>MaxMixali</dc:creator>
      <dc:date>2025-10-24T07:13:29Z</dc:date>
    </item>
    <item>
      <title>Re: Business Rule or similar to update the manager field when a user logs in</title>
      <link>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3412040#M5215</link>
      <description>&lt;P&gt;ServiceNow – Update a User’s Manager on Login (Working Patterns &amp;amp; Fixes)&lt;/P&gt;&lt;P&gt;Your current approach (async BR, using currentUser) won’t trigger on login and has a few issues:&lt;BR /&gt;- A Business Rule won’t run “on login” unless a field on sys_user actually changes. (Login does update last_login / last_login_time.)&lt;BR /&gt;- In a BR script you cannot use currentUser; use gs.getUserID().&lt;BR /&gt;- You’re re-querying the same user; use current (if the BR is on sys_user) or a clean GlideRecord with guards.&lt;BR /&gt;- Prevent recursion when you update sys_user from a sys_user BR.&lt;/P&gt;&lt;P&gt;Below are two reliable patterns. Prefer Pattern A.&lt;/P&gt;&lt;P&gt;------------------------------------------------------------&lt;BR /&gt;Pattern A (Recommended): Script Action on Login Event&lt;BR /&gt;------------------------------------------------------------&lt;BR /&gt;• Runs when the platform fires the 'user.login' event.&lt;BR /&gt;• No need to rely on sys_user field changes.&lt;/P&gt;&lt;P&gt;1) Create Script Action&lt;BR /&gt;- Navigate: System Policy → Events → Registry → ensure event 'user.login' exists (it is OOB).&lt;BR /&gt;- Go to: System Policy → Events → Script Actions → New&lt;BR /&gt;• Name: Set Manager on Login&lt;BR /&gt;• Event name: user.login&lt;BR /&gt;• Active: true&lt;BR /&gt;• Order: 100&lt;/P&gt;&lt;P&gt;2) Script (Script Action)&lt;BR /&gt;(function() {&lt;BR /&gt;var TARGET_MANAGER = '7c7b45b31bfa7910bc98eb59b04bcb76'; // TODO: replace&lt;/P&gt;&lt;P&gt;// The user who just logged in is passed in parm1 (OOB)&lt;BR /&gt;var uid = event.parm1 || gs.getUserID();&lt;BR /&gt;if (!uid) return;&lt;/P&gt;&lt;P&gt;var usr = new GlideRecord('sys_user');&lt;BR /&gt;if (!usr.get(uid)) return;&lt;/P&gt;&lt;P&gt;function setManager(gr, mgrSysId) {&lt;BR /&gt;// safety: avoid loops and system updates&lt;BR /&gt;gr.setValue('manager', mgrSysId);&lt;BR /&gt;gr.setWorkflow(false);&lt;BR /&gt;gr.autoSysFields(false);&lt;BR /&gt;gr.update();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;var mgrId = usr.getValue('manager');&lt;BR /&gt;if (!mgrId) {&lt;BR /&gt;gs.info('Login manager fix: assigning default manager to ' + usr.getValue('user_name'));&lt;BR /&gt;setManager(usr, TARGET_MANAGER);&lt;BR /&gt;return;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;var mgr = new GlideRecord('sys_user');&lt;BR /&gt;if (!mgr.get(mgrId)) {&lt;BR /&gt;gs.info('Login manager fix: existing manager missing, assigning default manager to ' + usr.getValue('user_name'));&lt;BR /&gt;setManager(usr, TARGET_MANAGER);&lt;BR /&gt;return;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;var inactive = (mgr.getValue('active') == 'false');&lt;BR /&gt;var locked = (mgr.getValue('locked_out') == 'true');&lt;/P&gt;&lt;P&gt;if (inactive || locked) {&lt;BR /&gt;gs.info('Login manager fix: manager inactive/locked, assigning default manager to ' + usr.getValue('user_name'));&lt;BR /&gt;setManager(usr, TARGET_MANAGER);&lt;BR /&gt;}&lt;BR /&gt;})();&lt;/P&gt;&lt;P&gt;Notes&lt;BR /&gt;- event.parm1 is the sys_id of the user who logged in (OOB behavior).&lt;BR /&gt;- Keep this Script Action lightweight to avoid login latency.&lt;/P&gt;&lt;P&gt;------------------------------------------------------------&lt;BR /&gt;Pattern B: Business Rule on sys_user (last_login change)&lt;BR /&gt;------------------------------------------------------------&lt;BR /&gt;• Runs when sys_user.last_login_time (or last_login) changes at login.&lt;/P&gt;&lt;P&gt;1) Create Business Rule&lt;BR /&gt;- Table: sys_user&lt;BR /&gt;- When: after update (can be async = true)&lt;BR /&gt;- Condition: current.last_login_time.changes() || current.last_login.changes()&lt;BR /&gt;- Advanced: ✓&lt;/P&gt;&lt;P&gt;2) Script (Business Rule)&lt;BR /&gt;(function executeRule(current, previous) {&lt;BR /&gt;var TARGET_MANAGER = '7c7b45b31bfa7910bc98eb59b04bcb76'; // TODO: replace&lt;/P&gt;&lt;P&gt;// guard: don't run if already set to target&lt;BR /&gt;if (current.getValue('manager') == TARGET_MANAGER)&lt;BR /&gt;return;&lt;/P&gt;&lt;P&gt;var mgrId = current.getValue('manager');&lt;/P&gt;&lt;P&gt;// helper to update safely without re-triggering the rule&lt;BR /&gt;function updateManager(gr, mgrSysId) {&lt;BR /&gt;var u = new GlideRecord('sys_user');&lt;BR /&gt;if (!u.get(gr.getUniqueValue())) return;&lt;BR /&gt;u.setValue('manager', mgrSysId);&lt;BR /&gt;u.setWorkflow(false);&lt;BR /&gt;u.autoSysFields(false);&lt;BR /&gt;u.update();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;if (!mgrId) {&lt;BR /&gt;gs.info('Login manager BR: assigning default manager to ' + current.getValue('user_name'));&lt;BR /&gt;updateManager(current, TARGET_MANAGER);&lt;BR /&gt;return;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;var mgr = new GlideRecord('sys_user');&lt;BR /&gt;if (!mgr.get(mgrId)) {&lt;BR /&gt;gs.info('Login manager BR: manager ref broken, assigning default manager to ' + current.getValue('user_name'));&lt;BR /&gt;updateManager(current, TARGET_MANAGER);&lt;BR /&gt;return;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;var inactive = (mgr.getValue('active') == 'false');&lt;BR /&gt;var locked = (mgr.getValue('locked_out') == 'true');&lt;/P&gt;&lt;P&gt;if (inactive || locked) {&lt;BR /&gt;gs.info('Login manager BR: manager inactive/locked, assigning default manager to ' + current.getValue('user_name'));&lt;BR /&gt;updateManager(current, TARGET_MANAGER);&lt;BR /&gt;}&lt;BR /&gt;})(current, previous);&lt;/P&gt;&lt;P&gt;Notes&lt;BR /&gt;- Use changes() on last_login_time or last_login so the rule only runs on login updates.&lt;BR /&gt;- Use a second GlideRecord with setWorkflow(false) to avoid recursive triggers.&lt;BR /&gt;- Don’t use currentUser.getID(); use gs.getUserID() when needed.&lt;/P&gt;&lt;P&gt;------------------------------------------------------------&lt;BR /&gt;Debugging checklist&lt;BR /&gt;------------------------------------------------------------&lt;BR /&gt;- Confirm 'user.login' events are firing (System Logs → Events → filter by name = user.login).&lt;BR /&gt;- If using BR: verify that last_login_time changes on login in your instance version.&lt;BR /&gt;- Ensure the target manager sys_id is valid and user is active/unlocked.&lt;BR /&gt;- Add temporary gs.info() logs to verify paths.&lt;BR /&gt;- Test with a non-admin user; admins may have atypical profiles (e.g., no company, impersonation behavior).&lt;/P&gt;&lt;P&gt;------------------------------------------------------------&lt;BR /&gt;Security &amp;amp; Governance&lt;BR /&gt;------------------------------------------------------------&lt;BR /&gt;- Document why you’re defaulting managers; consider excluding privileged accounts (admin, security_admin).&lt;BR /&gt;- Wrap behind a system property (e.g., glide.company.default_manager) to avoid hardcoding.&lt;BR /&gt;- Consider a one-time data correction job if many users lack a manager today, then keep this logic for future logins only.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Oct 2025 08:23:38 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3412040#M5215</guid>
      <dc:creator>MaxMixali</dc:creator>
      <dc:date>2025-10-24T08:23:38Z</dc:date>
    </item>
    <item>
      <title>Re: Business Rule or similar to update the manager field when a user logs in</title>
      <link>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3412089#M5219</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://www.servicenow.com/community/user/viewprofilepage/user-id/715121"&gt;@wiganmichae&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried your code in my PDI and it is working fine for me please check below code&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;(function executeRule(current, previous /*null when async*/ ) {

    // Add your code here
    var currentUserID = current.sys_id; // I made changes here
	gs.log("currentUserID = " + currentUserID);
    var user = new GlideRecord('sys_user');

    if (user.get(currentUserID)) {
        var managerID = user.manager;
		gs.log("Manager çheck = " + managerID);
        var manager = new GlideRecord('sys_user');

        // Check if manager is emptyi
        if (!managerID) {
            gs.log('No manager assigned. Changing manager for user: ' + user.user_name);
            user.manager = '4ddc2f1193576a109305f520ed03d681'; // Replace with the new manager's sys_id
			user.update()
        }

        // Check if the current manager is active or not locked out
        if (manager.get(managerID)) {
            if (!manager.active || manager.locked_out) {
                gs.log('Manager is inactive or locked out. Changing manager for user: ' + user.user_name);
                user.manager = '4ddc2f1193576a109305f520ed03d681'; // Replace with the new manager's sys_id
				user.update()
            }
        }
    }

})(current, previous);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Result&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SarthakKashyap_0-1761296027338.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/478621i2FBED0ADD9F862B7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="SarthakKashyap_0-1761296027338.png" alt="SarthakKashyap_0-1761296027338.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Please mark my answer correct and helpful if this works for you&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Sarthak&lt;/P&gt;</description>
      <pubDate>Fri, 24 Oct 2025 08:54:06 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3412089#M5219</guid>
      <dc:creator>Sarthak Kashyap</dc:creator>
      <dc:date>2025-10-24T08:54:06Z</dc:date>
    </item>
    <item>
      <title>Re: Business Rule or similar to update the manager field when a user logs in</title>
      <link>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3412159#M5225</link>
      <description>&lt;P&gt;&lt;a href="https://www.servicenow.com/community/user/viewprofilepage/user-id/715121"&gt;@wiganmichae&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;that's not how manager are populated in sys_user.&lt;/P&gt;
&lt;P&gt;You don't have AD/LDAP to bring in users.&lt;/P&gt;
&lt;P&gt;also you want the manager to be updated when user logins so will that business rule run when user logs in?&lt;/P&gt;
&lt;P&gt;try this and it will work if BR condition satisfies&lt;/P&gt;
&lt;P&gt;Make BR as Before Update and Below Condition&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Last Login time [Changes]&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;(function execute(inputs, outputs) {
    var userId = gs.getUserID();
    if (!userId)
        return;

    var user = new GlideRecord('sys_user');
    if (!user.get(userId))
        return;

    var managerId = user.manager.sys_id; // or user.getValue('manager')
    var updateNeeded = false;
    var newManagerSysId = '7c7b45b31bfa7910bc98eb59b04bcb76'; // target manager sys_id

    if (!managerId) {
        updateNeeded = true;
        gs.info('No manager assigned. Updating manager for user: ' + user.user_name);
    } else {
        var manager = new GlideRecord('sys_user');
        if (manager.get(managerId)) {
            if (!manager.active || manager.locked_out) {
                updateNeeded = true;
                gs.info('Manager inactive/locked. Updating manager for user: ' + user.user_name);
            }
        }
    }

    if (updateNeeded) {
        current.manager = newManagerSysId;
    }
})(inputs, outputs);&lt;/LI-CODE&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":light_bulb:"&gt;💡&lt;/span&gt; If my response helped, please mark it as correct &lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; and close the thread &lt;span class="lia-unicode-emoji" title=":locked:"&gt;🔒&lt;/span&gt;— this helps future readers find the solution faster! &lt;span class="lia-unicode-emoji" title=":folded_hands:"&gt;🙏&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Oct 2025 09:40:25 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3412159#M5225</guid>
      <dc:creator>Ankur Bawiskar</dc:creator>
      <dc:date>2025-10-24T09:40:25Z</dc:date>
    </item>
    <item>
      <title>Re: Business Rule or similar to update the manager field when a user logs in</title>
      <link>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3412169#M5226</link>
      <description>&lt;P&gt;I did this thing on Before BR&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Please mark my answer correct and helpful if this works for you&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Sarthak&lt;/P&gt;</description>
      <pubDate>Fri, 24 Oct 2025 09:46:58 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3412169#M5226</guid>
      <dc:creator>Sarthak Kashyap</dc:creator>
      <dc:date>2025-10-24T09:46:58Z</dc:date>
    </item>
    <item>
      <title>Re: Business Rule or similar to update the manager field when a user logs in</title>
      <link>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3413023#M5241</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;Yes I understand that but we have an issue with how Okta is doing some users and this is a fix for that until we can convince the cyber team to fix the issue.&amp;nbsp; Basically trying to fix an issue that affects a small number of users who don't get assigned correctly or at all.&lt;/P&gt;</description>
      <pubDate>Sun, 26 Oct 2025 23:58:28 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3413023#M5241</guid>
      <dc:creator>wiganmichae</dc:creator>
      <dc:date>2025-10-26T23:58:28Z</dc:date>
    </item>
    <item>
      <title>Re: Business Rule or similar to update the manager field when a user logs in</title>
      <link>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3413034#M5243</link>
      <description>&lt;P&gt;This is working fine now, thanks for the help everyone&lt;/P&gt;</description>
      <pubDate>Mon, 27 Oct 2025 01:25:46 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-central-forum/business-rule-or-similar-to-update-the-manager-field-when-a-user/m-p/3413034#M5243</guid>
      <dc:creator>wiganmichae</dc:creator>
      <dc:date>2025-10-27T01:25:46Z</dc:date>
    </item>
  </channel>
</rss>

