Lemlist Automation
Lemlistのマルチチャネルアウトリーチワークフローを自動化――キャンペーンの管理、リードの大量登録、カスタム変数によるエンリッチ、キャンペーンデータのエクスポート、配信停止処理を効率的に行います。
ツールキットドキュメント: composio.dev/toolkits/lemlist
セットアップ
- Composio MCPサーバーをクライアントに追加:
https://rube.app/mcp - プロンプトに従ってLemlistアカウントを接続(APIキー認証)
- 以下のワークフローを利用開始
コアワークフロー
1. キャンペーンの一覧表示・検出
LEMLIST_GET_LIST_CAMPAIGNS を使用して、ステータス別に全キャンペーンを列挙します(ページネーション対応)。
Tool: LEMLIST_GET_LIST_CAMPAIGNS
Inputs:
- status: "running" | "draft" | "archived" | "ended" | "paused" | "errors" (optional)
- limit: integer (max 100, default 100)
- offset: integer (pagination offset)
- sortBy: "createdAt"
- sortOrder: "asc" | "desc"
重要: レスポンスは {campaigns: [...], pagination: {...}} のようにラップされている場合があります。必ず campaigns キーから抽出してください。
2. キャンペーン詳細の取得
LEMLIST_GET_CAMPAIGN_BY_ID を使用して、書き込み前にキャンペーン設定を検証します。
Tool: LEMLIST_GET_CAMPAIGN_BY_ID
Inputs:
- campaignId: string (required) -- 例: "cam_A1B2C3D4E5F6G7H8I9"
3. キャンペーンへのリード登録
LEMLIST_POST_CREATE_LEAD_IN_CAMPAIGN を使用して、オプションのメール検出、電話番号検索、LinkedInエンリッチメントを含むリードを追加します。
Tool: LEMLIST_POST_CREATE_LEAD_IN_CAMPAIGN
Inputs:
- campaignId: string (required)
- email: string (required)
- firstName, lastName, companyName, companyDomain: string (optional)
- jobTitle, phone, linkedinUrl, icebreaker: string (optional)
- deduplicate: boolean (cross-campaign duplicatesを防止)
- findEmail, findPhone, verifyEmail, linkedinEnrichment: boolean (optional)
- timezone: string (IANA形式、例: "America/New_York")
バルクパターン: リードを約50件ずつのバッチに分割し、バッチ間でチェックポイントを設定して進捗を管理します。
4. リードへのカスタム変数追加
LEMLIST_POST_ADD_VARIABLES_TO_LEAD を使用して、登録後のリードにパーソナライゼーションフィールドを追加します。
Tool: LEMLIST_POST_ADD_VARIABLES_TO_LEAD
Inputs:
- leadId: string (required) -- Lemlist内部のリードID(メールアドレスではありません)
- company: string (required) -- Lemlist上の貴社名と一致させる必要があります
- variables: object (required) -- キーと値のペア、例: {"score": "42", "color": "yellow"}
重要: これはupsertではありません――既に存在する変数を追加しようとすると失敗します。メールアドレスしかない場合は、LEMLIST_GET_RETRIEVE_LEAD_BY_EMAIL で内部の leadId を解決してください。
5. キャンペーンリードのエクスポート
LEMLIST_GET_EXPORT_CAMPAIGN_LEADS を使用して、状態フィルタリング付きでリードをダウンロードし、レポート作成やQAに利用します。
Tool: LEMLIST_GET_EXPORT_CAMPAIGN_LEADS
Inputs:
- campaignId: string (required)
- (state filteringとJSON/CSV出力に対応)
6. キャンペーンからのリード配信停止
LEMLIST_DELETE_UNSUBSCRIBE_LEAD_FROM_CAMPAIGN を使用して、キャンペーンからリードを削除しアウトリーチを停止します。
Tool: LEMLIST_DELETE_UNSUBSCRIBE_LEAD_FROM_CAMPAIGN
Inputs:
- campaignId: string (required)
- leadId or email: string (required)
既知の落とし穴
| 落とし穴 | 詳細 |
|---|---|
| ラップされたキャンペーンリスト | LEMLIST_GET_LIST_CAMPAIGNS が {campaigns: [...], pagination: {...}} を返す場合がある。必ず campaigns キーから抽出すること。 |
| キャンペーン間の重複排除 | LEMLIST_POST_CREATE_LEAD_IN_CAMPAIGN で重複排除を有効にすると、HTTP 500 "Lead already in other campaign" が発生する――意図的に複数キャンペーンに登録する場合は重複排除を無効にすること。 |
| バルクインポートの失敗 | バルクインポートは約50件ずつバッチに分割し、チェックポイントを設定することで、断続的な障害による部分的な進捗消失を防ぐこと。 |
| 無効な leadId | LEMLIST_POST_ADD_VARIABLES_TO_LEAD でメールアドレスをleadIdとして使用するとHTTP 400 "Invalid leadId" が返る。先に LEMLIST_GET_RETRIEVE_LEAD_BY_EMAIL で内部IDを解決すること。 |
| 変数の衝突 | LEMLIST_POST_ADD_VARIABLES_TO_LEAD はupsertではない。既存のキーを追加しようとするとHTTP 400 "Variables X already exist" が返る。 |
クイックリファレンス
| ツールスラッグ | 説明 |
|---|---|
LEMLIST_GET_LIST_CAMPAIGNS | ステータスフィルターとページネーションで全キャンペーンを一覧表示 |
LEMLIST_GET_CAMPAIGN_BY_ID | IDでキャンペーン詳細情報を取得 |
LEMLIST_POST_CREATE_LEAD_IN_CAMPAIGN | リードを作成しキャンペーンに登録 |
LEMLIST_POST_ADD_VARIABLES_TO_LEAD | リードにカスタムパーソナライゼーション変数を追加 |
LEMLIST_GET_RETRIEVE_LEAD_BY_EMAIL | メールアドレスでリードを検索 |
LEMLIST_GET_EXPORT_CAMPAIGN_LEADS | 状態フィルタリング付きでキャンペーンリードをエクスポート |
LEMLIST_DELETE_UNSUBSCRIBE_LEAD_FROM_CAMPAIGN | キャンペーンからリードを削除 |
Powered by Composio