Skip to main content

Envios em massa

Os endpoints de bulks não criam templates em lote. Eles enviam um template já existente para vários destinatários, a partir de uma planilha CSV. Para criar templates, use a API de Templates.
Um envio em massa (campanha) associa um template do workspace, um número ativo e um arquivo CSV. Depois que você mapeia as colunas do CSV para os parâmetros do template, a Positus envia as mensagens uma a uma, e você pode pausar, retomar ou cancelar a campanha.

Autenticação e escopo

As rotas usam o mesmo escopo e a mesma autenticação da API de Templates:

Fluxo de uso

  1. Crie o envio em massa enviando o CSV (POST /bulks). O envio fica no status 1, aguardando confirmação de dados.
  2. Informe o mapeamento das colunas (PUT /bulks/{bulk}/header-mapping). A Positus importa as linhas do CSV e inicia o processamento.
  3. Acompanhe o andamento (GET /bulks) e, se necessário, pause, retome ou cancele.

Status do envio

O envio é considerado Falhou (8) quando ocorre um erro na importação do CSV ou quando o workspace está banido. Cada linha do CSV também tem seu próprio resultado (pendente, sucesso ou falha), refletido nos contadores processed_items_count e failed_items_count.

Listar envios em massa

Retorna todos os envios em massa do workspace, do mais recente para o mais antigo, com os contadores de itens. Não há paginação nem filtros.

Criar envio em massa

Se o template ou o número não forem encontrados no workspace, a API responde 404. Resposta — 200 OK. A primeira linha do CSV é lida e retornada em headers, para você montar o mapeamento:
A resposta acima está abreviada. O objeto de envio também traz mapping, user, report (relatório gerado) e as datas started_at, finished_at e canceled_at, que só aparecem quando definidas. Os contadores aparecem zerados nas respostas de criação e de mapeamento.

Mapear colunas

Define quais colunas do CSV preenchem o número do destinatário e os parâmetros do template. Só é possível enquanto o envio está no status 1; caso contrário, a API responde 403.
Para o header, a precedência é: header_variable (header de texto), depois header_from_file (arquivo enviado) e, por fim, header (coluna com a URL por linha). Linhas com o telefone vazio são registradas como falha (Contact number was not provided). Após o mapeamento, o envio passa para o status 2 e a importação das linhas é iniciada.

Pausar, retomar e cancelar

As três rotas não recebem corpo e retornam o objeto do envio com os contadores.
Essas rotas não validam o status atual do envio. Confirme o status do envio antes de chamá-las.

Saiba mais