Pular para o conteúdo
NovoVeja como

Usando o FirstSales com o Claude Code

Controle o FirstSales a partir do Claude Code via CLI — instale, autentique, inspecione antes de alterar dados e nunca exponha sua chave de API na saída do agente.

  1. Por que a CLI para o Claude Code

    O Claude Code tem acesso a shell, então ele deve controlar o FirstSales pela CLI, não por HTTP puro. A CLI centraliza a autenticação, retorna JSON estável que o agente consegue parsear, cuida dos headers de idempotência e força confirmação em operações destrutivas: tudo que você, de outra forma, teria que instruir o agente a fazer corretamente toda vez.

    Regra geral da documentação: agentes devem preferir a CLI quando há acesso a shell.

  2. Instale e exponha a chave

    Instale a CLI uma vez, e passe a chave ao Claude Code pelo ambiente para que ela nunca apareça em um prompt ou transcrição:

    npm install -g @firstsales.io/cli
    export FIRSTSALES_API_KEY="fs-key-..."   # definida no seu shell, não no chat
  3. Dê ao agente suas regras de operação

    Cole um contrato de operação curto no Claude Code (ou em um arquivo de regras do projeto) para que ele se comporte com segurança:

    • Comece toda sessão com firstsales whoami --json; confirme org e workspace antes de agir.
    • Inspecione primeiro, mute deliberadamente, verifique depois.
    • Use --idempotency-key em qualquer criação que possa ser repetida.
    • Use --confirm somente para uma exclusão intencional pedida pelo usuário.
    • Nunca imprima chaves de API cruas.
  4. Exploração somente leitura é sempre segura

    Encoraje o agente a explorar livremente com comandos list/get: eles não conseguem danificar 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. Mutações: pré-visualizar, agir, verificar

    Para qualquer coisa que escreve, faça o Claude Code seguir o ciclo do início ao fim: --dry-run, depois a chamada real com uma chave de idempotência, depois uma releitura:

    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. Aprove ou rejeite rascunhos de IA pelo terminal

    Um ciclo útil no Claude Code: revisar respostas escritas por IA pendentes e agir sobre elas sem abrir o app. Liste as threads, leia uma, depois aprove ou rejeite o rascunho:

    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. Respeite a superfície pública

    Instrua o agente a permanecer nos comandos públicos da CLI. Se um comando retornar unsupported_operation, ele deve parar e reportar: não tentar chamar rotas privadas do app, callbacks de provedores, pixels de rastreamento, handlers de descadastro ou endpoints de cron internos para forçar o resultado.

Dicas de especialista

  • Coloque as regras de operação em um arquivo de regras do projeto

    Em vez de colar o contrato de segurança de novo a cada sessão, coloque-o nas regras do projeto do Claude Code para que toda execução comece com whoami e o ciclo inspecionar-mutar-verificar.

  • Chave no ambiente, nunca no chat

    Exporte FIRSTSALES_API_KEY no shell em que o Claude Code roda. Se a chave está em um prompt, ela está na transcrição: a CLI a mantém fora da saída, não a coloque de volta.

  • Deixe ele ler livremente, controle as escritas

    Comandos list/get/analytics são seguros para rodar sem supervisão. Reserve sua revisão para qualquer coisa com create/update/delete ou --confirm.

  • unsupported_operation significa parar

    Treine o agente para tratar unsupported_operation como um muro, não um quebra-cabeça. A CLI pública é toda a superfície permitida; não há gambiarra que valha o risco.

Perguntas frequentes

O Claude Code deve usar a CLI ou a API?

A CLI. Como o Claude Code tem acesso a shell, a CLI é preferida: ela centraliza a autenticação, emite JSON estável e reforça idempotência e confirmação de operações destrutivas, para que o agente não precise reimplementar isso.

Como mantenho minha chave de API fora da transcrição?

Exporte FIRSTSALES_API_KEY no shell antes de iniciar o Claude Code, e instrua-o a nunca imprimir chaves cruas. A CLI lê a variável de ambiente e nunca a ecoa na saída.

Qual é o fluxo seguro para mudanças?

Verifique a identidade com whoami, confirme org/workspace, inspecione o estado atual, faça a mudança mínima com --dry-run e depois --idempotency-key, use --confirm só para exclusões pretendidas, e releia para validar.

Ele consegue gerenciar a caixa de entrada?

Sim: inbox threads, inbox thread e inbox approve-draft / reject-draft permitem que o Claude Code triem e aja sobre respostas escritas por IA pelo terminal.

O que fazer se um comando não é suportado?

Se a CLI retornar unsupported_operation, o agente deve parar e reportar. Ele não deve recorrer a rotas privadas do app, callbacks, pixels ou endpoints de cron: esses são proibidos e vão quebrar.

Como evito exclusões acidentais?

Comandos destrutivos exigem --confirm. Enquanto o agente só adicionar --confirm para exclusões explicitamente pedidas pelo usuário, uma exclusão acidental não pode acontecer silenciosamente.

Desenvolvedor e CLI

Prospecção que continua quando você desconecta.Leads, emails, follow-ups e respostas, resolvidos.

Conecte caixas ilimitadas e deixe os agentes de IA encontrarem leads, escreverem cada email e fazerem follow-up. Ou envie seus próprios modelos no modo manual. A partir de $29/mês.

$1 por 3 dias · Cancele quando quiser · Sem contrato

Instalar com IA

Seu agente de código configura a CLI e as skills do FirstSales para você.

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.