Pular para o conteúdo

Pipeline (CRM)

Gerencie pipelines de vendas completos com estagios customizaveis, cards (deals), automacoes de workflow e lead scoring integrado.

Base URL

Todos os endpoints usam o prefixo /api/v1/accounts/{account_id}

Pipelines

GET/api/v1/accounts/{account_id}/pipelines

Lista todos os pipelines da conta.

bash
curl -s "https://chat.seudominio.com/api/v1/accounts/1/pipelines" \
  -H "api_access_token: YOUR_TOKEN" | jq .
200Lista de pipelines
json
{
  "data": [
    {
      "id": 1,
      "name": "Vendas B2B",
      "description": "Pipeline principal de vendas",
      "stages": [
        { "id": 1, "name": "Prospeccao", "position": 0 },
        { "id": 2, "name": "Qualificacao", "position": 1 },
        { "id": 3, "name": "Proposta", "position": 2 },
        { "id": 4, "name": "Negociacao", "position": 3 },
        { "id": 5, "name": "Fechamento", "position": 4 }
      ],
      "cards_count": 42,
      "created_at": "2025-06-01T00:00:00Z"
    }
  ]
}
POST/api/v1/accounts/{account_id}/pipelines

Cria um novo pipeline com estagios.

stages e obrigatorio

O campo stages e obrigatorio e deve ser um objeto (hash), nao um array. Envie pelo menos um estagio ou a API retorna 422. Use sempre Content-Type: application/json.

Body

NomeTipoObrigatorioDescricao
pipeline.namestringSimNome do pipeline
pipeline.descriptionstringNaoDescricao
pipeline.stagesobjectSimObjeto com estagios. Chaves sao IDs temporarios (string). Apos criacao os IDs sao normalizados para {pipeline_id}_{slug}
pipeline.stages.{key}.namestringSimNome do estagio
pipeline.stages.{key}.colorstringNaoCor em hex (ex: "#3B82F6")
pipeline.stages.{key}.positionintegerNaoOrdem de exibicao (1 = primeiro)
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/pipelines" \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "pipeline": {
      "name": "Vendas B2B",
      "stages": {
        "stage_1": { "name": "Prospeccao", "color": "#6366f1", "position": 1 },
        "stage_2": { "name": "Qualificacao", "color": "#3B82F6", "position": 2 },
        "stage_3": { "name": "Proposta", "color": "#f59e0b", "position": 3 },
        "stage_4": { "name": "Fechamento", "color": "#10b981", "position": 4 }
      }
    }
  }'

IDs dos estagios apos criacao

Apos criar o pipeline, os IDs dos estagios sao normalizados pelo servidor para o formato {pipeline_id}_{slug_do_nome} (ex: 1_prospeccao). Use GET /pipelines/{id}/stages para obter os IDs reais antes de criar cards.

PATCH/api/v1/accounts/{account_id}/pipelines/{id}

Atualiza um pipeline.

DELETE/api/v1/accounts/{account_id}/pipelines/{id}

Remove um pipeline e todos os cards associados.

Acao Irreversivel

Remove permanentemente o pipeline, estagios e todos os cards associados.

Estagios do Pipeline

GET/api/v1/accounts/{account_id}/pipelines/{pipeline_id}/stages

Lista todos os estagios de um pipeline com contagem de cards.

200Lista de estagios
json
{
  "data": [
    {
      "id": 1,
      "name": "Prospeccao",
      "position": 0,
      "cards_count": 15,
      "total_value": 45000.00
    },
    {
      "id": 2,
      "name": "Qualificacao",
      "position": 1,
      "cards_count": 8,
      "total_value": 120000.00
    }
  ]
}

Cards (Deals)

Cards representam oportunidades de venda (deals) dentro de um pipeline. Cada card possui valor, contato associado, estagio atual e lead score.

GET/api/v1/accounts/{account_id}/pipeline_cards

Lista cards com filtros avancados.

Parametros

NomeTipoObrigatorioDescricao
pipeline_id(query)integerNaoFiltrar por pipeline
stage_id(query)integerNaoFiltrar por estagio
status(query)stringNaoopen, won, lost
owner_id(query)integerNaoFiltrar por responsavel
contact_id(query)integerNaoFiltrar por contato
page(query)integerNaoPagina(default: 1)
bash
curl -s "https://chat.seudominio.com/api/v1/accounts/1/pipeline_cards?status=open&pipeline_id=1" \
  -H "api_access_token: YOUR_TOKEN" | jq .
200Lista de cards
json
{
  "data": [
    {
      "id": 1,
      "title": "Contrato Empresa XYZ",
      "value": 15000.00,
      "currency": "BRL",
      "status": "open",
      "stage": { "id": 2, "name": "Qualificacao" },
      "pipeline": { "id": 1, "name": "Vendas B2B" },
      "contact": { "id": 10, "name": "Joao Silva" },
      "owner": { "id": 5, "name": "Maria Santos" },
      "lead_score": 78,
      "expected_close_date": "2026-03-15",
      "created_at": "2026-01-10T10:00:00Z"
    }
  ],
  "meta": { "total": 42, "page": 1 }
}
POST/api/v1/accounts/{account_id}/pipeline_cards

Cria um novo card (deal) no pipeline.

Como obter o pipeline_stage

O campo pipeline_stage e uma string no formato {pipeline_id}_{slug} (ex: "1_prospeccao"). Use GET /pipelines/{id}/stages para listar os IDs reais dos estagios do seu pipeline antes de criar cards.

Body

NomeTipoObrigatorioDescricao
titlestringSimTitulo do deal
pipeline_idintegerSimID do pipeline
pipeline_stagestringSimID do estagio no formato "{pipeline_id}_{slug}" (ex: "1_prospeccao"). Obtenha via GET /pipelines/{id}/stages
contact_idintegerNaoID do contato associado
conversation_display_idintegerNaoDisplay ID da conversa associada
owner_idintegerNaoID do responsavel
item_details.titlestringNaoTitulo customizado do card
item_details.valuenumberNaoValor do deal
item_details.currencystringNaoMoeda (ex: "BRL")
deadlinestringNaoData prevista de fechamento (ISO 8601)
custom_attributesobjectNaoAtributos personalizados
# Primeiro obtenha os IDs dos estagios:
# curl -s ".../api/v1/accounts/1/pipelines/1/stages" -H "api_access_token: TOKEN"

curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/pipeline_cards" \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "pipeline_id": 1,
    "pipeline_stage": "1_prospeccao",
    "contact_id": 10,
    "owner_id": 5,
    "item_details": {
      "title": "Contrato Empresa XYZ",
      "value": 15000.00,
      "currency": "BRL"
    },
    "deadline": "2026-03-15T00:00:00Z"
  }'
GET/api/v1/accounts/{account_id}/pipeline_cards/{id}

Retorna detalhes completos de um card incluindo timeline e score.

PATCH/api/v1/accounts/{account_id}/pipeline_cards/{id}

Atualiza dados de um card.

Body

NomeTipoObrigatorioDescricao
titlestringNaoTitulo
valuenumberNaoValor
owner_idintegerNaoResponsavel
expected_close_datestringNaoData prevista
custom_attributesobjectNaoAtributos
DELETE/api/v1/accounts/{account_id}/pipeline_cards/{id}

Remove um card (soft delete). Pode ser restaurado via GDPR endpoints.

Mover Card entre Estagios

POST/api/v1/accounts/{account_id}/pipeline_cards/{id}/move_to_stage

Move um card para outro estagio do pipeline.

Body

NomeTipoObrigatorioDescricao
pipeline_stagestringSimIdentificador do estagio destino no formato "{pipeline_id}_{stage_slug}" (ex: "2_qualificao"). Use GET /pipelines/{id}/stages para obter os identificadores disponiveis.
bash
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/pipeline_cards/5/move_to_stage" \
  -H "api_access_token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "pipeline_stage": "1_qualificacao" }'
POST/api/v1/accounts/{account_id}/pipeline_cards/reorder

Reordena cards dentro de um estagio.

Body

NomeTipoObrigatorioDescricao
card_idsarraySimArray de IDs na nova ordem

Status do Deal

POST/api/v1/accounts/{account_id}/pipeline/cards/{id}/deal_status/mark_won

Marca o deal como ganho.

bash
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/pipeline/cards/5/deal_status/mark_won" \
  -H "api_access_token: YOUR_TOKEN"
POST/api/v1/accounts/{account_id}/pipeline/cards/{id}/deal_status/mark_lost

Marca o deal como perdido.

Body

NomeTipoObrigatorioDescricao
lost_reasonstringNaoMotivo da perda
POST/api/v1/accounts/{account_id}/pipeline/cards/{id}/deal_status/reopen

Reabre um deal marcado como ganho ou perdido.

Timeline do Card

GET/api/v1/accounts/{account_id}/pipeline/cards/{id}/timeline

Retorna a timeline de atividades do card.

200Timeline de eventos
json
{
  "data": [
    {
      "type": "stage_change",
      "from_stage": "Prospeccao",
      "to_stage": "Qualificacao",
      "performed_by": "Maria Santos",
      "created_at": "2026-01-15T14:30:00Z"
    },
    {
      "type": "note_added",
      "content": "Cliente demonstrou interesse no plano enterprise",
      "performed_by": "Joao Silva",
      "created_at": "2026-01-14T10:00:00Z"
    }
  ]
}

Anexos do Card

GET/api/v1/accounts/{account_id}/pipeline/cards/{card_id}/attachments

Lista anexos de um card.

POST/api/v1/accounts/{account_id}/pipeline/cards/{card_id}/attachments

Adiciona um anexo ao card.

bash
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/pipeline/cards/5/attachments" \
  -H "api_access_token: YOUR_TOKEN" \
  -F "file=@/path/to/proposta.pdf"
DELETE/api/v1/accounts/{account_id}/pipeline/cards/{card_id}/attachments/{id}

Remove um anexo.

Operacoes em Lote

Em Desenvolvimento

O endpoint de bulk_assign esta em desenvolvimento e pode nao estar disponivel em todas as instalacoes.

POST/api/v1/accounts/{account_id}/pipeline/cards/bulk_assign

Atribui responsavel para varios cards de uma vez.

Body

NomeTipoObrigatorioDescricao
card_idsarraySimIDs dos cards
owner_idintegerSimID do novo responsavel
PATCH/api/v1/accounts/{account_id}/pipeline/cards/{id}/assign

Atribui um responsavel a um card especifico.

Body

NomeTipoObrigatorioDescricao
owner_idintegerSimID do responsavel

Automacoes do Pipeline

Crie workflows automatizados que executam acoes quando cards mudam de estagio, atingem determinado score ou atendem condicoes especificas.

GET/api/v1/accounts/{account_id}/pipeline/automations

Lista todas as automacoes do pipeline.

200Lista de automacoes
json
{
  "data": [
    {
      "id": 1,
      "name": "Notificar ao entrar em Negociacao",
      "trigger": "stage_change",
      "conditions": { "to_stage": "Negociacao" },
      "actions": [{ "type": "send_notification", "to": "owner" }],
      "is_active": true,
      "executions_count": 23
    }
  ]
}
POST/api/v1/accounts/{account_id}/pipeline/automations

Cria uma nova automacao.

Body

NomeTipoObrigatorioDescricao
namestringSimNome da automacao
triggerstringSimstage_change, card_created, score_threshold, etc.
conditionsobjectNaoCondicoes para acionar
actionsarraySimAcoes a executar
PATCH/api/v1/accounts/{account_id}/pipeline/automations/{id}

Atualiza uma automacao.

DELETE/api/v1/accounts/{account_id}/pipeline/automations/{id}

Remove uma automacao.

POST/api/v1/accounts/{account_id}/pipeline/automations/{id}/duplicate

Clona uma automacao existente.

Executar e Testar

POST/api/v1/accounts/{account_id}/pipeline/automations/{id}/execute

Executa manualmente uma automacao.

POST/api/v1/accounts/{account_id}/pipeline/automations/{id}/dry_run

Executa simulacao sem efeito real (teste).

Dry Run

Permite testar a automacao sem executar as acoes reais. Retorna o resultado esperado.

POST/api/v1/accounts/{account_id}/pipeline/automations/{id}/validate

Valida a configuracao da automacao.

GET/api/v1/accounts/{account_id}/pipeline/automations/{id}/executions

Historico de execucoes da automacao.

Estatisticas de Automacao

GET/api/v1/accounts/{account_id}/pipeline/automations/{id}/stats

Metricas de uma automacao especifica.

GET/api/v1/accounts/{account_id}/pipeline/automations/dashboard

Dashboard de todas as automacoes.

GET/api/v1/accounts/{account_id}/pipeline/automations/{id}/audit_logs

Logs de auditoria da automacao.