【Dify】会社名を入れるだけで提案書が自動生成!企業リサーチ→提案書自動生成くん

Difyを活用し、会社名を入力するだけで企業リサーチから提案書作成までを完全自動化するツール「企業リサーチ→提案書自動生成くん」の仕組みを解説したブログ第138話のアイキャッチ画像。作業着姿で「清掃」のハチマキを締めた男性(ヤス)が、データ収集、AI分析、戦略構築、レポート生成といった一連のワークフローが近未来的なデジタルパネルで繋がった「Dify Workflow」を背に、効率化の成果(ターゲットへの命中)を自信満々に指し示しているイメージ図。IT未経験の50歳清掃員がAIエージェントを駆使して業務DXに挑戦する様子を表現。 Difyワークフロー

1. 商談前の準備に2〜3時間かけていませんか?

皆さんこんにちは、横浜で清掃業をしているヤスです。

前回はDifyでAIキャッチコピーを10案自動生成

のアプリを作りましたね。今回はこちらです。

「明日の商談に向けて企業調査しないと…」「提案書を作る時間がない…」営業職なら誰もが経験するこの準備時間の悩みを、Difyで丸ごと解決するアプリを作りました。

会社名・自社商材・自社の強みを入力するだけで以下が全自動で生成されます。

  • 企業の公式サイトを自動取得して事業内容を分析
  • その企業が抱えていそうな課題を3つ推定
  • 自社商材との接続ポイントを整理
  • 上司に見せられるレベルの提案書テキストを生成
  • 商談前チェックリスト+想定質問と回答例を自動生成

これが数分で完成します。商談前の準備時間が2〜3時間から5分に変わります。

今回はシリーズ初の「ワークフロー型」アプリです。今まで作ってきたチャットボット型より難しいですが、手順通りに進めれば30〜45分で完成します。プロンプトは全文コピーOKです。

2. ワークフロー型とチャットボット型の違い

今回はじめてワークフロー型に挑戦する方のために、今まで作ってきたアプリとの違いを整理します。

比較項目チャットボット型ワークフロー型
代表アプリ断り文句・報告書・コピー今回のアプリ
ブロック数1〜3個約15個
処理の流れ1回のやりとり複数ステップが自動連鎖
できることシンプルな生成検索・取得・分析・生成を連続実行
難易度★☆☆☆☆〜★★☆☆☆★★★★☆

💡 ワークフロー型はブロックを1つずつ追加してつないでいくだけです。難しく見えても手順通りに進めれば必ず完成します。

3. 完成イメージ|こんな出力が自動生成されます

「株式会社サイバーエージェント」「AIを活用した広告運用自動化ツール AdAI」を入力すると以下のような営業準備パッケージが出力されます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🏢 営業準備パッケージ ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 対象企業:株式会社サイバーエージェント 📊 STEP 1|企業分析レポート 【企業概要】インターネット広告・メディア・ゲームを主力とする 総合デジタルメディア企業。AbemaTVやAmeba等を展開。 設立:1998年 / 従業員:約7,000名 ⚡ STEP 2|推定課題・ニーズ 課題①広告運用の自動化・効率化 [緊急度:高] 根拠:大規模広告事業を展開しており運用工数の削減が急務 課題②データ活用によるROI最大化 [緊急度:高] 課題③クリエイティブ制作コストの削減 [緊急度:中] 📄 STEP 4|提案書テキスト 株式会社サイバーエージェント様 御提案書 1. 貴社の現状認識 インターネット広告事業を中核とされる貴社においては 広告運用の更なる効率化とROI向上が重要課題とお見受けします。 (課題・提案・選ばれる理由・ネクストステップが続く) ✅ STEP 5|商談前チェックリスト 商談のゴール:デモの日程確定と担当決裁者の確認 □ 現在の広告運用体制と担当人数を事前確認 □ 競合ツールの導入有無を確認 □ 予算感・導入時期の確認 Q2:他社ツールと比較して何が違いますか? A:AdAIは初期費用0円・最短1週間導入・既存の広告 アカウントをそのまま連携できる点が最大の差別化です。

4. 全体のブロック構成

15個のブロックが以下の順番で自動連鎖します。

#ブロック名種類役割
1ユーザー入力開始企業名・商材・強みを入力
2検索クエリ生成LLM①公式サイト検索クエリを作成
3TAVILY SEARCHツールWebを検索してURL取得
4URL抽出LLM②公式サイトURLだけを抽出
5HTTPリクエストHTTP公式サイトのHTMLを取得
6コード実行コードHTMLを3000文字に切り詰め
7サイト内容分析LLM③事業内容を構造化して分析
8課題・ニーズ推定LLM④企業固有の課題を3つ推定
9接続ポイント整理LLM⑤課題×商材のマッチングを整理
10提案書生成LLM⑥提案書テキストを生成
11商談チェックリストLLM⑦商談前準備リスト+想定Q&Aを生成
12テンプレート変換テンプレート全出力を1文書に整形
13出力終了最終結果を出力

5. 事前準備|必要なものはこれだけ

  • Difyのアカウント(無料プランOK)
  • OpenAIのAPIキー(platform.openai.com で発行)
  • Tavily SearchのAPIキー(tavily.com で発行・無料枠あり)
  • 所要時間:30〜45分

⚠️ TavilyはDifyのツール機能で使うWeb検索サービスです。無料プランで月1000回まで検索できます。tavily.comでアカウントを作りAPIキーを発行してDifyのツール設定から登録してください。

6. 【作り方】ステップごとに丁寧に解説

STEP 1|新しいワークフローアプリを作成する

  1. Difyにログインして「アプリを作成」をクリック
  2. 種類は「ワークフロー」を選ぶ ← チャットボットではない!
  3. アプリ名に「企業リサーチ→提案書自動生成くん」と入力
  4. 「作成する」をクリック

💡 ワークフロー画面はチャットボットと違いキャンバス形式になっています。ブロックを追加してつなぐだけでフローが完成します。

STEP 2|開始ブロック(ユーザー入力)を設定する

最初から配置されている「開始」ブロックをクリックして以下の3つの入力変数を追加します。

変数名表示名種類必須
company_name企業名テキスト(短文)
our_product自社商材・サービス名テキスト(短文)
our_strength自社の強みテキスト(長文)

STEP 3|LLM①〜② 検索クエリ生成・URL抽出

開始ブロックの右「+」からLLMブロックを追加して「検索クエリ生成」と名前をつけます。以下のプロンプトを設定してください。

# Role あなたは企業調査の専門家です。 与えられた企業名から公式サイトを確実に見つけられる Google検索クエリを生成します。 # Input 企業名:{{開始.company_name}} # Pre-Processing(出力しないこと) 1. 日本語か英語かを判定する 2. 法人格の有無を確認する 3. 同名企業が複数ありそうか判定する # Rules – 検索クエリは1つだけ出力する – 「公式」を必ず含める – クエリ以外の文字を一切出力しない # Output 検索クエリのテキストのみを1行で出力すること。

次にTavily Searchツールブロックを追加して検索クエリを渡します。その後LLM②(URL抽出)ブロックで検索結果から公式サイトURLだけを抽出します。

STEP 4|HTTPリクエスト+コード実行

HTTPリクエストブロックでLLM②が抽出したURLのHTMLを取得します。メソッドはGET、URLにはLLM②の出力変数をサジェストから選んで設定します。

⚠️ 大企業のサイトはHTMLが大きすぎてトークン制限エラーになることがあります。HTTPリクエストの後にコード実行ブロックを追加してHTMLを3000文字に切り詰めてください。

コード実行ブロックの設定(言語:Python3)

def main(html: str) -> dict: trimmed = html[:3000] return {“result”: trimmed}

💡 入力変数「html」にHTTPリクエスト.bodyを紐づけ、出力変数名を「result」に設定します。LLM③のプロンプトではこのresultを参照します。

STEP 5|LLM③〜⑦ 分析・推定・生成の5連鎖

ここからが本番です。5つのLLMブロックを順番に追加して以下の処理を連鎖させます。

ブロック名前temperature役割
LLM③サイト内容分析0.3HTMLから事業内容を構造化
LLM④課題・ニーズ推定0.5業種別典型課題と照合して3つ推定
LLM⑤接続ポイント整理0.6課題×商材のマッチングを設計
LLM⑥提案書生成0.7800〜1200文字の提案書を生成
LLM⑦商談チェックリスト0.45項目チェックリスト+想定Q&A

各ブロックのプロンプトには前のブロックの出力変数を紐づけます。プロンプト欄で「{{」と入力するとサジェストが表示されるので手打ちせずサジェストから選んでください。

💡 同じ変数が複数回出てくる場合は最初の1つをサジェストで確認してコピペすればOKです。

STEP 6|テンプレート変換+終了ブロック

LLM⑦の後にテンプレートブロックを追加します。テンプレートブロックはLLMの変数を直接参照できないため、入力変数欄でarg1〜arg7として紐づけてからコード内で使います。

変数名(左)参照先(右)役割
arg1LLM③.text企業分析
arg2LLM④.text課題推定
arg3LLM⑤.text接続ポイント
arg4LLM⑥.text提案書
arg5LLM⑦.textチェックリスト
arg6開始.company_name企業名
arg7開始.our_product自社商材

最後に終了ブロックを追加してテンプレート変換の出力変数を設定すれば完成です。

Difyで構築した「企業リサーチ→提案書自動生成くん」のワークフロー設計図とテスト実行結果。左側には「TAVILY SEARCH」によるWeb検索から「サイト内容分析」「課題・ニーズ推定」「提案書生成」まで、複数のLLMノード(gpt-4o / gpt-4)を連携させた高度な自動化プロセスが表示されている。右側のプレビュー画面では、リサーチに基づいた他社比較の優位点や導入リスクへの回答、さらには「もし断られた場合のネクストプラン」まで詳細に盛り込まれた実戦的な提案書が自動生成されている様子。

7. よくあるエラーと解決方法

① Rate Limit Error 429(トークン超過)

大企業のサイトはHTMLが大きくトークン制限を超えることがあります。HTTPリクエストとLLM③の間にコード実行ブロックを追加してHTMLを3000文字に切り詰めてください。それでも解決しない場合はHTTPリクエストのURLを「https://r.jina.ai/取得したいURL」に変更すると大幅に改善します。

② 変数が認識されない

プロンプト内の変数は手打ちせず必ず「{{」と入力してサジェストから選んでください。ブロック名にスペースが入っている場合(「LLM 3」など)手打ちでは認識されません。

③ テンプレートブロックでLLMの変数が使えない

テンプレートブロックはLLMの変数を直接参照できません。入力変数欄でarg1〜arg7として紐づけてからコード内で{{arg1}}として使ってください。

8. よくある質問(FAQ)

Q1. Tavily Searchは有料ですか?

無料プランで月1000回まで検索できます。通常の業務利用であれば無料枠で十分です。tavily.comでアカウントを作成してAPIキーを発行してください。

Q2. サイトが取得できない企業はありますか?

ボット対策が厳しいサイトはHTMLが正常に取得できないことがあります。その場合はHTTPリクエストのURLをhttps://r.jina.ai/に変更するか、手動で企業情報を入力変数に追加する方法で対応できます。

Q3. 生成された提案書をそのまま送っていいですか?

必ず人間が内容を確認・修正してから使用してください。AIの推定には誤りが含まれることがあります。あくまで「叩き台」として活用し最終的な判断と修正は営業担当者が行ってください。

Q4. チャットボット型と組み合わせることはできますか?

できます。このワークフローをAPIとして公開してチャットボット型アプリからAPI経由で呼び出す構成にすることで、チャット感覚で提案書を生成できるようになります。

9. まとめ

  • 会社名・商材・強みを入力するだけで企業分析→課題推定→提案書→チェックリストまで全自動
  • 商談前の準備時間が2〜3時間から5分に短縮
  • 15ブロックのワークフロー型で複数処理が自動連鎖
  • プロンプトは全文コピーOK。手順通りに進めれば30〜45分で完成
  • トークン超過エラーはコード実行ブロックで解決

今まで作ってきたチャットボット型アプリと比べてブロック数は多いですが、一度作ってしまえば営業活動の質が劇的に変わります。商談前の準備を「作業」から「確認」に変えることができます。

今回は久しぶりに複数のブロックを使ったワークフローの

アプリを作りましたがゆっくりと確実に作りました!

時間はかかりましたがどはまりしなかったので

割とスムーズに作れました!

xもやってるので良かったら見に来てください

私のエックスです。

次回も是非お楽しみに!

コメント

タイトルとURLをコピーしました