setup-outreach-campaign について
Smartleadでアウトバウンドメールキャンペーンを設定するスキルです。リードの取り込み、メールボックスの割り当て、シーケンス作成、送信日時の設定を行い、保存前にシーケンスの承認を求めます。
主な機能
- 01Smartleadキャンペーンの作成
- 02リードリストの取り込みと検証
- 03メールボックスの選定と割り当て
- 042~3通のメールシーケンス作成
- 05送信スケジュールの設定
- 06開始または下書き保存
活用シーン
- 01CSVのリードリストをキャンペーン化
- 02予約送信するコールドメールの準備
- 03キャンペーンへの空きメールボックス割り当て
MCP 対応
Smartlead APIを使ってキャンペーンを作成・設定します。入力にはMCPインターフェースの説明はありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nikiandr/ goose-skills --skill setup-outreach-campaignインストール後、Claude Code で/setup-outreach-campaignを入力して読み込まれたか確認します。
同梱ファイルskill.meta.json
詳細
outreach-campaign の設定
Smartlead でアウトバウンドメールキャンペーンを一式設定します。キャンペーンを作成し、リードを追加し、2~3 通のメールシーケンスを作成して、スケジュールを設定し、メールボックスを割り当てます。
入力
| 入力 | 必須 | デフォルト | 説明 |
|---|---|---|---|
| campaign_name | はい | -- | キャンペーン名(例:「Truewind - Accounting Firms - Feb 2026」) |
| campaign_goal | はい | -- | キャンペーンで達成する成果(デモの予約、登録の促進など) |
| lead_list | はい | -- | CSV ファイルのパス、または上流スキルから渡される人物リストの JSON |
| value_proposition | はい | -- | メールで取り上げる中核となる課題またはメリット |
| cta | はい | -- | 行動喚起(例:「15 分のデモを予約する」「詳細を知りたい場合は返信する」) |
| tone | いいえ | semi-formal | メールのトーン:casual、semi-formal、formal |
| personalization_angle | いいえ | -- | パーソナライズのきっかけ(イベントへの参加、求人情報、ニュースへの言及など) |
| timezone | いいえ | America/New_York | 送信スケジュールのタイムゾーン |
| send_days | いいえ | [1,2,3,4,5] | 送信する曜日(0=日曜、6=土曜) |
| start_hour | いいえ | 08:00 | 送信時間帯の開始時刻 |
| end_hour | いいえ | 18:00 | 送信時間帯の終了時刻 |
| max_leads_per_day | いいえ | 20 | 1 日に連絡する新規リードの最大数 |
| min_time_btw_emails | いいえ | 10 | 同じメールボックスからメールを送信する際の最小間隔(分) |
| num_mailboxes | いいえ | 5 | 割り当てるメールボックスの数 |
| mailbox_selection | いいえ | auto | 「auto」(空いているものを選択)または「manual」(リストを表示してユーザーが選択) |
セットアップ
API アクセスが可能な Smartlead アカウントが必要です。
export SMARTLEAD_API_KEY=your_api_key_here
すべての API 呼び出しは https://server.smartlead.ai/api/v1 に送信し、末尾に ?api_key=$SMARTLEAD_API_KEY を付加します。
レート制限:2 秒あたり 10 リクエスト。
手順
ステップ 1:キャンペーン情報を収集する
次の質問をユーザーにします。一度にすべて尋ねず、会話の流れに沿ってまとめてください。
キャンペーンの基本情報:
- 「このキャンペーンの名前は何ですか?」(例:「Truewind - Accounting Firms - Feb 2026」)
- 「目標は何ですか?」(例:デモの予約、トライアル登録の促進、カンファレンス後のフォローアップ)
対象者とリード:
- 「対象者は誰ですか?」(ICP:役職、企業の種類、規模、業界)
- 「リードリストはどのように提供しますか?」— 選択肢:CSV ファイル、以前のスキル(company-contact-finder、luma-event-attendees)の出力、または「まずリードを探したい」(company-contact-finder に連携)
メッセージ:
- 「中核となる価値提案または課題は何ですか?」
- 「行動喚起は何ですか?」(例:「15 分のデモを予約する」)
- 「トーンは casual、semi-formal、formal のどれですか?」
- 「パーソナライズのきっかけはありますか?」(例:相手の求人情報、イベント、業界ニュースに言及する)
スケジュール:
- 「メールを送信する曜日はいつですか?」(デフォルト:月曜~金曜)
- 「送信する時間帯とタイムゾーンは?」(デフォルト:東部時間の午前 8 時~午後 6 時)
- 「1 日あたりの新規リードの最大数は?」(デフォルト:20)
- 「キャンペーンの開始日はいつですか?」(デフォルト:明日)
メールボックス:
- 「割り当てるメールボックスの数はいくつですか?」(デフォルト:5)
- 「空いているメールボックスを自動選択しますか?それとも選択用のリストを表示しますか?」
回答を収集したら、概要を提示し、続行する前に確認を取ります。
ステップ 2:キャンペーンを作成する
POST https://server.smartlead.ai/api/v1/campaigns/create?api_key=$SMARTLEAD_API_KEY
Body:
{
"name": "<campaign_name>",
"client_id": null
}
レスポンス:
{
"ok": true,
"id": 3023,
"name": "Test email campaign",
"created_at": "2022-11-07T16:23:24.025929+00:00"
}
id から campaign_id を取得します。以降のすべての呼び出しでこれを使用します。
ステップ 3:メールボックスを確認して割り当てる
このステップでは、利用可能なメールボックスを特定し、キャンペーンに割り当てます。
3a:すべてのメールアカウントを取得する
GET https://server.smartlead.ai/api/v1/email-accounts/?api_key=$SMARTLEAD_API_KEY&offset=0&limit=100
id、from_email、from_name、daily_sent_count、warmup_details、is_smtp_success、is_imap_success を含む、すべてのメールアカウントのリストが返されます。
3b:現在使用中のメールボックスを特定する
すべてのキャンペーンを取得します。
GET https://server.smartlead.ai/api/v1/campaigns?api_key=$SMARTLEAD_API_KEY
status = "ACTIVE" または "STARTED" の各キャンペーンについて、メールアカウントを取得します。
GET https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/email-accounts?api_key=$SMARTLEAD_API_KEY
アクティブなキャンペーンに現在割り当てられているすべての email_account_id 値の集合を作成します。
3c: フリーメールボックスをフィルタリングする
メールボックスが「フリー」である条件は、次のとおりです。
- その
idが 3b のアクティブキャンペーンのセットに含まれていない is_smtp_success= true かつis_imap_success= true(アカウントが機能している)
daily_sent_count の昇順でフリーメールボックスを並べ替えます(使用頻度が最も低いメールボックスを優先します)。
3d: 選択して割り当てる
mailbox_selection = "auto" の場合:最初の N 個のフリーメールボックスを選択します。
mailbox_selection = "manual" の場合:すべてのアカウントをテーブル(名前、メールアドレス、daily_sent_count、ステータス)で表示し、ユーザーに選択してもらいます。
N 個未満のフリーメールボックスしかない場合は、ユーザーに「フリーメールボックスが X 個しか見つかりませんでした。X 個で進めますか、それとも現在使用中のメールボックスを選びますか?」と伝えます。
選択したメールボックスを割り当てます。
POST https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/email-accounts?api_key=$SMARTLEAD_API_KEY
Body:
{
"email_account_ids": [101, 204, 305, 412, 518]
}
ステップ 4: リードを取り込む
4a: リードリストを解析する
CSV の場合: ファイルを読み取り、列を Smartlead のフィールドにマッピングします。柔軟な列マッチングに対応します。
email(必須)—Email、email_addressにも一致しますfirst_name—firstname、first、First Nameにも一致しますlast_name—lastname、last、Last Nameにも一致しますcompany_name—company、organization、Companyにも一致します- それ以外の列はすべて
custom_fieldsになります
上流のスキル(person-list JSON)の場合: フィールドをマッピングします。
first_name <- name.split()[0]
last_name <- name.split()[1:]
email <- email
company_name <- company
custom_fields <- { "title": title, "linkedin_url": linkedin_url }
4b: 検証して重複を除去する
- 有効なメールアドレスがない行を削除します
- メールアドレスで重複を除去します(最初の項目を残します)
- 合計行数、有効数、無効数、削除した重複数を報告します
4c: バッチでアップロードする
Smartlead では、1 回の呼び出しにつき最大 100 件のリードを受け付けます。リストを分割し、各バッチについて呼び出します。
POST https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/leads?api_key=$SMARTLEAD_API_KEY
Body:
{
"lead_list": [
{
"first_name": "Jane",
"last_name": "Smith",
"email": "[email protected]",
"company_name": "Acme Corp",
"custom_fields": {"title": "CFO"}
}
],
"settings": {
"ignore_global_block_list": false,
"ignore_unsubscribe_list": false,
"ignore_duplicate_leads_in_other_campaign": false
}
}
レスポンス:
{
"ok": true,
"upload_count": 95,
"total_leads": 100,
"already_added_to_campaign": 2,
"duplicate_count": 1,
"invalid_email_count": 2,
"unsubscribed_leads": 0
}
すべてのバッチの合計をユーザーに報告します。
ステップ 5: メールシーケンスを作成する
ステップ 1 でユーザーから提供された情報を基に、2〜3 通のメールシーケンスを作成します。デフォルトの構成は次のとおりです。
メール 1 — 初回のコールドメール(0 日目)
- 件名:短く、好奇心を引く内容、または相手の課題に関連する内容
- 本文:3〜5 文。相手の状況に触れ、問題を提示し、解決策を簡潔に紹介して、明確な CTA を提示します
{{first_name}}とカスタムフィールドを使ってパーソナライズします
メール 2 — フォローアップ(3 日目)
- 件名:異なる切り口(指標、事例、具体的な成果)
- 本文:2〜4 文。価値を追加し、CTA を再提示します
- 同じスレッドへの返信として送信するには、件名を空欄にします
メール 3 — 最後のメール(8 日目)
- 件名:簡潔で直接的な内容(「まだ関心はありますか?」「こちらで一区切りにします」)
- 本文:2〜3 文。相手が忙しいことに触れ、再び連絡できる余地を残し、控えめな CTA を提示します
シーケンス全体を、書式付きのテーブルでユーザーに提示します。承認または編集を待ちます。
ユーザーの承認後、保存します。
POST https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/sequences?api_key=$SMARTLEAD_API_KEY
Body:
{
"sequences": [
{
"seq_number": 1,
"seq_delay_details": { "delay_in_days": 0 },
"seq_variants": [
{
"subject": "Subject line here",
"email_body": "<p>Email body as HTML</p>",
"variant_label": "A"
}
]
},
{
"seq_number": 2,
"seq_delay_details": { "delay_in_days": 3 },
"seq_variants": [
{
"subject": "",
"email_body": "<p>Follow-up body</p>",
"variant_label": "A"
}
]
},
{
"seq_number": 3,
"seq_delay_details": { "delay_in_days": 5 },
"seq_variants": [
{
"subject": "",
"email_body": "<p>Breakup body</p>",
"variant_label": "A"
}
]
}
]
}
注:2 通目以降のメールで subject を空欄にすると、同じスレッドへの返信として送信されます。
ステップ 6: スケジュールを設定する
POST https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/schedule?api_key=$SMARTLEAD_API_KEY
Body:
{
"timezone": "America/New_York",
"days_of_the_week": [1, 2, 3, 4, 5],
"start_hour": "08:00",
"end_hour": "18:00",
"min_time_btw_emails": 10,
"max_new_leads_per_day": 20,
"schedule_start_time": "2026-02-25T00:00:00.000Z"
}
days_of_the_week:0=日曜日、1=月曜日、…、6=土曜日です。
ステップ 7: 確認して、必要に応じて開始する
全体の概要を提示します。
Campaign: "Truewind - Accounting Firms - Feb 2026"
Campaign ID: 12345
Leads added: 87 (3 rejected as duplicates)
Email sequence: 3 emails (Day 0, Day 3, Day 8)
Schedule: Mon-Fri, 8am-6pm ET, starting Feb 25
Mailboxes: [email protected], [email protected] (+3 more)
Status: DRAFTED
「キャンペーンを今すぐ開始しますか、それとも下書きのままにしますか?」と尋ねます。
開始する場合:
POST https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/status?api_key=$SMARTLEAD_API_KEY
Body:
{ "status": "START" }
下書きの場合:何もしません。ユーザーは後から Smartlead の UI で開始できます。
オプション:キャンペーン設定を更新する
トラッキングまたは停止条件を設定する場合は、次を使用します。
POST https://server.smartlead.ai/api/v1/campaigns/{campaign_id}/settings?api_key=$SMARTLEAD_API_KEY
Body:
{
"track_settings": ["DONT_TRACK_EMAIL_OPEN"],
"stop_lead_settings": "REPLY_TO_AN_EMAIL",
"send_as_plain_text": false,
"follow_up_percentage": 100,
"enable_ai_esp_matching": true
}
使用可能な track_settings:DONT_TRACK_EMAIL_OPEN、DONT_TRACK_LINK_CLICK、DONT_TRACK_REPLY_TO_AN_EMAIL
使用可能な stop_lead_settings:REPLY_TO_AN_EMAIL、CLICK_ON_A_LINK、OPEN_AN_EMAIL
Smartlead API リファレンス
すべてのエンドポイントでは、ベース URL https://server.smartlead.ai/api/v1 と ?api_key= クエリパラメーターを使用します。
| エンドポイント | メソッド | 用途 |
|---|---|---|
/campaigns/create | POST | 新しいキャンペーンを作成 |
/campaigns | GET | すべてのキャンペーンを一覧表示 |
/campaigns/{id} | GET | ID でキャンペーンを取得 |
/campaigns/{id}/schedule | POST | キャンペーンのスケジュールを設定 |
/campaigns/{id}/settings | POST | トラッキング/停止設定を更新 |
/campaigns/{id}/sequences | POST | メールシーケンスを保存 |
/campaigns/{id}/leads | POST | リードを追加(1 回の呼び出しにつき最大 100 件) |
/campaigns/{id}/email-accounts | GET | キャンペーンのメールボックスを一覧表示 |
/campaigns/{id}/email-accounts | POST | メールボックスをキャンペーンに割り当て |
/campaigns/{id}/status | POST | キャンペーンのステータスを変更(START/PAUSED/STOPPED) |
/campaigns/{id}/analytics | GET | キャンペーンの概要分析データ |
/email-accounts/ | GET | すべてのメールアカウントを一覧表示(offset/limit) |
プロンプトの例
- "Truewind 向けに、会計事務所をターゲットとした Smartlead キャンペーンを設定する"
- "アウトリーチキャンペーンを作成する — リードの CSV ファイルを持っています"
- "中堅企業の CFO 向けにコールドメールキャンペーンを開始する"
- "Smartlead で 3 通のメールシーケンスを設定し、空いているメールボックスを 5 つ割り当てる"
メタデータ
metadata:
requires:
env: ["SMARTLEAD_API_KEY"]
cost: "Free (Smartlead API included with plan that has API access)"