Criar contato
/contactsCria um contato e, na mesma chamada, roda ações nele: etiquetar, preencher campos e enviar um fluxo. O telefone vai completo, com o código do país e o DDD, só com números, como 5511988776655: veja O formato certo do telefone. Para não criar o mesmo contato duas vezes, procure antes pelo telefone ou pelo e-mail em Buscar contato por campo personalizado. Veja Criar ou atualizar um contato.
Se o contato nunca mandou mensagem para a conta, a janela de 24 horas do WhatsApp está fechada: o fluxo da ação send_flow precisa começar com um Modelo de Mensagem aprovado. Veja A janela de 24 horas.
curl -X POST "https://app.nextagsai.com.br/api/contacts" \
-H "X-ACCESS-TOKEN: $NEXTAGS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511988776655",
"email": "ana@exemplo.com.br",
"first_name": "Ana",
"last_name": "Souza",
"gender": "female",
"actions": [
{
"action": "add_tag",
"tag_name": "cliente-vip"
},
{
"action": "set_field_value",
"field_name": "cidade",
"value": "São Paulo"
},
{
"action": "send_flow",
"flow_id": 1000001
}
]
}'
const resposta = await fetch('https://app.nextagsai.com.br/api/contacts', {
method: 'POST',
headers: {
'X-ACCESS-TOKEN': process.env.NEXTAGS_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
phone: '5511988776655',
email: 'ana@exemplo.com.br',
first_name: 'Ana',
last_name: 'Souza',
gender: 'female',
actions: [
{
action: 'add_tag',
tag_name: 'cliente-vip',
},
{
action: 'set_field_value',
field_name: 'cidade',
value: 'São Paulo',
},
{
action: 'send_flow',
flow_id: 1000001,
},
],
}),
});
const dados = await resposta.json();
console.log(resposta.status, dados);
import os
import requests
resposta = requests.post(
"https://app.nextagsai.com.br/api/contacts",
headers={"X-ACCESS-TOKEN": os.environ["NEXTAGS_API_KEY"]},
json={
"phone": "5511988776655",
"email": "ana@exemplo.com.br",
"first_name": "Ana",
"last_name": "Souza",
"gender": "female",
"actions": [
{
"action": "add_tag",
"tag_name": "cliente-vip",
},
{
"action": "set_field_value",
"field_name": "cidade",
"value": "São Paulo",
},
{
"action": "send_flow",
"flow_id": 1000001,
},
],
},
timeout=30,
)
print(resposta.status_code, resposta.json())
<?php
$ch = curl_init('https://app.nextagsai.com.br/api/contacts');
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([
'phone' => '5511988776655',
'email' => 'ana@exemplo.com.br',
'first_name' => 'Ana',
'last_name' => 'Souza',
'gender' => 'female',
'actions' => [
[
'action' => 'add_tag',
'tag_name' => 'cliente-vip',
],
[
'action' => 'set_field_value',
'field_name' => 'cidade',
'value' => 'São Paulo',
],
[
'action' => 'send_flow',
'flow_id' => 1000001,
],
],
]),
]);
$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.
Corpo da requisição
JSONContent-Type: application/json
phonestringobrigatórioO telefone com o código do país (DDI) e o DDD, só com números.
Exemplo: 5511988776655
emailstringO e-mail do contato.
Exemplo: ana@exemplo.com.br
first_namestringO nome.
Exemplo: Ana
last_namestringO sobrenome.
Exemplo: Souza
genderstringO gênero: male (masculino), female (feminino) ou unknown (desconhecido).
Valores: male female unknown
actionsarray de objeto AçãoAções para rodar no contato, na ordem da lista: add_tag, set_field_value, send_flow e as outras de Mensagens e ações em JSON.
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).
Respostas
Deu certo: o contato foi criado.
A chave de API não veio no cabeçalho ou não vale (foi excluída ou está incompleta). Veja Autenticação.
Relacionados
Campos 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 endpointUsar a API no Make, n8n e Zapier
Guia que usa este endpointConsultar contato
GET /contacts/{contact_id}Buscar contato por campo personalizado
GET /contacts/find_by_custom_fieldEste conteúdo ajudou?
Obrigado! Sua resposta ajuda a melhorar a central.