Pular para o conteúdo

Pipelines

Base path: /api/v1/pipelines Scopes: pipelines:read (apenas leitura via API)

Pipelines representam os funis de venda do seu CRM (ex: “Vendas B2B”, “Pós-venda”, “Implantação”). Cada pipeline tem uma sequência ordenada de etapas (stages).

Pipelines não podem ser criados/editados via API — só admin pelo CRM. A API expõe leitura pra integrações precisarem do pipelineId/stageId na hora de criar deals.

Lista pipelines

GET /api/v1/pipelines

Scope: pipelines:read

Terminal window
curl https://app.indutivacrm.com.br/api/v1/pipelines \
-H "X-API-Key: crm_live_..."
[
{
"id": "ckl4p01...",
"name": "Vendas B2B",
"isDefault": true,
"displayOrder": 0,
"stages": [
{ "id": "ckl4s01...", "name": "Novo lead", "displayOrder": 0, "probability": 10 },
{ "id": "ckl4s02...", "name": "Qualificado", "displayOrder": 1, "probability": 30 },
{ "id": "ckl4s03...", "name": "Proposta", "displayOrder": 2, "probability": 60 },
{ "id": "ckl4s04...", "name": "Negociação", "displayOrder": 3, "probability": 80 },
{ "id": "ckl4s05...", "name": "Fechado — Ganho", "displayOrder": 4, "probability": 100, "isWonStage": true },
{ "id": "ckl4s06...", "name": "Fechado — Perdido", "displayOrder": 5, "probability": 0, "isLostStage": true }
]
}
]

Busca um pipeline

GET /api/v1/pipelines/:id

Scope: pipelines:read

Retorna o pipeline com stages aninhados (mesmo shape acima).

Como usar

A maioria das integrações:

  1. Chama GET /pipelines uma vez ao inicializar
  2. Identifica o pipeline e a stage iniciais (geralmente isDefault: true + primeira stage)
  3. Cacheia o mapa pra usar em POST /deals
  4. Refetch ocasional (1x por dia) pra detectar mudanças
// Setup: pega pipeline default + primeira stage
const pipelines = await api('/pipelines')
const pipeline = pipelines.find(p => p.isDefault) ?? pipelines[0]
const firstStage = pipeline.stages.sort((a, b) => a.displayOrder - b.displayOrder)[0]
// Depois, cria deals usando esses IDs
await api('/deals', {
method: 'POST',
body: {
title: 'Novo lead via formulário',
pipelineId: pipeline.id,
stageId: firstStage.id,
contactId: createdContact.id,
},
})

Erros

StatuserrorCenário
404not_foundid não existe
403insufficient_scopeKey sem pipelines:read