Você pode testar esta rota diretamente em nossa documentação interativa.

A IA recebe as instruções e os dados de cada destinatário para gerar automaticamente os parâmetros do template. Se a geração de parâmetros falhar, o sistema envia uma mensagem livre no lugar.

Endpoint

POST /api/externalAPIs/public/externalNotificationAITemplate

Parâmetros

generalInstructions
string
required

Instruções para a IA sobre como gerar os parâmetros do template a partir dos dados de cada destinatário.

template
string
required

Nome do template pré-aprovado da Meta a ser utilizado.

data
array
required

Array de objetos com informações dos destinatários para contextualização.

externalCampaignId
string

Identificador de campanha externa para rastreio. Se não fornecido, gerado automaticamente com prefixo external-ai-template-{template}.

pauseConversation
boolean
default: "false"

Define se a conversa será pausada após o disparo (a IA não responderá caso o usuário retorne).

dialogueInserts
string

Instruções para serem inseridas na conversa após o disparo.

expireAt
string

Data de expiração da campanha no formato YYYY-MM-DD. Opcional.

O body pode ser enviado em formatos alternativos: array de itens ou objeto com chaves numéricas, além do formato padrão { generalInstructions, template, data: [...], ... }.

Exemplo

curl -X POST {{BASE_URL}}/api/externalAPIs/public/externalNotificationAITemplate \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "generalInstructions": "Gerar saudação personalizada mencionando o veículo do cliente para o template de boas-vindas.",
    "template": "welcome_vehicle",
    "externalCampaignId": "campanha-boas-vindas-01",
    "pauseConversation": false,
    "data": [
      {
        "phone": "5531999999991",
        "name": "João Silva",
        "email": "joao@email.com",
        "veiculo": "Sedan Luxo"
      },
      {
        "phone": "5531999999992",
        "name": "Maria Santos",
        "email": "maria@email.com",
        "veiculo": "SUV Compacto"
      }
    ]
  }'

Resposta

{
  "code": 200,
  "message": "OK",
  "data": {
    "trackingId": "campaign-uuid-123",
    "timestamp": "2024-01-15T10:30:00.000Z",
    "results": [
      {
        "status": "queued",
        "phone": "5531999999991",
        "campaignId": "campaign-uuid-123",
        "message": "Mensagem enviada para processamento"
      }
    ],
    "summary": {
      "totalItems": 2,
      "validItems": 2,
      "skippedItems": 0,
      "queuedItems": 2,
      "failedItems": 0
    },
    "processedItems": [
      {
        "originalData": { "phone": "5531999999991", "name": "João Silva", "email": "joao@email.com", "veiculo": "Sedan Luxo" },
        "processedData": { "phone": "5531999999991", "name": "João Silva", "email": "joao@email.com", "veiculo": "Sedan Luxo" },
        "status": "queued",
        "phone": "5531999999991",
        "campaignId": "campaign-uuid-123",
        "message": "Mensagem enviada para processamento"
      }
    ],
    "error": null,
    "time": 512,
    "message": "2 mensagens foram enviadas para processamento em fila. O processamento ocorrerá em segundo plano e as notificações serão enviadas conforme forem processadas."
  }
}

Campos da Resposta

code
number
Código HTTP da resposta.
message
string
Mensagem de status (ex.: “OK”).
data.trackingId
string

ID da campanha criada para acompanhamento do lote.

data.timestamp
string

Data e hora do processamento em ISO 8601.

data.results
array

Resultado do processamento por destinatário.

data.summary
object

Totais do processamento.

data.processedItems
array

Detalhe por item processado.

data.error
any
Erro, se houver; caso contrário null.
data.time
number
Tempo de processamento em milissegundos.
data.message
string
Mensagem informativa sobre quantas mensagens foram enviadas para processamento em fila.

Se o nome do template não existir para o WABA associado, a API retorna erro 400 com mensagem “Template not found.”

As mensagens são processadas em segundo plano. O status "queued" indica que a mensagem foi aceita para processamento.

Erros

CódigoDescrição
400generalInstructions, template ou data ausentes, vazios ou template não encontrado para o WABA
401Token inválido ou ausente
403Credenciais insuficientes
408Timeout — requisição excedeu 60 segundos
500Erro interno do servidor