Saltar al contenido
NuevoVer cómo

Usar FirstSales con Claude Code

Maneja FirstSales desde Claude Code a través de la CLI — instala, autentica, inspecciona antes de modificar, y nunca expongas tu clave de API en la salida del agente.

  1. Por qué usar la CLI con Claude Code

    Claude Code tiene acceso a shell, así que debería operar FirstSales a través de la CLI, no de HTTP en crudo. La CLI centraliza la autenticación, devuelve JSON estable que el agente puede analizar, maneja las cabeceras de idempotencia, y obliga a confirmar en operaciones destructivas: todo lo que de otro modo tendrías que indicarle al agente que hiciera correctamente cada vez.

    Regla general de la documentación: los agentes deberían preferir la CLI cuando existe acceso a shell.

  2. Instala y expón la clave

    Instala la CLI una vez, y dale a Claude Code la clave a través del entorno para que nunca aparezca en un prompt o en una transcripción:

    npm install -g @firstsales.io/cli
    export FIRSTSALES_API_KEY="fs-key-..."   # set in your shell, not in the chat
  3. Dale al agente sus reglas de operación

    Pega un breve contrato de operación en Claude Code (o en un archivo de reglas del proyecto) para que se comporte de forma segura:

    • Empieza cada sesión con firstsales whoami --json; confirma org y workspace antes de actuar.
    • Inspecciona primero, muta con deliberación, verifica después.
    • Usa --idempotency-key en cualquier creación que se pueda reintentar.
    • Usa --confirm solo para una eliminación intencional que el usuario haya pedido.
    • Nunca imprimas claves de API en crudo.
  4. La exploración de solo lectura siempre es segura

    Anima al agente a explorar libremente con comandos list/get: no pueden dañar nada:

    firstsales campaigns list --org ORG_ID --workspace WS_ID --json
    firstsales contacts list --org ORG_ID --workspace WS_ID --json
    firstsales billing overview --org ORG_ID --json
  5. Mutaciones: previsualizar, actuar, verificar

    Para cualquier cosa que escriba, haz que Claude Code siga el ciclo completo: --dry-run, luego la llamada real con una idempotency key, y luego una relectura:

    firstsales contacts create --org ORG_ID --workspace WS_ID \
      --data '{"email":"[email protected]","first_name":"Sam"}' --dry-run
    
    firstsales contacts create --org ORG_ID --workspace WS_ID \
      --data '{"email":"[email protected]","first_name":"Sam"}' \
      --idempotency-key sam-acme-2026-01
    
    firstsales contacts list --org ORG_ID --workspace WS_ID --json
  6. Aprueba o rechaza borradores de IA desde la terminal

    Un ciclo útil con Claude Code: revisar respuestas escritas por IA pendientes y actuar sobre ellas sin abrir la app. Lista los hilos, lee uno, y luego aprueba o rechaza el borrador:

    firstsales inbox threads --org ORG_ID --workspace WS_ID
    firstsales inbox thread --org ORG_ID --workspace WS_ID --thread THREAD_ID
    firstsales inbox approve-draft --org ORG_ID --workspace WS_ID \
      --email EMAIL_ID --idempotency-key approve-EMAIL_ID
  7. Respeta la superficie pública

    Indica al agente que se mantenga dentro de los comandos públicos de la CLI. Si un comando devuelve unsupported_operation, debe detenerse y reportarlo: no intentar llamar a rutas privadas de la app, callbacks de proveedores, píxeles de seguimiento, gestores de baja, o endpoints internos de cron para forzar el resultado.

Consejos de experto

  • Pon las reglas de operación en un archivo de reglas del proyecto

    En lugar de repegar el contrato de seguridad cada sesión, colócalo en las reglas de proyecto de Claude Code para que cada ejecución empiece con whoami y el ciclo inspeccionar-mutar-verificar.

  • La clave en el entorno, nunca en el chat

    Exporta FIRSTSALES_API_KEY en la shell donde corre Claude Code. Si la clave está en un prompt, está en la transcripción: la CLI la mantiene fuera de la salida, no la vuelvas a meter ahí.

  • Déjalo leer libremente, condiciona las escrituras

    Los comandos list/get/analytics son seguros de ejecutar sin supervisión. Reserva tu revisión para cualquier cosa con create/update/delete o --confirm.

  • unsupported_operation significa detenerse

    Entrena al agente para tratar unsupported_operation como un muro, no como un rompecabezas. La CLI pública es toda la superficie permitida; no hay atajo ingenioso que valga el riesgo.

Preguntas frecuentes

¿Debería Claude Code usar la CLI o la API?

La CLI. Como Claude Code tiene acceso a shell, la CLI es la opción preferida: centraliza la autenticación, emite JSON estable, y aplica la idempotencia y la confirmación de operaciones destructivas para que el agente no tenga que reimplementarlas.

¿Cómo mantengo mi clave de API fuera de la transcripción?

Exporta FIRSTSALES_API_KEY en la shell antes de iniciar Claude Code, e indícale que nunca imprima claves en crudo. La CLI lee la variable de entorno y nunca la repite en la salida.

¿Cuál es el flujo seguro para hacer cambios?

Verifica la identidad con whoami, confirma org/workspace, inspecciona el estado actual, haz el cambio mínimo con --dry-run y luego con --idempotency-key, usa --confirm solo para eliminaciones intencionales, y vuelve a leer para validar.

¿Puede gestionar la bandeja de entrada?

Sí: inbox threads, inbox thread, y inbox approve-draft / reject-draft permiten que Claude Code clasifique y actúe sobre respuestas escritas por IA desde la terminal.

¿Qué pasa si un comando no está soportado?

Si la CLI devuelve unsupported_operation, el agente debe detenerse y reportarlo. No debe recurrir a rutas privadas de la app, callbacks, píxeles, o endpoints de cron: esos están prohibidos y romperán algo.

¿Cómo evito eliminaciones accidentales?

Los comandos destructivos requieren --confirm. Mientras el agente solo añada --confirm para eliminaciones que el usuario haya pedido explícitamente, no puede ocurrir un borrado accidental en silencio.

Desarrollador y CLI

Prospección que sigue cuando te desconectas.Leads, emails, seguimientos y respuestas, resueltos.

Conecta buzones ilimitados y deja que los agentes de IA busquen leads, escriban cada email y hagan seguimiento. O envía tus propias plantillas en modo manual. Desde $29/mes.

$1 por 3 días · Cancela cuando quieras · Sin contrato

Instalar con IA

Tu agente de código configura la CLI y las skills de FirstSales por ti.

Prompt para Claude Code

I'm setting up FirstSales (https://firstsales.io), an AI outbound sales platform: campaigns, contacts, a reply inbox, deliverability and lead signals. Help me get my workspace sending real, good emails end to end, from Claude Code.

Read these first so you know how FirstSales works:
- Developer docs and API: https://developer.firstsales.io
- CLI: https://www.npmjs.com/package/@firstsales.io/cli
- Skills for coding agents: https://github.com/firstsalesio/firstsales-skills (read README.md and GUIDE.md)

Setup
1. Install the CLI: npm install -g @firstsales.io/cli
2. Install the FirstSales skills:
   claude plugin marketplace add firstsalesio/firstsales-skills
   claude plugin install firstsales@firstsales
3. Ask me if I already have a FirstSales account. If not, send me to https://app.firstsales.io to sign up.
4. Ask me to create an API key under Settings → API → API Keys, with only the scopes we need.
   Never ask me to paste the key into this chat. Tell me to run this in my own terminal, so the key stays hidden:
   read -rs FS_KEY && firstsales auth login --api-key "$FS_KEY"; unset FS_KEY
5. Run `firstsales whoami` and tell me which workspace and organisation we are connected to.

Then ask me about my business: what I sell, who I sell to (roles, company size, countries), my best customers, and what I use today for outbound (tools, lists, mailboxes). Walk me through:
1. Teaching FirstSales my business: website, offer, proof points and case studies in the knowledge base, so the AI writes like someone who knows the product.
2. Connecting my sending mailboxes and checking my sending domain: SPF, DKIM, DMARC and warm-up. If anything is unhealthy, tell me the exact DNS record to add.
3. Bringing in contacts: import my CSV or CRM export into a clean list, remove duplicates and bad emails, and block domains I must never email (customers, competitors, my own).
4. Building my first campaign: the right list, senders, steps and timing. Write the sequence with me, show me the drafts, and do not launch until I say yes.
5. Setting up Signals if it fits: find people engaging with LinkedIn posts about topics my buyers care about, and turn them into leads.
6. Inviting my team and giving each person the right access.

Once campaigns run, show me how to work the reply inbox from here: which replies need an answer, draft responses in my voice, and move good conversations into deals. If I use Cal.com, connect it so follow-ups can offer my booking link (not the first email).

Throughout, as you learn about my business, proactively suggest and help create:
- Reply templates for the questions and objections my prospects are likely to raise, based on my product, site and codebase if you can see them.
- Campaign ideas and segments worth testing, with the reason for each.

Safety rules:
- Show every change as a dry run (--dry-run) first and wait for my yes. Never send emails, launch campaigns or delete anything without my yes.
- Tell me before anything that spends credits, and how many.

Be opinionated. If the docs give a sensible default, just use it. Don't make me choose between five options.