We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

User Creation Email with Password Reset Link

rah dev
Tera Contributor

 

Hi community, good day.

I have a requirement: there is a notification set up on the User table. I want that whenever a user is created, the notification should be triggered for that particular user. In that notification, there should be an email script for resetting the password. When the user clicks on it, they should be redirected to the password reset screen where they can set their password.

I am currently using this script on a normal page, but the result is that it redirects me to the login screen instead.

(function runMailScript(current, template, email, email_action, event) {

    var baseUrl = gs.getProperty('glide.servlet.uri');

    if (!current || current.getTableName() != 'sys_user') {
        template.print("Invalid user record.");
        return;
    }

    var resetLink = baseUrl + "login.do?sysparm_url=/$pwd_reset.do?sysparm_user=" + current.user_name;

    template.print("<p>Dear " + current.name + ",</p>");
    template.print("<p>You have successfully registered.</p>");
    template.print("<p>Please click the link below to set your password:</p>");
    template.print("<p><a href='" + resetLink + "'>Set Your Password</a></p>");
    template.print("<p>If you did not request this, please ignore this email.</p>");

})(current, template, email, email_action, event);

rahdev_1-1771002957452.png

 

10 REPLIES 10

martinvirag
Mega Sage

hi!

Why don't you use the OOB PasswordResetUtil() Script include for this?  There is an event called 

password.reset.url , that triggers .

The URL in that util is actually

'/passwordreset.do?sysparm_id=' + user.sys_id + '&sysparm_request_id=' + requestId + '&sysparm_nostack=true&sysparm_token=' + token;

So try to adjust your code to comply this


Regards,
**Martin Virag**
ServiceNow Rising Star