あなたのワークフローを見せてください

A preview of the new Workflows feature の議論を続けていきます:

Workflows のリリースをとても楽しみにしています。以前、アクティブなコミュニティマネージャーだった頃、反復的な戦術的なコミュニティ業務を自動化する方法を探していましたが、この機能のことを夢見ていました。

Workflows でどのようなことをしているのか(あるいは、今知ったばかりの皆さんがこれから何をするのか)を、とても気になっています。

私が最初に紹介しますが、正直に言うと、実際の構築作業は @zogstrip@chapoi に委ねざるを得ませんでした。私にはそのスキルがないからです。

週次更新リマインダーワークフロー

チームメンバーに求めているのは、週に1回のチェックインだけです。これにより、メンバーが元気で満足していることを確認しています。しかし、さまざまな理由でこれをしない人もいます。そのたびに追跡するのは時間とエネルギーを浪費するため、新しい解決策を用意しました。

このワークフローは、更新トピックを確認し、放置する時間が長くなるほど、次第に厳しさを増すCSSを適用します。

その効果は驚くほど大きいです!

「いいね!」 11

そのCSS、最高ですね :laughing:!もし可能であれば共有していただけますか?

「いいね!」 2

まさか、私が今まで作った中で一番醜いテーマが欲しいなんて言わないでくれよ… :sweat_smile:

「いいね!」 3

本当はやってるんだ :laughing: 。すごく…独創的 だね :eyes:

「いいね!」 2

本当に信じられないほどです。私自身、無関係なものをテストしようとしてうっかりグループ4に入れてしまい、画面のすべてが浮いていってしまう中、デバッグを試みなければならなかったからです。:laughing: @zogstrip はとても辛抱強く付き合ってくれました。

「いいね!」 2

ワークフローの概要からは、あまり明確には伝わりにくいと思うので、仕組みを説明します。

パート1 - 黄色のボックス

  • #updates カテゴリで投稿/編集されたすべての投稿について、その投稿がトピックの作成者からのものであるかを確認します。
  • OP(トピックの作成者)からのものでない場合、処理を「中断」します。
  • OPからのものである場合、LLM分類器に渡し、その投稿が実際には週次アップデート(特定の形式は必須ではありません)であり、他の投稿への無関係な返信ではないかどうかを示すJSONを返してもらいます。
  • その後、その分類結果をデータテーブルに保存します。
  • 投稿が週次アップデートとして分類された場合、ユーザーをすべての「遅延」グループ(緑のボックス)から即座に削除します。

パート2 - 青のボックス

  • 毎日、UTC午前6時00分に、データエクスプローラーのクエリを実行し、すべての休暇、祝日、および「最新の週次アップデート」を組み合わせることで、人を4つの「遅延」グループのいずれかに分類します。

パート3 - ワークフローには表示されていません

  • カスタムテーマコンポーネント[1]があり、現在のユーザーが「遅延」グループのいずれかに属しているかを確認し、さらに…イライラ感を与えます😅

  1. 当社のすべてのテーマに適用されています ↩︎

「いいね!」 5

一部のタグの使用が必須ですが、メンバーが誤ったカテゴリに投稿する傾向があり、トピックを正しい場所へ移動するのに多大な時間を費やしています。

トピック作成時に実行される非常に基本的なワークフローが、使用されているタグを確認し、自動的にカテゴリを変更します。

これほどシンプルな仕組みでも、何の労力もかけずにある程度の構造を維持するのに役立っています。

「いいね!」 2

元ワークフローのトピックで私が投稿した内容の続報です。やりたいことを実現する方法が分かりました。もちろんこれはすべてテストですが、以下のことが可能です。

これはAIを活用し、サイトが閑散としているタイミングで議論を活性化させ、再エンゲージメントを高めることを目指すシステムです。

フェーズA: 特定と要約

30日以上前の投稿で、以下の条件のいずれかに該当するものを特定します。

- しばらく投稿がない人気トピック。

  • 多くのビュー数があるが、しばらく返信がないトピック。
  • 過去1年間に一定の活動があったが、その後停滞したトピック。

該当するものを見つけると、Discourseの「AI Summary」エージェントを起動します。AIエージェントに要約を作成させます。これは、要約APIエンドポイントにHTTPリクエストをPOSTすることで行います。要約が完了すると、ワークフローの存在をデータテーブルに保存します。

(これは1時間ごとに実行されますが、より頻繁に実行される可能性もあります)。

フェーズB: フォローアップのための要約評価

別のスケジュールされたワークフローが、独自のスケジュールで独立して実行されます。データテーブルをチェックし、要約はされているが評価されていない行を探します。データテーブルから1つのトピックを取得し、そのトピックの直近5〜10件の投稿を取得します。

トリアージを担当するAIエージェントに渡します。判断を行います。このトピックは復活させるべきか?そうであれば、どのようにするか? トピックをバンプすべきか、トピックに再エンゲージメントをもたらす投稿(質問、フォローアップ、または何もしない)を行うべきかを決定します。

決定事項でデータテーブルを更新します。

(これはフェーズAと同じくらいの頻度で実行されるべきですが、フェーズAからトリガーしたり、フェーズAと組み合わせたりすることもできます)。

フェーズC: トピックへの再エンゲージメント

別のスケジュールされたワークフローが、より頻度の低い独自のスケジュールで実行されます。最初のステップは、最近フォーラムがどれだけ活発だったかをチェックすることです。これは、過去3時間の1時間あたりの平均投稿数を確認することで行います。次に、過去2ヶ月間の同じ曜日・同じ時間帯における3時間ごとのフォーラムの混雑度の平均を取ります。サイトが通常、同じ曜日・同じ時間帯よりも混雑していない場合、「今なら再エンゲージメントを実行できる」と判断します。

次に、利用可能な再エンゲージメントの機会を最大10件取得します。AIエージェントに送信し、リストの中から最も有望な再エンゲージメント候補を1つ選出するように依頼します。AIが決定し、topic_idを返します。フェーズBの分類器は3つのオプション(トピックをバンプ、フォローアップ投稿、何もしない)のいずれかを決定していました。

フォローアップが指定されていない限り、ワークフローはバンプを実行します。フォローアップが指定されている場合、トピックIDを取得し、そのトピックの最新の投稿を取得します。これをAIエージェントに引き渡し、トピックへの再エンゲージメントとして最適なレスポンスを決定させます。非常に基本的な返信であり、トピックに関連しているが、推奨やコメントを提供しないことを保証するガードレールがあります。主に更新情報の依頼や、元の投稿者が何か進展があるかどうかの質問などをします。返信を投稿した後、完了日をデータテーブルに更新します。

もし私が知らなかったDiscourseの隠し機能を重複して実装してしまっていたら困りますが、試行錯誤の末に実現できました。

「いいね!」 6

ここでは、Meta 上の様々な活動についてチームを最新の状態に保つために使用している、週次レポートを生成するいくつかの例を示します。それぞれに、結果が投稿されるスタッフカテゴリ内のトピックがあります。

これらは基本的に汎用的なものなので、ご自身のサイトで試してみたい場合はそのまま使えるはずです。最終ノードで結果が共有されるトピック ID を、ご自身のスタッフカテゴリ内のトピックに変更するだけで大丈夫です。

(インポート前に手動で編集する必要がある場合があります。誤操作を防ぐために、エクスポート後に TOPIC_ID に手動で上書きしました)

週次モデレーションレポート
ファイル: weekly-moderation-report.json (21.4 KB)

  • 以下のリストを含む表:
    • モデレーションの概要(各種モデレーション行為の件数)
    • 異なるユーザーが処理したフラグの数
    • 異なるユーザーが報告したフラグの数
    • フラグが立てられた投稿のリストと関連メタデータ
    • 発行された警告
    • 追加されたユーザーノート

週次サイト設定レポート
ファイル: weekly-site-settings-report.json (3.3 KB)

  • 変更されたサイト設定のリストを含む表
    • 設定名
    • 変更者と変更日時
    • 旧値、新値

週次トラストレベルレポート
ファイル: weekly-trust-level-report.json (9.8 KB)

  • 以下のリストを含む表:
    • 概要(過去1週間で各トラストレベルに昇格提案されたユーザー数)
    • トラストレベル 2 または 3 を獲得したユーザーのリスト
「いいね!」 8

私たちは現在、Discourseコミュニティでワークフローをかなり広範囲に活用しており、オンボーディングやイベント管理において非常に有用な要素となっています。

私たちのコミュニティには9,000人以上の登録ユーザーがおり、オンラインおよびローカルのピアサポートグループが多数存在するため、自動化が大きな助けになっています。

現在使用しているワークフローの一部をご紹介します。

:waving_hand: パーソナライズされたオンボーディング

新規ユーザーは、登録後に自動でパーソナルメッセージを受信します。

メッセージの内容は、登録時に選択した興味(例:ピアサポートグループ、イベント、バーチャルカフェ、ボディダブリング、書面での交流など)によって異なります。

数日後には、追加の情報やスタートを助けるための2回目のチェックインメッセージが届きます。

:date: イベントリマインダー

約24時間後に開始するイベントを確認するためのスケジュール付きワークフローを使用しています。チェックは15分ごとに行われます。

参加予定 または 興味あり を選択したユーザーには、イベントタイトル、日付、時刻、およびイベントへのリンクを含むパーソナルリマインダーが届きます。

また、独自のリマインダーワークフローを持つグループもあるため、一般的なワークフローではそれらのユーザーを除外し、重複したリマインダーを防いでいます。

:laptop: コンテキストに応じたalfaview説明

オンラインのピアサポートグループの多くはalfaviewで集まりますが、他のイベントはZoomや対面で行われます。

そのため、イベント投稿内にalfaviewリンクがあるかを確認しています。

alfaviewリンクが存在する場合、24時間前のリマインダーには、待合室に入る方法と正しい会議室を選択する方法を説明する、スクリーンショット付きの展開可能なステップバイステップガイドが自動的に含まれます。

alfaviewリンクがない場合、これらの説明なしで通常のリマインダーが送信されます。

これにより、「オンライン」グループと「オフライン」グループのリストを個別にメンテナンスする必要がなくなります。

:door: ビデオ会議のオンボーディング

ユーザーが初めてビデオ会議ルームにアクセスする前に、短いオンボーディングステップとしてフォームワークフローも使用しています。

ユーザーには、alfaviewルームの構造がどのように機能するかを説明する指示が届きます。指示を読み終えた後、次回も指示を表示したいかどうかを選択できます。

次回表示しないことを選択した場合、ワークフローはユーザーをマーカーグループに追加します。その後、私たちのテーマコンポーネントは、そのグループメンバーシップを利用して、オンボーディングフォームの代わりにビデオ会議への直接リンクを表示します。

:bell: グループ固有の通知

ワークフローを使用して、特定のグループのメンバーに新しいイベントや今後のミーティングについて通知しています。

これは、フォーラムを定期的に訪問しない場合でも、メンバーに通知を受け取ってほしいピアサポートグループにおいて特に役立ちます。


ワークフローで特に気に入っている点は、フォーム、SQLクエリ、グループ、スケジュールチェック、パーソナルメッセージを組み合わせられることです。

将来的に実現してほしい機能もいくつかあります。一例として、カレンダーとの連携がより良くなることが挙げられます。理想を言えば、イベントで参加予定を選択したユーザーには、.icsカレンダーファイルを添付したメールを自動で送信できるようになりたいです。

「いいね!」 7

非常に興味深いユースケースですね。@j.jaffeux / @martin / @lindsey の皆さん、ぜひ検討していただきたい点です。

これはワークフローで対応するものなのでしょうか、それとも discourse events の組み込み機能として実装されるものなのでしょうか?

「いいね!」 4

この素晴らしいフィードバックと体験談を共有してくださってありがとうございます。皆さんがワークフローをどのように活用しているのかを読むのはとても刺激的で、コミュニティの実際の課題を解決できていることが伝わってきます :heart:

偶数処理は確かに基本機能として当然のように感じますが、ワークフローを通じて今週中に実現できるはずです。まさにこれに対応する機能が近日中にリリースされる予定です。

「いいね!」 6