Desenvolvedores

Dispare fluxos da Kobly a partir da sua plataforma.

Liste os números e os fluxos publicados de uma conta e coloque o telefone do cliente no início de um fluxo a cada evento do seu sistema (pagamento aprovado, cadastro, carrinho abandonado…).

https://api.koblay.io/public/v1
Disparar o primeiro fluxoCriar uma chave
POST/flows/{flow_id}/trigger
{
  "phone": "5511987654321",
  "name": "Maria",
  "variables": { "produto": "Curso X" }
}

Como funciona

O cliente da Kobly cria uma chave em Integrações → API pública e cola na sua plataforma. A cada evento, a sua plataforma chama POST /flows/{flow_id}/trigger com o telefone do contato: a Kobly cadastra o contato (se ainda não existir) e coloca ele no início do fluxo, que envia as mensagens pelo número conectado da conta.

ItemValor
URL basehttps://api.koblay.io/public/v1
FormatoJSON em UTF-8, somente HTTPS
TelefoneDDI + DDD + número, só dígitos (ex.: 5511987654321). Número brasileiro sem DDI recebe o 55.

Autenticação

Mande a chave no cabeçalho Authorization: Bearer kbk_... (ou X-Api-Key: kbk_...). A chave dá acesso aos fluxos daquela conta: guarde em segredo, no servidor. Ela aparece uma única vez ao ser criada e pode ser revogada a qualquer momento.

curl https://api.koblay.io/public/v1/me \
  -H "Authorization: Bearer kbk_SUA_CHAVE"

Erros

Toda resposta de erro tem o formato { "error": { "code": "...", "message": "..." } }.

StatusCodeQuando
401invalid_keyChave ausente, errada ou revogada
404flow_not_foundO fluxo não existe nesta conta
409not_startedO contato já está neste fluxo, ou o fluxo não está publicado, ou a automação do contato está pausada
422bad_phone / bad_variablesTelefone ou variáveis inválidas
429rate_limitedPassou do limite de requisições

Limites

Até 120 requisições por minuto por chave. Até 50 variáveis por disparo, cada uma com até 4.096 caracteres.

GET/me — Validar a chave

{ "ok": true, "organization": { "id": "…", "nome": "Loja Exemplo" } }

GET/instances — Listar números

Números de WhatsApp da conta (QR Code e API oficial) e se estão conectados.

{ "instances": [ { "id": "…", "tipo": "qrcode", "nome": "Vendas", "telefone": "5511999990000", "conectado": true } ] }

GET/flows — Listar fluxos

Fluxos publicados da conta. Use o id para disparar.

{ "flows": [ { "id": "8d0c…", "nome": "Pós-venda", "ativo": true } ] }

POST/flows/{flow_id}/trigger — Disparar um fluxo

CampoTipoDescrição
phonetexto · obrigatórioTelefone do contato com DDI
nametextoNome do contato (vira {{nome}} e {{primeiro_nome}})
emailtextoE-mail do contato
variablesobjetoVariáveis usadas nas mensagens do fluxo, ex.: { "produto": "Curso X" } vira {{produto}}. Nomes em minúsculas, números e _.
curl -X POST https://api.koblay.io/public/v1/flows/FLOW_ID/trigger \
  -H "Authorization: Bearer kbk_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{ "phone": "5511987654321", "name": "Maria", "variables": { "produto": "Curso X" } }'

Resposta

{ "ok": true, "lead_id": "…", "flow_id": "…" }

O fluxo precisa estar publicado. O gatilho do fluxo não é conferido: a chamada da API já é o gatilho.