CRM
Funil, cards e etapas
POST/api/crm/cards
Criar card manualmente
Escopo exigido: crm.cards.write
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
pipelineId | string | sim | — |
stageId | string | sim | — |
title | string | sim | min 1, max 200 |
value | number | null | não | — |
contactPhone | string | não | max 30 |
contactName | string | null | não | — |
conversationId | stringnull | não | — |
leadId | stringnull | não | — |
curl -X POST "https://api.zapyflow.com.br/api/crm/cards" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
201— Criado403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace422— Entendido, mas recusado por uma regra
PATCH/api/crm/cards/{id}
Editar card
Escopo exigido: crm.cards.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
title | string | não | min 1, max 200 |
value | number | null | não | — |
contactName | string | null | não | — |
curl -X PATCH "https://api.zapyflow.com.br/api/crm/cards/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
200— OK400— Requisição malformada403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
DELETE/api/crm/cards/{id}
Excluir card (a linha do tempo preserva o histórico)
Escopo exigido: crm.cards.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl -X DELETE "https://api.zapyflow.com.br/api/crm/cards/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
204— Sem conteúdo403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
POST/api/crm/cards/{id}/comments
Comentar no card (vai para a linha do tempo de eventos)
Escopo exigido: crm.cards.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
body | string | sim | min 1, max 1000 |
curl -X POST "https://api.zapyflow.com.br/api/crm/cards/{id}/comments" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
201— Criado403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
POST/api/crm/cards/{id}/move
Mover card entre etapas ou reordenar dentro da etapa
Escopo exigido: crm.cards.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
toStageId | string | sim | — |
beforeCardId | stringnull | não | — |
afterCardId | stringnull | não | — |
curl -X POST "https://api.zapyflow.com.br/api/crm/cards/{id}/move" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
200— OK400— Requisição malformada403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
GET/api/crm/events
Linha do tempo de eventos do funil (agrupamento por dia no cliente)
Escopo exigido: crm.read
| Parâmetro | Onde | Obrigatório |
|---|---|---|
pipelineId | query | sim |
filter | query | não |
page | query | não |
limit | query | não |
curl "https://api.zapyflow.com.br/api/crm/events?pipelineId=..." \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
GET/api/crm/pipelines
Listar pipelines do CRM (cria o pipeline padrão na primeira chamada)
Escopo exigido: crm.read
curl "https://api.zapyflow.com.br/api/crm/pipelines" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK403— Proibido, ou a chave não tem este escopo
POST/api/crm/pipelines
Criar pipeline
Escopo exigido: crm.structure.write
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
name | string | sim | min 1, max 100 |
curl -X POST "https://api.zapyflow.com.br/api/crm/pipelines" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
201— Criado403— Proibido, ou a chave não tem este escopo422— Entendido, mas recusado por uma regra
PATCH/api/crm/pipelines/{id}
Renomear pipeline
Escopo exigido: crm.structure.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
name | string | sim | min 1, max 100 |
curl -X PATCH "https://api.zapyflow.com.br/api/crm/pipelines/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
200— OK403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
DELETE/api/crm/pipelines/{id}
Excluir pipeline (o padrão não pode ser excluído)
Escopo exigido: crm.structure.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl -X DELETE "https://api.zapyflow.com.br/api/crm/pipelines/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
204— Sem conteúdo400— Requisição malformada403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
GET/api/crm/pipelines/{id}/board
Board do pipeline: etapas ordenadas com cards, contagem e soma
Escopo exigido: crm.read
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
curl "https://api.zapyflow.com.br/api/crm/pipelines/{id}/board" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
GET/api/crm/reports
Relatórios do funil: KPIs, funil, vendas semanais, origem, ciclo
Escopo exigido: analytics.read
| Parâmetro | Onde | Obrigatório |
|---|---|---|
pipelineId | query | sim |
from | query | não |
to | query | não |
curl "https://api.zapyflow.com.br/api/crm/reports?pipelineId=..." \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
POST/api/crm/stages
Criar etapa no pipeline
Escopo exigido: crm.structure.write
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
pipelineId | string | sim | — |
name | string | sim | min 1, max 60 |
color | string | sim | — |
curl -X POST "https://api.zapyflow.com.br/api/crm/stages" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
201— Criado403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace422— Entendido, mas recusado por uma regra
PATCH/api/crm/stages/{id}
Editar etapa
Escopo exigido: crm.structure.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
id | path | sim |
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
name | string | não | min 1, max 60 |
color | string | não | — |
curl -X PATCH "https://api.zapyflow.com.br/api/crm/stages/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
200— OK403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
DELETE/api/crm/stages/{id}
Excluir etapa (vazia, ou movendo os cards para moveCardsTo)
Escopo exigido: crm.structure.write
| Parâmetro | Onde | Obrigatório |
|---|---|---|
moveCardsTo | query | não |
id | path | sim |
curl -X DELETE "https://api.zapyflow.com.br/api/crm/stages/{id}" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
204— Sem conteúdo400— Requisição malformada403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
GET/api/crm/stages/{id}/cards
Página de cards de uma etapa (scroll infinito do board)
Escopo exigido: crm.read
| Parâmetro | Onde | Obrigatório |
|---|---|---|
offset | query | não |
limit | query | não |
id | path | sim |
curl "https://api.zapyflow.com.br/api/crm/stages/{id}/cards" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY"Respostas
200— OK403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace
POST/api/crm/stages/reorder
Reordenar etapas do pipeline
Escopo exigido: crm.structure.write
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições |
|---|---|---|---|
pipelineId | string | sim | — |
stageIds | string[] | sim | ≥ 1 items |
curl -X POST "https://api.zapyflow.com.br/api/crm/stages/reorder" \
-H "Authorization: Bearer $ZAPYFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
204— Sem conteúdo400— Requisição malformada403— Proibido, ou a chave não tem este escopo404— Não encontrado — também é a resposta quando o recurso é de outro workspace