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
/api/v1/accounts/{account_id}/pipelinesLista todos os pipelines da conta.
curl -s "https://chat.seudominio.com/api/v1/accounts/1/pipelines" \
-H "api_access_token: YOUR_TOKEN" | jq .{
"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"
}
]
}/api/v1/accounts/{account_id}/pipelinesCria 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
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
pipeline.name | string | Sim | Nome do pipeline |
pipeline.description | string | Nao | Descricao |
pipeline.stages | object | Sim | Objeto com estagios. Chaves sao IDs temporarios (string). Apos criacao os IDs sao normalizados para {pipeline_id}_{slug} |
pipeline.stages.{key}.name | string | Sim | Nome do estagio |
pipeline.stages.{key}.color | string | Nao | Cor em hex (ex: "#3B82F6") |
pipeline.stages.{key}.position | integer | Nao | Ordem 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.
/api/v1/accounts/{account_id}/pipelines/{id}Atualiza um pipeline.
/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
/api/v1/accounts/{account_id}/pipelines/{pipeline_id}/stagesLista todos os estagios de um pipeline com contagem de cards.
{
"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.
/api/v1/accounts/{account_id}/pipeline_cardsLista cards com filtros avancados.
Parametros
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
pipeline_id(query) | integer | Nao | Filtrar por pipeline |
stage_id(query) | integer | Nao | Filtrar por estagio |
status(query) | string | Nao | open, won, lost |
owner_id(query) | integer | Nao | Filtrar por responsavel |
contact_id(query) | integer | Nao | Filtrar por contato |
page(query) | integer | Nao | Pagina(default: 1) |
curl -s "https://chat.seudominio.com/api/v1/accounts/1/pipeline_cards?status=open&pipeline_id=1" \
-H "api_access_token: YOUR_TOKEN" | jq .{
"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 }
}/api/v1/accounts/{account_id}/pipeline_cardsCria 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
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
title | string | Sim | Titulo do deal |
pipeline_id | integer | Sim | ID do pipeline |
pipeline_stage | string | Sim | ID do estagio no formato "{pipeline_id}_{slug}" (ex: "1_prospeccao"). Obtenha via GET /pipelines/{id}/stages |
contact_id | integer | Nao | ID do contato associado |
conversation_display_id | integer | Nao | Display ID da conversa associada |
owner_id | integer | Nao | ID do responsavel |
item_details.title | string | Nao | Titulo customizado do card |
item_details.value | number | Nao | Valor do deal |
item_details.currency | string | Nao | Moeda (ex: "BRL") |
deadline | string | Nao | Data prevista de fechamento (ISO 8601) |
custom_attributes | object | Nao | Atributos 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"
}'/api/v1/accounts/{account_id}/pipeline_cards/{id}Retorna detalhes completos de um card incluindo timeline e score.
/api/v1/accounts/{account_id}/pipeline_cards/{id}Atualiza dados de um card.
Body
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
title | string | Nao | Titulo |
value | number | Nao | Valor |
owner_id | integer | Nao | Responsavel |
expected_close_date | string | Nao | Data prevista |
custom_attributes | object | Nao | Atributos |
/api/v1/accounts/{account_id}/pipeline_cards/{id}Remove um card (soft delete). Pode ser restaurado via GDPR endpoints.
Mover Card entre Estagios
/api/v1/accounts/{account_id}/pipeline_cards/{id}/move_to_stageMove um card para outro estagio do pipeline.
Body
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
pipeline_stage | string | Sim | Identificador do estagio destino no formato "{pipeline_id}_{stage_slug}" (ex: "2_qualificao"). Use GET /pipelines/{id}/stages para obter os identificadores disponiveis. |
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" }'/api/v1/accounts/{account_id}/pipeline_cards/reorderReordena cards dentro de um estagio.
Body
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
card_ids | array | Sim | Array de IDs na nova ordem |
Status do Deal
/api/v1/accounts/{account_id}/pipeline/cards/{id}/deal_status/mark_wonMarca o deal como ganho.
curl -X POST "https://chat.seudominio.com/api/v1/accounts/1/pipeline/cards/5/deal_status/mark_won" \
-H "api_access_token: YOUR_TOKEN"/api/v1/accounts/{account_id}/pipeline/cards/{id}/deal_status/mark_lostMarca o deal como perdido.
Body
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
lost_reason | string | Nao | Motivo da perda |
/api/v1/accounts/{account_id}/pipeline/cards/{id}/deal_status/reopenReabre um deal marcado como ganho ou perdido.
Timeline do Card
/api/v1/accounts/{account_id}/pipeline/cards/{id}/timelineRetorna a timeline de atividades do card.
{
"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
/api/v1/accounts/{account_id}/pipeline/cards/{card_id}/attachmentsLista anexos de um card.
/api/v1/accounts/{account_id}/pipeline/cards/{card_id}/attachmentsAdiciona um anexo ao card.
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"/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.
/api/v1/accounts/{account_id}/pipeline/cards/bulk_assignAtribui responsavel para varios cards de uma vez.
Body
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
card_ids | array | Sim | IDs dos cards |
owner_id | integer | Sim | ID do novo responsavel |
/api/v1/accounts/{account_id}/pipeline/cards/{id}/assignAtribui um responsavel a um card especifico.
Body
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
owner_id | integer | Sim | ID do responsavel |
Automacoes do Pipeline
Crie workflows automatizados que executam acoes quando cards mudam de estagio, atingem determinado score ou atendem condicoes especificas.
/api/v1/accounts/{account_id}/pipeline/automationsLista todas as automacoes do pipeline.
{
"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
}
]
}/api/v1/accounts/{account_id}/pipeline/automationsCria uma nova automacao.
Body
| Nome | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
name | string | Sim | Nome da automacao |
trigger | string | Sim | stage_change, card_created, score_threshold, etc. |
conditions | object | Nao | Condicoes para acionar |
actions | array | Sim | Acoes a executar |
/api/v1/accounts/{account_id}/pipeline/automations/{id}Atualiza uma automacao.
/api/v1/accounts/{account_id}/pipeline/automations/{id}Remove uma automacao.
/api/v1/accounts/{account_id}/pipeline/automations/{id}/duplicateClona uma automacao existente.
Executar e Testar
/api/v1/accounts/{account_id}/pipeline/automations/{id}/executeExecuta manualmente uma automacao.
/api/v1/accounts/{account_id}/pipeline/automations/{id}/dry_runExecuta simulacao sem efeito real (teste).
Dry Run
Permite testar a automacao sem executar as acoes reais. Retorna o resultado esperado.
/api/v1/accounts/{account_id}/pipeline/automations/{id}/validateValida a configuracao da automacao.
/api/v1/accounts/{account_id}/pipeline/automations/{id}/executionsHistorico de execucoes da automacao.
Estatisticas de Automacao
/api/v1/accounts/{account_id}/pipeline/automations/{id}/statsMetricas de uma automacao especifica.
/api/v1/accounts/{account_id}/pipeline/automations/dashboardDashboard de todas as automacoes.
/api/v1/accounts/{account_id}/pipeline/automations/{id}/audit_logsLogs de auditoria da automacao.