
『まじん式v3』をGoogle Workspace Flowsの部品として組み込む手順
この記事でやること
この記事では、
「自分で作ったGAS(まじん式v3)を、Google Workspace Flowsの
1つのステップ(Action)として呼び出せるようにする」
ところまでをゴールにします。
つまり、最終的にはこういうことができるようになります。
Flows の画面から
→ 「トリガー(きっかけ)」を決めて
→ 「まじん式v3(GAS)」を 1ステップとして追加
→ その結果として Google スライドが自動生成される
「もうGASを単体で実行するんじゃなくて、
全体のワークフローの中の1パーツとして再利用する」イメージです。
このガイドの前提
本記事で紹介する Google Workspace Flows は、
個人の Gmail アカウントでは利用できず、
会社・学校などの Google Workspace アカウント向けの機能 です。
「社内アカウントで Google ドライブやドキュメントは使っているけれど、
Flows が見当たらない」という場合は、
管理者側でまだ有効化されていない可能性があります。
個人の Gmail でもできる
「Opal × まじん式v3」でつくる“AI自動スライド生成フロー”は付録に付けておきます。ただし制限あり。
まずは用語のおさらい
Google Apps Script(GAS)とは?
Googleのサービス(スプレッドシート、ドキュメント、スライド、Gmail など)を
自動化したり拡張したりできる「スクリプト(プログラム)」環境です。ブラウザ上で編集・実行できて、JavaScript風のコードで書けます。
例:
スプレッドシートの内容からレポートを自動生成
フォームの回答をSlackへ通知
ドキュメントからスライドを自動生成(まさに「まじん式v3」がこれ)
まじん式v3とは?
まじんさんがnoteで公開してくれているスライド生成プロンプトです。
神ツールです! 明日11/14に、まじん式v4が公開予定です。
この記事では、ざっくりこう理解してもらえればOKです。
「Google Docs の台本から、
Google スライドをいい感じのレイアウトで自動生成してくれるGAS」
細かいテンプレやデザインの話は一旦置いておき、
「スライド自動生成GAS」 と捉えてください。
Google Workspace Flows とは?
Google Workspace 版の「ノーコード/ローコード自動化ツール」だと思ってください。
「トリガー」+「アクション」を組み合わせて
例:
ドキュメントが更新されたら
GASを実行して
スライドを作る
できたリンクをチャットに送る
といった「流れ」をGUIで組み立てられます。
イメージ:
IFTTTやZapier、Make の “Google公式版” であり、
そこに 自分のGASを差し込める のが今回のポイントです。
全体像:何をつなぐのか?
この記事のメインテーマは、
「まじん式v3(GAS)を Flows の 1ステップとして呼び出せるようにする」
ことです。
ざっくりした流れはこんな感じです。
まじん式v3 の GAS プロジェクトを用意する
GAS 側で「外部(Flowsなど)から呼び出せる」形に整える
Flows から「Apps Script アクション」として、そのGASを選べるようにする
Flows のフローの中に
「トリガー」
「まじん式v3を呼び出すステップ」
を並べて保存・実行する
ステップ0:前提条件の確認
この記事の手順を進めるために、最低限次のものが必要です。
Google Workspace 環境(組織アカウント)
Google Workspace Flows が使える状態
(組織で有効になっていること。※ここは管理者設定に依存します)まじん式v3 の GAS プロジェクト
すでに持っている場合:それを流用
まだない場合:サンプルでも構いません
🔍 補足:組織で Flows が使えない場合
・管理コンソール側で機能がOFFになっている可能性があります。
・その場合は、管理者の方に「Workspace Flows を有効にしてほしい」と相談してみてください。
ステップ1:GAS(まじん式v3)プロジェクトの入口と出口を揃える
Flows からGASを呼び出すときに大事なのは
GAS側の「入口(引数)」
GAS側の「出口(戻り値)」
を 分かりやすく、シンプルにしておくこと です。
1-1. エントリポイント用の関数を用意する
たとえば、まじん式v3 の中に、こういう関数を1つ用意しておくイメージです。
/**
* Flowsから呼び出すためのエントリポイント関数。
* params で必要な情報をまとめて受け取り、
* スライドのURLなどをJSON形式で返す。
*/
function runMajinFromFlows(params) {
var docId = params.doc_id;
var stylePreset = params.style_preset || "clean";
// ここで「まじん式v3」本体を呼び出すイメージ
// 例:createSlidesFromDoc(docId, stylePreset) など
var result = createSlidesFromDoc(docId, stylePreset);
// Flows側に返したい情報をオブジェクトにまとめる
return {
slidesUrl: result.slidesUrl,
slideIds: result.slideIds || []
};
}💡ポイント
・引数は1つのオブジェクト(params)にまとめる
→ Flows側から値を渡しやすくなります。
・戻り値もオブジェクト
→ Flows側で $.result.slidesUrl のように参照しやすくなります。
1-2. 中身(createSlidesFromDoc)はすでにある前提でOK
この記事では、
createSlidesFromDoc(docId, stylePreset) の実装詳細には入りません。
「まじん式v3として、すでに動いているものがある」
という前提で考えます。
ここで伝えたいのは、
「GAS の中に Flows から呼ぶための入口関数を1つ決めておこう」 という考え方です。
ステップ2:appsscript.json を確認する(Execution API 有効化)
GAS には「マニフェストファイル」と呼ばれる appsscript.json があり、
ここで 外部からの実行方法 などを設定できます。
典型的には、次のような形になっています。
{
"timeZone": "Asia/Tokyo",
"dependencies": {},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"executionApi": {
"access": "MYSELF"
},
"oauthScopes": [
"https://www.googleapis.com/auth/documents",
"https://www.googleapis.com/auth/presentations",
"https://www.googleapis.com/auth/drive"
]
}2-1. 押さえておきたいポイント
executionApi
"access": "MYSELF" などの指定があることで、
自分のアカウントとして、このGASをAPI的に呼び出せるようになります。
oauthScopes
スクリプトが触るGoogleサービスごとの「権限」です。
まじん式v3でよくあるパターン:
ドキュメントを読む → documents
スライドを作る → presentations
ファイルを作成する → drive
🔍 補足:ここが整っていないとどうなる?
Flows から呼び出したときに
「権限が足りない」「実行できません」のようなエラーの原因になります。
ステップ3:GAS をデプロイする
次に、GAS側を「外から呼び出せる状態」にします。
具体的なUIは時期やバージョンで変わることがありますが、
考え方としては次のようなステップになります。
GAS エディタから「デプロイ」メニューを開く
「新しいデプロイ」または同等のオプションを選択
実行する関数として runMajinFromFlows を指定
実行ユーザー・アクセス権限を設定
例:「自分として実行」「自分のみが呼び出せる」など
⚠️ 注意
・組織ポリシーによっては、「誰が実行できるか」「どの範囲に公開できるか」が制限されている場合があります。
・自分だけが使うのであれば、基本的には「自分として実行」かつ「自分のみが呼び出し可」で問題ありません。
ステップ4:Workspace Flows から GAS をアクションとして選ぶ
ここからが「統合」のハイライト部分です。
4-1. 新しいフローを作成する
Google Workspace Flows の画面を開く
「新しいフローを作成」や「+ 作成」に相当するボタンから、フローを新規作成
まずは分かりやすい名前をつけます
例:Docからスライド自動生成(まじん式v3連携)
4-2. トリガーを決める
シンプルな例として:
トリガー:手動実行(ボタンを押したら走る)
最初はこれがおすすめです。
「まず動くこと」を確認しやすいからです。
慣れてきたら、例えば:
「特定フォルダにファイルが追加されたとき」
「ドキュメントが更新されたとき」
などに変えていくと、
より“自動化している感”が出てきます。
4-3. アクションとして「Apps Script」を追加
フローの中に 新しいステップ(アクション) を追加
利用できるアクション一覧から
→ 「Apps Script」(もしくはそれに相当する項目)を選ぶスクリプト選択画面で、先ほどデプロイした まじん式v3 のGAS を選ぶ
実行する関数として runMajinFromFlows を指定する
💡ここで効いてくるのが「appsscript.json とデプロイ設定」です
・executionApi が有効で、
・デプロイが正しく設定されていると
→ Flows 側の「Apps Script アクション」から、自分のGASが選べるようになります。
ステップ5:引数(入力)と戻り値(出力)をFlowsに紐づける
5-1. GAS側で受け取る引数(params)を決める
先ほどの runMajinFromFlows 関数では、次のような形でした。
function runMajinFromFlows(params) {
var docId = params.doc_id;
var stylePreset = params.style_preset || "clean";
// ...
}つまり、Flows側からは
doc_id
style_preset
という2つの値を渡せばよい、ということになります。
5-2. Flows 側で値を指定する
Flows の「Apps Script アクション」の設定画面で、
doc_id →
テスト用として、まずは固定値のDoc IDを入力
慣れてきたら、トリガーや前のステップの出力を参照するように変更
style_preset →
"clean" などの文字列を指定
という形で、GASの引数とFlowsのパラメータを対応づけます。
5-3. 戻り値の利用
runMajinFromFlows の戻り値はこんなイメージでした。
return {
slidesUrl: result.slidesUrl,
slideIds: result.slideIds || []
};Flows 側では、たとえば次のようにして利用します。
$.result.slidesUrl を次のステップに渡す
例:チャットに送る
例:メールで通知する
例:スプレッドシートに書き込む
💡おすすめの最初の構成
1.トリガー:手動
2.アクション1:Apps Script(まじん式v3)
3.アクション2:チャットやメールで slidesUrl を通知
こうしておくと、「実行したらリンクが飛んできて、
クリックしたらスライドが開く」という分かりやすい成功体験が作れます。
よくあるつまずきポイントと対策
Q1. Flows から自分のGASが見つからない
可能性:
executionApi が有効になっていない
デプロイがされていない、または古い
組織の権限で制限されている
対策:
appsscript.json に executionApi があるか確認
GAS を「新しいデプロイ」で作り直してみる
それでもダメな場合は、管理者に
「Apps Script を Workspace Flows から実行できる設定になっているか」
を確認する
Q2. 実行すると「権限がありません」と出る
可能性:
スクリプトに必要なスコープ(oauthScopes)が不足している
デプロイ時の実行ユーザー設定が合っていない
対策:
oauthScopes に
ドキュメント:documents
スライド:presentations
ドライブ:drive
が含まれているか確認する
デプロイ設定で「自分として実行」になっているか確認する
Q3. まじん式v3は動いているのに、Flowsから呼ぶとエラーになる
可能性:
runMajinFromFlows の引数・戻り値が想定と合っていない
Flows 側から渡している doc_id が空、または間違っている
対策:
まずは、GAS エディタから runMajinFromFlows を手動実行し、
引数や戻り値が期待どおりか確認するFlows 側で設定している doc_id を、コピペで再確認する
(特に「全角スペース」「余計な文字」が紛れ込みやすいです)
応用:他のGAS資産もFlowsのパーツ化できる
今回の記事では「まじん式v3」を例にしましたが、
実は以下のようなGASも、同じ考え方で Flows に組み込めます。
不具合レポートを集計してGoogleスライドにレポートを作成するGAS
スプレッドシートの内容を整形し、PDFとしてエクスポートするGAS
APIから取得したデータをドライブにまとめて保存するGAS
ポイントはただ1つです。
「入口と出口を、Flowsから扱いやすい形(paramsと戻り値のオブジェクト)に揃える」
これができていれば、
GASはどんどん「部品化」され、Flows上の好きな場所に挿せる ようになります。
まとめ:今日できる最小の一歩
この記事でおさらいしてきた内容を整理すると、次の4ステップになります。
まじん式v3 のGASプロジェクトに
→ Flows用のエントリポイント関数(例:runMajinFromFlows)を用意するappsscript.json と oauthScopes、デプロイ設定を確認する
Google Workspace Flows で新しいフローを作り、
→ アクションとして「Apps Script」を追加
→ まじん式v3 のGASとエントリ関数を指定するFlowsから実行して、スライドURLが返ってくるところまで確認する
次にできること
トリガーを「手動実行」から
→ 「ドキュメント更新」「フォルダへのファイル追加」などに変えてみるまじん式v3の戻り値(スライドURL)を
→ Chatやメール、スプレッドシートなど好きな通知先に流す別のGAS(レポート作成やデータ整形)も、同じパターンでFlowsに組み込み
→ 「自社専用の自動化ライン」を少しずつ増やしていく
付録: 個人の Gmail でもできる✨
「Opal × まじん式v3」でつくる“AI自動スライド生成フロー”
〜Google Workspace Flows が無くても、同じ体験は作れる〜
はじめに:
「Flows は使えない。でも、自動化したい」は個人ユーザーの共通の悩み
Google が提供している Google Workspace Flows は、
社内アカウント(企業 / 学校)向けの機能で、
個人の Gmail アカウント(@gmail.com)では使えません。
そのため、
「まじん式v3 をフローの部品にして、スライド生成を自動化したい」
「文書更新 → スライド再生成」
「AI が代わりに作業してくれるワークフローを作りたい」
…という人にとっては、Flowsが使えないのは大きな制約に見えます。
ところが。
✨ 実は Opal を使えば、個人アカウントでも
“かなり近い自動化体験” が作れます
Opal は Google が個人向けに展開している AIサイドバー で、
Docs
Sheets
Gmail
Drive
Search
などと密接に連携し、
「AIがあなたの代わりにツール操作をやってくれる」
という新しい体験を提供しています。
この Opal の仕組みを利用すると、
Google Workspace Flows の代わりとして、
“まじん式v3スライド生成フロー” を組み立てることが可能になります。
この記事は、そのための 具体的な手順ガイド です。
1. 全体像:Opal版フローのアーキテクチャ
Opal は Flows のように
「明確な GUI ノードで自動化フローを組む」仕組みではありません。
代わりに:
Opal に自然言語で指示すると、その場で必要な操作を実行してくれる
というスタイルの自動化です。
これを活かすと、
まじん式v3によるスライド自動生成フローは
次の構成で実現可能です。
🔧 アーキテクチャ図(概念)
Docs(台本)
スライドにしたい文章を書く
Opal(AIアシスタント)
Docs からデータを取得
スクリプトの実行URLを生成・呼び出し
結果(スライドURL)を受け取り、その後の処理に回す
GAS(まじん式v3)
Docs → Slides 変換処理を担当
Web API として公開しておく(個人アカOK)
2. Step 0:GAS(まじん式v3)を Web API にする
Flows のときは「Apps Script アクション」でしたが、
Opal と連携するには別の方法が必要です。
それが Web API 化(Webアプリとしてデプロイ) です。
2-1. Web API 用の関数例
function doGet(e) {
const docId = e.parameter.docId;
const style = e.parameter.style || "clean";
const result = createSlidesFromDoc(docId, style);
return ContentService
.createTextOutput(JSON.stringify(result))
.setMimeType(ContentService.MimeType.JSON);
}これで、
https://script.google.com/macros/s/XXXXX/exec?docId=xxxxのように呼び出せるようになります。
2-2. 公開設定
GAS の「デプロイ > 新しいデプロイ」から
種類:Webアプリ
誰がアクセス:全員(匿名ユーザー含む)
にしておくと、Opal から叩けます。
※ 個人Gmailであれば、これで問題ありません。
匿名公開前に、実行権限・対象文書・返却内容の制限を確認してください
3. Step 1:Docs で台本を書く
OpalはいろんなGoogleアプリを横断的に扱えるので、
書き途中の台本
タスクのメモ
Markdown的な構成
章立てもOK
どんな書き方でも使えます。
例:
# 今日のプレゼン台本
## 1. 導入
〜〜〜
## 2. 本題
〜〜〜4. Step 2:Opalを呼び出し、指示を与える
ここが Opal版フローの核心 です。
Opalに対して、次のような指示を与えます。
⭐ 推奨:Opal用“指示テンプレ”(コピペ可)
Opalへ指示する文(例)
今開いているGoogleドキュメントのIDを取得し、このIDを docId として、以下のWeb APIを実行してください:https://script.google.com/macros/s/XXXXX/exec?docId=[ID]
実行結果として返されるJSONの中の slidesUrl を抽出し、
そのURLを開いてください。
最後に、このスライドURLを Gmail ドラフトに貼り付けて、
“本日のプレゼン資料が完成しました” という本文を作ってください。」
🧠 Opalが行う処理のイメージ
ドキュメントから ID を取得
API 実行URLを構築
GAS を呼び出す
返ってきた JSON を解析
slidesUrl を開く
Gmail ドラフトを作成して貼り付け
文章まで整えてくれる
まさに Flows の「AI版」 です。
5. Step 3:Opalが返ってきたスライドを開く / 通知する
Opal は続けて指示すれば、
スライドURLをSlack風メモとして保存
カレンダーに“作成完了”イベントを作る
Drive の特定フォルダに整理する
同じ処理を再現するためのテンプレ指示を作る
など、連続操作をすべて自動化してくれます。
※ これが「Opalは単なるチャットではなく“AI付き操作代理人”」と呼ばれる所以です。
6. Step 4:Opalに“この手順をテンプレ化して”と依頼する
Opalの強みは、
「手順をテンプレ化する能力」にあります。
次のように依頼します:
「今実行した一連の手順を、
再利用できるテンプレートとして自然言語でまとめてください。
次からはこのテンプレだけで自動化が動くようにしたいです。」
すると、Opalは
API URLの挿入方法
docId の取得方法
スライド生成後の処理
Gmailへの貼り付け
後片付け
まで含めた「再現可能フロー」を自然言語化してくれます。
これをメモしておけば
次回以降は Opal にテンプレを読み上げるだけでフローが起動します。
7. Opal版フローのメリット / デメリットまとめ
✔ メリット
個人Gmailアカウントで使える
Flows より柔軟(AIが操作してくれる)
複雑な分岐や調整も自然言語でOK
手順のテンプレ化が簡単
自動化しつつ、必要な部分は対話で調整できる
✘ デメリット
イベントトリガー(更新検知 → 自動実行)はできない
完全自動化ラインより、AI補助の自動化に近い
精度はAIの判断に少し依存
明確なGUIフロー図がほしい人には向かない
8. まとめ:個人のGmailでも“自動化フロー”は作れる時代
Opal は単なるAIチャットではなく、
Googleアプリ横断の「AI操作代理人」 です。
その特性を利用すると、
Google Workspace Flows がない環境でも
まじん式v3を使ったスライド自動生成は可能で
操作の続き(共有、整理、メール作成)も全部 Opal がやってくれる
個人アカウントの範囲でも
強力な「日常的 AI 自動化基盤」が手の中に入ります。