Cómo pedirle a un usuario que cree una contraseña para la cuenta creada para él

Tenemos un formulario de comentarios en nuestro sitio web, que se utiliza principalmente para preguntas de soporte. Quiero que las preguntas publicadas allí se conviertan en nuevos temas en nuestro foro, impulsado por Discourse.

Estoy intentando implementar la siguiente secuencia de acciones:

  1. Crear un nuevo usuario mediante la API, basándome en el nombre y el correo electrónico enviados a través del formulario.
  2. Crear un nuevo tema, escrito por este usuario.
  3. Enviar a este usuario un correo electrónico con el enlace a este tema, y también una solicitud para crear una contraseña.

Ahora, he encontrado cuatro plantillas de correo electrónico en Discourse que podrían usarse en el paso 3: “Cuenta creada”, “Inicio de sesión mediante enlace”, “Contraseña olvidada” y “Establecer contraseña”. En la documentación de la API, solo encontré una llamada que envía el mensaje de “Contraseña olvidada”, pero esto no parece ser la mejor opción para mi caso.

Mis preguntas:
a) ¿Bajo qué circunstancias se envían los otros tres mensajes (“Cuenta creada”, “Inicio de sesión mediante enlace” y “Establecer contraseña”)?
b) ¿Cómo puedo enviarlos mediante la API?

‘account_created’ se utiliza al usar el punto final de la API ‘invite admin’ y al crear un administrador mediante la tarea rake admin:invite.

‘login via link’ (referido internamente como email_login) se envía cuando alguien utiliza el enlace de ‘inicio de sesión mediante correo electrónico’.

‘set password’ es lo mismo que ‘forgot password’, cuando el usuario aún no tiene una contraseña en la base de datos.

Creo que el mejor enfoque es crear los nuevos usuarios como “en etapa” (staged) y luego enviarles una “invitación” al tema. Esa invitación los iniciará sesión directamente en su cuenta en etapa y luego los llevará al tema. No se les pedirá que creen una contraseña, pero pueden hacerlo manualmente o simplemente utilizar la opción de iniciar sesión mediante correo electrónico.

¡Gracias, David!

¿Cuál es la llamada a la API para crear usuarios “en espera”? Pensé que solo se podían crear mediante correo electrónico.