Skip to main content
A Campaigns API permite gerenciar programaticamente o público e a entrega de mensagens de campanhas evergreen (contínuas) no seu workspace BluBash. Você pode adicionar contatos individualmente ou em massa com agendamento por contato, cancelar mensagens em fila antes de serem enviadas e inspecionar o status das mensagens em qualquer ponto do ciclo de entrega.
O recurso de Campanhas precisa estar habilitado na assinatura do seu workspace para usar os endpoints de escrita. Endpoints de leitura (listar e obter mensagens) podem funcionar mesmo sem o recurso habilitado. Se você tentar uma operação de escrita sem o recurso, receberá uma resposta 403 Forbidden.

URL base

Autenticação

Todas as requisições exigem sua Workspace API Key no cabeçalho X-API-Key.
Para obter sua chave de API, vá até Configurações → API Keys no painel de administração do seu workspace.

Pré-requisitos

As campanhas evergreen precisam ser criadas e configuradas na plataforma BluBash antes de você usar essa API. A API cobre apenas a ingestão de público e o disparo de mensagens.
1

Crie uma campanha evergreen na plataforma

No painel de administração do BluBash, crie uma nova campanha com kind = EVERGREEN.
2

Configure canal, mensagem e limites de taxa

Configure o canal, o template de mensagem e as regras de rate limit da campanha.
3

Copie o campaignId

Salve a campanha e copie o campaignId mostrado na plataforma. Você usará esse ID em todas as chamadas de API abaixo.

Adicionar contatos ao público

Adiciona um ou mais contatos a uma campanha e define o agendamento de envio por contato. Cada entrada no array items representa um contato e sua configuração de agendamento.
Para adicionar um único contato, envie o array items com um único elemento — o endpoint é o mesmo para operações individuais e em lote.

Corpo da requisição

string
Um nome de fuso horário IANA (por exemplo, America/New_York) aplicado a todos os itens cujo datetime não tem offset UTC e nenhum schedule.timezone foi especificado.
array
obrigatório
Um array de objetos de contato + agendamento. Pelo menos um item é obrigatório.

Resolução de contato

Quando você fornece identifier em vez de contact_id, a plataforma resolve o contato nesta ordem:
  1. Procura o contato pelo identificador do canal (por exemplo, número de WhatsApp normalizado).
  2. Se não encontrar e email for fornecido, busca por e-mail (sem diferenciar maiúsculas e minúsculas).
    • Se encontrar sem identificador de canal, vincula o identifier ao contato.
    • Se encontrar com um identificador de canal diferente, retorna um erro 400 para evitar fusão silenciosa de identidades.
  3. Se ainda não encontrar, cria um novo contato usando name, email e identifier.

Regras de agendamento

Se datetime não tem offset UTC e nenhum fuso horário foi fornecido (em schedule.timezone ou default_schedule_timezone), a requisição retorna um erro 400.

Exemplo de requisição

Campos da resposta

array
obrigatório
Uma entrada por item de entrada, na mesma ordem da requisição.

Exemplo de resposta


Cancelar uma mensagem em fila

Cancela a entrega de uma mensagem específica de campanha que ainda está na fila. Cancelar uma mensagem não afeta nenhuma outra mensagem da campanha.
Apenas mensagens com status QUEUED podem ser canceladas. Mensagens que já estão SENDING, SENT ou FAILED não podem ser canceladas.

Resposta


Listar mensagens da campanha

Retorna uma lista paginada de mensagens da campanha, cada uma com seu status atual.

Parâmetros de query

number
padrão:"50"
Número de resultados a retornar por página.
number
padrão:"0"
Número de resultados a pular para paginação.

Obter uma mensagem específica

Retorna os detalhes e o status atual de uma única mensagem da campanha.

Status das mensagens


Fluxo recomendado

1

Configure a campanha na plataforma

Crie uma campanha evergreen no painel de administração do BluBash e copie o campaignId.
2

Adicione contatos ao público

Chame POST /api/v1/campaigns/:campaignId/audience com seu array items.
3

Escolha um agendamento por contato

Use schedule.type = immediate para entrega instantânea, ou schedule.type = absolute com um datetime para entrega agendada.
4

Cancele se necessário

Se você precisar parar uma mensagem em fila, chame POST /api/v1/campaigns/:campaignId/messages/:messageId/cancel.
5

Monitore o status das mensagens

Use GET /api/v1/campaigns/:campaignId/messages para inspecionar o status de entrega ao longo da campanha.

Exemplos de código


Referência de erros