GuruAgenda API
menu Guias

Chats: Slack, Discord, Google Chat e Teams#

Para avisar a equipe num canal de chat, não é preciso n8n nem código. Crie um webhook de entrada no chat, cole a URL no GuruAgenda e escolha os eventos: nós montamos a mensagem no formato de cada plataforma.

Como obter a URL#

Plataforma Onde criar format
Slack Crie um app em api.slack.com/apps → Incoming Webhooks → Add New Webhook to Workspace → escolha o canal. A URL começa com https://hooks.slack.com/. slack
Discord No canal: Editar canal → Integrações → Webhooks → Novo webhook → Copiar URL. A URL começa com https://discord.com/api/webhooks/. discord
Google Chat No espaço: Apps e integrações → Webhooks → Adicionar webhook. Só funciona em contas Google Workspace. A URL começa com https://chat.googleapis.com/v1/spaces/. google_chat
Microsoft Teams No canal: ⋯ → Workflows → "Send webhook alerts to a channel" (ou "Post to a channel when a webhook request is received"), salve e copie a URL. Os antigos conectores do Office 365 foram descontinuados pela Microsoft. teams

Depois, no GuruAgenda: Configurações → API e Webhooks → Novo webhook, escolha a plataforma, cole a URL, marque os eventos e clique em Testar. Pela API, é o mesmo POST /v1/webhooks com o format da tabela.

A URL de um webhook de chat funciona como uma senha: quem a tem consegue postar no canal. Por isso a guardamos cifrada e, depois de salva, a mostramos cortada (https://hooks.slack.com/services/T0…a1b2). Conferimos se a URL é da plataforma escolhida (no Teams, aceitamos qualquer URL https, porque o Workflows usa vários domínios).

A mensagem#

Cada evento vira uma mensagem com título, os dados principais e um botão para abrir o registro no GuruAgenda:

📅 Novo agendamento
Cliente: Maria Souza · (11) 9****-9999
Profissional: Ana Lima
Serviço: Consulta (60 min) · R$ 250,00
Quando: ter, 20/10/2026 às 14:30
Status: Confirmado
Origem: link público
[Abrir no GuruAgenda]

No Slack ela sai em Block Kit, no Discord como embed colorido pelo tipo de evento, no Google Chat como cartão e no Teams como Adaptive Card. O texto simples vai junto em todos, para notificações e leitores de tela. Reagendamentos trazem também o horário anterior; cancelamentos, quem cancelou e o motivo.

Agrupamento por agendamento:

  • Google Chat: os eventos do mesmo agendamento (criado, reagendado, sinal pago, cancelado) ficam na mesma conversa (thread).
  • Discord: em reagendamento e cancelamento, editamos a mensagem original em vez de postar outra; se ela foi apagada, postamos uma nova.
  • Slack e Teams: uma mensagem por evento (os webhooks dessas plataformas não permitem editar).

Dados do cliente#

Canais de chat costumam ter muita gente. Por padrão, mostramos o cliente reduzido: primeiro nome e último sobrenome, telefone com o meio oculto ((11) 9****-9999) e sem e-mail. Para mostrar o nome completo, o telefone e o e-mail, ligue show_full_personal_data no webhook (na tela, Mostrar dados completos do cliente). Anotações clínicas nunca vão para o chat.

Trocar o texto do título#

O campo message_template (até 2.000 caracteres) troca o título da mensagem por um texto seu, mantendo o cartão com os dados. Ele aceita as mesmas variáveis e filtros do template livre:

{{ data.object.professional.name }}: novo horário em {{ data.object.start | date('d/m H:i') }}

Entrega#

  • Mensagens de chat não são assinadas (a plataforma não verifica assinatura).
  • Uma mensagem atrasada horas não serve para a recepção: tentamos de novo só depois de 1 e de 5 minutos e, se ainda falhar, registramos a falha.
  • Respeitamos o limite de cada plataforma: no máximo uma mensagem por segundo por webhook, e o Retry-After quando a plataforma pede para esperar.
  • Se a plataforma responder que o webhook não existe mais (404 ou 410, por exemplo quando o canal foi apagado), desativamos o webhook e avisamos o dono da conta por e-mail.