Ligações API

Ligue as suas APIs externas ao enuchat para que a IA e as regras possam obter dados em tempo real dos seus sistemas.

Como funciona

As ligações API permitem-lhe integrar o enuchat com os seus próprios sistemas de backend — motores de reservas, CRM, gestão de encomendas, inventário e mais. Quando um visitante faz uma pergunta, o enuchat pode chamar a sua API para obter dados reais e incluí-los na resposta.

O fluxo

  1. Configure uma ligação — o URL base da sua API e a autenticação
  2. Adicione endpoints — chamadas API específicas com modelos de caminho e mapeamento de resposta
  3. Crie uma regra — uma regra de IA ou estática com uma ação CALL_API
  4. O visitante faz uma pergunta — a regra dispara, chama a sua API, mapeia a resposta para variáveis de sessão
  5. A IA responde com dados reais — as variáveis de sessão ficam disponíveis para a IA gerar uma resposta precisa

Exemplo: disponibilidade de quarto de hotel

Visitante: «O quarto 205 está disponível na próxima semana?»

A regra de IA corresponde: «Quando o visitante pergunta sobre disponibilidade de quartos»

Ação CALL_API: GET https://api.hotel.com/rooms/205/availability

Resposta mapeada: room_available = true, price = «120 €/noite»

A IA responde: «O quarto 205 está disponível na próxima semana a 120 €/noite. Gostaria de reservar?»

Configurar uma ligação

Vá a Definições → Ligações API no painel.

1. Criar uma ligação

Uma ligação representa uma API externa. Precisa de:

CampoDescriçãoExemplo
NomeUma etiqueta para esta ligaçãoAPI de reservas de hotel
URL baseO URL raiz da APIhttps://api.hotel.com/v1
Tipo de authComo autenticarBearer Token, OAuth2, etc.

2. Tipos de autenticação

Nenhuma

Para APIs públicas que não exigem autenticação.

Chave API

Envia uma chave estática como cabeçalho ou parâmetro de consulta.

CampoDescrição
ChaveO valor da sua chave API
Nome do cabeçalhoCabeçalho a usar (predefinição: X-Api-Key)

A chave é enviada como: X-Api-Key: your_key_here

Bearer Token

Envia um token estático no cabeçalho Authorization.

Enviado como: Authorization: Bearer your_token_here

Basic Auth

Envia utilizador e palavra-passe, codificados em base64.

Enviado como: Authorization: Basic dXNlcjpwYXNz

OAuth 2.0 (Client Credentials)

Obtém um access token automaticamente e coloca-o em cache até expirar. Ideal para APIs modernas como Salesforce, Google ou servidores OAuth personalizados.

CampoDescrição
Token URLEndpoint de token OAuth (ex. https://auth.example.com/oauth/token)
Client IDO seu ID de cliente OAuth
Client SecretO seu segredo de cliente OAuth
ScopeScopes separados por espaços (ex. read write)

O enuchat trata do ciclo de vida do token automaticamente — obtém na primeira chamada, coloca em cache até expirar, renova quando necessário.

Segurança: todas as credenciais são encriptadas em repouso usando libsodium. Nunca são expostas nas respostas da API — apenas valores mascarados são mostrados no painel.

Configurar endpoints

Cada ligação pode ter vários endpoints — chamadas API específicas que quer efetuar.

CampoDescriçãoExemplo
NomeEtiqueta para este endpointVerificar disponibilidade
MétodoMétodo HTTPGET, POST, PUT, DELETE
CaminhoCaminho do URL (acrescentado ao URL base). Use {'{'}variable} para valores dinâmicos/rooms/{'{'}roomId}/availability
Parâmetros de consultaParâmetros de URL como pares chave-valor. Os valores suportam {'{'}variable}date={'{'}checkIn}
Modelo do corpoCorpo JSON para POST/PUT. Suporta interpolação {'{'}variable}{'{'}"guest": "{'{'}name}"}
Mapeamento da respostaMapeie campos da resposta JSON para variáveis de sessão usando notação por pontodata.available → room_available
DescriçãoContexto para a IA (que dados este endpoint retorna)Retorna disponibilidade e preço do quarto

Interpolação de variáveis

Use {'{'}variableName} em caminhos, parâmetros de consulta e modelos de corpo. As variáveis vêm de:

  • Variáveis de sessão — definidas por regras anteriores (ação SET_VARIABLE)
  • Parâmetros de ação — embutidos na ação de regra CALL_API

Mapeamento da resposta

Mapeie campos da resposta JSON para variáveis de sessão usando notação por ponto:

// API returns:
{'{'}
  "data": {'{'}
    "available": true,
    "price": {'{'} "amount": 120, "currency": "EUR" }
  }
}

// Mapping:
data.available  →  room_available    // "true"
data.price.amount  →  room_price    // "120"
data.price.currency  →  room_currency  // "EUR"

As variáveis mapeadas são armazenadas como variáveis de sessão na conversa e ficam disponíveis para a IA gerar respostas.

Usar com regras

As chamadas API são acionadas pela ação CALL_API nas regras. Pode combiná-las com outras ações.

Receita: consulta de estado de encomenda

Ligação: API de gestão de encomendas — https://api.shop.com/v2 — Bearer Token

Endpoint: GET /orders/{'{'}orderId} → mapeia data.statusorder_status, data.etadelivery_eta

Regra (tipo IA): «Quando o visitante pergunta sobre o estado da encomenda ou entrega»

Ações:

  1. CALL_API → endpoint de estado de encomenda
  2. REPLY_AI → a IA usa order_status e delivery_eta para responder

Resultado: Visitante: «Onde está a minha encomenda #4521?» — IA: «A sua encomenda #4521 está atualmente a ser expedida e deve chegar na quinta-feira.»

Receita: preços em tempo real

Ligação: API de preços — https://pricing.example.com — Chave API

Endpoint: GET /products/{'{'}productId}/price → mapeia pricecurrent_price, currencyprice_currency

Regra (estática): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i

Ações:

  1. CALL_API → endpoint de preços
  2. REPLY_TEXT → «O preço atual é {'{'}current_price} {'{'}price_currency}.»

Testar

Teste sempre as suas ligações e endpoints antes de os usar em regras:

  • Testar ligação — verifica se a autenticação funciona (para OAuth2: obtém um token)
  • Testar endpoint — efetua uma chamada API real com variáveis de exemplo e mostra a resposta
  • Testar regra (dry-run) — na página Regras, teste se uma regra corresponderia e que ações executaria

Dica: comece por testar a ligação, depois cada endpoint, depois a regra completa. Assim consegue isolar problemas em cada nível.

Segurança

  • Encriptação em repouso — todas as credenciais são encriptadas usando libsodium antes do armazenamento
  • Nunca expostas — as respostas da API nunca incluem credenciais desencriptadas, apenas valores mascarados
  • Proteção SSRF — o enuchat bloqueia chamadas para localhost, IPs privados e nomes de host internos
  • Timeout — as chamadas a APIs externas têm um timeout de 5 segundos para evitar bloqueios
  • Cache de tokens OAuth2 — os access tokens são colocados em cache com segurança e renovados automaticamente
  • Isolamento por tenant — as ligações estão limitadas ao seu tenant, inacessíveis a outros

Pronto para ligar as suas APIs?

Comece hoje a integrar os seus sistemas com o enuchat.

Começar gratuitamente