Integrações
O que o agente recolhe não serve de nada preso aqui. Cada marcação, recado, contacto, triagem e passagem para uma pessoa pode ser enviada para um endereço à sua escolha, assim que acontece.
Um endereço, e não trinta ligações prontas — porque a ligação ao seu CRM, à sua agenda, ao seu programa de faturação ou ao software que a sua empresa escreveu é feita por nós, de raiz, à medida do seu sistema. Não usamos serviços de automatização de terceiros. Fale connosco para avaliar a ligação que precisa.
Disponível a partir do plano Pro.
Configurar
Nas definições do agente, Enviar para as suas ferramentas:
- Cole o endereço de destino. Tem de começar por
https://. - Escolha o que enviar — pode enviar só as marcações, por exemplo.
- Carregue em Enviar um teste. Chega em segundos, com o mesmo formato de um envio real.
O endereço é verificado no momento em que o guarda. Se for recusado, dizemos porquê.
O que recebe
Um POST com Content-Type: application/json:
{
"event": "booking.created",
"at": "2026-08-07T10:32:11.204Z",
"data": {
"id": "bk_7Kd2…",
"kind": "booking",
"channel": "voice",
"contactName": "Ana Silva",
"contactPhone": "+351910000000",
"contactEmail": null,
"scheduledFor": "2026-08-12T15:00:00.000Z",
"notes": "Primeira consulta."
}
}
Os acontecimentos possíveis são booking.created, message.taken, lead.captured,
screening.recorded, document.requested e handover.
Confirmar que veio mesmo de nós
O seu endereço é público. Sem uma verificação, qualquer pessoa que o descubra pode criar marcações falsas no seu CRM.
Cada envio leva três cabeçalhos:
| Cabeçalho | O que é |
| --- | --- |
| x-nexiagent-event | O acontecimento, para encaminhar sem ler o corpo. |
| x-nexiagent-timestamp | Segundos desde 1970, incluídos na assinatura. |
| x-nexiagent-signature | HMAC-SHA256 de {timestamp}.{corpo}, em hexadecimal. |
A chave de assinatura está no mesmo ecrã. Em Node:
import { createHmac, timingSafeEqual } from "node:crypto";
function valido(corpoBruto, cabecalhos, chave) {
const ts = cabecalhos["x-nexiagent-timestamp"];
const recebida = Buffer.from(cabecalhos["x-nexiagent-signature"] ?? "");
const esperada = Buffer.from(
createHmac("sha256", chave).update(`${ts}.${corpoBruto}`).digest("hex"),
);
// Recuse o que for antigo: sem isto, um envio capturado pode ser repetido.
if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
return (
recebida.length === esperada.length && timingSafeEqual(recebida, esperada)
);
}
Em Python:
import hmac, hashlib, time
def valido(corpo_bruto: bytes, cabecalhos, chave: str) -> bool:
ts = cabecalhos.get("x-nexiagent-timestamp", "")
if abs(time.time() - float(ts or 0)) > 300:
return False
esperada = hmac.new(
chave.encode(), f"{ts}.".encode() + corpo_bruto, hashlib.sha256
).hexdigest()
return hmac.compare_digest(esperada, cabecalhos.get("x-nexiagent-signature", ""))
Duas coisas que costumam correr mal:
- Assine o corpo em bruto, tal como chegou. Se o descodificar e voltar a codificar, um espaço a mais muda a assinatura.
- Compare em tempo constante (
timingSafeEqual,compare_digest). Um===normal revela, pelo tempo que demora, quantos caracteres acertou.
Quando o seu endereço está em baixo
Não deitamos fora. Tentamos outra vez ao fim de 1 minuto, 5, 25, cerca de 2 horas e cerca de 10 — seis tentativas ao longo de meio dia, que cobre um deploy, um certificado expirado ou uma tarde má do seu fornecedor.
Se ao fim disso continuar a falhar, o envio fica marcado como falhado e o endereço aparece com Não está a chegar e o erro exato. As tentativas recentes ficam visíveis no mesmo ecrã.
Responda 2xx para nós considerarmos entregue. Responda depressa — se demorar mais de
10 segundos, desistimos dessa tentativa. Se tiver trabalho demorado a fazer, guarde o que
recebeu e faça-o depois.
O que não aceitamos
O endereço é usado pelos nossos servidores, e portanto:
- Só
https. Os dados dos seus clientes não vão pela rede sem encriptação. - Só endereços públicos. Recusamos
localhost,127.0.0.1,10.x,192.168.x,169.254.xe equivalentes em IPv6 — verificado depois de resolver o nome, não só pelo texto do endereço.
Isto não é burocracia: sem estas duas regras, um endereço apontado para dentro faria os nossos servidores lerem a nossa própria infraestrutura em seu nome.
Segurança
- A chave de assinatura é um segredo. Guarde-a como guarda uma palavra-passe.
- Se achar que ficou exposta, remova o endereço e volte a criá-lo — a chave nova é diferente.
- Nunca lhe pedimos a palavra-passe de nenhuma das suas ferramentas.