Google Apps Scriptを使えば、Web上の企業情報を自動で収集してスプレッドシートに整理する営業リスト自動化の仕組みが無料で作れます。
「新規営業のためにリストを作りたいけど、手作業で企業情報を集めるのが大変…」そんな悩みを持つ営業担当者や中小企業経営者は多いのではないでしょうか。
実はGoogle Apps Script(GAS)を使えば、Googleスプレッドシート上で動く営業リスト自動収集ツールを無料で作れます。この記事では実際に筆者が作った仕組みの手順を公開します。
この記事でできること
- GASでWebサイトから企業情報を取得してスプレッドシートに保存
- 業種・地域などの条件で絞り込んだリストを自動生成
- 収集した情報に重複チェックを自動適用
- 毎朝定時にリストを自動更新するトリガー設定
事前準備
必要なものはGoogleアカウントのみです。GASはGoogleスプレッドシートに標準搭載されているため、追加のツールや費用は一切かかりません。また、収集対象サイトの利用規約は必ず確認してください。
STEP1: スプレッドシートとGASプロジェクトを準備する
まず新しいGoogleスプレッドシートを作成し、「ツール」→「Apps Script」からGASエディタを開きます。シートには以下のヘッダー行を用意します。
A列: 企業名 / B列: URL / C列: 業種 / D列: 所在地 / E列: 電話番号 / F列: 収集日時
STEP2: ページ取得の基本コードを書く
GASのUrlFetchAppを使ってWebページを取得し、正規表現でデータを抽出します。
function fetchCompanyInfo(url) {
var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
if (response.getResponseCode() !== 200) return null;
var html = response.getContentText();
var telMatch = html.match(/\d{2,4}-\d{2,4}-\d{4}/);
var tel = telMatch ? telMatch[0] : '';
return { url: url, tel: tel };
}
STEP3: スプレッドシートへの書き込みと重複チェック
取得したデータをシートに保存する関数と、URLベースの重複チェックを実装します。
function saveToSheet(data) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = sheet.getLastRow();
var existingUrls = sheet.getRange(2, 2, lastRow, 1).getValues().flat();
if (existingUrls.indexOf(data.url) !== -1) return false;
sheet.appendRow([data.companyName, data.url, '', '', data.tel, new Date()]);
return true;
}
STEP4: 定時自動実行のトリガーを設定する
GASエディタの左メニューから「トリガー」→「トリガーを追加」を選択し、以下のように設定します。
- 実行する関数: collectLeads
- イベントのソース: 時間主導型
- 時間ベースのトリガーのタイプ: 日タイマー
- 時刻: 午前7時〜8時
うまくいかないときのチェックリスト
- 「アクセスが拒否されました」エラー → User-Agentヘッダーを設定しているか確認
- 取得したHTMLが空 → JavaScriptレンダリング必須のサイトはGASでは取得不可
- 1日の実行上限エラー → GASの無料枠は1日6分が上限。対象URLを絞るか頻度を下げる
- データが重複して追加される → 重複チェック対象列のインデックスが正しいか確認
応用・発展
収集したリストをそのままGmailの差し込みメール送信と連携させることで、「リスト収集→メール送信」を完全自動化できます。また、Google Sheetsのフィルタ機能と組み合わせて、担当者ごとにリストを振り分ける仕組みも簡単に作れます。
まとめ
- GASのUrlFetchAppでWebの企業情報を自動収集できる
- 重複チェック・定時実行を組み合わせれば完全自動の営業リスト生成が実現
- 無料・ノーコードで始められ、他のGoogle Workspaceツールとの連携も容易
