# Catálogo de eventos

> Os 79 eventos objeto.verbo do ByDomu para webhooks e automações: contatos, negócios, compromissos, imóveis, aluguéis, assinaturas, faturas e mais.


Os 79 tipos que o ByDomu emite, com nome `objeto.verbo`. São os mesmos para webhooks, automações e Zapier, n8n ou Make. Você assina um tipo, um objeto inteiro (`deal.*`) ou tudo (`*`).

Até 5 tentativas (0 s, 5 s, 30 s, 2 min e 10 min) em erro de rede, 429 ou 5xx. Responda 2xx em menos de 10 s.

## Contatos

6

[`contact.created` Contato novo](https://developers.bydomu.com/pt/eventos/contact.created) [`contact.updated` Contato atualizado](https://developers.bydomu.com/pt/eventos/contact.updated) [`contact.assigned` Contato atribuído](https://developers.bydomu.com/pt/eventos/contact.assigned) [`contact.deleted` Contato excluído](https://developers.bydomu.com/pt/eventos/contact.deleted) [`contact.screening_completed` Estudo do contato concluído](https://developers.bydomu.com/pt/eventos/contact.screening_completed) [`lead.submitted` Lead recebido](https://developers.bydomu.com/pt/eventos/lead.submitted)

## Negócios

7

[`deal.created` Oportunidade criada](https://developers.bydomu.com/pt/eventos/deal.created) [`deal.stage_changed` Oportunidade mudou de etapa](https://developers.bydomu.com/pt/eventos/deal.stage_changed) [`deal.won` Oportunidade ganha](https://developers.bydomu.com/pt/eventos/deal.won) [`deal.lost` Oportunidade perdida](https://developers.bydomu.com/pt/eventos/deal.lost) [`deal.assigned` Oportunidade atribuída](https://developers.bydomu.com/pt/eventos/deal.assigned) [`deal.offer_registered` Proposta registrada](https://developers.bydomu.com/pt/eventos/deal.offer_registered) [`deal.deleted` Oportunidade excluída](https://developers.bydomu.com/pt/eventos/deal.deleted)

## Compromissos

7

[`appointment.created` Visita agendada](https://developers.bydomu.com/pt/eventos/appointment.created) [`appointment.confirmed` Visita confirmada](https://developers.bydomu.com/pt/eventos/appointment.confirmed) [`appointment.rescheduled` Visita remarcada](https://developers.bydomu.com/pt/eventos/appointment.rescheduled) [`appointment.cancelled` Visita cancelada](https://developers.bydomu.com/pt/eventos/appointment.cancelled) [`appointment.completed` Visita realizada](https://developers.bydomu.com/pt/eventos/appointment.completed) [`appointment.no_show` O cliente não apareceu](https://developers.bydomu.com/pt/eventos/appointment.no_show) [`appointment.outcome_recorded` Resultado da visita registrado](https://developers.bydomu.com/pt/eventos/appointment.outcome_recorded)

## Conversas e mensagens

6

[`message.received` Mensagem do cliente](https://developers.bydomu.com/pt/eventos/message.received) [`message.sent` Mensagem enviada](https://developers.bydomu.com/pt/eventos/message.sent) [`conversation.created` Conversa nova](https://developers.bydomu.com/pt/eventos/conversation.created) [`conversation.handoff_requested` O cliente pediu falar com uma pessoa](https://developers.bydomu.com/pt/eventos/conversation.handoff_requested) [`conversation.assigned` Conversa atribuída](https://developers.bydomu.com/pt/eventos/conversation.assigned) [`conversation.closed` Conversa encerrada](https://developers.bydomu.com/pt/eventos/conversation.closed)

## Imóveis

8

[`property.created` Imóvel criado](https://developers.bydomu.com/pt/eventos/property.created) [`property.updated` Imóvel atualizado](https://developers.bydomu.com/pt/eventos/property.updated) [`property.published` Imóvel publicado](https://developers.bydomu.com/pt/eventos/property.published) [`property.unpublished` Imóvel despublicado](https://developers.bydomu.com/pt/eventos/property.unpublished) [`property.published_social` Imóvel publicado nas redes](https://developers.bydomu.com/pt/eventos/property.published_social) [`property.price_changed` Preço mudou](https://developers.bydomu.com/pt/eventos/property.price_changed) [`property.status_changed` Status do imóvel mudou](https://developers.bydomu.com/pt/eventos/property.status_changed) [`property.deleted` Imóvel excluído](https://developers.bydomu.com/pt/eventos/property.deleted)

## Tarefas e notas

4

[`task.created` Tarefa criada](https://developers.bydomu.com/pt/eventos/task.created) [`task.completed` Tarefa concluída](https://developers.bydomu.com/pt/eventos/task.completed) [`task.overdue` Tarefa vencida Programado](https://developers.bydomu.com/pt/eventos/task.overdue) [`note.created` Nota nova](https://developers.bydomu.com/pt/eventos/note.created)

## Aluguéis e cobranças

8

[`lease.created` Contrato de aluguel criado](https://developers.bydomu.com/pt/eventos/lease.created) [`lease.expiring` Contrato vencendo Programado](https://developers.bydomu.com/pt/eventos/lease.expiring) [`lease.expired` Contrato vencido Programado](https://developers.bydomu.com/pt/eventos/lease.expired) [`lease.renewed` Contrato renovado](https://developers.bydomu.com/pt/eventos/lease.renewed) [`lease.terminated` Contrato encerrado](https://developers.bydomu.com/pt/eventos/lease.terminated) [`rent_payment.recorded` Pagamento de aluguel registrado](https://developers.bydomu.com/pt/eventos/rent_payment.recorded) [`rent_payment.due` Parcela perto do vencimento Programado](https://developers.bydomu.com/pt/eventos/rent_payment.due) [`rent_payment.overdue` Aluguel atrasado Programado](https://developers.bydomu.com/pt/eventos/rent_payment.overdue)

## Assinaturas

5

[`envelope.sent` Documento enviado para assinar](https://developers.bydomu.com/pt/eventos/envelope.sent) [`envelope.signed` Documento assinado](https://developers.bydomu.com/pt/eventos/envelope.signed) [`envelope.completed` Assinaturas concluídas](https://developers.bydomu.com/pt/eventos/envelope.completed) [`envelope.declined` Assinatura recusada](https://developers.bydomu.com/pt/eventos/envelope.declined) [`envelope.expired` Documento venceu sem assinatura Programado](https://developers.bydomu.com/pt/eventos/envelope.expired)

## Faturas e pagamentos

6

[`invoice.created` Fatura criada](https://developers.bydomu.com/pt/eventos/invoice.created) [`invoice.paid` Fatura paga](https://developers.bydomu.com/pt/eventos/invoice.paid) [`invoice.overdue` Fatura vencida Programado](https://developers.bydomu.com/pt/eventos/invoice.overdue) [`invoice.voided` Fatura cancelada](https://developers.bydomu.com/pt/eventos/invoice.voided) [`payment.approved` Pagamento on-line aprovado](https://developers.bydomu.com/pt/eventos/payment.approved) [`payment.declined` Pagamento on-line recusado](https://developers.bydomu.com/pt/eventos/payment.declined)

## Comissões

2

[`commission.created` Comissão gerada](https://developers.bydomu.com/pt/eventos/commission.created) [`commission.paid` Comissão paga](https://developers.bydomu.com/pt/eventos/commission.paid)

## Indicações

2

[`referral.created` Indicação nova](https://developers.bydomu.com/pt/eventos/referral.created) [`referral.converted` Indicação convertida](https://developers.bydomu.com/pt/eventos/referral.converted)

## Avaliações, agenda e buscador

3

[`review.received` Avaliação recebida no Google](https://developers.bydomu.com/pt/eventos/review.received) [`booking.created` Visita agendada pelo site](https://developers.bydomu.com/pt/eventos/booking.created) [`finder.submitted` Busca enviada pelo site](https://developers.bydomu.com/pt/eventos/finder.submitted)

## Tickets

7

[`ticket.created` Ticket criado](https://developers.bydomu.com/pt/eventos/ticket.created) [`ticket.updated` Ticket atualizado](https://developers.bydomu.com/pt/eventos/ticket.updated) [`ticket.status_changed` Ticket mudou de status](https://developers.bydomu.com/pt/eventos/ticket.status_changed) [`ticket.note_added` Nota interna em um ticket](https://developers.bydomu.com/pt/eventos/ticket.note_added) [`ticket.resolved` Ticket resolvido](https://developers.bydomu.com/pt/eventos/ticket.resolved) [`ticket.suggested` A Noa sugeriu um ticket](https://developers.bydomu.com/pt/eventos/ticket.suggested) [`ticket.suggestion_dismissed` Sugestão de ticket descartada](https://developers.bydomu.com/pt/eventos/ticket.suggestion_dismissed)

## Webhooks de entrada

1

[`webhook.received` Chamada recebida de outra ferramenta](https://developers.bydomu.com/pt/eventos/webhook.received)

## Otros

7

[`customer.at_risk` Cliente em risco de cancelar](https://developers.bydomu.com/pt/eventos/customer.at_risk) [`trial.started` trial.started](https://developers.bydomu.com/pt/eventos/trial.started) [`trial.ending` trial.ending Programado](https://developers.bydomu.com/pt/eventos/trial.ending) [`trial.ended` trial.ended Programado](https://developers.bydomu.com/pt/eventos/trial.ended) [`noa_api_action.executed` A Noa executou uma ação na sua API](https://developers.bydomu.com/pt/eventos/noa_api_action.executed) [`noa_api_action.failed` Falhou uma ação da Noa na sua API](https://developers.bydomu.com/pt/eventos/noa_api_action.failed) [`knowledge.suggested` A Noa sugeriu salvar uma resposta como documento](https://developers.bydomu.com/pt/eventos/knowledge.suggested)

Envelope:

```
{
  "id": "5f3a0c1e-7d2b-4f7e-9a51-0b6c1d2e3f40",
  "type": "deal.won",
  "timestamp": "2026-09-28T15:42:10.000Z",
  "organizationId": "clx1org001",
  "actor": { "kind": "USER", "userId": "clx1usr001" },
  "data": { "deal": { … }, "contact": { … } }
}
```

Verificar assinatura:

```
import { createHmac, timingSafeEqual } from "node:crypto";

// header = X-Domu-Signature: t=<timestamp>,v1=<hmac>
function verifyWebhook(rawBody, header, secret, toleranceSec = 300) {
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const timestamp = Number(parts.t);
  if (!timestamp || !parts.v1) return false;
  if (Math.abs(Date.now() / 1000 - timestamp) > toleranceSec) return false;
  const expected = createHmac("sha256", secret)
    .update(`${timestamp}.${rawBody}`)
    .digest("hex");
  const a = Buffer.from(expected);
  const b = Buffer.from(parts.v1);
  return a.length === b.length && timingSafeEqual(a, b);
}
```
