営業活動で、ターゲット企業の事前調査に時間がかかることはありませんか?この課題を解決するために、「Dify x Google App Script x LLM x 検索 x スクレイピング」を活用し、営業リストの事前調査を自動化する方法をPoCしました。
「企業名と所在地」、「企業名と代表取締役社長名」、または「企業名とホームページURL」等を入力するだけで、代表者名や事業内容、取引先情報、役員リスト、SNSアカウント情報などを数分で取得できるため、調査にかかる時間を大幅に短縮し、営業活動の効率化を実現します。
さらに、Difyと生成AIを活用すれば、個別にカスタマイズされたツールを無料で作成・利用でき、コストを抑えつつ、営業の効果を最大化できます。
具体的な方法は現在まとめており、近日公開予定です。興味のある方はお楽しみに!
下記は、DifyとGASと生成AIを活用して、企業調査を自動で行うフローについて解説します。
まず、Google Sheetの特定の列に調査したい企業情報を入力する必要です。それをインプットとして、弊社が作ったフローでスクレイピング、検索、情報検索等を行います。
今回は、下記の4つのケースを対応しております:
各企業ごとに、下記の項目の情報を検索・抽出して、生成AIでまとめたものを、結果はシート上に事情を該当な列に入力されます:
まずは準備として、以下のものを用意してください。
※SerpDevは1つのアカウントに対して、2500回まで無料でAPIを呼び出せます。
※Firecrawlは1つのアカウントに対して、500ページまで無料でScrapeできます。
この準備を完了することで、ワークフローの各ステップをスムーズに進めることができます。
実装に入る前に、Difyのワークフローについて説明いたします。このフローは「企業情報検索・抽出」と「代表者のSNSアカウント情報検索・抽出」、大きく2つの部分に分かれています。
ワークフローの上段は、企業情報を探索するためのもので、3つの検索ケースがあります。各ケースについて詳述します。
このケースでは、ユーザーが「企業名」と「本社住所」のみを入力した場合に、企業情報の探索プロセスが適用されます。プロセスは、2回の検索と情報統合のステップで構成されています。
手順1: 初回の企業情報検索
最初の検索では、企業名と「情報概要」というキーワードを組み合わせてGoogle検索用のクエリ(q値)を作成します。次に、Google検索を実行し、最初の3件の検索結果を取得します。これらのURLに対して、Jina Readerを使用してウェブサイトの内容を抽出します。
その後、LLM(大規模言語モデル)を使用して各ウェブページから企業情報を抽出し、取得した3件の情報を統合して一貫した内容にまとめます。
<補足情報>
手順2: 2回目の企業情報検索
2回目の検索も同様のプロセスで進行しますが、クエリの構成が異なります。ここでは、「会社名」+「住所」+「会社概要」というキーワードを組み合わせたクエリを使用します。再び、Google検索を実行し、上位3件の結果からウェブサイトの内容をJina Readerを使って抽出します。その後、LLMで情報を解析し、企業の概要を取得します。
最終ステップ: 結果の統合
最後に、1回目と2回目の検索結果から共通する情報を統合し、最終的な企業情報を一貫した形で出力します。このプロセスにより、入力された企業名と本社住所から得られる、正確で包括的な企業概要を提供します。
この方法を用いることで、ユーザーは最小限の入力情報から最大限の詳細な企業情報を取得でき、業務効率が大幅に向上します。
このケースは、企業名と代表取締役社長名のみが入力された場合に適用されます。
使用するクエリは「会社名」+「代表取締役社長名」+「会社概要」というキーワードとなります。クエリを作成した後の検索プロセスは、前述のケースの手順1で説明した検索手順と同じです。
このケースは、企業名と企業のホームページURLのみが入力された場合に適用されます。
まず、入力されたURLからドメイン部分を抽出し、それを「会社概要」というキーワードと組み合わせてクエリを作成します。例えば、URLが「https://www.organo.co.jp/」であれば、クエリは「organo.co.jp 会社概要」となります。次に、このクエリを用いてGoogle検索を実行し、最初の検索結果のURLを取得します。取得したURLを基に、FirecrawlのScrapeツールでウェブページから情報を抽出し、抽出した内容をLLMで要約して最終的な企業情報を生成します。
この場合、「b」と同様の処理を行いますが、異なる点としては、引数に企業名のみが含まれていることです。
注意: 同じ名前の会社が複数存在する可能性があるため、入力情報に企業名しか含まれていない場合、結果が完全に正確でない可能性があります。結果を受け取ったら、必ず慎重に確認してください。
このワークフローは、CEOのTwitter、LinkedIn、Wantedlyなどのソーシャルアカウントを調べるために使用されます。各ソーシャルメディアに対して同様の手順を取るため、ここではTwitterを例に説明します。
まず、Google検索用のクエリを「site:twitter.com」(Linkedinの場合 site:linkedin.com、Wantedlyの場合 site:wantedly.com) +「会社名」+「CEO」という形式で作成し、検索を実行します。結果には以下の2パータンがあります。
ダウンロードしたファイルをDifyで開き、「DSLファイルをインポート」をクリックして、先ほどダウンロードしたファイルを選択してインポートしましょう。
次に、Gemini API、Google Serp Dev API、Scrapeの各APIキーを設定します。
Google Serp DevのAPIキーが入力されていない場合、設定ブロックをクリックすると以下の表示が出ます。「承認するには」のボタンを押し、APIキーを入力して設定します。
「承認するには」を押して、APIキーを設定します。
Scrape Firecrawl: こちらも同様に、APIキーが入力されていない場合はブロックをクリックし、「承認するには」のボタンを押してAPIキーを設定してください。
「承認するには」を押して、APIキーを設定します。
Difyの左側メニューから「概要」→「APIキー」を選び、APIキーを作成しましょう。このAPIキーを利用することで、GASとDifyを連携させることが可能になります。これで、Dify側の設定は完了です!
コピーしたスプレッドシートを開き、DifyのAPIキーを設定します。シートの上部にある「メニュー」をクリックし、APIキーを入力してください。設定が完了すると、確認のポップアップが表示されます。
このポップアップが表示されたら大丈夫です!
「メニュー」→「企業分析を実行」を選択すると、検索が開始され、結果が出力されます。
⚠️ 出力された情報はすべて正確であるとは限りません。実際に使用する前に必ず確認してください!
ここまでお読みいただき、ありがとうございます!
ブログを公開した直後に気づいた点についてお詫び申し上げます。「3.5 スプレッドシートとGAS」の項目で、テンプレートのURLが古いバージョンのものになっていたため、こちらのセクションを修正いたしました。
ご安心ください。現在、このブログを読んでいる皆様にはすでに新しいURLに更新済みですので、最新のテンプレートをご利用いただけます。
このブログの目的は、誰でも無償で自分で実装できるようにすることです。そのため、無料のツールを組み合わせて作成しています。ただし、それぞれのツールにはAPI呼び出しの制限があるため、いくつかの制約も存在します。また、生成AIのプロンプトエンジニアリングとプログラミングを組み合わせているため、時間制限もあり、100%正しい結果を保証することは難しい場合があります。
そのため、フローの実行後に、Difyでエラーが発生したり、情報が抽出できなかったりすることがあります。
そこで、特定の企業に対してもう一度「RETRY」したい場合、新しいシートには「RETRY」列を追加しました。リトライしたい企業の行の「RETRY」列を「TRUE」に設定してから、「企業分析を実行」ボタンをクリックしてください。
なお、毎回実行が終わると、自動的に各行の「RETRY」列は「FALSE」にリセットされます。これにより、次回の分析で再度リトライしたくない(必要のない)企業をスキップすることができます。これにより、無駄なAPI呼び出しや、不要なLLMトークンの消費を避けることができます。
「RETRY」の仕組みを十分に理解し、適切な値を設定してから実行してください。
最後までお読みいただき、ありがとうございます!
今回は、GASxDifyx生成AIを組み合わせて企業分析を自動化するワークフローについてご紹介しました。実装する中で、改善が必要な点もいくつか見つかりました。例えば、Gemini AIにはリクエスト数に制限があることや、CEOのソーシャルアカウントの正確な確認方法に限界があることなどです。改善のアイデアやご意見があれば、ぜひお聞かせください。
また、Difyは多くの情報検索ツールを提供しているので、他のアプローチでのワークフロー構築もぜひ試してみてください。
AI/LLM/ビッグデータ/SalesTech/HRTech/PropTechなどの最新情報を入手するには、SNSで当社のCEOをフォローまたは連絡してください