New user onboarding emails: password-changed email sent first; neither email greets user by name or includes username / first-time login instructions

Open
#43,553 4 comments 1 reaction 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript

Research direction

Start by tracing the admin user creation flow and the code that sends the password changed and welcome emails; the issue does not name files or tests. Check how user name, username, workspace URL, and first login credentials are passed into each email, then review the relevant email tests. Done means new users receive clear, friendly login instructions with their name and username, without misleading password change wording.

Written by the indexing model from the issue text.

Description

type: bug
Description

When an admin creates a new user (with name, email, and a default password), the email onboarding experience is confusing for a brand-new user. Two emails arrive, and between them the user is never told who they are, what their username is, or how to log in for the first time.

Email 1 — "Your password was changed by an admin" (arrives first)

Email 1 — password changed by an admin, temporary password redacted

Problems:

  1. Wrong framing for a brand-new account. The very first thing a new user learns about the product is that "your password was changed by an admin" — an alarming message about an account they've never used. This is really an "account created" email and should be worded like one.
  2. No greeting by name. It opens with a bare "Hi," even though the admin set the user's full name when creating the account.
  3. No username. The email gives a temporary password but never says what username (or that the email address) should be used to log in. The user has half the credentials.
Email 2 — welcome email

Email 2 — welcome email, workspace name and URL redacted

Problems:

  1. Generic marketing copy ("...try the best open source chat solution available today!") with no username, no temporary password, and no first-time login instructions.
  2. Also no name in the greeting.
Net result

A new user receives a scary-sounding password-change notice and a marketing email, and still has to ask the admin what their username is and where to log in. First-run onboarding via email effectively doesn't work.

Steps to reproduce
  1. As an admin, go to Administration → Users → New user.
  2. Fill in Name, Email, and a Password, and enable Send welcome email.
  3. Save the user.
  4. Check the new user's inbox: a "Your password was changed by an admin" email with a bare temporary password arrives first, followed by the generic welcome email.
Expected behavior

The email(s) sent when an admin creates a user should:

  • Greet the user by their name (it's already on the user record).
  • Tell the user their username (and/or that they can log in with their email address).
  • Make clear where to log in (the workspace URL), not just a Login button.
  • Be worded as an account created / welcome message rather than "your password was changed by an admin" — or at least use distinct, friendlier wording for newly created users versus actual password changes.
  • Ideally be a single coherent email containing name, username, workspace login URL, and either the temporary password or a set-your-own-password link, so the user can log in on the first try without asking the admin anything.
Actual behavior
  • The first email is a password-changed notice; the second is a generic marketing welcome.
  • Neither email uses the user's name ("Hi,").
  • Neither email states the username or how to log in for the first time.
Server Setup Information
  • Rocket.Chat Version: 8.9
Dominant language
TypeScript
Stars
46.5k
Forks
14.1k
Avg merge
1d 21h
Merged PRs (30d)
381

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from RocketChat/Rocket.Chat

All issues in RocketChat/Rocket.Chat

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.