For the complete documentation index, see llms.txt. This page is also available as Markdown.

Guia de Migração: Call4U → SMS Funnel

Este guia é para quem integrava com a API de parceiros do Call4U (https://api.call4u.com.br/parceiros/v1) e passou a operar no SMS Funnel. Para cada endpoint antigo, mostramos o equivalente de hoje, o que muda na requisição e como fica a resposta.

Limite de requisições: 60 por minuto, por conta.


Resumo da troca

Call4U (antigo)
SMS Funnel (novo)

GET /credits

GET /credits

GET /sent-calls?from_date=&to_date=

GET /call4u/sent-calls?start_date=&end_date=

GET /recharges?from_date=&to_date=

GET /recharges?from_date=&to_date=

GET /campaigns?from_date=&to_date=&page=&per_page=

GET /sms/campaigns + GET /sms/campaigns/{id}/sequences

GET /campaigns/{campaignRef}/calls?from_date=&to_date=&page=&per_page=

GET /sms/sequences/{sequence_id}/calls?page=&per_page=

Por que as ligações saem de "sequências"? No SMS Funnel, a ligação disparada quando um lead entra numa lista é uma sequência de voz dentro de uma campanha. A campanha é ligada a uma lista, e cada sequência dela é um passo do fluxo (SMS ou ligação). Por isso a consulta das ligações é feita por sequência, e não mais por "campanha do Call4U".

Fluxo para consultar as ligações

1. GET /sms/campaigns                         → encontra a campanha ligada à sua lista   (campaign_id)
2. GET /sms/campaigns/{campaign_id}/sequences → encontra a sequência com "type": "call"  (sequence_id)
3. GET /sms/sequences/{sequence_id}/calls     → desfecho de cada ligação (paginado)

Os IDs dos passos 1 e 2 não mudam com o tempo: basta buscá-los uma vez e guardar.


Endpoints

GET /credits

Função: Consulta o saldo da conta. Substitui o GET /credits do Call4U. O saldo de ligação fica no bloco call.

Corpo de resposta — 200 OK:

O que mudou: no Call4U a resposta era {"calls": {...}}. Agora vem um bloco por canal, e o de ligação se chama call. Os campos contracted, sent e available têm o mesmo significado.


GET /call4u/sent-calls

Função: Retorna a quantidade de ligações da conta no período. Substitui o GET /sent-calls do Call4U.

Parâmetros de query (opcionais):

Corpo de resposta — 200 OK:

O número considera todas as ligações registradas no período, inclusive as que ainda aguardam discagem. Para saber o desfecho de cada uma, use GET /sms/sequences/{sequence_id}/calls.


GET /recharges

Função: Lista as recargas aprovadas da conta no período. Substitui o GET /recharges do Call4U.

Parâmetros de query (opcionais):

Sem datas, a consulta retorna os últimos 90 dias. O intervalo máximo entre as datas é de 90 dias.

Corpo de resposta — 200 OK:


GET /sms/campaigns

Função: Lista as suas campanhas. É o primeiro passo para encontrar a sequência de voz. Substitui a parte de "listar campanhas" do GET /campaigns do Call4U.

Parâmetros de query (opcionais):

Corpo de resposta — 200 OK:

Use o lead_list_id para identificar qual campanha é a da lista que você alimenta.


GET /sms/campaigns/{campaign_id}/sequences

Função: Lista as sequências (passos) de uma campanha. A sequência de ligação é a que tem "type": "call". Guarde o id dela: é o sequence_id usado na consulta das ligações.

Corpo de resposta — 200 OK:

A resposta é uma lista simples, sem paginação. Uma campanha pode ter mais de uma sequência de voz. Nesse caso, consulte as ligações de cada uma.


GET /sms/sequences/{sequence_id}/calls

Função: Lista as ligações de uma sequência de voz, com o desfecho de cada uma. Substitui o GET /campaigns/{campaignRef}/calls do Call4U.

Parâmetros de query (opcionais):

Corpo de resposta — 200 OK:

Se o sequence_id for de uma sequência de SMS, a resposta é 409 com o código INVALID_SEQUENCE_TYPE.


De → para dos campos da ligação

Call4U (/campaigns/{ref}/calls)

SMS Funnel (/sms/sequences/{id}/calls)

Observação

id

id

Agora é UUID

cliente_nome

name

numero

phone

status

status / status_label

status é um slug fixo. Veja a tabela de desfechos abaixo.

percentual_ouvido ("72.50%")

listened_percentage (72.5)

Agora é número, sem o %

duracao_segundos

call_duration_seconds

tentativa_atual

tries

tentativas_configuradas

max_attempts

data_ligacao

sent_at

data_hora

sent_at

Não há campo separado de data de criação

—

dtmf_response

Novo: tecla digitada

—

pabx_status

Novo: status bruto da central

—

answered_at

Novo: quando o resultado da ligação chegou

campaign_id, campaign_name

—

Use o sequence_id da consulta

Desfechos da ligação

status

status_label

Equivalente no Call4U

waiting

Aguardando

Pendente / Em andamento

no_answer

Recusada / Não Atendida

Não atendida / Recusada

answered_hangup

Atendida e Desligada

Atendida e desconectada (ouviu menos de 95% do áudio)

answered_listened

Escutou até o Fim

Atendida e ouviu até o final (95% ou mais do áudio)

answered_dtmf

Atendida com Digitação

Atendida com digitação

cancelled

Cancelado

Cancelada pelo usuário

error

Erro / Telefone inválido

Número inválido

Estatísticas por campanha: o GET /campaigns do Call4U trazia um bloco statistics (total enviado, atendidas, digitação etc.). No SMS Funnel não há hoje um endpoint com esses totais para ligações de sequência. Para calculá-los, some os status retornados por GET /sms/sequences/{sequence_id}/calls, ou consulte só um desfecho com o filtro ?status=.


Erros

Código HTTP
Quando acontece

401

Token ausente ou inválido

404

Campanha ou sequência não encontrada, ou não pertence à sua conta

409

INVALID_SEQUENCE_TYPE: a sequência consultada não é de ligação

422

Parâmetro inválido (data fora do formato, intervalo acima de 90 dias, campo não aceito)

429

Limite de requisições excedido

Formato do erro nos endpoints /sms/*:

Formato do erro em /recharges:

Last updated