DPaletteDiscord Bot Builder
Botを作る →
はじめてのDPalette

最初のBotを、一緒に作ろう。

まずは、新しいメンバーを迎えるあいさつから。完成例を自分のサーバーに合わせて、試してから公開するまでをご案内します。AIへの相談や、自分で組み立てる方法もここから。

基本操作を体験する・約3分ログイン・Botの導入は不要です。 別タブで開きます。編集中のBotは変わりません。
あいさつBotの作り方を見る ↓Botを作る
01

完成例から、あいさつBotを作る

新しいメンバーが参加したら、指定したチャンネルにあいさつを送ります。最初から線をつなぐ必要はありません。送信先と本文を、自分のサーバーに合わせましょう。

メンバーが参加あいさつを送信送信せずにテスト公開して有効化
  1. 1

    サーバーを選び、完成例を開く

    Discordでログインし、上部でサーバーを選びます。DPaletteが未導入なら「Botを導入」で接続してください。「完成例」からWelcomeの例を読み込みます。

  2. 2

    送信先チャンネルを選ぶ

    完成例の設定画面で、あいさつを送りたいチャンネルを一覧から選びます。チャンネルIDを調べて入力する必要はありません。

  3. 3

    あいさつの文章を変える

    「メッセージ送信」を選び、右の設定パネルで本文を編集します。「値を挿入」から参加したメンバーへのメンションを選べます。

  4. 4

    試してから、サーバーで使う

    「検証」で設定を確認し、「テスト実行」で送信予定の内容を見ます。問題がなければ下書きを保存し、「公開して有効化」を押します。

02

言葉にできるなら、AIに相談

「配信が始まったら、お知らせチャンネルに投稿して」のように、Botにしてほしいことを伝えます。AIがDPaletteの機能を組み合わせて提案するので、内容を確認してから使いましょう。

動作を説明

何が起きたら、どこで、何をしてほしいかを書きます。たとえば「新しいメンバーに挨拶して、メンバーロールを付けたい」で始められます。

必要な設定に答える

チャンネル、ロール、メンバーが必要な場合は、IDを手入力せずDiscordサーバーの候補から選べます。

確認して反映

AIが補った条件と注意事項を確認し、編集エリアへ反映します。各ステップは後から変更できます。送信先や権限も確認し、公開前にテストしてください。

AIが勝手に公開・実行することはありません

提案の反映は、まだ保存されていない編集内容だけに行います。保存・テスト・公開・本番実行は自動では行いません。保存済みの連携キー(Secrets)やデータベースの記録内容をAI用に読み取ったり送信したりもしません。

03

自分で組み立てたいときは

完成例を使わずに、同じあいさつの動きを作る7手順です。「何が起きたら」「何をするか」の順に、処理ステップをつないでいきます。

  1. 1

    Discordでログイン

    右上からログインし、編集するDiscordサーバーを選びます。Bot未導入なら「Botを導入」を押します。新しく作ったサーバーは「サーバー更新」で一覧に出ます。

  2. 2

    きっかけを置く

    左の処理ステップ一覧から「メンバー参加」を編集エリアへドラッグします。これがBotの動きを始めるきっかけです。

  3. 3

    処理を置く

    「メッセージ送信」を追加します。メンバーが参加した後に、Botにしてほしいことを選びます。

  4. 4

    実行する順につなぐ

    メンバー参加の「次へ」からメッセージ送信の「入力」へ、実線をつなぎます。

  5. 5

    右側で設定

    送信先チャンネルと本文を設定します。本文の「値を挿入」から参加者のメンションを選べます。

  6. 6

    設定を確認してテスト

    「検証」で表示される問題を直し、「テスト実行(Dry Run)」でDiscordに実際の変更を加えずに、予定される動きを確認します。

  7. 7

    下書きを保存して公開

    下書きを保存し、検証が通ったら「公開して有効化」を押します。公開した内容で、Discordのイベントに応じてBotが動き始めます。

04

テストしてから公開する

編集中の下書きと、サーバーで動く公開版は別です。変更を公開するまでは、今動いているBotの内容は変わりません。

1. 設定を確認

「検証」で、つなぎ忘れや必須設定、必要な権限などを確認します。表示された問題を直してから次へ進みます。

2. 送信せずにテスト

テスト実行(Dry Run)で、Discordへの書き込みをせずに動きを確認します。どのステップを通り、何を送ろうとしたかを見られます。

3. 公開して有効化

確認した下書きを公開すると、サーバーで使えるようになります。次の変更を編集中も、最後に公開した内容が動き続けます。

削除など、元に戻せない操作には注意

削除などの処理はリスク表示と実行上限を確認してください。最初はテスト用サーバーとDry Runで動作を確かめるのがおすすめです。

05

線で、実行順とデータをつなぐ

線には「実行順」と「データ」の2種類があります。役割を分けると複雑なWorkflowでも追いやすくなります。

実行順をつなぐ実線(Flow)

どのノードを、どの順番で実行するかを決めます。true / falseなど分岐先もFlowです。

値を渡す破線(Data)

メッセージやメンバーなどの値を入力ポートへ渡します。接続できる型だけがつながります。

join

ノードID

値を参照するときの先頭部分です。例ではメンバー参加ノードのIDを join にしています。

迷ったとき

最初にFlowの実線だけで実行順を完成させ、必要なDataの破線を後から足すと整理しやすくなります。

06

前のノードの値を使う

メッセージ・URL・数値・リスト・選択肢など、多くの処理項目で先に実行されたステップの値を使えます。候補は現在のワークフローから作られます。開始条件などの固定設定は対象外です。

Welcome {{ join.member.mention }}!
+ 値を挿入 または {{ を入力
使える値の候補{{ join.member.mention }}メンバー参加 · join{{ join.member.display_name }}メンバー参加 · join
暗記は不要です

入力欄の横の小さな {}(値を挿入)を押すか、Ctrl+Space を使ってください。文章欄では {{ と入力しても候補が出ます。候補を選ぶと {{ ノードID.出力.項目 }} の形で挿入されます。↑↓で選択、Enterで確定、Escで閉じられます。

候補に出るパス例表す値
join.member.mention参加したメンバーへのDiscordメンション
join.guild.member_countこのメンバーが参加した後の現在のサーバーメンバー数(Botを含む)
join.member.display_name参加したメンバーの表示名
message.message.content受信したメッセージの本文
message.author.mention投稿者へのDiscordメンション
manual.payload.target_user手動アクションで作成した target_user 入力
webhook.bodyIncoming Webhookのリクエスト本文
schedule.scheduled_atScheduleが発火した日時

先頭の join / message / manual などはノードIDです。実際の候補には、あなたのCanvas上のノードIDが使われます。値を使うノードより先に、その出力元ノードがFlow上で実行される必要があります。

07

APIキーをWorkflowに直接書かずに使う

Secretsは、外部APIのキーやトークンなどをDiscordサーバー単位で保存する任意機能です。YouTube通知を含む通常のプリセットでは必要ありません。

1. 安全性 → Secretsに保存

サーバーを選び、「安全性」を開いてSecretsへ名前と値を保存します。api_keyやgithub_tokenなど、用途が分かる名前を付けます。

2. 名前で参照

文字列を入力できるノード設定で {{ secret.名前 }} と記述します。api_keyという名前なら {{ secret.api_key }} です。

3. 外部APIで利用

認証が必要なHTTPリクエストのヘッダー、クエリパラメータ、本文などにSecretsを利用できます。

保存した値は表示し直しません

保存後のSecret値は再表示されず、保存される実行詳細でも伏せられます。値を更新するときは、同じ名前で新しい値を保存し直してください。

08

必要なときに、Workflowを手動実行する

イベントを待つ自動化だけでなく、入力フォームからその場で実行するManual Actionも作れます。同じWorkflowをDiscordのスラッシュコマンドとして公開することもできます。

Manual Trigger公開Actions / /コマンドExecution History

1. Manual Actionを作る

開始点に「手動実行」トリガーを置き、target_userや件数などの入力項目を定義して、後続の処理をつなぎます。下書きはテストパネルで試し、本番で使うには検証して公開します。

2. Actionsから手動実行

公開済みのManual ActionはActionsタブに入力フォームとして表示されます。先にDry RunでEffectを確認し、安全な処理はRun Now、削除などの破壊的な処理はReview & Runで確認して実行します。

3. Discordコマンド化

トリガー設定でスラッシュコマンドを有効にすると、同じ入力を持つサーバー専用コマンドとして同期されます。例: /purge-user target_user:@spammer。公開後に同期され、必要ならActionsタブから再同期できます。

どの入口から実行しても、安全性は共通です

ActionsとDiscordコマンドは同じWorkflow Executor、実行上限、同時実行制御、Execution Historyを使います。Dry Runは本番の実行枠を消費せず、実際に動くのは公開済みRevisionだけです。

09

困ったとき

よくあるつまずきは、接続・実行順・Discord権限の3点です。

値の候補が表示されない

Canvasに出力元となる別のノードがあるか確認してください。値を入れたいノード自身の出力は候補に含まれません。

新しく作ったDiscordサーバーが一覧にない

サーバー一覧はログイン時点のスナップショットです。エディタの「サーバー更新」でDiscordから取り直してから、新しいサーバーを選んでください。

unknown property / unknown rootになる

手入力したパスが実際のノードIDや出力名と違います。「値を挿入」から候補を選び直してください。

候補を選んだのに実行時に解決できない

出力元ノードが参照先より前にFlow上で実行されるよう、実線の接続と分岐を確認してください。

検証や本番実行でDiscord権限エラーになる

検証タブの必要権限とGateway Intentを確認し、Botのロール順・チャンネル権限・Developer Portal設定を見直してください。

サポートDiscordを開く(別タブ)

小さなあいさつから、始めよう。

完成例の一覧からWelcomeを選び、あなたのサーバーに合う言葉に変えてみてください。

完成例を開く →