見出し画像

【n8n超初級活用術】Discord Delete a messageでメッセージ自動削除ワークフローを覚えよう 🗑️



はじめに

Discordの古いメッセージや不要なメッセージの削除作業が大変になっていませんか?
この記事ではDiscordノードの「Delete a message」アクションを使い、n8nでメッセージを自動削除するワークフローを作成します🙌

この記事はこんな人におすすめです

  • Discordサーバーを運営している方

  • 古いメッセージを自動で削除したい方

  • テストメッセージをクリーンアップしたい方

  • Discordのメッセージ管理を自動化したい方

今回作成するワークフローの全体像

ワークフローの流れの概要
①定期実行(Schedule Trigger):定期的に自動実行
②メッセージ一覧取得(Discord Get Many Messages):指定したチャンネルのメッセージ一覧を取得
③日時計算(Code):各メッセージの経過日数を計算
④削除対象判定(IF):削除対象のメッセージを判定
⑤メッセージ削除(Discord):メッセージを削除

【実践】ゼロから作る!Discordメッセージ自動削除ワークフロー

Step 1: Schedule Triggerノードを追加する

1週間に1度、日曜日の設定にしています

おすすめは週に1回程度です。頻繁に実行すると、Discord APIのレート制限に引っかかる可能性があります。

Step 2: Discordノードでメッセージ一覧を取得する

Server名、channel名をそれぞれリストから選択します

💡 Discord Botの設定方法が分からない場合は、以前の記事(Day28)を参照してください。

💡 複数のチャンネルを処理する場合(今回はやりません)

  • Get many channelsで全チャンネルを取得

  • Loop Over Itemsで各チャンネルごとに処理

Step 3: Codeノードでメッセージ日時を計算する

3. JavaScriptコードを入力

JavaScript Codeに以下のコードを入力します:

// メッセージリストを取得
const messages = $input.all();

// 各メッセージの日時を計算
const messagesWithAge = messages.map(msg => {
  const messageData = msg.json;
  const messageDate = new Date(messageData.timestamp);
  const now = new Date();
  
  // 日数を計算
  const daysSinceMessage = Math.floor((now - messageDate) / (1000 * 60 * 60 * 24));
  
  return {
    messageId: messageData.id,
    channelId: messageData.channel_id,
    content: messageData.content || "",
    author: messageData.author?.username || "不明",
    authorId: messageData.author?.id || "",
    timestamp: messageData.timestamp,
    daysSinceMessage: daysSinceMessage,
    shouldDelete: daysSinceMessage >= 30 // 30日以上経過している場合
  };
});

return messagesWithAge.map(m => ({ json: m }));

💡 削除条件のカスタマイズ

  • 日数を変更:`30`を他の値に変更(例:60日、90日)

  • 特定キーワードを含むメッセージのみ削除:`messageData.content.includes('削除対象')`を追加

  • 特定ユーザーのメッセージのみ削除:messageData.author?.id === '特定ユーザーID'を追加

Step 4: IFノードで削除対象を判定する

コードノードでshouldDeleteの判定が追加されています。
ここがtrueになっていると削除対象です

is trueはBooleanから選択

Step 5: Discordノードでメッセージを削除する

1秒に5件の処理しかできないので、5件以上ある場合はLoopノードを追加して処理してください

⚠️ 重要:メッセージ削除は取り消せません

メッセージを削除すると、そのメッセージは完全に削除されます。削除前に、必要な情報をバックアップしておくことをおすすめします。

📚 まとめ

この記事では、Discordノードの「Delete a message」アクションを使った、メッセージ自動削除ワークフローの作り方を解説しました。

Discordのメッセージ自動削除をマスターすれば、メッセージ管理が大幅に楽になります。ぜひ様々なシーンで活用してみてください!


この記事が役に立ったら、スキ!フォローで応援してくれると嬉しいです☺️

いいなと思ったら応援しよう!