email-verification について
送信前に連絡先のメールアドレスを確認するワークフロースキルです。CSV内の重複を除いて選択した検証サービスで確認し、整理済みファイルを作成します。必要に応じてシーケンサーのキャンペーンからリードを削除できます。
主な機能
- 01メール列を自動検出して重複を除去
- 02選択したサービスで各アドレスを検証
- 03ステータス別に結果を集計
- 04整理済みのCSVとJSONを作成
- 05シーケンサーからリードを任意で削除
活用シーン
- 01メールキャンペーン前に連絡先リストを整理
- 02CSV内の重複・欠落アドレスを確認
- 03シーケンサーのキャンペーンから無効なリードを削除
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ extruct-ai/ gtm-skills --skill email-verificationインストール後、Claude Code で/email-verificationを入力して読み込まれたか確認します。
詳細
メールアドレスの検証
送信前にメールアドレスを検証します。email-generation と campaign-sending の間に配置します:
email-generation → email-verification → campaign-sending
環境
プロバイダーの選択と認証情報の確認は、ワークフローのステップ 0 で行います。
入力
| 入力 | 必須 | ソース |
|---|---|---|
| メールアドレス列を含む連絡先 CSV | はい | email-generation の出力、または任意の CSV |
| シーケンサーのキャンペーン ID | いいえ | campaign-sending から。アップロード済みのリードをクリーニングする場合のみ |
ワークフロー
ステップ 0:プロバイダーを確認し、API を把握する
- 利用するメール検証プロバイダーをユーザーに確認します。
- プロバイダーの API ドキュメントを取得または参照し、以下を特定します:
- クレジット確認エンドポイント
- メールアドレスの単件検証エンドポイント
- 必須の入力フィールドと認証方式
- レート制限とリクエストの制約
- レスポンス形式(status、sub_status)
- ステータス値と、保持するもの/削除するもの
- API 認証情報を尋ね、アクセスできることを確認します
ステップ 1:API アクセスとクレジットを確認する
- プロバイダーのクレジット確認エンドポイントを呼び出します
- 入力 CSV 内の重複を除いたメールアドレス数を数えます
- クレジットが重複を除いたメールアドレス数より少ない場合、ユーザーに警告し、一部のみ検証するか中止するかを尋ねます
ステップ 2:メールアドレスを抽出して重複を除く
- 入力 CSV を読み込み、メールアドレス列を自動検出します(一般的な列名:
email、Email、email_address) - 重複のないメールアドレスのセットを作成します
- メールアドレスが空または欠落している行はスキップします
- 次のように報告します:
検証するメールアドレスは {N} 件、メールアドレスのない行を {M} 件スキップしました
ステップ 3:メールアドレスを検証する
重複を除いた各メールアドレスについて、プロバイダーの検証エンドポイントを呼び出します:
- プロバイダーのレート制限(ステップ 0 で確認)を守ります
- メールアドレス 50 件ごとに進捗を表示します
- 結果を
{email: {status, sub_status}}として保存します - エラー(タイムアウト、JSON の解析失敗)が発生した場合は、
unknownとして記録します
ステップ 4:分類して報告する
プロバイダーのステータス値ごとに結果をグループ化します。ステップ 0 で特定したステータスの対応関係を使い、保持するメールアドレスと削除するメールアドレスを決定します。
一般的な指針(プロバイダーのドキュメントと照合してください):
| 処理 | 一般的なステータス |
|---|---|
| 保持 | valid |
| 削除 | invalid、do_not_mail、abuse、catch-all、unknown、spamtrap |
Catch-all は保持せず、削除します。 Catch-all ドメインは、どのアドレス宛てのメールも受信するため、プロバイダーは特定のメールボックスが存在するか確認できません。これらのアドレスは無視できない割合でバウンスし、バウンスはキャンペーン全体の送信者評価を損ないます。シーケンサーに catch-all アドレスをアップロードしないでください。
ステータスごとの件数をまとめた表を提示し、削除するメールアドレスをそれぞれの status と sub_status とともにすべて一覧表示します。
ステップ 5:クリーニング済み CSV を出力する
- 元の CSV をフィルタリングし、メールアドレスのステータスが「保持」に該当する行のみ残します
- クリーニング済み CSV を入力ファイルと同じディレクトリに、
{original_name}_verified.csvという名前で書き込みます - すべての検証結果を
参照用に {original_name}_verification_results.jsonに保存します - 次のように報告します:
{kept} 件のメールアドレスを保持し、{removed} 件を削除しました(catch-all の件数を含むステータス別の内訳も示します)
ステップ 6:シーケンサーから削除する(任意)
ユーザーからシーケンサーのキャンペーン ID が提供された場合:
- 使用しているシーケンサー(Instantly など)を尋ね、
skills/campaign-sending/references/にある API ドキュメントを参照します - 削除対象のメールアドレスごとに、シーケンサーのリード削除エンドポイントを呼び出します
- レート制限を守ります
- 次のように報告します:
シーケンサーから {N} 件のリードを削除しました
キャンペーンが提供されていない場合は、このステップをスキップし、問題のあるメールアドレスを手動で削除するか、クリーニング済み CSV を再アップロードするようユーザーに伝えます。
出力
| ファイル | 内容 |
|---|---|
*_verified.csv | 有効なメールアドレスのみを含むクリーニング済み CSV |
*_verification_results.json | すべてのメールアドレスの検証結果 |
| コンソールレポート | サマリー表と削除したメールアドレスの一覧 |
API リファレンス
プロバイダーの API ドキュメントは、ステップ 0 で取得または参照します。事前設定済みのプロバイダードキュメントは同梱されていません。必要に応じて references/ に追加してください。