Pythonでフォーム営業を自動化するツールを構築する方法【完全解説】
はじめに
営業活動の中でも「問い合わせフォームからの営業」は、メール営業と並ぶ有力な手法です。
しかし、ひとつひとつ手入力でフォームに送信するのは膨大な工数がかかり、実務的ではありません。
そこで本記事では、PythonとPlaywrightを用いてフォーム営業を自動化するツールを構築する手順を、実際の開発フローに沿って解説します。
最小構成から拡張機能まで、SEO・リード獲得に直結する仕組みづくりを紹介します。
一件一件入力して送信するよりは、くらいの感じです。
本記事のゴール
-
CSVにまとめたリストを元に、自動でフォームに入力&送信する
-
送信ログ(成功・失敗)とスクリーンショットを保存する
-
reCAPTCHAなどの制御に対応できるよう拡張可能な設計にする
有料ツール
手っ取り早く考えると、有料のツールがあります。 リストまで提供されるものが多いのでリストがない場合は有料ツールも検討の余地あり。
個別の特徴詳細・補足
-
HIROGARU
低価格で始めやすく、AI自動投稿と手動入力支援のハイブリッド型。フォーム営業をまず“手軽に”始めたい場合に◎。 -
Listers form
文面ABテストやクリック通知など、ガチの自動運用にも応える高機能型。大量アプローチを正確に回したい方向け。 -
ホットアプローチ
豊富な企業DBとCRM連携により、新規開拓及び休眠顧客への再アプローチも可能。大規模・複数営業チャネルの統合利用に。 -
GeAlne
AI文面の精度とツール運用を両立し、自動作成+効果検証環境を整えたいチームに最適。 -
WebAPO
自動ツールでは対応できない複雑フォームやCAPTCHAにも対応する「人力代行型」。品質重視のアプローチに。
| ツール名 | 価格目安 | 主な特徴 |
|---|---|---|
| HIROGARU | 初期費用5,000円、月額5,800円〜 (3日間無料トライアルあり) |
・30万件以上の営業フォームリストが使い放題 ・AIによる自動投稿・テンプレ支援 ・Chrome拡張で手動フォーム入力支援も可能 |
| Listers form | 月額30,000円〜(ベーシックプラン) 初期費用なし |
・URLリストから自動でフォームを検出し投稿 ・送信上限なし/ABテスト・文面サポートあり |
| ホットアプローチ | 月額40,000円〜(年額換算) 送信件数に応じて変動 |
・480万社以上の企業DBを活用可能 ・テンプレ雛形あり・CRM連携・行動ログ取得対応 |
| GeAlne(ジーン) | 月額40,000円〜 リスト付きプランは70,000円〜 |
・AIによる営業文章生成、A/Bテスト対応 ・NGワード検出・レポート機能付き |
| WebAPO | 初期費用55,000円 月額11,000円 送信33円〜55円/件 |
・人力によるフォーム投稿の完全代行 ・小ロットでも依頼可能で確実な送信を保証 |
使用技術
-
Python 3.13
-
Playwright:ブラウザ自動操作
-
YAML:設定管理
-
SQLite:送信ログ保存
-
CSV:ターゲット管理
ステップ1:環境構築
まずは作業ディレクトリを作成し、仮想環境を構築します。
mkdir form-sender
cd form-sender
python3 -m venv .venv
source .venv/bin/activate
次に必要ライブラリをインストールします。
# requirements.txt を作成
playwright==1.55.0
pydantic==2.8.2
pyyaml==6.0.2
SQLAlchemy==2.0.35
tqdm==4.66.4
# インストール
python -m pip install -r requirements.txt
python -m playwright install chromium
ステップ2:設定ファイルを作成
営業で使う差し込み情報や送信メッセージは config.yaml にまとめます。
sender:
last_name: "山田"
first_name: "太郎"
last_kana: "ヤマダ"
first_kana: "タロウ"
company: "株式会社Hump"
email: "hisazumi@hump.co.jp"
tel: "09044445555"
message_templates:
- |
株式会社Humpと申します。
当社ではクリニック向けの「電話自動応答サービス(メディコル)」を提供しております。
...
オンラインにて30分ほどお打ち合わせできれば幸いです。
delay:
min_seconds: 30
max_seconds: 90
success_markers:
- "送信が完了しました"
- "お問い合わせありがとうございました"
ステップ3:ターゲットリストを準備
送信先はCSVで管理します。
clinic_name,url,form_url,email,pref,notes
テストクリニック,https://example.com,https://example.com/contact,,東京都,
form_url が空なら、自動で /contact などを探索します。
ステップ4:スクリプト実装
Playwrightを使ってフォームに入力し、送信するメインスクリプト send_forms.py を用意します。
ポイントは以下です。
- ラベルやプレースホルダを判定し、name/email/tel/message などを自動入力
- 「姓/名」「セイ/メイ」など分割フィールドも対応
- CAPTCHAを検出した場合はスキップ or サーバ側でバイパス
- 成功判定は「サンクスページの文言」で確認
- ログはSQLiteとCSVに保存、スクショも残す
ステップ5:実行と確認
テスト送信は以下のコマンドで行います。
python send_forms.py --limit 5
結果は以下に保存されます。
- out/results.csv:送信結果ログ
- out/log.db:SQLite形式のログ
- out/screenshots/:画面キャプチャ
ステップ6:拡張機能
実用段階に入ったら、次の機能も検討できます。
- CAPTCHAバイパス:HMAC署名で自社フォームのみCAPTCHA免除
- 送信間隔のランダム化:スパム判定を避けるため必須
- 複数テンプレートでABテスト:反応率を比較
- オプトアウト文言:法的リスク回避のため必ず明記
- 同一ドメインへの送信制御:連投防止
まとめ
本記事では、PythonとPlaywrightを用いたフォーム営業自動化ツールの構築方法を解説しました。
手動でのフォーム入力は大きな負担ですが、ツール化することで 数十倍の効率化 が可能です。
- CSVにリストを入れるだけで営業を一括実行
- ログとスクショで送信状況を可視化
- CAPTCHAや分割入力など現実的なフォームにも対応
フォーム営業を仕組み化することで、営業効率を最大化し、スケーラブルなリード獲得が可能になります。