# Event catalog

> ByDomu’s 79 object.verb events for webhooks and automations: contacts, deals, appointments, properties, leases, signatures, invoices and more.


The 79 types ByDomu emits, named `objeto.verbo`. They’re the same for webhooks, automations and Zapier, n8n or Make. Subscribe to a type, a whole object (`deal.*`) or everything (`*`).

Up to 5 attempts (0 s, 5 s, 30 s, 2 min and 10 min) on network errors, 429 or 5xx. Reply 2xx in under 10 s.

## Contacts

6

[`contact.created` New contact](https://developers.bydomu.com/en/eventos/contact.created) [`contact.updated` Contact updated](https://developers.bydomu.com/en/eventos/contact.updated) [`contact.assigned` Contact assigned](https://developers.bydomu.com/en/eventos/contact.assigned) [`contact.deleted` Contact deleted](https://developers.bydomu.com/en/eventos/contact.deleted) [`contact.screening_completed` Contact screening completed](https://developers.bydomu.com/en/eventos/contact.screening_completed) [`lead.submitted` Lead received](https://developers.bydomu.com/en/eventos/lead.submitted)

## Deals

7

[`deal.created` Opportunity created](https://developers.bydomu.com/en/eventos/deal.created) [`deal.stage_changed` Opportunity moved stage](https://developers.bydomu.com/en/eventos/deal.stage_changed) [`deal.won` Opportunity won](https://developers.bydomu.com/en/eventos/deal.won) [`deal.lost` Opportunity lost](https://developers.bydomu.com/en/eventos/deal.lost) [`deal.assigned` Opportunity assigned](https://developers.bydomu.com/en/eventos/deal.assigned) [`deal.offer_registered` Offer registered](https://developers.bydomu.com/en/eventos/deal.offer_registered) [`deal.deleted` Opportunity deleted](https://developers.bydomu.com/en/eventos/deal.deleted)

## Appointments

7

[`appointment.created` Appointment scheduled](https://developers.bydomu.com/en/eventos/appointment.created) [`appointment.confirmed` Appointment confirmed](https://developers.bydomu.com/en/eventos/appointment.confirmed) [`appointment.rescheduled` Appointment rescheduled](https://developers.bydomu.com/en/eventos/appointment.rescheduled) [`appointment.cancelled` Appointment cancelled](https://developers.bydomu.com/en/eventos/appointment.cancelled) [`appointment.completed` Showing done](https://developers.bydomu.com/en/eventos/appointment.completed) [`appointment.no_show` The customer didn’t show up](https://developers.bydomu.com/en/eventos/appointment.no_show) [`appointment.outcome_recorded` Showing outcome recorded](https://developers.bydomu.com/en/eventos/appointment.outcome_recorded)

## Conversations and messages

6

[`message.received` Message from the customer](https://developers.bydomu.com/en/eventos/message.received) [`message.sent` Message sent](https://developers.bydomu.com/en/eventos/message.sent) [`conversation.created` New conversation](https://developers.bydomu.com/en/eventos/conversation.created) [`conversation.handoff_requested` The customer asked for a person](https://developers.bydomu.com/en/eventos/conversation.handoff_requested) [`conversation.assigned` Conversation assigned](https://developers.bydomu.com/en/eventos/conversation.assigned) [`conversation.closed` Conversation closed](https://developers.bydomu.com/en/eventos/conversation.closed)

## Properties

8

[`property.created` Listing created](https://developers.bydomu.com/en/eventos/property.created) [`property.updated` Listing updated](https://developers.bydomu.com/en/eventos/property.updated) [`property.published` Listing published](https://developers.bydomu.com/en/eventos/property.published) [`property.unpublished` Listing unpublished](https://developers.bydomu.com/en/eventos/property.unpublished) [`property.published_social` Listing posted to social](https://developers.bydomu.com/en/eventos/property.published_social) [`property.price_changed` Price changed](https://developers.bydomu.com/en/eventos/property.price_changed) [`property.status_changed` Listing status changed](https://developers.bydomu.com/en/eventos/property.status_changed) [`property.deleted` Listing deleted](https://developers.bydomu.com/en/eventos/property.deleted)

## Tasks and notes

4

[`task.created` Task created](https://developers.bydomu.com/en/eventos/task.created) [`task.completed` Task completed](https://developers.bydomu.com/en/eventos/task.completed) [`task.overdue` Task overdue Scheduled](https://developers.bydomu.com/en/eventos/task.overdue) [`note.created` New note](https://developers.bydomu.com/en/eventos/note.created)

## Leases and rent

8

[`lease.created` Lease created](https://developers.bydomu.com/en/eventos/lease.created) [`lease.expiring` Lease about to expire Scheduled](https://developers.bydomu.com/en/eventos/lease.expiring) [`lease.expired` Lease expired Scheduled](https://developers.bydomu.com/en/eventos/lease.expired) [`lease.renewed` Lease renewed](https://developers.bydomu.com/en/eventos/lease.renewed) [`lease.terminated` Lease terminated](https://developers.bydomu.com/en/eventos/lease.terminated) [`rent_payment.recorded` Rent payment recorded](https://developers.bydomu.com/en/eventos/rent_payment.recorded) [`rent_payment.due` Rent payment coming due Scheduled](https://developers.bydomu.com/en/eventos/rent_payment.due) [`rent_payment.overdue` Rent overdue Scheduled](https://developers.bydomu.com/en/eventos/rent_payment.overdue)

## Signatures

5

[`envelope.sent` Document sent to sign](https://developers.bydomu.com/en/eventos/envelope.sent) [`envelope.signed` Document signed](https://developers.bydomu.com/en/eventos/envelope.signed) [`envelope.completed` All signatures done](https://developers.bydomu.com/en/eventos/envelope.completed) [`envelope.declined` Signature declined](https://developers.bydomu.com/en/eventos/envelope.declined) [`envelope.expired` Document expired unsigned Scheduled](https://developers.bydomu.com/en/eventos/envelope.expired)

## Invoices and payments

6

[`invoice.created` Invoice created](https://developers.bydomu.com/en/eventos/invoice.created) [`invoice.paid` Invoice paid](https://developers.bydomu.com/en/eventos/invoice.paid) [`invoice.overdue` Invoice overdue Scheduled](https://developers.bydomu.com/en/eventos/invoice.overdue) [`invoice.voided` Invoice voided](https://developers.bydomu.com/en/eventos/invoice.voided) [`payment.approved` Online payment approved](https://developers.bydomu.com/en/eventos/payment.approved) [`payment.declined` Online payment declined](https://developers.bydomu.com/en/eventos/payment.declined)

## Commissions

2

[`commission.created` Commission created](https://developers.bydomu.com/en/eventos/commission.created) [`commission.paid` Commission paid](https://developers.bydomu.com/en/eventos/commission.paid)

## Referrals

2

[`referral.created` New referral](https://developers.bydomu.com/en/eventos/referral.created) [`referral.converted` Referral converted](https://developers.bydomu.com/en/eventos/referral.converted)

## Reviews, booking and finder

3

[`review.received` Google review received](https://developers.bydomu.com/en/eventos/review.received) [`booking.created` Appointment booked from the website](https://developers.bydomu.com/en/eventos/booking.created) [`finder.submitted` Search submitted from the website](https://developers.bydomu.com/en/eventos/finder.submitted)

## Tickets

7

[`ticket.created` Ticket created](https://developers.bydomu.com/en/eventos/ticket.created) [`ticket.updated` Ticket updated](https://developers.bydomu.com/en/eventos/ticket.updated) [`ticket.status_changed` Ticket status changed](https://developers.bydomu.com/en/eventos/ticket.status_changed) [`ticket.note_added` Internal note on a ticket](https://developers.bydomu.com/en/eventos/ticket.note_added) [`ticket.resolved` Ticket resolved](https://developers.bydomu.com/en/eventos/ticket.resolved) [`ticket.suggested` Noa suggested a ticket](https://developers.bydomu.com/en/eventos/ticket.suggested) [`ticket.suggestion_dismissed` Ticket suggestion dismissed](https://developers.bydomu.com/en/eventos/ticket.suggestion_dismissed)

## Incoming webhooks

1

[`webhook.received` Call received from another tool](https://developers.bydomu.com/en/eventos/webhook.received)

## Others

7

[`customer.at_risk` Customer at risk of churning](https://developers.bydomu.com/en/eventos/customer.at_risk) [`trial.started` trial.started](https://developers.bydomu.com/en/eventos/trial.started) [`trial.ending` trial.ending Scheduled](https://developers.bydomu.com/en/eventos/trial.ending) [`trial.ended` trial.ended Scheduled](https://developers.bydomu.com/en/eventos/trial.ended) [`noa_api_action.executed` Noa ran an action on your API](https://developers.bydomu.com/en/eventos/noa_api_action.executed) [`noa_api_action.failed` A Noa action on your API failed](https://developers.bydomu.com/en/eventos/noa_api_action.failed) [`knowledge.suggested` Noa suggested saving an answer as a document](https://developers.bydomu.com/en/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": { … } }
}
```

Verify signature:

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