コンテンツにスキップ

ワークフロー

ワークフローは、Discordサーバー内で起きるイベント(トリガー)を起点に、条件の判定とアクションの実行を組み合わせて自動化処理を構築できる機能です。

ダッシュボードのワークフローエディタでノードをつなぐだけで、メッセージ送信・ロール付与・モーダル表示など複雑な自動化を視覚的に設定できます。


ワークフローは トリガー → 条件(任意) → アクション の3種類のノードで構成されます。

[トリガー] → [条件: 分岐] → [アクション]
↓ False
[別のアクション]
  • トリガー: ワークフローを起動するイベント(1つのワークフローに1つ)
  • 条件: True / False で後続の処理を分岐させる判定ブロック
  • アクション: 実際に実行される処理(複数つなげられる)

トリガー説明必要プラン
メンバー参加サーバーにメンバーが参加したときFree
メンバー退出サーバーからメンバーが退出したときFree
メッセージ送信指定チャンネルにメッセージが送信されたときFree
ロール付与メンバーにロールが付与されたときLite
ロール剥奪メンバーからロールが剥奪されたときLite
リアクション追加メッセージにリアクションが追加されたときLite
スケジュール指定した時刻・曜日に定期実行Lite
ボタンクリック特定のカスタムIDを持つボタンが押されたときBasic
スレッド作成スレッドが作成されたときBasic
VC参加ボイスチャンネルにメンバーが参加したときBasic
VC退出ボイスチャンネルからメンバーが退出したときBasic
メッセージ編集メッセージが編集されたときBasic
メッセージ削除メッセージが削除されたときBasic
モーダル送信特定のカスタムIDを持つモーダルが送信されたときBasic
Webhook受信外部からWebhookリクエストを受信したときBasic

一部のトリガーには追加の設定があります。

スケジュール

  • 実行する曜日・時刻を指定します(タイムゾーン設定あり)

メッセージ送信 / メッセージ編集

  • 対象チャンネルを絞り込めます(未指定でサーバー全体)

ボタンクリック / モーダル送信

  • カスタムID でフィルタリングできます(未指定で全ボタン・全モーダルに反応)

Webhook受信

  • 専用のWebhook URLが発行されます
  • 外部サービス(IFTTT、Zapierなど)からこのURLへPOSTリクエストを送るとワークフローが起動します
  • URLは再生成ボタンで更新できます(古いURLは無効になります)

条件ノードは True(一致)False(不一致) の2方向に分岐します。「条件を満たさない場合は何もしない」という使い方も可能です。

条件説明必要プラン
チャンネル確認実行されたチャンネルが指定チャンネルと一致するかFree
ロール確認メンバーが特定のロールを持っているかFree
キーワード確認メッセージに指定キーワードが含まれるか(完全一致 / 部分一致 / 前方一致 など)Free
時間帯確認現在時刻が指定した時間帯の範囲内か(深夜をまたぐ範囲にも対応)Lite
AND条件複数の条件がすべて一致するかBasic
OR条件複数の条件のいずれかが一致するかBasic
アカウント作成日時確認Discordアカウントの作成からの経過日数を確認Basic
変数確認ワークフロー内の変数の値を比較(等値・不等値・大小・含む など)Basic

指定チャンネルにメッセージを送信します。

  • テキスト・Embed(埋め込み)・ボタンを組み合わせて送信できます
  • ボタンには3種類のモードがあります(後述のボタンの設定を参照)

ユーザーにダイレクトメッセージを送信します。

  • DMを拒否しているユーザーには送信されません(エラーにはなりません)

インタラクション応答(返信) Basic

Section titled “インタラクション応答(返信) Basic”

ボタンやモーダルへの操作に対して、ユーザーにエフェメラル(本人のみ表示)またはパブリックなメッセージで返信します。

インタラクションメッセージ更新 Basic

Section titled “インタラクションメッセージ更新 Basic”

ボタンクリック時に、ボタンが含まれていた元のメッセージ内容を更新します。

インタラクション確認(無音応答) Basic

Section titled “インタラクション確認(無音応答) Basic”

インタラクションに対して、ユーザーへのメッセージ表示なしに内部的に応答します。応答しないと「インタラクションが失敗しました」と表示されるため、応答が不要な場合に使用します。


アクション説明必要プラン
ロール付与メンバーに指定のロールを付与しますFree
ロール剥奪メンバーから指定のロールを剥奪しますFree

アクション説明必要プラン
タイムアウト付与メンバーを指定時間タイムアウト(サーバーミュート)状態にしますBasic
タイムアウト解除メンバーのタイムアウトを解除しますBasic
メンバーKickメンバーをサーバーからキックしますBasic
メンバーBANメンバーをサーバーからBANしますBasic

アクション説明必要プラン
リアクション追加トリガーとなったメッセージにリアクションを追加しますLite
メッセージ削除トリガーとなったメッセージを削除しますLite
スレッド作成チャンネルにスレッドを作成しますBasic
スレッド削除スレッドを削除しますBasic
チャンネル名変更チャンネルの名前を変更しますBasic

アクション説明必要プラン
待機(ディレイ)指定秒数(最大30秒)待機してから次のノードを実行しますFree
変数設定ワークフロー内で使用できる変数を作成・更新しますBasic

外部サービスへHTTPリクエストを送信します。

  • URLと送信内容(JSON)を設定できます
  • テンプレート変数が使用できます

ボタンクリックに対してテキスト入力フォーム(モーダル)を表示します。

  • テキスト入力フィールドを最大5つ設定できます
  • モーダル送信後、後続のノードが自動的に実行されます(5分以内)
  • 入力内容は {{modal.field.カスタムID}} で参照できます

「メッセージ送信」ノードおよび「DM送信」ノードにはボタンを追加できます。ボタンには3つのモードがあります。

ボタンに任意のカスタムIDを設定します。ボタンクリックトリガーのワークフローと連携して動作させたい場合に使用します。

ボタン(カスタムID: confirm)
↓ ユーザーがクリック
[ボタンクリック] トリガーのワークフローが起動
(triggerConfig のカスタムIDが "confirm" に一致するもの)

ボタンに別のワークフローを直接紐づけます。カスタムIDの管理が不要で、セレクトボックスからワークフローを選ぶだけで連携できます。

ボタンを押したときに、同じワークフローの後続ノードを実行します。別のワークフローを作成することなく、ボタンを使ったインタラクティブなフローを1つのワークフロー内で完結させられます。

[メッセージ送信](「はい」「いいえ」ボタン ← 続けて実行モード)
↓ ボタン押下後に続きを実行
[変数確認: button.label が "はい" か?]
↓ True ↓ False
[ロール付与] [DM送信: お断りメッセージ]

押されたボタンの情報は以下の変数で参照できます。

変数内容
{{button.label}}押されたボタンのラベル
{{button.index}}ボタンの位置(0始まりの番号)

モーダルとワークフロー内継続

Section titled “モーダルとワークフロー内継続”

「モーダルを開く」ノードを使うと、ボタンクリックに対してテキスト入力フォームを表示できます。モーダルを送信した後、後続ノードが自動的に実行されます。追加の設定は不要で、ノードをつなぐだけで動作します。

[ボタンクリック] トリガー
[モーダルを開く](フィールド: name, reason)
↓ モーダル送信後に自動継続(最大5分)
[変数確認: modal.field.reason が "緊急" か?]
↓ True
[インタラクション応答: 受付けました!]

モーダルのフィールドに入力された値は以下の変数で参照できます。

{{modal.field.カスタムID}}

例えばフィールドのカスタムIDが reason であれば {{modal.field.reason}} で取得できます。


メッセージ本文・Embed・Webhook送信内容など、テキストを入力できる箇所では {{変数名}} 形式でテンプレート変数を使用できます。変数は実行時に実際の値に置き換えられます。

変数内容
{{guild.id}}サーバーのID
{{guild.name}}サーバー名
{{guild.memberCount}}サーバーのメンバー数
変数内容
{{user.id}}ユーザーのID
{{user.name}}ユーザー名(@以降)
{{user.displayName}}表示名(ニックネーム優先)
{{user.mention}}メンション(<@ID>形式)
{{user.avatar}}アバター画像のURL
{{user.joinedAt}}サーバー参加日
{{user.createdAt}}Discordアカウント作成日
変数内容
{{message.id}}メッセージのID
{{message.content}}メッセージの本文
{{message.oldContent}}編集・削除前のメッセージ内容
{{channel.id}}チャンネルのID
{{channel.name}}チャンネル名
変数内容
{{role.id}}ロールのID
{{role.name}}ロール名
{{role.mention}}ロールメンション(<@&ID>形式)
{{reaction.emoji}}追加されたリアクションの絵文字
変数内容
{{voiceChannel.id}}ボイスチャンネルのID
{{voiceChannel.name}}ボイスチャンネル名
{{thread.id}}スレッドのID
{{thread.name}}スレッド名

インタラクション・ボタン・モーダル

Section titled “インタラクション・ボタン・モーダル”
変数内容
{{interaction.customId}}ボタンまたはモーダルのカスタムID
{{button.label}}押されたボタンのラベル(「続けて実行」モード時)
{{button.index}}押されたボタンの番号(「続けて実行」モード時)
{{modal.field.カスタムID}}モーダルの入力フィールドの値
変数内容
{{webhook.payload}}受信したWebhookペイロード全体(JSON文字列)
{{webhook.payload.キー}}ペイロード内の特定フィールドの値(最大3階層まで展開)

「変数設定」アクションで作成した変数は、後続のノードで {{変数名}} として参照できます。変数ピッカーにも自動で表示されます。


  1. トリガー: メンバー参加
  2. アクション: DM送信(ウェルカムメッセージ + 「規約に同意する」ボタン ← 続けて実行モード)
  3. アクション: モーダルを開く(氏名・目的などの入力フォーム)
  4. 条件: 変数確認(入力内容のチェック)
  5. アクション: ロール付与(認証済みロール)+ インタラクション応答(完了メッセージ)
  1. トリガー: メッセージ送信
  2. 条件: キーワード確認(禁止ワードが含まれるか)
  3. True → メッセージ削除 + DM送信(注意メッセージ)
  4. False → 何もしない
  1. トリガー: スケジュール(毎週月曜 9:00)
  2. アクション: メッセージ送信(週次お知らせ)

外部サービス連携(Webhook受信)

Section titled “外部サービス連携(Webhook受信)”
  1. トリガー: Webhook受信(発行されたURLを外部サービスに登録)
  2. 条件: 変数確認{{webhook.payload.status}} の値をチェック)
  3. アクション: メッセージ送信(通知メッセージ)

1ワークフローあたりに設置できるノード数(トリガーを除く)の上限です。

プラン上限ノード数使用できるトリガー使用できる条件使用できるアクション
Free3メンバー参加・退出、メッセージ送信チャンネル確認・ロール確認・キーワード確認メッセージ送信、ロール付与・剥奪、待機
Lite5Free + ロール付与・剥奪、リアクション追加、スケジュールFreeの条件 + 時間帯確認Freeのアクション + リアクション追加、メッセージ削除
Basic10Liteの全て + ボタンクリック、スレッド作成、VC参加・退出、メッセージ編集・削除、モーダル送信、Webhook受信全条件全アクション
Pro20全トリガー全条件全アクション