アウトバウンドコール、電話で新規のお客様に営業をかける、いわゆるテレアポを自社でやろうとする会社は増えているものの、今この生成AI時代において、企業として何をどう揃えればいいのか、あまりまとまっていないのが現状です。
調べ始めると、まず出てくるのは電話サービスの比較記事です。料金と機能が並んだ表を見て、どれを契約するかを決める。私もそこから入りました。
株式会社プロリクの橋崎と申します。弊社はAHRを掲げ、企業様の生成AI導入支援やHR支援、AIエージェント提供を行っている会社です。以前の記事「【実践Claude Code】Google広告の操作をClaude Codeで自動化してみた」に続く、Claude Codeの実践記録です。
この記事では、電話アプリを選ぶところから、毎日の集計が自動で出るようになるまで、ClaudeCodeを用いてコールドコール体制を考えていくとどうなるか?を実践した記録を書いていきたいと思います。使ったのは Zoom Phone と Google Workspace と Claude Code の3つで、専用のコールシステムも、SFA(営業支援システム。営業活動を記録して管理するためのソフト)も買いませんでした。弊社と同じように財務的に十分ではない規模の中、どのように効率的な仕組みを作るか?を考えている企業様の参考になりましたら幸いです。
関連記事:採用管理システム(ATS)をClaude Codeで自作してみた
AHRとは?
AHR(AI and Human Resources)とは、企業の経営課題に向き合う組織能力を充足させるため、AI資源と人的資源を経営資源として設計・運用・再配分する、株式会社プロリクが2025年6月に提唱した実践フレームです。従来のHRが人的資源のみを扱ったのに対し、AHRはAIを人と並ぶ「経営のコア資源」と捉え、組織能力獲得を目指す考え方です。AHRは、株式会社プロリクの登録商標です。
📄 詳細記事: 【決定版】AHRとは?-人とAIの働き方をリデザインする
この記事の要点(TL;DR)
- アウトバウンドコールの体制を、Zoom Phone・Google Workspace・Claude Codeの3つで作りました。専用のコールシステムもSFAも買っていません
- 電話サービスを比べる前に、満たしたい条件を5つ書き出しました。条件から入ると、比較は短時間で終わります
- 記録はGoogle スプレッドシートに置きましたが、その表も集計の数式もClaude Codeで作っています
- 電話サービスとスプレッドシートは別々の場所にデータを持つため、両者を毎日つなぐ処理を書きました。ここがこの仕組みの中心です
- つないだ結果、電話サービスの管理画面には出ない数字が、毎日出るようになりました
- 非エンジニアがClaude Codeで構築しています
アウトバウンドコールを始めるとき、体制の作り方は大きく3つある
アウトバウンドコールの体制を作るといってもいろいろな形があると思います。どこまでを外のサービスに任せて、どこからを自分たちで用意するのか。その分け方によって、進め方は大きく3つに分けてみました。
1つ目は、すべてを外に出す進め方です。 テレアポ代行の会社に依頼すると、かける人も、電話も、記録の仕組みも先方が持っています。すぐに始められます。ただし、ノウハウが社内に残らず、また外部の企業である以上、管理もしにくい面があります。
2つ目は、専用のシステムを買う進め方です。 コールシステムやSFAは、かける機能と記録する機能が最初から一体になっています。買えばその日から両方そろいます。ただし、自社が既に持っている顧客の情報を柔軟に利用してリストの精度を上げるといった、やりたいこと自由にできる、というわけではありません。どうしてもその会社のツールの仕様の制約を受けてしまうからです。
3つ目は、手元にあるツールを組み合わせ自作して進めるやり方です。 電話はクラウドの電話サービスを契約し、記録はGoogle スプレッドシートに記録します。Googleスプレッドシートは多くの会社が既に契約していることが多いサービスです。専用システムとの差分は電話した履歴をうまくデータ連携して保存する仕組みですが、この連携部分さえ担えればスプレッドシートを起点に体制を構築することができます。
弊社は3つ目を選びました。この選び方が現実的になったのは、Claude Codeがあるからです。以前でしたら、2つのサービスをつなぐ処理を書くために、開発会社に依頼するか、社内のエンジニアに時間をもらう必要がありました。金額と待ち時間を考えると、2つ目を買ったほうが早い。今はClaudeCodeの出現によって、非エンジニアが自分で書けるようになりました。その結果、3つ目を選べるようになったわけです。
今回の体制構築で求めていた条件
今回のコールドコール体制構築をするにあたり、求めていた条件は以下の内容です。
条件1: 業務委託の方に外線番号を配布でき、契約が終われば柔軟に止められるようなアプリであること
電話をかけていただくのは業務委託の方です。個人の携帯電話からかけていただくわけにはいきません。会社の番号で発信できて、管理者が止められることが必要でした。
条件2: 録音と、その文字起こしが取れること
成果が出ている方の話し方を、あとから分析できるようにするためです。受付をどう突破しているのかは、ご本人に聞いても言葉にならないことがあります。録音を読むほうが早い場面があります。
条件3: Google Workspaceと組み合わせられること
スプレッドシートでしたら、ほとんどの方が説明なしで入力できます。セキュリティの担保もしやすく手軽に扱えます。
条件4: あとから、いろいろな分け方で集計分析ができること
一口にアポ率といっても様々な切り口で分析することができます。あくまで例えばですが、担当者別、曜日別、時間帯別、リストの業種別・・・など、加工していないデータを手元に持て、柔軟に分析できることを求めていました。
こういった条件を求めると、自社で作成することが良い選択だろうという結論になりました。
電話をどう選ぶか — 業務委託の方に配ることを前提にする
通話履歴を管理画面で見られるクラウド電話サービスは、たくさんあります。しかし、その履歴を柔軟に分析するために、プログラムで取り出せるサービスとなると、数はぐっと減ります。多くのサービスは、画面で見せることまでは考えていても、外に出すことは想定していないのだと思います。
多くのサービスがここで外れました。さらに録音と文字起こしを足すと、候補はさらに絞られます。残ったZoom Phoneを選びました。以下のような点が特徴だと考えています。
- クラウド上で動くため、業務委託の方のパソコンやスマートフォンにアプリを入れれば使えます。電話機を送る必要がありません
- 担当者ごとに番号を割り当てられます。誰がかけたのかが記録に残ります
- 発信の履歴データを、プログラムで取り出すことができます
- 録音も抽出できます
架電の結果をどこに、どう残すか
架電の結果を残す場所としてスプレッドシートを選択しました。記録のマスターとなるスプシのシートと、担当者1人1人のリストが掲載されているシートがあり、各々を連携しながら運用、集積、分析をする想定です。シート作成自体の手間もかけたくなかったので、私は権限を付与して、シートのテーブルや1人1人のリストの配布などを全てClaude Code経由で行いました。
- 担当者ごとの入力ファイル。 企業名、電話番号、結果、コメント入力欄、資料送付希望一覧などがあります
- 集計の元になるマスターとしてのファイル。 全担当者の入力を読み取って1つにまとめ、集計分析するためのシートです
なお、Claude Codeでスプレッドシートを使った仕組みを作る話は、採用管理システム(ATS)をClaude Codeで自作してみたにも書いていますので、合わせてご参考ください。
毎日の集計分析をClaudeCodeで自動化
ZoomPhoneで架電し、架電した記録を抜き出してスプレッドシートに記録し、その結果を集計、分析する、そういった一連の流れを日々自動でできるようにしたいと考えました。これらの自動化をClaude Codeによって全て実現できています。以下のような3つの処理をClaudeCodeで実装、自動化しました。
1つ目。Zoom Phoneから発信の履歴を取り出して、マスターとなるスプレッドシートの通話ログの表に1通話1行で記録します。 同時にZoom Phoneの録音の一覧も取り出し、録音リンクを同じ行に記録します
2つ目。録音のファイルをGoogle Driveへ保存して、リンクを差し替えます。 Zoomが返す録音のリンクは24時間で開けなくなるため、Google Driveに保存しそのリンクをスプレッドシートに記録する形にしました。録音を聞きたい時はそのリンクを押せば聞くことができます。
3つ目。通話ログを、担当者が入力している架電記録と突き合わせる処理。 Zoom Phoneの通話ログだけを集計すれば、何件かけて何分話したかは出ます。しかし、その電話がアポになったのか、資料希望だったのか、受付で断られたのかまでは分かりません。したがって、両方のログを自動で突合するようにしました。突合に使ったのは電話番号です。
ただし、開発上やや気をつける必要がある点としては、そのままでは電話番号が一致しないということです。Zoomでは国番号付き、+81から始まる形で入っていて、スプレッドシートにはハイフン付きの国内表記で入っているためです。数字だけを取り出して、先頭の+81を0に直してから照合します。一致した行に、通話日時、通話時間、録音リンクを書き込みます。
- *4つ目。突合した架電記録の集計、分析です。**アポ率が高いセグメントはどこか、担当者別にパフォーマンスが高い人は誰か(曜日や時間帯など担当者以外の要因によって結果を歪ませるようなものはないかの補正もしつつ)、担当者別の1時間あたりの架電数が上がらないのは通話時間なのか、発信間の待ち時間なのかなど細かい分析をしていきます。
これらの処理は、何度実行しても同じ行が二重に入らないようにしてあります。1つのコマンドで3つが順に流れますので、朝に1回実行すれば、その日の連携と分析が最新になります。
どのように実装したか
これから同じものを作られる方は、この節の内容をそのままClaude Codeに渡していただければ、話が早く進むと思います。
使ったもの
書いたのはPythonです。合わせて800行ほどでした。
Zoom Phoneから取り出すのに使ったAPIは2つだけです。ひとつは発信の履歴(GET /v2/phone/call_history)で、かけた通話がすべてここに残ります。もうひとつは録音の一覧(GET /v2/phone/recordings)です。この2つを呼ぶだけでしたので、Zoom用のライブラリは入れず、Pythonに最初から入っている urllib で済ませました。認証は Server-to-Server OAuth という方式です。アカウントIDとクライアントID、シークレットの3つを設定ファイルに置いておき、実行のたびにアクセストークンを取り直します。
Google側は、スプレッドシートとドライブを触るために google-api-python-client と google-auth の2つを入れました。使うAPIは Google Sheets API と Google Drive API です。認証はサービスアカウントの鍵で、鍵が置かれていない環境では、gcloudのログイン情報からサービスアカウントに成り代わる形へ自動で切り替わるようにしました。パソコンを変えたときに、鍵を持ち歩かなくて済むようにするためです。
どう分けて書いたか
前の節に書いた1つ目から3つ目の処理を、1本のプログラムにまとめず、処理ごとに分けて書きました。 つまり、発信の履歴を取り込むプログラム、録音をドライブへ保存するプログラム、通話ログと架電記録を突き合わせるプログラムの3本です。そのうえで、この3本を順番に呼び出すだけの短いスクリプトを1本足しました。前の処理が失敗したら、その先は実行せずに止まります。
まとめて1本にしなかったのは、途中で失敗したときに全部を最初からやり直すことになるからです。やり直すと、既に取り込んだ通話がもう一度入ってしまいます。3本に分けておけば、失敗したものだけをもう一度実行できます。
4つ目の集計と分析は、また別のプログラムにしています。こちらは毎日走らせる必要がなく、見たいときに実行するためです。
最初に伝えておけばよかったこと
出来上がったものを見ると、これから作る方が最初にClaude Codeへ伝えておくとよいことが4つあります。私はどれも、事故が起きてから足しました。
何度実行しても結果が変わらないようにしてください。 これが一番重要でした。実行のたびにデータが増えていくと、集計が全部おかしくなります。やり方は処理ごとに変わります。発信の履歴を取り込むところは、通話ごとに割り振られている固有の番号を見て、既に入っている通話を飛ばします。録音を保存するところは、リンクが既にドライブのものになっている行を飛ばします。突き合わせるところは、済んだ行に印を付けて、印のある行を二度と触りません。
スプレッドシートの列は、番号ではなく見出しの名前で探してください。 列は運用の途中で必ず増えます。番号で書いていると、そのたびに動かなくなります。
電話番号は、書き方をそろえてから比べてください。 記号を取り除いて数字だけにし、そのうえで先頭の国番号を国内表記に直します。日本であれば +81 を 0 に置き換えます。記号を消しただけでは一致しません。+819012345678 と 090-1234-5678 は、記号を消しても 819012345678 と 09012345678 で、まだ別の文字列だからです。
録音件数を計測して架電件数とすることは避けてください。 Zoom Phoneは、発信の履歴と録音を別のものとして持っています。発信の履歴にはかけた通話がすべて残りますが、録音は相手が出た通話にしか残りません。呼び出し音が鳴る前に切った通話には録音が無いためです。この2つを同じものだと思って録音のほうを数えると、架電件数が実際より少なくなります。件数は発信の履歴、録音は「その通話に音声があるかどうか」として、分けて扱ってください。
これらは私が最初から設計したものではありません。Claude Codeに「Zoom Phoneの発信履歴を取ってスプレッドシートに入れたい」と伝えて、出てきたものを動かし、エラーが出たら貼り付けて直してもらう、という繰り返しの結果です。最初にこの4つを伝えておけば、私が使った時間の半分は要らなかったのではないかと思います。
まとめ
自動になったのは、電話の記録と架電の結果の照合、架電の状況の集計、成果の割合の集計、設定が正しいかの検査です。ClaudeCodeに話しかけるとデータ最新化から分析まで一気通貫でやってくれるので非常に便利になりました。
成果の分析を踏まえて、本来時間を割きたい、テレアポリストを見直すのか、トークスクリプトを見直すのかなど、打ち手の方に時間を割くことができています。
もし、アウトバウンドコールを始めたいけれど、外注も専用システムも違う気がする、という企業様は、ぜひClaude Codeを用いた体制構築もお試しいただければと思います。
なお、本記事はシリーズ記事です。非エンジニアがClaude Codeで業務を自動化する進め方は、【実践Claude Code】非エンジニアがClaude Codeで業務を自動化する方法にまとめていますのでよろしければご参考ください。
弊社お問い合わせ窓口
株式会社プロリクでは、生成AI導入・実装・運用支援サービス「MIRAIGEN(ミライジェン)」を提供しています。AIファーストな組織に作り変えるご支援をしています。お気軽にご相談ください。
著者について
橋崎 良哉(株式会社プロリク )
Webサイト制作事業にて在学中に起業。家業に入り、鉄鋼加工会社で取締役として業績回復を牽引。その後グローバルに特化したデジタルマーケティング支援会社にてマーケター、データ解析などを担当した後、AIスタートアップであるエッジテクノロジー株式会社の取締役COOとして、機械学習実装支援や、機械学習を用いた営業自動化SaaSを立ち上げ、6年で0から社員70名程度までグロースさせる。2020年2月株式会社プロリクを設立。
よくある質問(FAQ)
Q. アウトバウンドコールを始めるのに、専用のコールシステムは必要ですか?
必要とは限りません。専用システムは「かける」と「記録する」が一体で提供されますが、自社が持っている顧客の情報を持ち込んで優先順位を付けることは、たいていできません。クラウド電話とスプレッドシートを自分たちでつなぐ選択肢があります。
Q. Zoom Phone以外のクラウド電話でも同じことができますか?
発信の履歴と録音がプログラムから取り出せるサービスでしたら、同じ作り方ができます。選ぶときは、管理画面で見られるかどうかではなく、取り出せるかどうかを確認してください。取り出せないと、自社のデータと組み合わせられません。
Q. 通話のデータと架電の結果は、何を使って照合していますか?
電話番号です。ただしそのままでは一致しません。クラウド電話では国番号付き、スプレッドシートにはハイフン付きで入っているためです。数字だけを取り出し、先頭の国番号を国内表記に直してから照合します。
Q. 担当者が入れ替わったとき、集計は自分で作り直す必要がありますか?
作り直さなくて済むようにしておきます。担当者の名前をスクリプトの中に書かず、ファイル名から探すようにします。名前を書いていると、交代したときに古い名前のまま集計され、新しく参加された方が集計から抜けてしまいます。
Q. 録音の残っている通話だけを数えてはいけないのはなぜですか?
録音は相手が出た通話にしか残らないためです。呼び出し音が鳴る前に切った通話には録音がありません。録音だけを数えると、かけた回数が実際より少なくなります。かけた回数は発信の履歴から数えます。
Q. 「通話と通話の間の時間」はどうやって測っていますか?
発信の履歴には、発信を始めた時刻と通話の秒数が入っています。前の通話の開始時刻に通話の秒数を足すと、切った時刻が出ます。それを次の発信の開始時刻から引いた差が、通話と通話の間の時間です。
Q. 担当者別のアポの割合を比べるとき、注意することは?
出てきた割合が、その方の技量を表しているとは限りません。アポの割合には、誰が、誰に、いつ、何回目にかけたのかが全部入っています。比べる前に、あくまで例えばですが、次がそろっているかをご確認ください。
- 配られたリストの中身。 業種、規模、地域、これまでの接点。決まりやすい会社が多く入っていれば、それだけで割合は上がります
- かけた曜日と時間帯。 業種によっては、土日に事務の方が出勤していません
- リストの何番目までかけたか。 期待の高い順に並べて配っている場合、先へ進んでいる方ほど、残っているのは条件の悪いところになります
- 何回目の架電か。 同じ会社へ2回目、3回目とかけたほうが、担当の方に届きやすくなります
- かけた件数。 数十件では、1件のアポで割合が大きく動きます
- 時期。 始めたばかりの時期は、どなたでも数字が低く出ます
弊社では、リストを配る時点で、担当者ごとの構成が同じになるようにしています。それでも上に挙げたものは残りますので、比べるときは条件を1つに絞って見るようにしています。
Q. 非エンジニアでも作れますか?
作れます。今回もエンジニアは入っていません。ただし、コードを書く時間より、サービスの認証を通す設定と、動かして初めて分かる仕様に時間がかかります。作ったあとに運用で出てくる問題のほうが多いので、直す時間も見込んでおいていただければと思います。