中級向け

Slack から PowerPoint を作る

Slack のスレッドで「定例の資料にして」とアプリに頼むと、PowerPoint のファイルがスレッドに届きます。

ファイルはコードが組み立てるので、Google も Microsoft のアカウントも要りません。AI が書いた項目は、元の発言と照らします。

それでも、「決めたいです」と言った人が担当にされました。最後は人が開いて確かめます。

人の手間は、どう変わるか

Before(人が手でやっていたこと)

  • 会議の前に、Slack のスレッドを読み返して、PowerPoint に打ち直す
  • AI のアプリで要約しても、出てきた文を PowerPoint に貼り直す
  • 数字や担当や期日が、本当にスレッドに書いてあったかを見直す

After(このワークフローを入れると)

  • スレッドで @メンションすると、PowerPoint のファイルがスレッドに届く
  • 項目ごとに元の発言の番号が付き、最後のスライドに元の発言の一覧が載る
  • 根拠のない項目・数字・日付・担当者は外され、外した理由がスレッドに返る

それでも人に残ること

  • ファイルを開いて、担当や言い回しのずれ(「決めたい」が担当になっていないか)を直す
  • 会社のテンプレートのデザインに合わせたいときは、手で整える(レイアウトは固定)

動作確認: — n8n 2.36.8 / Claude Haiku 4.5 / Slack / PowerPoint(Windows)

会社の資料は PowerPoint。でも、話し合いは Slack。会議の前に、スレッドを読み返して、PowerPoint に打ち直している人に向けて書いています。

前に、同じことを Google スライドで作るワークフローを作りました。ただ、Office を使う会社では、Google のアカウントを用意するところで止まります。そこで今回は、PowerPoint のファイルそのものを、n8n の中で作る形にしました。

先に結論です。

  • スレッドで頼むと、PowerPoint のファイル(pptx)がスレッドに届きます。 自分の Slack で試すと、約7秒でした
  • Google も Microsoft のアカウントも要りません。 ファイルはコードが組み立てます。作ったファイルは、どれも PowerPoint(Windows)で、修復の表示なしに開けました
  • AI が書いた項目は、元の発言と照らします。 ただし、「金曜までに決めたいです」と言った人が、2回とも担当にされました。照らしても止められない間違いがあるので、最後は人が開いて確かめます

このワークフローは、n8n 公式テンプレートに提出しました(2026年10月24日、審査中)。

slack-thread-to-pptx.json をダウンロード(n8n に提出した英語版と同じファイル。日本語で使うときは、Config の見出しの言葉とフォントを変えます)

Slack のスレッドに、アプリ(line-madoguchi)が返信している画面。「Slides ready: 来月の展示会ブース準備」という文と、項目の数、外した項目がないことが書かれ、その下に「Brief 2026-10-24 来月の展示会ブース準備.pptx」という PowerPoint プレゼンテーションのファイルが添付されている。ファイルのプレビューには、表紙のスライドが写っている。
スレッドに届いた PowerPoint のファイル(テストで自分の Slack に書いたスレッド。返事の英語は、このあと単数・複数を直しました)
作られた PowerPoint の4枚のスライド。表紙は「来月の展示会の準備」と「次の定例で使う資料、2026-10-24・7件の発言から」。論点のスライドには「ブースの大きさは3m×3mで申し込む予定 [2]」など4項目。次にやることのスライドには「ブースの大きさを決定する — 佐藤, 金曜まで [1]」と「パンフレットを入稿する — 鈴木, 来週の水曜まで [6]」。元の発言のスライドには、[1] から [7] までの発言者と引用が並ぶ。
作られたファイルを PowerPoint で開いたところ(架空の会話から。各項目の右の [1] などは、元の発言の番号)
スレッドで頼む@アプリ「定例の資料に」(フォームに貼っても可)Claude が枠を埋める背景・論点・決めること次にやること(誰が・いつ)項目ごとに元の発言を引用コードが項目ごとに照らす引用・数字・日付・担当者は会話にあるか通らない項目は外し、理由を残すコードが pptx を組み立てるスライドの部品(XML)を書き、Compression ノードが ZIP にまとめるGoogle も Microsoft のアカウントも不要ファイルが届く → 人が開いて直すSlack:スレッドに添付/フォーム:ダウンロード担当や言い回しのずれは、人が見る
PowerPoint のファイルも、コードが書きます。AI に任せるのは、話し合いを枠に沿って言い直すところだけです。

PowerPoint のファイルは、n8n の中で組み立てられる

pptx のファイルの中身は、XML という文書をいくつかまとめた ZIP です(Office Open XML という決まった形)。スライドの土台、色とフォントの設定(テーマ)、スライド1枚ずつの中身が、それぞれ別の XML になっています。

このワークフローでは、次の2つのノードで作ります。

  1. Code ノードが、XML の部品を書く。6枚のスライドなら、部品は26個です。文字の位置・大きさ・色も、ここで決めています
  2. Compression ノード(n8n に最初から入っている、ファイルを ZIP にまとめるノード)が、部品を1つにまとめて、名前を .pptx にする

外から部品を足す必要はありません。n8n の Code ノードは、自分で動かす n8n でも、追加のライブラリ(pptxgenjs など)を読み込むには設定が要ります。そこで、XML を直接書く形にしました。

AI に引用させ、コードが照らす

中身の作り方は、Google スライド版と同じです。AI(Claude Haiku 4.5)に、番号を振ったスレッドの発言を渡し、背景・論点・決めること・次にやること(誰が・何を・いつまでに)の枠で、項目を書かせます。項目ごとに、元の発言の一文を引用させます。

コードは、次の3つを照らします。

  1. 引用は、会話にあるか。 なければ、その項目を外す
  2. 数字と日付は、引用元に書かれているか。 なければ外す。期日だけが書かれていなければ、期日だけ消す
  3. 担当者は、会話にいる人か。 いなければ、担当者だけ消して「担当は書かれていない」にする

外した項目と理由は、スレッドの返事に書きます。

試した結果

2026年10月24日、自分の n8n(2.36.8)で試しました。会話は架空のものです。

試したこと 結果
XML の部品だけを書いて、ZIP にまとめた試作(3枚) PowerPoint で開けた。日本語も数字も崩れなかった
架空の会話(展示会の準備、7件)をフォームに貼る。2回 2回とも、外れた項目なし。6〜7枚のファイルが作られ、PowerPoint で開けた
同じ会話を英語で(6件) 英語の見出しと Calibri のフォントで作られた
自分の Slack のスレッドで、アプリをメンション 約7秒で、スレッドにファイルが届いた。開けた
フォームから送信 完了の画面で、ファイルがダウンロードされた

「決めたいです」と言った人が、担当にされた

照らしても止められなかった間違いです。

元の発言 作られた「次にやること」
佐藤:「来月の展示会、ブースの大きさを金曜までに決めたいです」 「ブースの大きさを決定する — 佐藤, 金曜まで」(2回とも)

佐藤さんは、決めたいと言っただけです。担当を引き受けたとは書いていません。でも、佐藤さんは会話にいる人なので、コードの照合は通りました。

一方で、同じ内容でも、言い方が違うと結果が変わりました。

  • 英語の会話(「金曜までに、ブースの大きさを確かめられますか?」という問いかけ)では、「担当は書かれていない」になった
  • 自分の Slack のスレッドで、「入稿は来週の水曜までにやります」と書いたときも、「担当は書かれていない」になった(書いた本人が担当とも読めるのに)

AI は、言い方によって、担当を付けたり付けなかったりします。 担当と期日は、ファイルを開いて確かめてください。

合意した「500部」が、論点に入った

「パンフレットは500部あれば足りると思います」「去年は400部で足りなかったので、500部でお願いします」と合意しているのに、「パンフレットは500部必要」は、決まったことではなく論点に入りました。決まったことを、決まっていないように書く向きの間違いです。逆向き(決まっていないことを決まったと書く)よりは安全なので、今回はそのままにしています。

使うための設定

  1. 認証情報: Slack(Bot のトークン)と Anthropic の2つだけです
  2. まずフォームで試す: 「名前: メッセージ」の形で会話を貼ると、ファイルがダウンロードされます。Slack の設定は要りません
  3. Config: 日本語で使うときは、次を変えます
    • font と font_east_asian:日本語のフォント(たとえば Meiryo)
    • language_tag:ja-JP
    • 見出しの言葉(label_background など):「背景」「論点」「決めること」「次にやること」など
    • ほかに、強調の色(accent_color)、枠ごとの最大の項目数、タイムゾーン
  4. Slack: Slack アプリに、Bot の権限 app_mentions:read・channels:history・chat:write・files:write(ファイルを送る権限)・users:read を足して、入れ直す。Event Subscriptions に Slack mention の本番の URL を貼り、app_mention を受け取るようにする。使える人のメンバー ID を Slack settings に書き、アプリをチャンネルに招く。n8n は、外から届く場所に置く必要があります(試したときは、一時的なトンネルを使いました)

files:write がないと、ファイルを送れません。そのときは、送れなかった理由をスレッドに書く作りにしています。

できないこと・確認していないこと

  • 会社の PowerPoint のテンプレートは使いません。 レイアウトは、表紙・見出しと箇条書き・元の発言の3種類で固定です。合わせたいときは、Code ノードの位置や色を、自社のテンプレートに合わせて書き換えます
  • 文字が入りきらなくても、自動では縮みません。 枠ごとの項目は5つまでにしています
  • Mac の PowerPoint、Keynote、Google スライドへの読み込みは、試していません
  • n8n Cloud では試していません(追加のライブラリを使っていないので、動くはずですが、確かめていません)
  • 非公開チャンネルと、長いスレッドは試していません(非公開チャンネルでは groups:history の権限も要ります。200件を超えると、新しい200件だけを使います)

次に読む

次に読む