カスタムフィールドの値に基づいてユーザーを自動的にグループに追加

グループ作成時に、ユーザーのメールアドレスドメインに基づいた自動メンバーシップ設定を設けています。この機能を、カスタムフィールドの値に基づいて行えるようにしたいと考えています。

使用例

オーナーかテナントかを示すドロップダウン形式のカスタムフィールドがあるコンドミニアムコミュニティを想定しています。すべてのオーナーを自動的にオーナーグループに含め、特定のメッセージについてはオーナーのみを対象に送信できるようにしたいです。

留意点

ドロップダウンや確認用のカスタムフィールドであれば straightforward な機能ですが、テキストフィールドの場合は複雑になる可能性があります。そのため、ドロップダウンと確認フィールドにのみこの機能を有効化し、テキストフィールドの場合は完全一致によるマッチングで問題ありません。

「いいね!」 9

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

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

将来このページにたどり着く人のために:私は似たようなユースケース(サービスを提供する人々とサービスを探す人々のように、2 つの異なるユーザー層)を抱えており、最終的には Webhook と Discourse API を使って実装しました。

具体的には…

  • ユーザーイベントをトリガーとする Webhook を作成
  • ペイロードを受信するための最小限の Express.js サーバーを実装
  • user_created イベント用の POST ルートを設定し、カスタムユーザーフィールドの値を確認して、Discourse API を使用してユーザーのグループを適切に設定

Discourse の外側から内部のものを変更するという点で、少し奇妙な方法に思えるかもしれませんが、この件に関する答えをフォーラムで探し回っても何も見つからなかったため、できる限りのことをしました!将来誰かの役に立てば幸いです。もし、より良い方法を見つけた方がいれば、ぜひ教えてほしいです。

「いいね!」 3

カスタムユーザーフィールドのドロップダウンに基づいて、ユーザーをグループに自動セグメント化する際、これと非常に似たことを行おうとしています。このコードはオープンソース化されましたか?

私のユースケースはほぼ同じで、こちらで質問しました

「いいね!」 3

@li-zi、あなたのケースについては既におおよそ解決されているようですが、もう一つの可能性として、Custom Wizard プラグインを使用する方法があるかもしれません。
私はこのプラグインを使って、新規ユーザーがサインアップした後にウィザードの入力を促しています。
このウィザードには、ドロップダウンオプションを提供するフィールドがいくつかあります。
その後、ウィザードが送信された後に実行される2つの別々のアクションを設定しました。

  • 1つ目は、ウィザードのドロップダウンから選択された値でユーザープロフィールのカスタムフィールドを更新するアクション
  • 2つ目は、ウィザードのフィールド選択に基づいてユーザーを特定のグループに追加するアクションです。
「いいね!」 3

これでこの件は完了です。これは、「Add user to group through custom field」という自動化スクリプトを使用して可能になりました。:partying_face:

その方法については、こちらで詳しく読むことができます。

「いいね!」 1