# Catálogo de eventos

> Los 79 eventos objeto.verbo de ByDomu para webhooks y automatizaciones: contactos, negocios, citas, propiedades, arriendos, firmas, facturas y más.


Los 79 tipos que emite ByDomu, con nombre `objeto.verbo`. Son los mismos para los webhooks, las automatizaciones y Zapier, n8n o Make. Te suscribes a un tipo, a un objeto entero (`deal.*`) o a todo (`*`).

Hasta 5 intentos (0 s, 5 s, 30 s, 2 min y 10 min) ante error de red, 429 o 5xx. Responde 2xx en menos de 10 s.

## Contactos

6

[`contact.created` Contacto nuevo](https://developers.bydomu.com/eventos/contact.created) [`contact.updated` Contacto actualizado](https://developers.bydomu.com/eventos/contact.updated) [`contact.assigned` Contacto asignado](https://developers.bydomu.com/eventos/contact.assigned) [`contact.deleted` Contacto eliminado](https://developers.bydomu.com/eventos/contact.deleted) [`contact.screening_completed` Estudio del contacto terminado](https://developers.bydomu.com/eventos/contact.screening_completed) [`lead.submitted` Lead recibido](https://developers.bydomu.com/eventos/lead.submitted)

## Negocios

7

[`deal.created` Oportunidad creada](https://developers.bydomu.com/eventos/deal.created) [`deal.stage_changed` Oportunidad cambió de etapa](https://developers.bydomu.com/eventos/deal.stage_changed) [`deal.won` Oportunidad ganada](https://developers.bydomu.com/eventos/deal.won) [`deal.lost` Oportunidad perdida](https://developers.bydomu.com/eventos/deal.lost) [`deal.assigned` Oportunidad asignada](https://developers.bydomu.com/eventos/deal.assigned) [`deal.offer_registered` Oferta registrada](https://developers.bydomu.com/eventos/deal.offer_registered) [`deal.deleted` Oportunidad eliminada](https://developers.bydomu.com/eventos/deal.deleted)

## Citas

7

[`appointment.created` Cita agendada](https://developers.bydomu.com/eventos/appointment.created) [`appointment.confirmed` Cita confirmada](https://developers.bydomu.com/eventos/appointment.confirmed) [`appointment.rescheduled` Cita reprogramada](https://developers.bydomu.com/eventos/appointment.rescheduled) [`appointment.cancelled` Cita cancelada](https://developers.bydomu.com/eventos/appointment.cancelled) [`appointment.completed` Visita realizada](https://developers.bydomu.com/eventos/appointment.completed) [`appointment.no_show` El cliente no llegó](https://developers.bydomu.com/eventos/appointment.no_show) [`appointment.outcome_recorded` Resultado de la visita registrado](https://developers.bydomu.com/eventos/appointment.outcome_recorded)

## Conversaciones y mensajes

6

[`message.received` Mensaje del cliente](https://developers.bydomu.com/eventos/message.received) [`message.sent` Mensaje enviado](https://developers.bydomu.com/eventos/message.sent) [`conversation.created` Conversación nueva](https://developers.bydomu.com/eventos/conversation.created) [`conversation.handoff_requested` El cliente pidió hablar con una persona](https://developers.bydomu.com/eventos/conversation.handoff_requested) [`conversation.assigned` Conversación asignada](https://developers.bydomu.com/eventos/conversation.assigned) [`conversation.closed` Conversación cerrada](https://developers.bydomu.com/eventos/conversation.closed)

## Propiedades

8

[`property.created` Inmueble creado](https://developers.bydomu.com/eventos/property.created) [`property.updated` Inmueble actualizado](https://developers.bydomu.com/eventos/property.updated) [`property.published` Inmueble publicado](https://developers.bydomu.com/eventos/property.published) [`property.unpublished` Inmueble despublicado](https://developers.bydomu.com/eventos/property.unpublished) [`property.published_social` Inmueble publicado en redes](https://developers.bydomu.com/eventos/property.published_social) [`property.price_changed` Cambió el precio](https://developers.bydomu.com/eventos/property.price_changed) [`property.status_changed` Cambió el estado del inmueble](https://developers.bydomu.com/eventos/property.status_changed) [`property.deleted` Inmueble eliminado](https://developers.bydomu.com/eventos/property.deleted)

## Tareas y notas

4

[`task.created` Tarea creada](https://developers.bydomu.com/eventos/task.created) [`task.completed` Tarea completada](https://developers.bydomu.com/eventos/task.completed) [`task.overdue` Tarea vencida Programado](https://developers.bydomu.com/eventos/task.overdue) [`note.created` Nota nueva](https://developers.bydomu.com/eventos/note.created)

## Arriendos y cobros

8

[`lease.created` Contrato de arriendo creado](https://developers.bydomu.com/eventos/lease.created) [`lease.expiring` Contrato por vencer Programado](https://developers.bydomu.com/eventos/lease.expiring) [`lease.expired` Contrato vencido Programado](https://developers.bydomu.com/eventos/lease.expired) [`lease.renewed` Contrato renovado](https://developers.bydomu.com/eventos/lease.renewed) [`lease.terminated` Contrato terminado](https://developers.bydomu.com/eventos/lease.terminated) [`rent_payment.recorded` Pago de arriendo registrado](https://developers.bydomu.com/eventos/rent_payment.recorded) [`rent_payment.due` Cuota próxima a vencer Programado](https://developers.bydomu.com/eventos/rent_payment.due) [`rent_payment.overdue` Cuota en mora Programado](https://developers.bydomu.com/eventos/rent_payment.overdue)

## Firmas

5

[`envelope.sent` Documento enviado a firma](https://developers.bydomu.com/eventos/envelope.sent) [`envelope.signed` Documento firmado](https://developers.bydomu.com/eventos/envelope.signed) [`envelope.completed` Firmas completas](https://developers.bydomu.com/eventos/envelope.completed) [`envelope.declined` Firma rechazada](https://developers.bydomu.com/eventos/envelope.declined) [`envelope.expired` Documento venció sin firmar Programado](https://developers.bydomu.com/eventos/envelope.expired)

## Facturas y pagos

6

[`invoice.created` Factura creada](https://developers.bydomu.com/eventos/invoice.created) [`invoice.paid` Factura pagada](https://developers.bydomu.com/eventos/invoice.paid) [`invoice.overdue` Factura vencida Programado](https://developers.bydomu.com/eventos/invoice.overdue) [`invoice.voided` Factura anulada](https://developers.bydomu.com/eventos/invoice.voided) [`payment.approved` Pago en línea aprobado](https://developers.bydomu.com/eventos/payment.approved) [`payment.declined` Pago en línea rechazado](https://developers.bydomu.com/eventos/payment.declined)

## Comisiones

2

[`commission.created` Comisión generada](https://developers.bydomu.com/eventos/commission.created) [`commission.paid` Comisión pagada](https://developers.bydomu.com/eventos/commission.paid)

## Referidos

2

[`referral.created` Referido nuevo](https://developers.bydomu.com/eventos/referral.created) [`referral.converted` Referido convertido](https://developers.bydomu.com/eventos/referral.converted)

## Reseñas, agenda y buscador

3

[`review.received` Reseña recibida en Google](https://developers.bydomu.com/eventos/review.received) [`booking.created` Cita agendada desde la web](https://developers.bydomu.com/eventos/booking.created) [`finder.submitted` Búsqueda enviada desde la web](https://developers.bydomu.com/eventos/finder.submitted)

## Tickets

7

[`ticket.created` Ticket creado](https://developers.bydomu.com/eventos/ticket.created) [`ticket.updated` Ticket actualizado](https://developers.bydomu.com/eventos/ticket.updated) [`ticket.status_changed` Ticket cambió de estado](https://developers.bydomu.com/eventos/ticket.status_changed) [`ticket.note_added` Nota interna en un ticket](https://developers.bydomu.com/eventos/ticket.note_added) [`ticket.resolved` Ticket resuelto](https://developers.bydomu.com/eventos/ticket.resolved) [`ticket.suggested` Noa sugirió crear un ticket](https://developers.bydomu.com/eventos/ticket.suggested) [`ticket.suggestion_dismissed` Se descartó la sugerencia de ticket](https://developers.bydomu.com/eventos/ticket.suggestion_dismissed)

## Webhooks entrantes

1

[`webhook.received` Llamada recibida de otra herramienta](https://developers.bydomu.com/eventos/webhook.received)

## Otros

7

[`customer.at_risk` Cliente en riesgo de cancelar](https://developers.bydomu.com/eventos/customer.at_risk) [`trial.started` trial.started](https://developers.bydomu.com/eventos/trial.started) [`trial.ending` trial.ending Programado](https://developers.bydomu.com/eventos/trial.ending) [`trial.ended` trial.ended Programado](https://developers.bydomu.com/eventos/trial.ended) [`noa_api_action.executed` Noa ejecutó una acción de tu API](https://developers.bydomu.com/eventos/noa_api_action.executed) [`noa_api_action.failed` Falló una acción de Noa en tu API](https://developers.bydomu.com/eventos/noa_api_action.failed) [`knowledge.suggested` Noa propuso guardar una respuesta como documento](https://developers.bydomu.com/eventos/knowledge.suggested)

Sobre:

```
{
  "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 firma:

```
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);
}
```
