messaging.campaigns, que identifica um projeto pelo slug dele.
Gerencie públicos, configurações de opt-out e edições de rascunho no cliente de
equipe.
Uma campanha envia a partir de Números cujo plano inclui Campanhas. Quando
nenhum dos Números elegíveis se qualifica, a criação ou o lançamento falha com
402 campaigns_not_entitled. Veja
Envie uma campanha.
Construa (build) um público
Um público é uma lista reutilizável de destinatários. Públicos usam um cliente de equipe:create aceita até 1.000 membros. Adicione mais com
audiences.addMembers(audienceId, { members }). Linhas inválidas aparecem em
invalidRows em vez de fazer a solicitação falhar. Percorra os membros página
por página com audiences.listMembers(audienceId, { cursor }).
Crie uma campanha
recipients, um público em
recipientListId, ou os dois. A campanha começa como rascunho.
variableMapping preenche cada {{variable}} do conteúdo com um campo do
destinatário, com um valor de fallback para destinatários que não têm valor:
sendWindow limita quando as mensagens saem. Destinatários fora da janela
ficam na fila até ela abrir de novo. timeZone usa por padrão o fuso horário
da equipe, ou UTC. Defina recipientTimeZone: true para usar o fuso horário de
cada destinatário. Omita sendWindow para enviar a qualquer hora.
Adicione destinatários
Lance, pause, retome e pare
scheduledAt para começar agora. Um lançamento recusa, com
422 campaign_variables_missing, destinatários que não têm valor nem fallback
para uma variável; passe skipMissingVariables: true para ignorá-los. Cada
chamada retorna assim que a mudança é aceita; o envio continua em segundo plano
como uma operação. Uma
parada que cancela a campanha na hora retorna operationId: null, então
verifique isso antes de aguardar.
Esses quatro métodos criam uma chave de idempotência quando você não passa uma.
Se uma resposta se perder, leia a campanha antes de tentar novamente.
Mude o horário de uma campanha lançada que ainda não começou a enviar, ou
inicie-a agora:
scheduledAt: null inicia a campanha agora. reschedule envia uma chave de
idempotência e faz uma única tentativa, a menos que você defina
maxNetworkRetries.
Acompanhe a entrega
campaign.launched,
campaign.paused, campaign.resumed e campaign.stopped. Veja
Eventos de campanha.
A primeira entrega, a primeira leitura e a primeira resposta de um destinatário
que recebeu o envio chegam como campaign.recipient_delivered,
campaign.recipient_read e campaign.recipient_replied. Esses eventos trazem
metadados de tempo, não o conteúdo da resposta, e exigem a inscrição da equipe
no beta. A versão 0.1.0-dev.20261004041625 do SDK os tipa como
CampaignRecipientDeliveredPayload, CampaignRecipientReadPayload e
CampaignRecipientRepliedPayload. Em versões anteriores, leia os
campos documentados de event.payload.
As solicitações de criação e atualização de campanhas aceitam
links rastreados em trackedLinks, e
CampaignRecipientLinkOpenedPayload tipa campaign.recipient_link_opened. O
relatório de aberturas de links ainda não tem método no SDK; chame a API para
obtê-lo.
Baixe os destinatários em CSV, uma página por vez:
messagesSent, nextMessageAt e sequenceError.
Envie de novo para os destinatários que falharam com
messaging.campaigns.requeue("<project-slug>", campaignId). Passe
{ includeSkippedError: true } para também recolocar na fila os destinatários
ignorados com erro.
Altere um rascunho
Altere um rascunho commessaging.campaigns.update(projectSlug, campaignId, body),
ou altere o público ou a janela de envio dele com o cliente de equipe:
sendWindow: null remove a janela. O público e o agendamento só podem mudar
antes do lançamento. A janela de envio pode mudar enquanto a campanha é um
rascunho ou está pausada.
Gerencie palavras-chave de opt-out
Quando a captura de palavras-chave está ativada, um contato que responde a uma mensagem de campanha com uma palavra-chave de opt-out entra na lista de opt-out da equipe, e as campanhas o ignoram. Uma palavra-chave de opt-in o remove de novo.updateSettings substitui os três campos. Os métodos de opt-out precisam de
uma chave da equipe; credenciais de projeto são recusadas. Veja
Opt-outs.
Confirmações opcionais de STOP
Para as confirmações opcionais de STOP, useoptOuts.getConfirmationSettings, optOuts.updateConfirmationSettings e
optOuts.getConfirmationSummary, disponíveis a partir da versão
0.1.0-dev.20261005233122 do SDK. Esses métodos do cliente da organização
preservam o envelope da API em response.data.data. Use o teamId e a
revision retornados ao gravar uma preferência e escolha en, pt-BR ou es
antes de ativar. Uma revisão desatualizada exige uma nova leitura. Nunca tente
novamente de forma automática um salvamento de preferência incerto; leia a
preferência salva para confirmar o resultado. O acesso ao beta e a ativação
pelo cliente continuam separados.