
【まだ自動化してないの?】生成AI実践ハンズオン〜AIを使った議事録の自動整理〜
はじめに
「商談の議事録は録っているけど内容が整理されていない…」「議事録を整理するのに時間がかかって帰りが遅くなる…」「情報整理をもっと効率的に進めて自己研鑽や家族と過ごす時間をやしたい…」
こういった思いを持った方は多いのではないでしょうか?
この悩み、実はAIを活用すればできます。しかも、プログラミングの知識がほとんどない人でも取り組めます。
今回の記事その具体的な方法と、AIツールの作成手順を解説します。
具体的には、生成AIツールとGoogleスプレッドシートを活用して、各議事録の内容から必要な情報を取り出して整理するための方法を紹介します。
コピペやポイントを押さえるだけで『AI×業務効率化』を実現できるように書いているので、プログラミングや細かい専門知識を使わず、業務で本当に実現したいことに集中できる構成になっています。
この記事で生成AIの業務活用方法を学ぶことで「社内でAIといえば〇〇さん!」と頼りにされるようなキーマンになるのも夢ではありません。
楽しみながら学んでいきましょう!
今回作成するAIツール
「▷」をクリック(タップ)するとデモ動画が動きます。
"議事録整理が面倒"って人は、今すぐDify+生成AIに投げちゃえばいい。ただでさえ面倒な商談メモが、要点別に自動で仕分けされてキレイにまとまる。結果、浮いた時間で自己研鑽もできるし、家族との時間も増えてモチベ爆上がり。できる人はもちろん、そうじゃない人も10倍ラクに生産性UP。見ないと損。 pic.twitter.com/ByIHw9xxA1
— ニコラ@ビジネスマンのAI活用 (@Nicola_GenAI) December 24, 2024
今回作成するのは、「AIを活用した商談議事録の自動整理ワークフロー」です。
過去の商談議事録から、「クライアント名」「クライアントの課題感」「提案したプラン」「最終的に受注に至ったか」などの自身で指定した情報を抽出し、自動でスプレッドシート上にまとめてくれるツールです。
このツールを使って過去の議事録から商談データを整理すると、「〇〇という課題のある顧客にはXXXというプランが有効かもしれない」という分析も将来的に行うことができるようになるなど、実務での可能性も広がります。
AIをフル活用して営業活動にブーストをかけましょう!
本記事のゴール
今回はNotion上の議事録データを対象にしていますが、WordやGoogleドキュメントなどに議事録を保存している場合でも応用が効きます。
Notionで管理している議事録を、自動でGoogleスプレッドシートに収集し、
Difyという生成AIツールでテキストを要素ごと(企業名、課題、成約したか?等)に自動仕分けして、
スプレッドシートで一覧管理できる状態を構築します。
この記事を読むと得られるもの
① 社内営業部門のキーマンになれる
AIを使いこなす仕組みを自前で構築できるようになれば、「この人に相談すれば商談情報の整理や次の一手もすぐわかる」と頼られる存在に近づきます。
② 時短かつラク
コピー&ペーストで手順を踏めば、システム担当や高度なプログラマーに依頼せずとも、自分で営業データの分析基盤を整備できます。
③ AIを応用できるようになる
NotionではなくWordやGoogleドキュメントなどの議事録データを活用したい場合でも、Notionの場合と同様のAI処理で対応が可能です。
最低限の前提知識
Notionの使い方がわかる人、もしくは調べながらNotionを扱える人
Googleアカウントを持っている人、調べながら作成できる人
本記事の構成
それでは、順番に解説していきます!
1|全体像
まずは今回作成する「商談議事録の自動仕訳AI」の全体像を把握しましょう。
下記の図のような構成になっています。

【作成するワークフロー】
Googleスプレッドシートで作業開始ボタン押下
GASからNotionにアクセス
Notionから議事録データを取得
取得した議事録データをDifyに送信して情報を仕分け
Notionの情報と仕分けしたデータを合わせてGoogleスプレッドシートに記載
すべての準備が完了すると、『Googleスプレッドシート上からボタンを1回押すだけ』で、Notionに記載されている議事録の内容と、その仕訳をすべて自動で行うことができます。
ここでは、Notionに格納されている議事録データベースをご自身の議事録データを活用いただいて構いません。もし手元にデータがない方は私が作成したダミーデータをコピーしてすぐ活用できるのでご安心ください。
2|Notionのセットアップ
もしまだNotionを利用したことがない方は、この章をご覧ください。既にNotionをご利用いただいている方はこの章をスキップ可能です。次のNotionに「議事録データを準備する」に進んでください。
Notion上に議事録データを準備する
今回は「商談議事録」というページにテーブル形式で各商談の議事録が格納されている想定です。
使用する商談議事録データは下記のページから閲覧可能です。
🚨 注意!!
実際にDifyワークフローで使用する際には、商談議事録データのページを丸ごとコピーして、ご自身のワークスペースに移してください。
ご自身がNotion APIを使って実際にアクセスするのは、コピーしたあなたのワークスペース上の議事録データベースです。
Notion APIの設定
Notion integrationを作成
Notion APIを取得してDify上に設定するために、「Notion integration」という設定を完了する必要があります。その手順を詳細に解説します。
① Notion integrationページにアクセス
まず、下記のリンクからNotion integrationの設定ページにアクセスしてください。
Notionアカウントのログインを求められる可能性があります。議事録データベースを格納しているご自身のNotionアカウントにログインしましょう(Googleログインやメールアドレスログインが可能です)
アクセスが完了後、インテグレーションのページにアクセスしてください。下記のような画面が表示されればOKです。

② 今回使用するインテグレーションを作成
そのページ上で「新しいインテグレーション」のボタンを押し、インテグレーションを作成準備に入ります。
「インテグレーション名」「ワークスペース(議事録データが格納されているご自身のアカウント)」「種類:”内部”を選択してください」「ロゴ:設定しなくてもOK。ご自由に」の設定が完了したら、「保存」を押して作成を完了させましょう!

③ インテグレーションの権限設定とシークレットキーの取得
作成完成すると、下記のようなページにアクセスできると思います。

「内部インテグレーションシークレット」は、後ほどDifyのセットアップで使用します。NotionとDifyを連携するために必要なアクセスキーの役割を果たします。
「表示」を押してシークレットキーをコピーして手元に残しておきましょう。
🚨 注意:
内部インテグレーションシークレットは、第三者に公開しないように厳重に扱ってください。
最後に、「機能」の詳細を設定を確認すれば、Notion integrationの作成は完了です。
ここは特に追加で設定をする必要はなく、デフォルト設定のままでOKです。
今回はデータベースに格納されている議事録の読み取りをDifyで行いたいので、「コンテンツ機能」の「コンテンツを読み取る」にチェックマークがついていればOKです。その他の機能は今回使用しないので、チェックを外しても問題ありません。
議事録データベースへのアクセス権限を与える
DifyからNotion上にある商談議事録データベースへ自動でアクセスする許可の設定をします。
先ほどの手順で、Notion integrationの設定が完了していれば、商談議事録データベースのページ側の設定をするだけで簡単に完了します。
①|自身のNotion上の商談議事録データベースを開く
下記のリンク先のページから、ご自身のNotionアカウントにデータベースをコピーします。下記のようなページが表示されると思います。

画面右上の「複製」ボタンを押すと、自身のNotionアカウントにページをコピーすることができます。複製場所、ページタイトル自体は自由に設定して問題ありません。
以降は、下記のような画面が表示されている前提で進めます。

② Notion上の議事録データベースとNotion integrationの連携設定
先ほど複製したご自身のNotionの議事録データベースのページを開いてください。
次に、ページ右上の三点リーダ(・・・)アイコンを押し、接続(英語表記だと”Connect to”)というボタンを押します。
すると、先ほど作成したNotion integrationの名前が表示されるはずです。私の場合だとintegration名を「Dify連携インテグレーション」と設定したので、その名前が表示されています。

接続前に、確認の案内が入るので「はい(Confirm)」を選択して接続を完了させてください。

連携が完了したら下記のように「連携」が"1"と表示されるはずです。

Notion Database IDの取得
GoogleスプレッドシートからNotionの議事録データベースにアクセスするためには、APIキーに加えてNotion Database IDが必要です。これはどのデータベースにアクセスするかを示す情報で、該当するデータベースのURLの一部がIDとなっています。
Notionの議事録データベースのページを開き、画面右上の「共有」ボタンを押す
表示エリアの右下に「リンクをコピー」というボタンがあるのでリンクを取得
取得したリンクURLの一部がデータベースIDです
"https://www.notion.so/[Notion Database ID]?vYYYYY…"
のようなリンクが取得できているかと思います。上記リンクの[Notion Database ID]が取得すべきIDです。`notion.so`の直後、`?v =…`の直前までが対象です。間違えないように注意してください。
Notionデータベースのセットの章では、「Notion API(シークレットキー)」「Notion Database ID」の2つのキーを取得しました。
ここまでで議事録データのセットアップが完了しました。続いて、Dify上でLLM(生成AI)を使用するために、OpenAIのセットアップを行います。
手順の中で「API」などプログラミングに関するワードが出てきますが、専門知識不要で手順の通りに準備するだけで完了するので、頑張って進めていきましょう!
3|OpenAI APIの設定
Dify上でLLMを扱うためにOpenAIのAPIキーを設定する必要があります。OpenAI APIキーの設定を行うことで、Dify上でChatGPTのようにAIとのやりとりを行うことができるようになります。
最終的にGoogleスプレッドシートから自動で議事録データを構造化するために必要な準備なので順番に進めていきましょう。
OpenAIアカウントの登録
OpenAI APIキーを取得し、DIfy上でLLMを活用するためにまずはアカウント登録をする必要があります。下記の手順に従って登録を完了させましょう。
ブラウザでOpenAIの会員登録ページにアクセスします
メールアドレスまたはGoogle / Microsoft / Appleアカウントで登録をします
メールで送られてくる確認リンクをクリックして、アカウントを有効化します
アカウント作成完了後、APIキー取得のために支払い方法の設定が必要になります(クレジットカード情報の入力が必要)

※ 本書で開発に使用するAIモデルはgpt-4o-miniなので、かなり少額の料金で済みます。(1回の実行で1円もかからないです)
実際に使用した金額を確認するには、OpenAI公式の使用量確認ページをご覧ください。
OpenAI APIキーの取得
それでは、Dify上でLLMを使用するためのAPIキーの取得をしましょう。下記の手順に従って取得が完了します。
先ほど作成したアカウントにログイン完了後、OpenAI DashboardのAPI Keysのページにアクセスします。
次に、Create new secret keyボタンを押します

キー名に Dify-project と入力し、"Create secret key"ボタンを押します
キー名は自由に設定OKです。キー名の入力前に「プロジェクト名」の入力が求められることがあります。プロジェクト名も「Dify」のように設定してOKです(こちらも名前は自由に決めてOKです)

画面に表示されたAPIキーをコピーしてメモ帳アプリなど、後ですぐに使用できるように手元に保存しておきましょう。
🚨 注意点:
APIキーは一度しか表示されません。コピーして忘れないようにしましょう(もし忘れてしまった場合は、もう一度APIキーを発行し直しましょう)
APIキーは他人に見られないように厳重に管理しましょう
知らないうちに多額の使用料を請求されてしまう事態を避けるために、APIの利用上限を設定しておくことをお勧めします。
これでDify上からご自身のNotion上にある議事録データベースにアクセスし、AIで処理を行う準備が整いました!
次はいよいよDify上でのセットアップとワークフロー構築に入っていきます。
4|Difyワークフローの実装

そもそもDifyとは
Difyとは様々なワークフローを自動化する「ノーコード/ローコードツール」です。プログラミングの知識はほとんど不要で、初期設定を完了すれば発想次第で様々な自動化ツールを作成可能です。
ChatGPTを提供するOpenAIなどのAIモデルをDify上で利用することで、AIを組み合わせた処理を簡単に構築することができます。
改めて、今回作成するワークフローと現在地を確認しましょう。今回作成するのは、Notion上の商談議事録データをGoogleスプレッドシート上で整理するワークフローです。
このワークフロー実現のために、NotionとOpenAIのセットアップを完了させました。
次は、Difyを使って議事録データをAIで構造化するための処理を設定します。
それでは順番に設定していきましょう!
4-1|Difyの登録
Difyにアクセスし、「はじめる」をクリックしてください。

Googleアカウント、メールアドレス、GitHubでの会員登録が可能です。

4-2|DifyとOpenAI APIキーの連携
次に、DifyとOpenAI APIキーの連携を行います。先ほどOpenAIのダッシュボードから作成したAPIキーを手元に準備しておきましょう。
① 設定画面への移動
会員登録が完了するとDifyのホーム画面に移動すると思います。
その画面上で右上のユーザーアイコンをクリックし、「設定」をクリックします。

② モデルプロバイダー上でAPIキーの設定
「ワークスペース」の「モデルプロバイダー」を選択し、OpenAIの「API-KEY」の「⚙セットアップ」をクリックします


「API Key」の欄に先ほどOpenAI上で作成したAPIキーをコピーして貼り付けをしてください。OrganizationやAPI Baseは空欄でOKです。
Open AIのAPIキーを貼り付けたら、「保存」をクリックして設定を完了します。

OpenAIの「API-KEY」に緑色のマークが表示されていれば設定が完了です。

最後に、デフォルトで使用するAIモデルを変更しましょう。最も安価で高速な`gpt-4o-mini`を使用しましょう。
※ 最初のDifyの設定では`gpt-o1-mini`というモデルが設定されています。

これでDify上でワークフローを構築するための準備が整いました!
4-3|Difyワークフローのプロジェクト作成
DIfy上で今回のワークフローを構築するために、プロジェクトページを準備しましょう。
「アプリを作成する」から「最初から作成」をクリックしてください。

「ワークフロー」を選択し、アプリ名と説明を下記のように設定しましょう。設定が完了したら「作成する」を押すとプロジェクト設定完了です。
アプリ名:”議事録自動仕訳ワークフロー”
説明:”Notion上に格納されている商談議事録から、「企業名」「課題」「受注可否」などの情報を取得して構造化するためのワークフロー”

作成が完了すると下記のような画面が表示されます。ここにAIで議事録データを処理するためのワークフローを構築していきます。

4-4|商談情報の構造化ワークフローの構築
いよいよ、生成AIを使ったワークフローを構築していきます。プログラミングの知識がなくてもAIを使って簡単に議事録から必要な情報を抽出できることを体験してみましょう。
DIfyワークフローは「ブロック」と呼ばれる機能単位で処理をつなげることで一連の機能を実現します。今回は「開始ブロック」「LLMブロック」「終了ブロック」の3つを使用して議事録データから情報を抽出する処理を作成します。
① 開始ブロックの設定
開始ブロックは全てのワークフローで必須のブロックです。処理のスタートは常にこのブロックから始まります。
「開始ブロック」をクリックすると画面右側に詳細情報の設定が表示されます。
「入力フィールド」の”+”をクリックして入力変数を設定しましょう。

下記のように設定を行なった上で、保存を押してください。綴りミスに注意してください!
フィールドタイプ:「段落」を選択
変数名:”minutes”と記入
ラベル名:”minutes”と記入(変数名と同じ)
最大長:”100000”と記入(長く設定しておきます)

これで、開始ブロックに議事録データを入力することができるようになりました。
🚨 注意
入力変数名は必ず`minutes`と設定してください。後ほど紹介するGoogle App Scriptの実装の関係でこの変数名以外のものだと正しく処理ができなくなります。
② LLMブロックの設定

LLMブロックは生成AIのモデルを召喚し、指定した指示通りに処理を実行してもらうためのブロックです。事前にプロンプト(指示文)を設定することで、そのプロンプトの指示に従って処理が進みます。
開始ブロックで入力される「議事録データ:”minutes”」をLLMブロックに連携し、LLMで議事録から企業名などの情報を抽出してもらう処理を実装します。
下記のように設定を進めてください。
モデル:「gpt-4o-mini」を選択(他のモデルはAPI利用料が高額なものが多いので注意しましょう)
コンテキスト:空白でOKです
SYSTEM:下記のプロンプトを入力してください。プロンプト内部の「{x} minutes」という部分は、SYSTEMの {x} をクリックして「開始 / {x} minutes」を選択すればOKです。
▼ 設定するプロンプト(コピー & ペーストしてください):
## Instruction:
あなたは優秀なビジネスアナリストです。以下の議事録を読み取り、下記の`出力フォーマット`ようなJSONだけを出力してください。見つからない要素は"未確認"と入力してください。
## 抽出対象要素:
- 顧客企業名
- 課題・悩み
- 提案したプラン
- 受注ステータス (「最終的な受注結果」を確認。なければ議事録本文参照。「成約」「失注」「ペンディング」で回答)
## 出力フォーマット:
{"customer_name": "",
"challenges": [""],
"proposed_plan": "",
"decision_status": ""
}
## 議事録:
<{x}をクリックして、「開始 / {x} minutes」を選択してください。この文章自体は削除してください>
下記の画像のように設定ができると完了です。

★ 補足(詳しく知りたい人向け)
今回はLLMの出力の形式をJSON形式になるようにプロンプトで指示しています。
これはプログラミングでよく使うデータの構造です。必ずしもこの形式にする必要はありませんが、最終的にGoogleスプレッドシートと連携する際にこの形式だと非常に都合がいいのでJSON形式を採用しています。一旦は「プログラミングで扱いやすいデータの形なんだ」と思っておいても大丈夫です。
③ 終了ブロックの設定
終了ブロックは、Difyワークフローの最終的な出力を指定できます。今回は、構造化された議事録データを出力したいのでLLMブロックが出力する情報を終了ブロックの出力に設定します。
下記の順番で設定を完了させましょう。
LLMブロックにカーソルを合わせ、「+」ボタンを押して「終了ブロック」を選択してください。

終了ブロックを選択し、「出力変数」欄の「+」ボタンをクリックして出力変数のフィールドを追加してください

追加された出力変数設定フィールドで、右側の入力欄("{x} 変数を設定")をクリックして、「LLM {x} text」を選択してください。
変数名は"minutes_json"に変更してください。

🚨 注意
Difyへの入力変数名(`minutes`)と同様に、出力変数名も正しく設定する必要があります
`minutes_json`と設定できているかチェックしましょう
最終的に下記のような全体像になればOKです!できていない場合は、前のステップに戻り、正しく設定を完了させましょう。

4-5|動作確認

ワークフローの実装お疲れ様でした。作成したワークフローが正しく動作しているかをチェックしましょう!
「大手IT:XYZ情報サービス社」の議事録の本文を題材にして実験してます。
① 確認用データの準備
まず、ご自身のNotionから「大手IT:XYZ情報サービス社」の本文を全てコピーしてください(先ほど複製して作成したページです)。
下記にも全く同じ議事録を記載するのでこちらをコピーしてもOKです。
# 大手情報サービス:XYZ情報サービス
**日時**:2024年12月15日(月)10:00~10:30
**場所**:XYZ情報サービス 本社 18F会議室
**参加者**:
- 佐藤(当社営業)
- 鈴木さん(XYZ情報サービス マーケ部長)
## **議事録メモ**:
**10:00**
- 佐藤:「本日はお時間ありがとうございます。鈴木さんとは初めましてですね。」
- 鈴木:「はい、実はうちで使ってた独自のMAシステムが古くなっていて、統合したいって話が出てて…。でも、部門ごとに独自に動いているし一筋縄じゃいかないんですよね。」
- 佐藤:「やはり大きな会社さんだと調整が大変ですよね。もしよろしければ現状の課題をもう少し詳しく…。」
**10:05**
- 鈴木:「一番は、うちのIT部門がMA部分を内製してきたんですが、メンテナンスコストがかさんでしまって…。それに、マーケ部門と営業部門で使うツールがバラバラでデータが共有されてないんです。」
- 佐藤:「社内合意形成にはどういったステップが必要なんですか?」
- 鈴木:「大体、経営企画部門とIT部門、マーケ、営業の4部署の意見を合わせて決める形ですね。毎回時間がかかって…。予算取りも年度単位になること多いですし。」
**10:10**
- 佐藤:「弊社のEnterpriseプランは、SalesforceなどとAPI連携可能ですし、マルチテナントで部門ごとの運用を一元管理できます。初期費用100万円、月額30万円からのイメージです。」
- 鈴木:「30万円か…。まさにうちみたいな大手にはいい機能ですよね。でも現在の予算が…。IT予算は他のプロジェクトに取られちゃっているんですよね。」
- 佐藤:「もし年度が変わるタイミングで検討されるのであれば、来春スタートでもサポート可能ですよ。」
**10:15**
- 鈴木:「デモを一度、各部門を集めた形で見せてもらえますか?具体的な画面を見せないと、上層部はイメージしづらいので。」
- 佐藤:「もちろん大丈夫です。1月中旬くらいに社内向けのオンラインデモ会を設定しましょうか?」
- 鈴木:「はい、それでお願いします。あとカスタマイズ費用とか、全体の費用感をまとめた資料もほしいです。」
**10:20**
- 鈴木:「最終的に導入するにしても、実際運用開始は早くて来年度になると思います。決済に時間かかるんで…。」
- 佐藤:「そうですよね。徐々に進めていきましょう。必要ならPoC(試験導入)も検討していただいて構いません。」
**10:25**
- 鈴木さん「検討の進捗は年明けに…。年末は忙しくて…」
- 佐藤:「了解です。1月第2週あたりにまたご連絡差し上げます。もしご要望あれば先に簡易的な提案資料だけでもお渡ししますね。」
## 受注結果
当日は結論出ず → 後日受注確定!!
② Difyでペーストして実行
Difyプロジェクトの画面右上の「▷ 実行」をクリックすると、テキスト入力欄と「実行を開始」というボタンが表示されます。
`minutes`というテキスト入力欄に先ほどコピーした議事録本文を貼り付け、実行開始ボタンを押してください。

ワークフローが正しく設定されていれば、全ての処理が完了し下記のような出力が表示されます。

出力されるテキストは個々人によって若干の違いは出ますが、似たような内容が出力されているはずです。もし全然違う内容が出力されている場合は、「プロンプトの設定」「入出力の変数の設定」などを確認してみてください。
4-6|Difyワークフローの公開
今回の最終的なゴールは、Googleスプレッドシート上からワンボタンで議事録の自動整理を行うことにあります。そのため、作成したDifyワークフローをGoogleスプレッドシート上からアクセスする必要があります。
そのためには、Dify上で作成したプロジェクトを公開しておかなければいけません。
プロジェクトの公開の後にGoogleスプレッドシートから作成したDifyワークフローにアクセスするためのAPIキー生成を順番に説明します。どちらも数ステップで簡単に完了するのでサクッと終わらせましょう!
① Difyプロジェクトの公開
Difyのプロジェクトページを開いた状態で、ページ右上の「ページを公開」を押す
「プロジェクト公開が完了しました」と表示されたら完了です。
一度公開した以降は、「公開する」ボタンを押すと、「更新」というボタンが表示されるはずです。プロジェクトで変更した内容は「更新」ボタンを押さないと反映されないので注意が必要です。

🚨 注意
Dify上のワークフローの設定を変更すると、都度プロジェクトの公開(更新)ボタンを押す必要があります。Dify上で変更をして保存しただけでは、Googleスプレッドシートからアクセスする時に更新前のワークフローが利用されてしまいます。
そのため毎回何らかの変更をした場合は更新までセットで行うように注意が必要です。
② DifyプロジェクトのAPIキー生成 & 取得
プロジェクトページの画面左側にある「APIアクセス」を押してページ移動する

(プロジェクトページのAPIキーの場所をcanvaで表示する)
APIページを開いたら、画面右上に表示されている「APIキー」というボタンを押す

「+ 新しいシークレットキーを作成」というボタンを押す

APIキーが生成されるので、Notion APIキーと同様に手元に保存しておきましょう

🚨 注意
Notion integrationキーやOpenAI APIキーと同様に、DifyのAPIキーも第三者には公開しないようにしましょう。
作成したAPIキーは一度しか表示されないので手元で確認できるように保存しておきましょう。
5|Googleスプレッドシートの設定
この設定が完了すれば全ての設計が終了します。あと一息頑張りましょう!
ここでは、Googleスプレッドシート上でワンクリックでNotionやDifyにアクセスし、議事録データを整理して最終的にスプレッドシート上にまとめるための全体の設計を行います。
Googleスプレッドシートの設定にはGoogle App Script(通称GAS)と呼ばれるプログラミングが必要です。普段Excelを活用されている方はVBAのGoogleスプレッドシート版のイメージを持っていただければと思います。
本記事の主な読者は非エンジニアなのでGASの具体的なコードは省略し、「処理の大まかな方向性」の説明にとどめ、下記に提供するスプレッドシートを複製してすぐに実行できるような形にします。
★ GAS部分とDifyの連携について詳しく勉強したい方へ
Qiitaというエンジニア向けの記事共有プラットフォームで本内容の技術部分のハンズオン解説記事を作成しています。GASとDifyの連携について詳しくなりたい方は併せてご覧ください。
※ Qiita記事は後日公開予定です。お楽しみに!
以下では、Googleスプレッドシート側で行っている処理の解説とNotionやDifyとの連携の設定について順番に解説します。
5-1|Googleスプレッドシート上での処理の全体像
配布したGoogleスプレッドシートでは、下記の処理をGASで実装しています。
【Googleスプレッドシート上での実装】
『議事録ツール』というボタンをスプレッドシート画面上部にカスタムメニューとして表示
『議事録ツール』ボタンを実行するとGoogleスプレッドシートからNotionの議事録データベースにアクセスし、議事録を取得してスプレッドシートに情報を転記
転記された議事録データを1個ずつ順番にDifyに送信し、Dify上のワークフローを実行(「顧客名」「顧客の課題」などの情報を抽出してGoogleスプレッドシート側に送信)
Difyワークフローを通じて抽出できた議事録情報を、Googleスプレッドシートに転記
未処理の議事録データがなくなるまでDifyとの通信を繰り返す

具体的な実装コードの説明はここでは省きますが、配布したGASには上記の処理が全て実装されています。
また、ご自身のGoogleスプレッドシート上で上記の処理を実行するには序盤で作成したNotion APIキー(Notion integrationのキー)とDify APIキーをスプレッドシートで設定する必要があります。
以降のステップで、Googleスプレッドシートの立ち上げからAPIキーの設定手順まで順番に解説します。
5-2|Googleスプレッドシートの複製
Googleスプレッドシートをコピーして、ご自身のGoogleドライブ上で作業できるようにしましょう。
先ほど共有したGoogleスプレッドシートを開き、メニューの「ファイル」→「コピーを作成」を押してください。
コピーしたファイルの保存場所は自由に指定してOKです。

「[コピーして使用_配布用] 営業議事録の自動構造化【ニコラ@ビジネスマンのAI活用】 のコピー」という名前のファイルをご自身のGoogleアカウントで開けているか確認してください。
メニュー欄の右端に「議事録ツール」というボタンが表示されていればOKです。

現段階では、API連携の設定をしていないので「議事録ツール」ボタンを押して実行をしてもエラーが発生します。以降の設定を完了すればエラーが出ずに議事録データを整理することができます。

5-3|GASのセットアップ
GoogleスプレッドシートからNotionデータベースやDifyにアクセスするための設定をしましょう。Notion APIキー、Notion Database ID、Dify APIキーを手元に準備しておきましょう。
下記の手順に従って設定を完了させてください。
① GASを開く
スプレッドシートのメニュ一から「拡張機能」を押し、「Apps Script」を押す

「Apps Scripts」ボタンを押し、GASのコード編集画面が表示されれば成功です。以降の設定はこの画面上で行います。

② スクリプトプロパティを設定する
GASの左端のメニューバーの最下部にある「歯車マーク:プロジェクトの設定」ボタンを押して、設定画面を開く

画面を下にスクロールすると、「スクリプト プロパティ」という画面があるので、ここに各種APIキーを設定します。
下記に「Notion APIキー」「NotionデータベースID」「Dify APIキー」の3つを設定します。

🚨 注意
`XXX`という内容コピーするときは、``以外のXXXをコピーするように気をつけてください。``も含めてコピーしてしまうとエラーの原因となってしまいます
意外とミスしやすいポイントなので注意が必要です。
【Notion APIキーの設定方法】
プロパティ名:`NOTION_API_KEY`
値:`あなたが取得したNotion APIキーを入力`
【NotionデータベースIDの設定方法】
プロパティ名:`NOTION_DATABASE_ID`
値:`あなたが取得したNotionデータベースIDを入力`
【Dify APIキーの設定方法】
プロパティ名:`DIFY_API_KEY`
値:`あなたが取得したDify APIキーを入力`
最終的に下記のような設定が完了していればOKです。

🚨 注意
スクリプトプロパティ名(DIFY_API_KEYなど)は本記事で指定している名前と同じにしないと実行時にエラーが発生してしまいます。
APIキー本体の情報は個々人で異なるので本記事の内容と異なっていて問題ありません。
以上でGoogleスプレッドシートからNotionやDifyにアクセスできるようになりました。次のステップでは、これまで設定した全ての要素を組み合わせて正しく議事録を整理できるかを確認します。
5-4|動作確認
Googleスプレッドシートからボタン一つで議事録データを取得して整理する機能の確認をします。早速確認してみましょう!
Googleスプレッドシートのメニュー右端の「議事録ツール」ボタンを押し、「議事録データを構造化する」というボタンを押してください
初回実行時は、実行承認をする必要があります。下記のステップで実行を許可してください(警告が出ますが問題ありません)
① Google認証画面に遷移する
議事録自動整理を初回実行しようとすると、下記のような画面が表示されます。一度認証を許可すれば2回目以降は確認されません。
ボタンを押して画面遷移しましょう。

② 実行を承認するGoogleアカウントを選択する
処理実行中のアカウントを選択して、認証プロセスを進めます。
もし複数アカウントが表示されている場合は、処理を実行しようとしているGoogleアカウントと同一のアカウントを選択してください。

③ 実行認証の確認画面に遷移する
「詳細」を表示のような警告画面が表示されますが、問題ありません。「詳細」をクリックし、「安全でないページ」と表示されている部分に遷移して、実行を許可すれば最終認証画面に遷移します。


🚨 注意
この認証許可は、他人が配布したGASに悪意のあるプログラムが含まれていた場合実行を許可すると、ご自身のGoogleドライブの情報などが削除されたり抜き取られる危険性があります。実行の際には細心の注意を払ってください。
※ 今回配布したGASコードは「ニコラ@ビジネスマンのAI活用」の責任のもと、安全を保証いたします。
④ 認証を許可する
画面下部の「許可」を押して認証を完了させましょう。これで認証プロセスは完了です。

許可をすると元のGoogleスプレッドシートに自動で遷移し、処理が自動で進行します。しばらく待つと下記のように議事録情報がまとめて表示され、実行が完了するはずです。

正しくGoogleスプレッドシートに結果が反映されましたか?
もし何らかのエラーが発生している場合は、下記の間違いがないかをチェックしてみましょう。もしエラーが改善されない場合は、ChatGPTにエラーの解析を指示すると解決してくれることが多いです。
▼ エラー確認ポイント
スクリプトプロパティの設定が正しいか?
Dify上の入出力の変数の設定が正しいか?下記の名前以外だとエラーが発生します
入力変数名:`minutes`
出力変数名:`minutes_json`
以上で、Notion、Dify、Googleスプレッドシートを連携したAIによる議事録の自動整理のワークフローが全て完了しました。設定などの作業が大変だったかと思いますが、一度作成すれば次回以降は設定しなくて良い or サクッと完了するので今回の経験が今後も活きてくるはずです。
おまけ
今回紹介した商談議事録を自動で整理するAIワークフローは様々な点で改善余地があります。皆さんの実務の状況などを踏まえて、改善案を試してみましょう。下記は改善の一例です。
▼ 改善例
Difyのプロンプトを変更して、抽出する内容をブラッシュアップする
GoogleドキュメントやWordファイルなど、Notion以外の場所に格納されている議事録を対象にワークフローを構築する
商談データをもとに、顧客をグルーピングする機能の追加
まとめ
いかがだったでしょうか?生成AIを実際の業務で活用するイメージが湧いたり、AIに興味を持っていただけたのなら幸いです。
「営業議事録から必要な情報を抜き出してまとめる業務」は、会社の業務でも発生し得る実践的なものです。
Difyなどの生成AIツールを目的に応じて使いこなす力はAIによって「作業」が代替される時代において非常に重要になります。その力を付けるためにも、ぜひ積極的にAIを活用して使いこなしていきましょう!
Xアカウントでは、『自分の時間を増やす』ためのAI活用方法やマインドセットについて発信しています。記事のいいねと併せてフォローで応援をしてもらえると今後の励みになります!!
※ ご質問や情報の誤り等ございましたら、お手数ですがXアカウントのDMまでご連絡いただけますと幸いです。