Agregar usuarios automáticamente a grupos según el valor del campo personalizado

Al crear un grupo, tenemos la configuración de membresía automática basada en el nombre de dominio del correo electrónico del usuario. Me gustaría tener esta funcionalidad basada en el valor de un campo personalizado.

Caso de uso de ejemplo

Tengo una comunidad de condominios con un campo personalizado de lista desplegable que indica el estado de propiedad (Propietario, Inquilino). Quiero que todos los propietarios estén automáticamente en un grupo de propietarios y poder enviar mensajes solo a todos los propietarios para ciertos mensajes.

Consideraciones

Esto parece sencillo para los campos personalizados de lista desplegable y confirmación, pero podría complicarse para los campos de texto. Estaría bien habilitarlo solo para listas desplegables y confirmaciones; de lo contrario, la coincidencia exacta de texto es suficiente para los campos de texto.

9 Me gusta

Since these are user settable custom fields, you can just make the groups open membership and tell people to add / remove themselves via the /groups page.

2 Me gusta

Not realistic for my use case. Hard to get a bunch of random homeowners, some very old, to bother going around tinkering with their settings. It was hard enough getting them to just register once to get the emails, and it’s hard to even get them to pay attention and do stuff even when there are financial penalties.

1 me gusta

For anybody coming across this in the future: I had a similar use case (two distinct user populations – people offering services vs. people seeking services) and ended up implementing it via webhooks and the Discourse API.

More specifically, I…

  • created a webhook triggered on user events
  • implemented a barebones Express.js server to receive the payload
  • set up a POST route for user_created events that checks the value of a custom user field, and then uses the Discourse API to set the user’s group accordingly

This seems like kind of a goofy way to do it because I’m going outside Discourse to modify something within Discourse, but I scoured the forum for answers to this and came up with nothing, so I did my best! Hope this helps someone in the future, and if anyone comes up with a better way of doing it, I’d love to know.

3 Me gusta

I’m looking to do something very similar to this for auto-segmenting users into groups based on a custom User Field dropdown. Did you happen to open-source this?

My use case is more or less the same, I asked about it here

3 Me gusta

@li-zi sé que ya resolviste esto en cierto modo para tu caso, pero me parece que otra solución potencial sería usar el plugin de Asistente Personalizado.
Lo utilizo para solicitar a los nuevos usuarios que completen el asistente después de registrarse.
El asistente tiene algunos campos que ofrecen opciones de menú desplegable.
Luego configuré dos acciones separadas para ejecutar después de enviar el asistente:

  • una para actualizar los campos personalizados del perfil del usuario con el campo del asistente seleccionado en el menú desplegable
  • otra acción para agregar el usuario a un grupo específico según la selección del campo del asistente
3 Me gusta

Para concluir este tema, esto ahora es posible usando el script de automatización ‘Agregar usuario a grupo a través de campo personalizado’. :partying_face:

Puede leer más sobre cómo hacerlo aquí:

1 me gusta