Passar para o conteúdo principal
Todas as coleçõesCampanhas
Criando uma campanha de WhatsApp via API
Criando uma campanha de WhatsApp via API

Dúvidas sobre como usar a nossa API para disparo de campanhas? Entenda tudo neste artigo.

Hannalee Mota avatar
Escrito por Hannalee Mota
Atualizado há mais de uma semana

Com as APIs de Campanha da OmniChat, é possível criar integrações e gerenciar pacotes de disparos em massa de forma automática e programada.

Criar uma campanha completa leva quatro passos, cada um com seu próprio endpoint:

Neste guia vamos falar um pouco a mais sobre cada um desses passos!


Envio da base de audiência

O primeiro passo é fazer o upload da sua base de audiência. Você pode optar por utilizar Audiência Estática ou Audiência Dinâmica.

Audiência Estática

Este é o arquivo que contêm os números e informações dos seus contatos, a lista que irá receber as mensagens de sua campanha.

Para a API, você deverá informar um arquivo em formato CSV. É necessário que a primeira coluna seja o número de telefone do contato e esteja identificada como fullNumber.

Um exemplo de base é a seguinte:

Com isso, basta enviar sua audiência no endpoint: https://developers.omni.chat/reference/post_audiences

O endpoint irá processar sua audiência e retornar um ID próprio, que pode ser utilizado em qualquer campanha futura.

Audiência Dinâmica

Se você usa integração com o módulo SalesForce ou qualquer outro cliente integrando campanhas na OmniChat, você consegue criar Audiências Dinâmicas através da nossa API.

Para criar uma Audiência Dinâmica, ao contrário da Audiência Estática, o arquivo de audiência não precisa ser informado no payload. Os contatos dessa audiência serão adicionados através do parâmetro tokenDefinitions. A solicitação deve estar no formato application/json.tokenDefinitions

Em /audiences, você ainda pode:

  • List Audiences: As audiências serão retornadas e classificadas por createdAt em ordem decrescente.

  • Get Audience: Recupera os detalhes de uma audiência existente.

  • Update Static Audience: Atualiza a Audiência Estática, permitindo alterar o nome e substituir o arquivo de audiência (.csv) quando o status for ERRO

  • Get Validation File URL: Gera uma URL predefinida para baixar a validação da audiência.

  • Get Contacts: Recupera a audiência do público de uma audiência existente.

  • Save Contacts: Adiciona contatos a uma Audiência Dinâmica (Não é possível adicionar a uma Audiência Estática).


Criação do modelo de mensagem

Essencial para envio de campanhas, você precisa criar um modelo de mensagem.

Essa etapa é tão importante que possui uma API própria: a Message Template API.

Através dela, você pode:

  • Create Message Template: Cria um novo modelo de mensagem.

  • List Message Templates: Os modelos de mensagem serão retornados e classificados por createdAt em ordem decrescente.

  • Update Message Template: Atualiza um modelo de mensagem por seu ID.

  • Get Message Template: Recupera os detalhes de um modelo de mensagem existente por seu ID.

  • Delete Message Template: Exclua um modelo de mensagem existente por seu ID.


Cadastrar sua Campanha

A criação da campanha é muito simples. Basta informar um nome claro, que remeta ao conteúdo da campanha (por exemplo: "Campanha Dia dos Pais") e informar o ID da audiência que deseja utilizar.

Este endpoint irá retornar o ID da campanha criada. É com ele que iremos configurar o disparo e montar nosso agendamento.

Você pode sempre consultar as suas campanhas em https://developers.omni.chat/reference/get_campaigns.

Em Campaigns, você ainda pode:

  • List Campaigns: As campanhas serão retornadas classificadas por createdAt em ordem decrescente.

  • Get Campaign: Recupera os detalhes de uma campanha existente.

  • Update Campaign: Atualiza uma campanha por seu ID. O tipo (type) de campanha deve ser informado: baseada em audience-based (estática) ou recurrent (dinâmica).

  • Finish Campaign: Finaliza uma campanha alterando seu status para FINISHED.

  • Finish Campaign: Exclui uma campanha alterando seu status para ARCHIVED.

  • Test Campaign: Teste uma campanha acionando-a imediatamente para um contato fornecido.


Configurações do canal de saída.

Com seu ID de campanha, vamos configurar como os disparos deverão ser feitos criando um Canal de Saída: https://developers.omni.chat/reference/post_campaigns-campaignid-channels

Você deverá informar o ID da integração do número de saída (o remetente da mensagem). Esse ID está disponível na sua plataforma Omni.

  1. Entre em Integrações > Apps / Chats, e selecione o número que deseja utilizar.

  2. Na aba Configurações, copie o ID informado:

No momento, apenas campanhas via WhatsApp são aceitas pela API de Campanhas, portanto, o campo platform.type será sempre "WAB".

Nessa etapa você também irá informar o seu ID do Modelo de Mensagem e os tokens (as variáveis) utilizados.


Disparos e Agendamento da campanha.

É possível optar por Disparo Imediato ou Agendamento da Campanha. Entenda.

Disparo Imediato

Com o Disparo Imediato, a campanha é enviada imediatamente para os contatos informados. O número máximo de contatos permitidos para envio por solicitação é 50 e o mínimo é 1.

Agendamento de Campanha

Para usar, basta informar o horário que você deseja que os disparos se iniciem.

Tudo feito! No horário agendado, seus contatos receberão as mensagens em poucos minutos.

Em /schedule, você ainda pode:

  • List Schedule: Os agendamentos serão retornados e classificados por scheduleDate em ordem decrescente.

  • Delete Schedule: Cancele todos os agendamentos por campanha.

  • Delete Schedule: Cancelar agendamento por ID.

  • Update Schedule: Somente agendamentos com status SCHEDULED podem ser atualizados.

  • Get Schedule: Recupera os detalhes de um agendamento existente.


Bônus: Acompanhando os resultados!

Após os disparos, confira as estatísticas pela API de Listagem:

Com ela é possível saber quantos contatos havia em sua base, sua taxa de entrega e de leitura!


Esperamos que esse artigo tenha te ajudado a entender melhor nossa API de Campanhas. Caso ainda tenha dúvidas, mande para nós, será um prazer te ajudar! 💛🖤

Respondeu à sua pergunta?