ワークフロー
ワークフローとは
Section titled “ワークフローとは”ワークフローは、Discordサーバー内で起きるイベント(トリガー)を起点に、条件の判定とアクションの実行を組み合わせて自動化処理を構築できる機能です。
ダッシュボードのワークフローエディタでノードをつなぐだけで、メッセージ送信・ロール付与・モーダル表示など複雑な自動化を視覚的に設定できます。
基本的な構成
Section titled “基本的な構成”ワークフローは トリガー → 条件(任意) → アクション の3種類のノードで構成されます。
[トリガー] → [条件: 分岐] → [アクション] ↓ False [別のアクション]- トリガー: ワークフローを起動するイベント(1つのワークフローに1つ)
- 条件: True / False で後続の処理を分岐させる判定ブロック
- アクション: 実際に実行される処理(複数つなげられる)
トリガー一覧
Section titled “トリガー一覧”| トリガー | 説明 | 必要プラン |
|---|---|---|
| メンバー参加 | サーバーにメンバーが参加したとき | Free |
| メンバー退出 | サーバーからメンバーが退出したとき | Free |
| メッセージ送信 | 指定チャンネルにメッセージが送信されたとき | Free |
| ロール付与 | メンバーにロールが付与されたとき | Lite |
| ロール剥奪 | メンバーからロールが剥奪されたとき | Lite |
| リアクション追加 | メッセージにリアクションが追加されたとき | Lite |
| スケジュール | 指定した時刻・曜日に定期実行 | Lite |
| ボタンクリック | 特定のカスタムIDを持つボタンが押されたとき | Basic |
| スレッド作成 | スレッドが作成されたとき | Basic |
| VC参加 | ボイスチャンネルにメンバーが参加したとき | Basic |
| VC退出 | ボイスチャンネルからメンバーが退出したとき | Basic |
| メッセージ編集 | メッセージが編集されたとき | Basic |
| メッセージ削除 | メッセージが削除されたとき | Basic |
| モーダル送信 | 特定のカスタムIDを持つモーダルが送信されたとき | Basic |
| Webhook受信 | 外部からWebhookリクエストを受信したとき | Basic |
トリガーの設定項目
Section titled “トリガーの設定項目”一部のトリガーには追加の設定があります。
スケジュール
- 実行する曜日・時刻を指定します(タイムゾーン設定あり)
メッセージ送信 / メッセージ編集
- 対象チャンネルを絞り込めます(未指定でサーバー全体)
ボタンクリック / モーダル送信
- カスタムID でフィルタリングできます(未指定で全ボタン・全モーダルに反応)
Webhook受信
- 専用のWebhook URLが発行されます
- 外部サービス(IFTTT、Zapierなど)からこのURLへPOSTリクエストを送るとワークフローが起動します
- URLは再生成ボタンで更新できます(古いURLは無効になります)
条件ノード一覧
Section titled “条件ノード一覧”条件ノードは True(一致) と False(不一致) の2方向に分岐します。「条件を満たさない場合は何もしない」という使い方も可能です。
| 条件 | 説明 | 必要プラン |
|---|---|---|
| チャンネル確認 | 実行されたチャンネルが指定チャンネルと一致するか | Free |
| ロール確認 | メンバーが特定のロールを持っているか | Free |
| キーワード確認 | メッセージに指定キーワードが含まれるか(完全一致 / 部分一致 / 前方一致 など) | Free |
| 時間帯確認 | 現在時刻が指定した時間帯の範囲内か(深夜をまたぐ範囲にも対応) | Lite |
| AND条件 | 複数の条件がすべて一致するか | Basic |
| OR条件 | 複数の条件のいずれかが一致するか | Basic |
| アカウント作成日時確認 | Discordアカウントの作成からの経過日数を確認 | Basic |
| 変数確認 | ワークフロー内の変数の値を比較(等値・不等値・大小・含む など) | Basic |
アクションノード一覧
Section titled “アクションノード一覧”メッセージ関連
Section titled “メッセージ関連”メッセージ送信 Free
Section titled “メッセージ送信 Free”指定チャンネルにメッセージを送信します。
- テキスト・Embed(埋め込み)・ボタンを組み合わせて送信できます
- ボタンには3種類のモードがあります(後述のボタンの設定を参照)
DM送信 Basic
Section titled “DM送信 Basic”ユーザーにダイレクトメッセージを送信します。
- DMを拒否しているユーザーには送信されません(エラーにはなりません)
インタラクション応答(返信) Basic
Section titled “インタラクション応答(返信) Basic”ボタンやモーダルへの操作に対して、ユーザーにエフェメラル(本人のみ表示)またはパブリックなメッセージで返信します。
インタラクションメッセージ更新 Basic
Section titled “インタラクションメッセージ更新 Basic”ボタンクリック時に、ボタンが含まれていた元のメッセージ内容を更新します。
インタラクション確認(無音応答) Basic
Section titled “インタラクション確認(無音応答) Basic”インタラクションに対して、ユーザーへのメッセージ表示なしに内部的に応答します。応答しないと「インタラクションが失敗しました」と表示されるため、応答が不要な場合に使用します。
| アクション | 説明 | 必要プラン |
|---|---|---|
| ロール付与 | メンバーに指定のロールを付与します | Free |
| ロール剥奪 | メンバーから指定のロールを剥奪します | Free |
モデレーション関連
Section titled “モデレーション関連”| アクション | 説明 | 必要プラン |
|---|---|---|
| タイムアウト付与 | メンバーを指定時間タイムアウト(サーバーミュート)状態にします | Basic |
| タイムアウト解除 | メンバーのタイムアウトを解除します | Basic |
| メンバーKick | メンバーをサーバーからキックします | Basic |
| メンバーBAN | メンバーをサーバーからBANします | Basic |
チャンネル・スレッド関連
Section titled “チャンネル・スレッド関連”| アクション | 説明 | 必要プラン |
|---|---|---|
| リアクション追加 | トリガーとなったメッセージにリアクションを追加します | Lite |
| メッセージ削除 | トリガーとなったメッセージを削除します | Lite |
| スレッド作成 | チャンネルにスレッドを作成します | Basic |
| スレッド削除 | スレッドを削除します | Basic |
| チャンネル名変更 | チャンネルの名前を変更します | Basic |
ワークフロー制御
Section titled “ワークフロー制御”| アクション | 説明 | 必要プラン |
|---|---|---|
| 待機(ディレイ) | 指定秒数(最大30秒)待機してから次のノードを実行します | Free |
| 変数設定 | ワークフロー内で使用できる変数を作成・更新します | Basic |
Webhook送信 Basic
Section titled “Webhook送信 Basic”外部サービスへHTTPリクエストを送信します。
- URLと送信内容(JSON)を設定できます
- テンプレート変数が使用できます
モーダルを開く Basic
Section titled “モーダルを開く Basic”ボタンクリックに対してテキスト入力フォーム(モーダル)を表示します。
- テキスト入力フィールドを最大5つ設定できます
- モーダル送信後、後続のノードが自動的に実行されます(5分以内)
- 入力内容は
{{modal.field.カスタムID}}で参照できます
ボタンの設定
Section titled “ボタンの設定”「メッセージ送信」ノードおよび「DM送信」ノードにはボタンを追加できます。ボタンには3つのモードがあります。
カスタムIDモード
Section titled “カスタムIDモード”ボタンに任意のカスタムIDを設定します。ボタンクリックトリガーのワークフローと連携して動作させたい場合に使用します。
ボタン(カスタムID: confirm) ↓ ユーザーがクリック[ボタンクリック] トリガーのワークフローが起動(triggerConfig のカスタムIDが "confirm" に一致するもの)ワークフロー連携モード
Section titled “ワークフロー連携モード”ボタンに別のワークフローを直接紐づけます。カスタムIDの管理が不要で、セレクトボックスからワークフローを選ぶだけで連携できます。
続けて実行モード
Section titled “続けて実行モード”ボタンを押したときに、同じワークフローの後続ノードを実行します。別のワークフローを作成することなく、ボタンを使ったインタラクティブなフローを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}} で取得できます。
テンプレート変数
Section titled “テンプレート変数”メッセージ本文・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アカウント作成日 |
メッセージ・チャンネル
Section titled “メッセージ・チャンネル”| 変数 | 内容 |
|---|---|
{{message.id}} | メッセージのID |
{{message.content}} | メッセージの本文 |
{{message.oldContent}} | 編集・削除前のメッセージ内容 |
{{channel.id}} | チャンネルのID |
{{channel.name}} | チャンネル名 |
ロール・リアクション
Section titled “ロール・リアクション”| 変数 | 内容 |
|---|---|
{{role.id}} | ロールのID |
{{role.name}} | ロール名 |
{{role.mention}} | ロールメンション(<@&ID>形式) |
{{reaction.emoji}} | 追加されたリアクションの絵文字 |
VC・スレッド
Section titled “VC・スレッド”| 変数 | 内容 |
|---|---|
{{voiceChannel.id}} | ボイスチャンネルのID |
{{voiceChannel.name}} | ボイスチャンネル名 |
{{thread.id}} | スレッドのID |
{{thread.name}} | スレッド名 |
インタラクション・ボタン・モーダル
Section titled “インタラクション・ボタン・モーダル”| 変数 | 内容 |
|---|---|
{{interaction.customId}} | ボタンまたはモーダルのカスタムID |
{{button.label}} | 押されたボタンのラベル(「続けて実行」モード時) |
{{button.index}} | 押されたボタンの番号(「続けて実行」モード時) |
{{modal.field.カスタムID}} | モーダルの入力フィールドの値 |
Webhook
Section titled “Webhook”| 変数 | 内容 |
|---|---|
{{webhook.payload}} | 受信したWebhookペイロード全体(JSON文字列) |
{{webhook.payload.キー}} | ペイロード内の特定フィールドの値(最大3階層まで展開) |
変数設定ノード
Section titled “変数設定ノード”「変数設定」アクションで作成した変数は、後続のノードで {{変数名}} として参照できます。変数ピッカーにも自動で表示されます。
入会フォーム
Section titled “入会フォーム”- トリガー: メンバー参加
- アクション: DM送信(ウェルカムメッセージ + 「規約に同意する」ボタン ← 続けて実行モード)
- アクション: モーダルを開く(氏名・目的などの入力フォーム)
- 条件: 変数確認(入力内容のチェック)
- アクション: ロール付与(認証済みロール)+ インタラクション応答(完了メッセージ)
キーワードフィルター
Section titled “キーワードフィルター”- トリガー: メッセージ送信
- 条件: キーワード確認(禁止ワードが含まれるか)
- True → メッセージ削除 + DM送信(注意メッセージ)
- False → 何もしない
定期アナウンス
Section titled “定期アナウンス”- トリガー: スケジュール(毎週月曜 9:00)
- アクション: メッセージ送信(週次お知らせ)
外部サービス連携(Webhook受信)
Section titled “外部サービス連携(Webhook受信)”- トリガー: Webhook受信(発行されたURLを外部サービスに登録)
- 条件: 変数確認(
{{webhook.payload.status}}の値をチェック) - アクション: メッセージ送信(通知メッセージ)
プラン別制限まとめ
Section titled “プラン別制限まとめ”ノード数上限
Section titled “ノード数上限”1ワークフローあたりに設置できるノード数(トリガーを除く)の上限です。
| プラン | 上限ノード数 | 使用できるトリガー | 使用できる条件 | 使用できるアクション |
|---|---|---|---|---|
| Free | 3 | メンバー参加・退出、メッセージ送信 | チャンネル確認・ロール確認・キーワード確認 | メッセージ送信、ロール付与・剥奪、待機 |
| Lite | 5 | Free + ロール付与・剥奪、リアクション追加、スケジュール | Freeの条件 + 時間帯確認 | Freeのアクション + リアクション追加、メッセージ削除 |
| Basic | 10 | Liteの全て + ボタンクリック、スレッド作成、VC参加・退出、メッセージ編集・削除、モーダル送信、Webhook受信 | 全条件 | 全アクション |
| Pro | 20 | 全トリガー | 全条件 | 全アクション |