Lors de la création d’un groupe, nous disposons d’un paramètre d’appartenance automatique basé sur le nom de domaine de l’adresse e-mail de l’utilisateur. Je souhaiterais disposer de cette fonctionnalité basée sur la valeur d’un champ personnalisé.
Cas d’utilisation exemple
Je gère une communauté de copropriétaires avec un champ personnalisé de type liste déroulante indiquant le statut de propriété (Propriétaire, Locataire). Je souhaite que tous les propriétaires soient automatiquement ajoutés à un groupe « Propriétaires » et que je puisse envoyer des messages uniquement à l’ensemble des propriétaires pour certaines communications.
Mises en garde
Cela semble simple pour les champs personnalisés de type liste déroulante et de confirmation, mais cela pourrait devenir compliqué pour les champs de texte. Il suffirait de l’activer uniquement pour les listes déroulantes et les confirmations ; à défaut, une correspondance exacte du texte conviendra pour les champs de texte.
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.
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.
Pour toute personne qui tomberait sur ce message à l’avenir : j’avais un cas d’usage similaire (deux populations d’utilisateurs distinctes — des personnes proposant des services contre des personnes recherchant des services) et j’ai fini par le mettre en œuvre via des webhooks et l’API Discourse.
Plus précisément, j’…
ai créé un webhook déclenché sur les événements utilisateurs
ai mis en place un serveur Express.js minimaliste pour recevoir la charge utile
ai configuré une route POST pour les événements user_created qui vérifie la valeur d’un champ utilisateur personnalisé, puis utilise l’API Discourse pour attribuer le groupe approprié à l’utilisateur
Cela semble être une façon un peu étrange de procéder, car je sors de Discourse pour modifier quelque chose à l’intérieur de Discourse, mais j’ai fouillé le forum pour trouver des réponses à ce sujet sans rien trouver, alors j’ai fait de mon mieux ! J’espère que cela aidera quelqu’un à l’avenir, et si quelqu’un trouve une meilleure façon de faire, je serais ravi de le savoir.
Je cherche à faire quelque chose de très similaire pour segmenter automatiquement les utilisateurs en groupes en fonction d’une liste déroulante personnalisée de champ utilisateur. Avez-vous rendu ce code open source ?
@li-zi, je sais que tu as déjà résolu cela pour ton cas, mais il me semble qu’une autre solution potentielle serait d’utiliser le plugin Custom Wizard.
Je l’utilise pour inciter les nouveaux utilisateurs à remplir le formulaire après leur inscription.
Le formulaire propose des champs avec des options sous forme de liste déroulante.
Ensuite, j’ai configuré deux actions distinctes à exécuter une fois le formulaire soumis :
l’une pour mettre à jour les champs personnalisés du profil utilisateur avec la valeur sélectionnée dans la liste déroulante du formulaire
l’autre pour ajouter l’utilisateur à un groupe spécifique en fonction de la sélection faite dans la liste déroulante du formulaire
Pour clore ce sujet - c’est maintenant possible en utilisant le script d’automatisation ‘Ajouter un utilisateur à un groupe via un champ personnalisé’.
Vous pouvez en lire plus sur la façon de faire ici :