Claude CodeとSalesforce・CRM連携ガイド【営業データをAIで分析・活用する方法】
「Salesforce にデータを入力する時間はあるのに、分析する時間がない」
多くの営業チームが陥るジレンマだ。Salesforce(または類似の CRM)は世界で最も多く使われる営業支援ツールだが、「データを入れる義務」と「データを活かす仕組み」の間に大きなギャップがある。
Claude Code と Salesforce を連携させると、このギャップを埋められる。商談データから自動で分析コメントを生成し、提案書の下書きを作成し、フォローアップのメール文面を出力する——こうした「データ → アクション」の変換を自動化できる。
この記事では、Salesforce API の基礎から始めて、Claude Code との具体的な連携方法を解説する。
1. Salesforce API の基礎——外部から Salesforce のデータを扱う
Salesforce API の種類
Salesforce には複数種類の API が提供されているが、Claude Code との連携でよく使うのは次の2つだ。
REST API: シンプルな HTTP リクエストでデータの取得・作成・更新ができる。JSON 形式でデータをやり取りする。
SOQL(Salesforce Object Query Language): Salesforce 独自のクエリ言語で、「条件に合うデータを取得する」際に使う。SQL に似た文法で、習得しやすい。
認証の設定
Salesforce API を使うには OAuth 2.0 認証が必要だ。設定の流れは以下の通り。
- Salesforce 管理者アカウントにログインする
- 設定 → アプリケーション → 接続アプリケーション → 新規作成
- アプリケーション名を設定し「OAuth 設定を有効にする」にチェックを入れる
- コールバック URL に
https://login.salesforce.com/services/oauth2/successを設定 - 利用可能な OAuth 範囲に「フルアクセス」または必要なスコープを追加
- 保存後、コンシューマキー(client_id)とコンシューマシークレット(client_secret)を記録する
アクセストークンの取得
import requests
import os
def get_salesforce_token():
"""Salesforce のアクセストークンを取得する"""
url = "https://login.salesforce.com/services/oauth2/token"
payload = {
"grant_type": "password",
"client_id": os.environ["SF_CLIENT_ID"],
"client_secret": os.environ["SF_CLIENT_SECRET"],
"username": os.environ["SF_USERNAME"],
"password": os.environ["SF_PASSWORD"] + os.environ["SF_SECURITY_TOKEN"]
}
response = requests.post(url, data=payload)
response.raise_for_status()
token_data = response.json()
return token_data["access_token"], token_data["instance_url"]
2. 商談データの自動分析
受注率を下げている要因を Claude に発見させる
営業チームの中で「なぜこの商談は失注したか」「なぜ案件が止まっているか」を定期的に分析している組織は意外と少ない。Salesforce にデータはあるが、分析する時間がない——という状況が多い。
以下のスクリプトは、今月の商談データを Salesforce から取得して Claude が分析し、受注率改善のための示唆を提供する。
import anthropic
def analyze_deals(access_token, instance_url):
"""商談データを取得して Claude で分析する"""
# SOQL で今月の商談データを取得
soql = """
SELECT Name, StageName, Amount, CloseDate,
Probability, LeadSource, AccountId,
Account.Name, Account.Industry
FROM Opportunity
WHERE CloseDate >= THIS_MONTH
AND StageName != 'Closed Won'
AND StageName != 'Closed Lost'
ORDER BY Amount DESC
LIMIT 50
"""
url = f"{instance_url}/services/data/v59.0/query"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers, params={"q": soql})
deals = response.json()
# データをテキスト形式に変換
deal_lines = []
for deal in deals["records"]:
deal_lines.append(
f"商談名: {deal['Name']} | "
f"顧客: {deal['Account']['Name']} | "
f"業種: {deal['Account']['Industry']} | "
f"フェーズ: {deal['StageName']} | "
f"金額: {deal['Amount']:,}円 | "
f"クローズ予定: {deal['CloseDate']} | "
f"確度: {deal['Probability']}%"
)
deals_text = "\n".join(deal_lines)
# Claude で分析
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
message = client.messages.create(
model="claude-opus-4-5",
max_tokens=2048,
messages=[{
"role": "user",
"content": (
"以下は今月の進行中商談データです。\n\n"
f"{deals_text}\n\n"
"以下の観点で分析してください:\n"
"1. 成約確率が高い上位3商談とその根拠\n"
"2. 注意が必要な商談(クローズ日が近いのに確度が低いなど)\n"
"3. 業種・規模別の傾向\n"
"4. 営業マネージャーへの今週の行動提案\n"
"具体的な商談名・金額を引用しながら分析してください。"
)
}]
)
return message.content[0].text
このスクリプトを毎週月曜日の朝に実行するよう設定すると、週次の営業会議前に「AI が分析したコメント」が用意されている状態になる。
3. 提案書・フォローアップメールの自動生成
商談情報を元に提案書の骨格を生成する
商談が「提案フェーズ」に入ると、顧客の課題に合わせた提案書の作成が必要になる。Salesforce に記録された商談情報(顧客の課題・予算規模・意思決定者・競合状況)を元に、Claude が提案書の骨格を自動生成できる。
def generate_proposal_draft(deal_data):
"""商談データを元に提案書の下書きを生成する"""
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
message = client.messages.create(
model="claude-opus-4-5",
max_tokens=3000,
messages=[{
"role": "user",
"content": (
"以下の商談情報を元に、提案書の骨格を作成してください。\n\n"
f"顧客名: {deal_data['account_name']}\n"
f"業種: {deal_data['industry']}\n"
f"課題・ニーズ: {deal_data['description']}\n"
f"予算規模: {deal_data['budget']:,}円\n"
f"意思決定者: {deal_data['decision_maker']}\n"
f"競合: {deal_data['competitors']}\n\n"
"提案書の構成:\n"
"1. エグゼクティブサマリー(3行以内)\n"
"2. 現状の課題整理(顧客の言葉を使う)\n"
"3. 提案内容の骨格(章立て)\n"
"4. 期待される効果・ROI\n"
"5. 次のアクション提案\n\n"
"完全な提案書ではなく「骨格・章立て・重要なポイント」に絞って出力してください。"
)
}]
)
return message.content[0].text
この出力を営業担当者が受け取り、自社のテンプレートに当てはめながら肉付けしていく。「提案書を0から作る」と「骨格を加筆・修正する」では、作業時間が全く異なる。平均して70%の時間削減が期待できる。
フォローアップメールの自動生成
商談後・提案後のフォローアップメールは、営業が「重要だとわかっているが、後回しにしがち」な業務の一つだ。Salesforce の活動ログに記録された商談メモを元に、Claude が個別化されたフォローアップメールを自動生成できる。
def generate_followup_email(contact_info, meeting_notes, next_action):
"""商談後のフォローアップメールを生成する"""
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
message = client.messages.create(
model="claude-opus-4-5",
max_tokens=1000,
messages=[{
"role": "user",
"content": (
"以下の情報を元に、商談後のフォローアップメールを作成してください。\n\n"
f"宛先: {contact_info['name']} 様 ({contact_info['title']})\n"
f"商談日: {contact_info['meeting_date']}\n"
f"商談メモ: {meeting_notes}\n"
f"次のアクション: {next_action}\n\n"
"メールの条件:\n"
"- ビジネスメールとして自然で丁寧なトーン\n"
"- 商談での合意事項を具体的に引用する\n"
"- 次のステップを明確に示す\n"
"- 300文字以内の簡潔さ\n"
"- 件名も含めて出力する"
)
}]
)
return message.content[0].text
4. 予実管理レポートの自動生成
月次の予実差異を Claude に分析させる
営業マネージャーが月次の予実管理に費やす時間の多くは「数字を見て、差異のコメントを書く」という作業だ。Salesforce のレポートから数値を取得し、Claude に分析コメントを生成させることで、この作業を大幅に効率化できる。
def generate_performance_report(actual_data, target_data):
"""予実管理レポートのコメント部分を生成する"""
# 予実差異を計算
variance = actual_data["total_revenue"] - target_data["total_target"]
variance_pct = (variance / target_data["total_target"]) * 100
summary = (
f"今月実績: {actual_data['total_revenue']:,}円\n"
f"今月目標: {target_data['total_target']:,}円\n"
f"差異: {variance:+,}円 ({variance_pct:+.1f}%)\n"
f"受注件数: {actual_data['won_deals']}件(目標: {target_data['target_deals']}件)\n"
f"平均受注単価: {actual_data['avg_deal_size']:,}円\n\n"
f"担当者別実績:\n"
)
for rep in actual_data["by_rep"]:
summary += (
f" {rep['name']}: "
f"{rep['revenue']:,}円 / 目標{rep['target']:,}円 "
f"({((rep['revenue']/rep['target'])-1)*100:+.1f}%)\n"
)
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
message = client.messages.create(
model="claude-opus-4-5",
max_tokens=1500,
messages=[{
"role": "user",
"content": (
f"{summary}\n\n"
"以上の予実データについて、以下の観点でコメントを作成してください:\n"
"1. 全体の達成状況と主な要因\n"
"2. 担当者別で特に注目すべき点(好事例・改善が必要な事例)\n"
"3. 来月に向けての提言\n"
"経営会議での報告資料として使えるレベルの文章で出力してください。"
)
}]
)
return message.content[0].text
このスクリプトを月末に実行すると、数字の集計と分析コメントが一体になった予実管理レポートが自動生成される。
5. Salesforce 以外の CRM への応用
HubSpot・Zoho・Pipedrive などへの応用
この記事では Salesforce を例に解説したが、同様のアプローチは他の CRM にも応用できる。
HubSpot: REST API が充実しており、Salesforce より設定がシンプルだ。無料プランでも API が使える(月間呼び出し回数に制限あり)。
Zoho CRM: Salesforce と同様の REST API + SOQL 相当のクエリ機能を持つ。中小企業向けのプランが豊富で、API 連携コストが低い。
Pipedrive: シンプルな REST API が提供されており、営業パイプラインのデータ取得が容易だ。
どの CRM でも「API でデータを取得する → Claude に渡して分析させる → 結果を使う・保存する」という基本的な流れは同じだ。
Excel・Google スプレッドシートに蓄積したデータへの応用
CRM を使っていない企業でも、Excel や Google スプレッドシートに顧客・案件データを管理しているケースがある。
このデータを CSV でエクスポートして Claude に渡せば、同様の分析ができる。プログラムによる自動化ではなく「手動でデータを貼り付けて Claude に分析依頼する」形から始めても、十分な効果が得られる。
スクリプトによる完全自動化は「手動でやってみて有効だと確認した後」に実装するのが、無駄のない進め方だ。
Claude Code道場で学ぶ
SalesforceとClaude Codeの連携は、営業チームの生産性を根本から変える可能性を持っています。商談データの分析・提案書作成・フォローアップメール・予実管理——これらを自動化することで、営業担当者が「データ入力・報告書作成」ではなく「顧客との対話」に集中できる環境を作れます。
Claude Code道場では、こうした実践的な業務自動化の手順を、全19章で解説しています。期間限定で全章無料公開中です。


