Enviar conteúdo
/contacts/{contact_id}/send_contentEnvia várias mensagens e roda ações no contato, numa chamada só. As mensagens (texto, botões, respostas rápidas, mídia e cartões) e as ações (add_tag, set_field_value, send_flow e as outras) seguem o formato de Mensagens e ações em JSON, e a NexTags converte cada mensagem para o canal do contato. No WhatsApp, messages aceita também mensagens no formato da API do WhatsApp (lista, localização, contatos), com "to": null: a NexTags preenche o número.
No WhatsApp, a mensagem livre só sai até 24 horas depois da última mensagem do contato. Fora dessa janela, use Enviar fluxo com um fluxo que comece com um Modelo de Mensagem aprovado. Veja A janela de 24 horas e, para o Instagram e o Messenger, Mensagens fora da janela.
curl -X POST "https://app.nextagsai.com.br/api/contacts/123456789/send_content" \
-H "X-ACCESS-TOKEN: $NEXTAGS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"message": {
"text": "Oi, Ana! Seu pedido PED-1001 saiu para entrega."
}
},
{
"message": {
"attachment": {
"type": "template",
"payload": {
"template_type": "button",
"text": "Quer falar com a equipe?",
"buttons": [
{
"type": "postback",
"title": "Falar com a equipe",
"payload": "1000001"
}
]
}
}
}
}
],
"actions": [
{
"action": "add_tag",
"tag_name": "cliente-vip"
},
{
"action": "set_field_value",
"field_name": "cidade",
"value": "São Paulo"
}
],
"channel": "whatsapp"
}'
const resposta = await fetch('https://app.nextagsai.com.br/api/contacts/123456789/send_content', {
method: 'POST',
headers: {
'X-ACCESS-TOKEN': process.env.NEXTAGS_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
messages: [
{
message: {
text: 'Oi, Ana! Seu pedido PED-1001 saiu para entrega.',
},
},
{
message: {
attachment: {
type: 'template',
payload: {
template_type: 'button',
text: 'Quer falar com a equipe?',
buttons: [
{
type: 'postback',
title: 'Falar com a equipe',
payload: '1000001',
},
],
},
},
},
},
],
actions: [
{
action: 'add_tag',
tag_name: 'cliente-vip',
},
{
action: 'set_field_value',
field_name: 'cidade',
value: 'São Paulo',
},
],
channel: 'whatsapp',
}),
});
const dados = await resposta.json();
console.log(resposta.status, dados);
import os
import requests
resposta = requests.post(
"https://app.nextagsai.com.br/api/contacts/123456789/send_content",
headers={"X-ACCESS-TOKEN": os.environ["NEXTAGS_API_KEY"]},
json={
"messages": [
{
"message": {
"text": "Oi, Ana! Seu pedido PED-1001 saiu para entrega.",
},
},
{
"message": {
"attachment": {
"type": "template",
"payload": {
"template_type": "button",
"text": "Quer falar com a equipe?",
"buttons": [
{
"type": "postback",
"title": "Falar com a equipe",
"payload": "1000001",
},
],
},
},
},
},
],
"actions": [
{
"action": "add_tag",
"tag_name": "cliente-vip",
},
{
"action": "set_field_value",
"field_name": "cidade",
"value": "São Paulo",
},
],
"channel": "whatsapp",
},
timeout=30,
)
print(resposta.status_code, resposta.json())
<?php
$ch = curl_init('https://app.nextagsai.com.br/api/contacts/123456789/send_content');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'X-ACCESS-TOKEN: ' . getenv('NEXTAGS_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'messages' => [
[
'message' => [
'text' => 'Oi, Ana! Seu pedido PED-1001 saiu para entrega.',
],
],
[
'message' => [
'attachment' => [
'type' => 'template',
'payload' => [
'template_type' => 'button',
'text' => 'Quer falar com a equipe?',
'buttons' => [
[
'type' => 'postback',
'title' => 'Falar com a equipe',
'payload' => '1000001',
],
],
],
],
],
],
],
'actions' => [
[
'action' => 'add_tag',
'tag_name' => 'cliente-vip',
],
[
'action' => 'set_field_value',
'field_name' => 'cidade',
'value' => 'São Paulo',
],
],
'channel' => 'whatsapp',
]),
]);
$dados = json_decode(curl_exec($ch), true);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), PHP_EOL;
print_r($dados);
Autenticação
Mande a chave de API da conta no cabeçalho X-ACCESS-TOKEN de cada chamada. Veja Autenticação com a chave de API.
Parâmetros de caminho
contact_idintegerobrigatórioO ID do contato que recebe.
Corpo da requisição
JSONContent-Type: application/json
messagesarray de objeto MensagemAs mensagens, na ordem de envio.
actionsarray de objeto AçãoAs ações para rodar no contato, na ordem da lista.
actions[].actionstringobrigatórioValores: add_tag remove_tag set_field_value unset_field_value send_flow transfer_conversation_to assign_conversation unassign_conversation
actions[].tag_namestringO nome da etiqueta (add_tag, remove_tag).
actions[].field_namestringO nome do campo (set_field_value, unset_field_value).
actions[].valuestringO valor do campo (set_field_value) ou human/bot (transfer_conversation_to).
actions[].flow_idinteger ou stringO ID do fluxo (send_flow).
actions[].admin_idinteger ou stringO ID do administrador (assign_conversation).
channelstringPor qual canal as mensagens saem.
Valores: messenger whatsapp telegram instagram
Respostas
O envio foi aceito.
A chave de API não veio no cabeçalho ou não vale (foi excluída ou está incompleta). Veja Autenticação.
Relacionados
Visão geral da API
Guia que usa este endpointCampos personalizados, campos do bot e variáveis
Guia que usa este endpointMensagens e ações em JSON
Guia que usa este endpointCriar ou atualizar um contato
Guia que usa este endpointEnviar fluxo
POST /contacts/{contact_id}/send/{flow_id}Enviar texto
POST /contacts/{contact_id}/send/textEste conteúdo ajudou?
Obrigado! Sua resposta ajuda a melhorar a central.