Skip to main content
Use esta função para enviar templates em massa para seus clientes. A API cuidará da entrega aos destinatários a partir de um arquivo baseado em colunas. O envio de templates em massa permite que você envie um template predefinido com valores diferentes relacionados a cada cliente, para que você possa selecionar informações dinâmicas de uma fonte como um arquivo, para automatizar e enviar sua campanha facilmente.

Diretrizes do template

O arquivo de origem deve ser criado seguindo estas especificações:

Formato do arquivo

Apenas arquivos com a extensão .CSV são suportados.

Cabeçalho

A primeira linha do arquivo deve definir os nomes das colunas (cabeçalho). Siga estas regras para o cabeçalho:
  • Evite espaços em branco nos nomes das colunas.
  • Não use caracteres especiais ou marcas de pontuação (ex.: !, $, %, &, *, etc.).
  • Use apenas letras, números e underscores (_) se necessário.
Correto: phone_number, customer_name, order_amount Incorreto: phone number, customer-name!, order#amount

Primeira coluna

A primeira coluna deve conter o identificador de cada destinatário: um número de telefone ou um BSUID. Para números de telefone, é obrigatório incluir o código internacional sem o símbolo + (por exemplo, para um número no Equador, escreva PHONE_NUMBER).
Não é possível usar BSUID para enviar plantillas da categoria AUTHENTICATION (OTP); esse destinatário deve ser enviado como número de telefone. Se uma linha com BSUID apontar para uma plantilla AUTHENTICATION, essa linha é omitida do envio sem afetar o restante do arquivo.

Colunas restantes

As outras colunas serão usadas para os valores dinâmicos dos parâmetros (personalização do template).

Exemplo

Se o seu template contém o seguinte conteúdo:
O arquivo CSV seria:
O arquivo CSV deve ser codificado em UTF-8.

Enviar HSM a partir de arquivo


Opções de upload de arquivo

Há duas formas de fornecer o arquivo CSV com informações dos destinatários:
  1. Usando uma URL pública: Você pode fornecer a URL para o arquivo CSV que está disponível publicamente. Neste caso, o corpo da requisição deve estar no formato JSON.
  2. Fazendo upload do arquivo: Alternativamente, você pode anexar o arquivo CSV diretamente à requisição. Neste caso, o corpo da requisição deve estar no formato multipart/form-data.

Parâmetros do corpo


Exemplos de requisição

Por método de envio do arquivo

Por tipo de template

Cada exemplo usa um arquivo CSV publicado em fileUrl cujas colunas correspondem às indicadas em params.
Template: Olá {{1}}, seu pedido {{2}} já está a caminho.
Cada card define seu próprio recurso de mídia em mediaUrl e seus botões em buttonParameters. O campo cardIndex indica a qual card cada botão pertence, começando em 0.

Por cenário

Estes exemplos mostram o corpo JSON da requisição. Envie-o ao mesmo endpoint com o cabeçalho Content-Type: application/json.
Cada botão com payload.type igual a edge leva o destinatário ao workflow indicado em skillId. O texto de action deve corresponder ao texto do botão no template.
O sufixo da URL é obtido da coluna do CSV indicada em payload.param. Por exemplo, se o template define a URL https://solicitacoes.example.com/{{1}}, cada destinatário recebe seu próprio link.
Para templates com uma variável no cabeçalho de texto, indique a coluna do CSV em headerParameters.
Com actions.setSkill, a resposta do destinatário é direcionada ao workflow indicado.
Use {nome_coluna} como valor para obter o dado dessa coluna do CSV. setMemoryParams salva os valores na memória do usuário, e crmParams os salva nos campos do CRM.
Com date, você agenda a campanha para uma data e hora em UTC.

Respostas do envio


Estrutura de params

Cada elemento no array params é um objeto que contém:
  • param: Número do parâmetro no template (1, 2, 3…).
  • column: Nome da coluna no arquivo CSV da qual os valores serão extraídos.
headerParameters usa a mesma estrutura, mas aceita apenas um elemento.

Estrutura de buttonParameters

Cada elemento do array configura um botão do template. Resposta rápida (QUICK_REPLY):
  • payload.type: Destino do botão. edge ativa um workflow e flow ativa um flow.
  • payload.action: Texto do botão. Deve corresponder ao texto definido no template.
  • payload.skillId: ID do workflow ativado. Obrigatório quando payload.type é edge.
  • payload.flowId: ID do flow ativado. Obrigatório quando payload.type é flow.
  • payload.cardIndex: Posição do card ao qual o botão pertence, começando em 0. Somente para carrosséis.
Para obter o skillId de um workflow, passe o cursor sobre o nome do workflow no Brain Studio. Um tooltip será exibido com o ID correspondente.
URL dinâmica (URL):
  • param: Número do parâmetro da URL no template.
  • payload.param: Coluna do CSV com o valor que completa a URL.

Estrutura de cards

Cada card do carrossel é um objeto com:
  • mediaUrl: URL pública da imagem ou do vídeo do card.
  • params: Parâmetros do corpo do card, com a mesma estrutura de params. Use um array vazio se o card não tiver parâmetros.
  • buttonParameters: Botões do card. Cada payload deve incluir cardIndex.

Estrutura de actions