Migrar dos endpoints antigos

De/para entre `/api/integrations/*` e a API v1 — e por que não há pressa.

Se você já tem automações rodando com /api/integrations/*, elas continuam funcionando. Não há prazo de validade, e não vamos desligá-las: sabemos que o segredo está colado dentro de fluxos em produção.

O v1 existe porque a superfície antiga cresceu por demanda e ficou sem regra — três formas de identificar um contato, nenhum jeito de corrigir um cadastro, e idempotência em um endpoint só. Migre quando for mexer no fluxo de qualquer jeito.

De/para

antigonovoo que muda
GET /integrations/contacts?phone=GET /v1/contacts/:id ou GET /v1/contacts?phone=aceita contact_id; lista com filtros
POST /integrations/contactsPOST /v1/contactsnão cria mais card — use POST /v1/cards
GET /integrations/pipelinesGET /v1/pipelinesigual, mais meta_capi_event por etapa
GET /integrations/productsGET /v1/productspaginado de verdade (o antigo cortava em 500 sem avisar)
POST /integrations/salesPOST /v1/salesaceita contact_id; erro estruturado
POST /integrations/sendPOST /v1/conversations/:id/messagesvira sub-recurso; ganha Idempotency-Key
POST /integrations/conversations/aiPATCH /v1/conversations/:idjunta IA, status e responsável no mesmo verbo
POST /v1/cardsnovo: cria o lead na etapa que você escolher
PATCH /v1/contacts/:idnovo: corrigir cadastro
/v1/tasks, /v1/notes, /v1/tags, /v1/companiesnovos

As três diferenças que exigem atenção

1. O formato do erro mudou. Antes:

{ "ok": false, "error": "Contato não encontrado." }

Agora:

{ "ok": false, "error": { "code": "not_found", "message": "Contato não encontrado nesta conta." } }

Se o seu fluxo lê error como texto, ele passa a receber um objeto. Programe contra error.code.

2. POST /v1/contacts não cria card. O antigo criava por padrão (create_funnel_card: true), sempre na etapa de entrada. Se o seu fluxo dependia disso, acrescente uma chamada a POST /v1/cards — e aproveite para escolher a etapa certa em vez da entrada.

3. A chave. O v1 aceita o segredo antigo, mas o recomendado é criar uma chave por integração em Configurações → Integrações. Com chaves separadas, revogar uma não derruba as outras.

Dá para usar os dois ao mesmo tempo?

Dá. O mesmo segredo antigo autentica nas duas superfícies, e a chave nova também. Migre endpoint por endpoint, sem janela de parada.

Veja também