「DifyxGAS×生成AI」で、営業リストの事前調査を自動化するワークフローを作成してみました。

背景

営業活動で、ターゲット企業の事前調査に時間がかかることはありませんか?この課題を解決するために、「Dify x Google App Script x LLM x 検索 x スクレイピング」を活用し、営業リストの事前調査を自動化する方法をPoCしました。

「企業名と所在地」、「企業名と代表取締役社長名」、または「企業名とホームページURL」等を入力するだけで、代表者名や事業内容、取引先情報、役員リスト、SNSアカウント情報などを数分で取得できるため、調査にかかる時間を大幅に短縮し、営業活動の効率化を実現します。

さらに、Difyと生成AIを活用すれば、個別にカスタマイズされたツールを無料で作成・利用でき、コストを抑えつつ、営業の効果を最大化できます。

具体的な方法は現在まとめており、近日公開予定です。興味のある方はお楽しみに!

フローの概要

下記は、DifyとGASと生成AIを活用して、企業調査を自動で行うフローについて解説します。

Google Sheetに調査したい企業をインプットする

まず、Google Sheetの特定の列に調査したい企業情報を入力する必要です。それをインプットとして、弊社が作ったフローでスクレイピング、検索、情報検索等を行います。

今回は、下記の4つのケースを対応しております:

  • 「企業名」と「本社住所」のみが含まれる場合
  • 「企業名」と「代表取締役社長名」のみが含まれる場合
  • 「企業名」と「ホームページURL」のみが含まれる場合
  • 「企業名」のみが含まれる場合

Google Sheet上に結果出力

各企業ごとに、下記の項目の情報を検索・抽出して、生成AIでまとめたものを、結果はシート上に事情を該当な列に入力されます:

  • 所在地
  • 企業URL
  • 代表取締役社長
  • 事業
  • 事業の説明
  • 取引先や主要顧客・プロジェクト事例
  • 役員
  • 代表者のSNSアカウント情報
    • CEO Twitter URL
    • CEO Linkedin URL
    • CEO Wantedly URL

フローを行うため、準備必要なもの

まずは準備として、以下のものを用意してください。

クラウド版Difyのアカウント

  • 概要: クラウド版Difyは、RAGエンジンを使用して、エージェントから複雑なAIワークフローまでLLMアプリを構築、管理、実行するためのオープンソースのプラットフォームです。
  • 目的: ワークフローの実行やAIモデルの統合・運用のために、Difyのクラウド環境にアクセスする必要があります。
  • アクション: クラウド版Difyのアカウントを作成してください。

SerpDev APIキー

  • 概要: SerpDevは、検索エンジン(Google)の結果をAPIを通じて取得できるツールです。
  • 目的: ワークフロー内でリアルタイムの検索結果を利用する際に必要です。これにより、最新の情報を取得し、AIモデルがより精度の高い回答を生成できるようになります。
  • アクション: SerpDevのアカウントを作成し、APIキーを取得してください。

※SerpDevは1つのアカウントに対して、2500回まで無料でAPIを呼び出せます。

LLM APIキー

  • 概要: LLM(Large Language Model)APIキーは、Gemini・ChatGPT・Claude等のような大規模言語モデルのAPIを利用するためのキーです。
  • 目的: ワークフローでGeminiのような大規模言語モデルを使用するために、APIキーが必要です。これにより、高度な自然言語処理を行うことができます。
  • アクション: GeminiのLLM APIキーを取得してください。

Firecrawl APIキー

  • 概要: Firecrawlツールは、ウェブページの内容をLLMが読み取れる形式に変換するツールです。
  • 目的: ウェブページの情報を効率的に取得し、LLMでの処理を容易にするために使用されます。特に、情報収集やデータ解析に役立ちます。
  • アクション: FirecrawlのAPIキーを取得し、「Scrape」のツールを利用できるようにしてください。

※Firecrawlは1つのアカウントに対して、500ページまで無料でScrapeできます。

スプレッドシートとGAS

  • 概要: 今回は営業リストをスプレッドシート上でデータの整理、管理、及び処理を自動化します。また、GAS(Google Apps Script)を使用することで、スプレッドシート上でのカスタムスクリプトを書いたり、DifyのAPIを呼び出せます。
  • 目的: ワークフローの一部でデータ管理や情報の集約を効率化するために使用します。GASを活用することで、特定のタスクの自動化やデータの自動更新を行うことができます。
  • アクション: 以下のシートを自分のGoogleドライブにコピーして保存してください。元のシートには変更を加えないように注意してください。

Dify ワークフロー

  • 概要: Difyを使用したワークフローのテンプレートや設定ファイルを含んでいるリソースです。
  • 目的: Difyを使用してワークフローを構築・運用する際のガイドラインとして使用します。テンプレートファイルを利用することで、効率的にワークフローをセットアップできます。
  • アクション: 以下のリンクからファイルをダウンロードして、使用してください。

この準備を完了することで、ワークフローの各ステップをスムーズに進めることができます。

フローの解説

実装に入る前に、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からドメイン部分を抽出し、それを「会社概要」というキーワードと組み合わせてクエリを作成します。例えば、URLが「https://www.organo.co.jp/」であれば、クエリは「organo.co.jp 会社概要」となります。次に、このクエリを用いてGoogle検索を実行し、最初の検索結果のURLを取得します。取得したURLを基に、FirecrawlのScrapeツールでウェブページから情報を抽出し、抽出した内容をLLMで要約して最終的な企業情報を生成します。

企業名だけ含まれている

この場合、「b」と同様の処理を行いますが、異なる点としては、引数に企業名のみが含まれていることです。

注意: 同じ名前の会社が複数存在する可能性があるため、入力情報に企業名しか含まれていない場合、結果が完全に正確でない可能性があります。結果を受け取ったら、必ず慎重に確認してください。

代表者のSNSアカウント情報検索・抽出

このワークフローは、CEOのTwitter、LinkedIn、Wantedlyなどのソーシャルアカウントを調べるために使用されます。各ソーシャルメディアに対して同様の手順を取るため、ここではTwitterを例に説明します。

まず、Google検索用のクエリを「site:twitter.com」(Linkedinの場合 site:linkedin.com、Wantedlyの場合 site:wantedly.com) +「会社名」+「CEO」という形式で作成し、検索を実行します。結果には以下の2パータンがあります。

  • 一致する結果が見つかった場合: 検索結果の「タイトル」と「スニペット」を参照し、LLMを使用して、そのアカウントが目的の企業のCEOのものであるかを確認します。確認できた場合は、そのアカウントのURLを出力します。
  • 一致する結果が見つからない場合: 「情報なし」として結果を出力します。

実装してみよう!

Difyでワークフローをインポートする

ダウンロードしたファイルをDifyで開き、「DSLファイルをインポート」をクリックして、先ほどダウンロードしたファイルを選択してインポートしましょう。

APIキーの設定

次に、Gemini API、Google Serp Dev API、Scrapeの各APIキーを設定します。

  • Gemini: Difyの右上にあるメニューから「設定」→「モデルプロバイダー」に進み、Geminiのセットアップを行ってください。

Google Serp Dev

Google Serp DevのAPIキーが入力されていない場合、設定ブロックをクリックすると以下の表示が出ます。「承認するには」のボタンを押し、APIキーを入力して設定します。

「承認するには」を押して、APIキーを設定します。

Scrape Firecrawl

Scrape Firecrawl: こちらも同様に、APIキーが入力されていない場合はブロックをクリックし、「承認するには」のボタンを押してAPIキーを設定してください。

「承認するには」を押して、APIキーを設定します。

DifyのAPIキーを取得

Difyの左側メニューから「概要」→「APIキー」を選び、APIキーを作成しましょう。このAPIキーを利用することで、GASとDifyを連携させることが可能になります。これで、Dify側の設定は完了です!

GAS(Googleスプレッドシート)の設定

Dify APIキーの設定

コピーしたスプレッドシートを開き、DifyのAPIキーを設定します。シートの上部にある「メニュー」をクリックし、APIキーを入力してください。設定が完了すると、確認のポップアップが表示されます。

このポップアップが表示されたら大丈夫です!

「企業分析を実行」ボタンをクリック

「メニュー」→「企業分析を実行」を選択すると、検索が開始され、結果が出力されます。

⚠️ 出力された情報はすべて正確であるとは限りません。実際に使用する前に必ず確認してください!

Google Sheetの更新について

ここまでお読みいただき、ありがとうございます!

ブログを公開した直後に気づいた点についてお詫び申し上げます。「3.5 スプレッドシートとGAS」の項目で、テンプレートのURLが古いバージョンのものになっていたため、こちらのセクションを修正いたしました。

ご安心ください。現在、このブログを読んでいる皆様にはすでに新しいURLに更新済みですので、最新のテンプレートをご利用いただけます。

RETRYの仕組み

このブログの目的は、誰でも無償で自分で実装できるようにすることです。そのため、無料のツールを組み合わせて作成しています。ただし、それぞれのツールには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をフォローまたは連絡してください

生成AIやオフショア開発やセールステックに興味がある方、是非THEINFITECHにご相談ください。弊社のAIとビッグデータに関する様々な開発経験とプロフェッショナルなチーム体制によって貴社のプロジェクトを成功に導きます。