mcpField
C
callable-lead-count

callable-lead-count

github.com/scientiacapitalマーケティング・グロース2836 回インストール3 週間前に更新
リポジトリ

callable-lead-count について

HubSpotの連絡可能なコンタクトを集計し、リードのティア分類、架電可能日数、在庫アラートを出すスキルです。日々の見込み客開拓や朝のブリーフ作成を支援します。

主な機能

  1. 01電話番号のあるコンタクト検索
  2. 02除外対象と抑制中の連絡先のフィルタリング
  3. 03ATL・GRAY・BTL・NEVERの分類
  4. 04架電可能日数の計算
  5. 05在庫不足と要確認項目の通知
  6. 06サマリーとコンタクト表の作成

活用シーン

  1. 01毎日の架電可能な見込み客数の確認
  2. 02優先架電するATLコンタクトの特定
  3. 03件数がしきい値を下回った際の通知
  4. 04朝のブリーフへの在庫データ提供

MCP 対応

HubSpotのMCPツール`search_crm_objects`を使い、電話番号のあるコンタクトを検索します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/scientiacapital/skills --skill callable-lead-count

インストール後、Claude Code で/callable-lead-countを入力して読み込まれたか確認します。

同梱ファイルconfig.json

詳細

通話可能リード数スキル

HubSpot 内の通話可能な見込み客(電話番号を持つコンタクト)の日次インベントリを生成します。ゴールデンルールのフィルタリングを適用します。ATL/BTL ティアで分類します。ATL Runway 指標(1 日 15 件の目標での ATL 通話日数)を計算します。日次インベントリが 50 未満、または ATL インベントリが 15 未満の場合にアラートを出します。モーニングブリーフと通話リストの優先順位設定をサポートします。

<quick_start> トリガー: 月〜金 午前 7:25 ET(毎日、午前 7:30 のモーニングブリーフ前)
手動トリガー: 「通話可能なリードを表示」または「リードインベントリチェック」
依存関係: HubSpot ポータル 21530819 へのアクセスが必要
出力: ティア別の通話可能リード数、ATL Runway 日数、ヘルスアラート </quick_start>

<success_criteria>

  • 電話番号が null でないコンタクトを HubSpot にクエリする
  • ゴールデンルールを適用する(顧客、チャネル、デバイス所有者、プロダクトページエンゲージャーを除外)
  • 各コンタクトを ATL/BTL ティアで分類する(CLAUDE.md の意思決定者ルールに準拠)
  • 合計を集計する: ATL、GRAY、BTL、NEVER(把握用)
  • ATL Runway を計算する = ATL 件数 ÷ 1 日 15 通話 = インベントリ X 日分
  • 合計 Runway を計算する = 通話可能な合計件数 ÷ 1 日 50 通話 = X 日分
  • ATL < 15 の場合にアラートを出す(⚠️ 警告)
  • 合計 < 50 の場合にアラートを出す(🚨 重大)
  • NEVER ATL > 0 の場合にアラートを出す(🔍 レビュー、シーケンスから削除)
  • 出力: サマリー統計 + 詳細テーブル + 前日とのトレンド比較 </success_criteria>

ステージ 1: 通話可能なコンタクトを HubSpot にクエリする

MCP ツール: search_crm_objects(HubSpot)

objectType: "contacts"
filterGroups: [{
  filters: [
    { propertyName: "phone", operator: "HAS_PROPERTY" }
  ]
}]
properties: [
  "firstname",
  "lastname",
  "email",
  "phone",
  "jobtitle",
  "company",
  "hs_lead_status",
  "hubspot_owner_id",
  "hs_analytics_num_page_views",
  "custom_atl_btl_tier",
  "custom_prospect_vertical",
  "lifecyclestage",
  "createdate"
]
limit: 100

ページネーション: すべての結果をループする(200 件以上のコンタクトになる場合があります)

出力: すべてのプロパティを含む完全なコンタクトリスト(まだフィルタリングなし)


ステージ 2: ゴールデンルールフィルターを適用する

ゴールデンルール(ハード除外):

次の場合にコンタクトをスキップ:

  • メールドメインが crm_customers テーブルと一致する(顧客アカウント)
  • コンタクトに「Channel Partner」タグが付いている(hubspot_owner_id = チャネルオーナー)
  • コンタクトに「Device Owner」タグが付いている、またはデバイス所有者リストに含まれる
  • コンタクトに「Product Page Engager」タグが付いている(マーケティングのみのエンゲージメント)
  • 役職に BTL キーワードが含まれる: Technician、Support、Intern、Volunteer、Operator、Designer(ディレクター以外)
  • 役職が NEVER ATL リストに含まれる(Warehouse Manager、Network Manager、Systems Admin、AV Tech、Graphic Design Instructor、Program Administrator、Web Designer、Classroom Support、Lab Coordinator、Maintenance、Building Engineer、Multimedia Services Manager、Video Production Specialist、Streaming Crew)
  • リードステータスが除外リストに含まれる: Unqualified、Opted Out、Bad Fit
  • 電話番号が無効または重複している

保持ロジック:

  • hs_lead_status が次のいずれかであるコンタクトを保持する: Subscriber、Qualified Lead、Inbound Lead、Marketing Qualified Lead、Sales Qualified Lead
  • 過去 90 日以内に作成された見込み客を保持する
  • hs_analytics_num_page_views > 0 のコンタクトを保持する(エンゲージメントシグナル)

出力: フィルタリング済みの通話可能リスト(通常、ゴールデンルール適用後は入力の 50〜70%)


ステージ S — サプレッションゲート

インベントリ集計と通話キューから、サプレッション対象のコンタクトを除外します:

  • bdr_suppression_until が設定されており、かつ bdr_suppression_until > 今日の場合、除外
  • bdr_suppression_until が設定されていない場合(一度もサプレッションされていない)、含める
  • bdr_suppression_until < 今日の場合(クーリング期間が終了)、含める

HubSpot フィルター: propertyName: "bdr_suppression_until", operator: "NOT_HAS_PROPERTY" または operator: "LT", value: TODAY_ISO 参照: lead-suppression-spec(bdr_suppressed、bdr_suppression_reason、bdr_suppression_until)


ステージ 3: ATL/BTL 階層による分類

MCP ツール: 該当なし (jobtitle を使用したロジックベースの分類)

ATL/BTL 意思決定者分類を適用 (CLAUDE.md に準拠):

ATL 階層 (常にプロスペクト対象) — 10 個の汎用キーワード:

  • Chief、CIO、CTO、CFO、COO
  • Vice President、VP、AVP、SVP、EVP
  • President、Provost、Vice Provost
  • Superintendent、Director (IT/Tech/Facilities/Academic Tech/Procurement)
  • Dean、Court Administrator、Clerk of Court
  • City Manager、County Manager、Senior Pastor、Executive Pastor

GRAY 階層 (文脈依存 - 予算権限 >$25K):

  • Manager (AV/Facilities/IT) — Director 以上への報告がある場合のみ
  • Department Chair — 文脈依存 (小規模機関か大規模機関か)
  • Director of Educational Technology — 報告ラインに依存
  • Program Director — 部門レベルの予算権限がある場合のみ

BTL 階層 (予算権限なし):

  • Technician、Specialist、Coordinator、Support
  • Administrator (Systems/Network/Database)
  • Engineer (AV/Network/Systems)、Operator
  • Instructor、Professor、Faculty、Designer、Assistant
  • Clerk (非 Court)、Volunteer、Help Desk
  • Student、Resident、Intern

ATL にならない (自動除外):

  • Warehouse Manager、Network Manager、Systems Administrator
  • AV Technician、Graphic Design Instructor
  • Program Administrator、Web Designer
  • Classroom Support、Lab Coordinator、Maintenance
  • Building Engineer、Multimedia Services Manager
  • Video Production Specialist、Streaming Crew

分類アルゴリズム:

FOR each contact IN filtered_list:
  title = contact.jobtitle.lower()
  
  IF title matches any NEVER_ATL keyword:
    tier = "NEVER"
    action = "REVIEW" (may need removal from sequences)
  
  ELIF title matches any ATL keyword:
    tier = "ATL"
  
  ELIF title matches any GRAY keyword:
    tier = "GRAY"
    note = "Verify budget authority >$25K via company research"
  
  ELSE:
    tier = "BTL"

出力: 階層が割り当てられた、分類済みの架電可能な連絡先


ステージ 4: 架電可能なインベントリ指標の算出

階層別の集計:

atl_count = count(tier == "ATL")
gray_count = count(tier == "GRAY")
btl_count = count(tier == "BTL")
never_count = count(tier == "NEVER")
total_callable = atl_count + gray_count + btl_count

ATL ランレート指標:

atl_runway_days = ROUND(atl_count / 15, 1)
# Tim's target: 15 ATL dials/day
# Example: 45 ATL contacts = 3 days of ATL inventory

トータルランレート指標:

total_runway_days = ROUND(total_callable / 50, 1)
# Tim's target: 50+ dials/day (mix of ATL, GRAY, BTL)
# Example: 200 callable = 4 days of total inventory

リード経過日数の指標:

avg_days_in_system = AVERAGE(TODAY() - contact.createdate)
recent_engagers = count(hs_analytics_num_page_views > 0)

ステージ 5: ヘルスアラートの生成

アラートしきい値:

指標しきい値アラートレベルアクション
ATL 件数< 15⚠️ 警告「ATL プロスペクティングを増やしてください (prospect-enrich + prospect-refresh)」
架電可能合計< 50🚨 重大「1 日 50 コールに対するインベントリが不足しています—プロスペクティングをエスカレートしてください」
NEVER ATL 件数> 0🔍 要確認「NEVER ATL 階層に X 件の連絡先があります—シーケンスから削除してください」
ATL ランレート< 2 日⚠️ 警告「ATL コールが 2 日分未満です—至急補充してください」

アラート出力:

✓ ATL inventory: 42 contacts (2.8 days runway)
✓ Total callable: 185 contacts (3.7 days runway)
🔍 NEVER ATL: 2 contacts (remove from sequences)
✓ Health: GREEN (acceptable inventory)

ステージ 6: サマリーレポートの出力

形式: Markdown サマリー + 詳細テーブル

サマリーセクション:

# Daily Callable Lead Inventory — 2026-03-19

## Health Status
✓ ATL Inventory: 42 contacts (2.8 days)
✓ Total Callable: 185 contacts (3.7 days)
🔍 NEVER ATL: 2 contacts (review)

## Detailed Breakdown
| Tier | Count | % of Total | Runway Days | Status |
|------|-------|-----------|-------------|--------|
| ATL | 42 | 22.7% | 2.8 | ✓ Good |
| GRAY | 65 | 35.1% | 1.3 | ⚠️ Monitor |
| BTL | 78 | 42.2% | 1.6 | ✓ OK |
| **TOTAL** | **185** | **100%** | **3.7** | **✓ GREEN** |

## Trend vs Yesterday
- ATL: +3 (was 39)
- GRAY: -2 (was 67)
- BTL: +5 (was 73)
- Total: +6 (was 179)

## Top Companies by Leads
1. Acme Corp: 12 contacts (5 ATL)
2. State University: 8 contacts (6 ATL)
3. County Courts: 6 contacts (5 ATL)

## Activity Signal
- Recent engagers (>5 page views): 45 contacts
- Avg days in system: 23 days
- New adds (last 7 days): 18 contacts

架電可能な連絡先の詳細テーブル:

連絡先役職会社業種電話階層システム内日数エンゲージメントシーケンス
Jane SmithDirector of IT ServicesAcme CorpCorp AV✓ATL3412 閲覧BDR_CorporateAV_1
Bob JonesManager, IT InfrastructureState UnivHigher Ed✓GRAY453 閲覧BDR_HigherEd_1
Carol WhiteAV TechnicianExample IncHealthcare✓NEVER121 閲覧REMOVE

ステージ 7: モーニングブリーフとの連携

このスキルは morning-brief (午前 7:30) に連携されます:

  • ATL/GRAY/BTL の内訳を morning-brief に渡す
  • アラートフラグ (⚠️ 警告、🚨 重大、🔍 要確認) を渡す
  • 優先ダイヤルリスト用に上位 15 件の ATL 連絡先を渡す
  • インベントリ計画用にランレート指標を渡す

morning-brief 向けの出力形式:

{
  "atl_count": 42,
  "gray_count": 65,
  "btl_count": 78,
  "never_count": 2,
  "total_callable": 185,
  "atl_runway_days": 2.8,
  "total_runway_days": 3.7,
  "alerts": ["NEVER_ATL_REVIEW"],
  "top_atl_contacts": [
    { "name": "Jane Smith", "company": "Acme", "days_in_system": 34 },
    ...
  ]
}

ステージ 8: 比較指標 (週次比較)

任意: 7 日間のトレンドを追跡

日付ATLGRAYBTL合計ATL ランレートステータス
2026-03-194265781852.8✓
2026-03-183967731792.6✓
2026-03-173564701692.3⚠️
2026-03-163262681622.1⚠️

トレンド分析:

  • ATL は 1 日あたり 3〜4 件増加 (良好)
  • 合計は 1 日あたり 6 件増加 (良好、prospect-enrich + prospect-refresh による目標値に到達)
  • ランレートは 2.8〜3.7 日で安定 (許容範囲、最低 2 日以上)

結果サイドカーを出力する

最終ステップとして、~/.claude/skill-analytics/last-outcome-callable-lead-count.json に書き込みます:

{"ts":"[UTC ISO8601]","skill":"callable-lead-count","version":"1.0.0","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"atl_count":[n],"gray_count":[n],"btl_count":[n],"total_callable":[n],"never_atl_flagged":[n],"atl_runway_days":[n]},
 "error":null,"session_id":"[YYYY-MM-DD]"}

一部のステージが失敗しても結果が生成された場合は、ステータスに「partial」を使用します。出力がまったく生成されなかった場合にのみ「error」を使用します。


スキルのメタデータ

バージョン: 1.0
最終更新: 2026-03-19
作成者: Tim Kipper
ステータス: Production
連携: HubSpot(ポータル 21530819)
ティア: P1(Core BDR Automation)
トリガー: スケジュール(月〜金 7:25 AM)+ 手動(「Show callable leads」)
依存関係: morning-brief(7:30 AM)へフィード

コメント