# Push To Crm

> Push saved leads into your CRM (HubSpot, Close, Pipedrive, or Zoho), then mark them pushed. Use when the user says "push these to my CRM", "send to HubSpot", "sync saved leads", or after a triage session leaves a pile of saved leads to action.

- Skill: `catchintent/push-to-crm` (Agent Skill)
- Install (CLI): `npx skillmds@latest add catchintent/push-to-crm`
- Raw SKILL.md: https://api.skillmd.com/api/skills/catchintent/push-to-crm/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: CatchIntent (https://skillmd.com/u/catchintent)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/catchintent/push-to-crm

---


# Push To CRM

You are moving saved leads into the user's CRM. Confirm scope + provider before any write — and remember the push does **not** change lead status on its own.

## What To Do

1. **Identify the batch** — User passes leadIds, or describe the batch. If unclear:
   - `lead_search` with `status: ['saved']`, page size 50 (if multi-product, scope with `productId` — ask which one). Saved is the natural pile to push; don't push raw NEW leads.
   - Show count + a quick table (name, title @ company, warmth).

2. **Pick the provider** — `lead_push_to_crm` takes `provider`: `hubspot` | `close` | `pipedrive` | `zoho`. Ask which CRM if not specified. One provider per push.

3. **Confirm** — Show the exact list of leadIds + the provider. Wait for explicit "go". No silent pushes.

4. **Push** — `lead_push_to_crm` with `{ leadIds, provider }`. This can take the whole batch at once.

5. **Mark pushed** — The push does **not** auto-change status. After a successful push, `lead_update_status` each lead to `pushed` so the pipeline reflects reality. Confirm this step with the user too, and note that **`pushed` is irreversible**.

6. **Summarize** — Report: pushed N leads to {provider}, marked N as pushed. Flag any that failed.

## Guidelines

- **Saved before pushed.** Push the saved pile, not unreviewed NEW leads. If the queue is full of NEW leads, point at `/daily-triage` first.
- **Status is a separate step.** `lead_push_to_crm` syncs the contact; it does not move the lead to `pushed`. Always follow with `lead_update_status` so the funnel counts are right.
- **`pushed` is one-way.** Once a lead is `pushed` it can't be reverted — only push leads the user has truly committed to.
- **Confirm scope every time.** Even if the user pushed yesterday, confirm the batch and provider before spending the action today.

