Events

Lead events

lead.created — a visitor left contact details.

lead.created

Fires when contact details are captured, from any of the routes that can produce a lead:

  • the visitor submits the lead form,
  • they leave details as part of a human handoff,
  • the agent auto-captures an address the visitor typed in conversation,
  • a lead is created through the API.
{
  "lead": {
    "id": 3312,
    "chatbot_id": 17,
    "conversation_id": 8214,
    "name": "Ada Lovelace",
    "email": "[email protected]",
    "phone": null,
    "company": "Analytical Engines",
    "source": "widget",
    "status": "new",
    "created_at": "2026-08-26T10:02:00.000Z"
  }
}

Every field except id, chatbot_id, status and created_at can be null — what you get depends on which fields the agent was configured to ask for, and what the visitor chose to give.

Deduplication

A conversation produces at most one lead. If details are captured again in the same conversation, the existing lead is updated rather than a second one created, and no second lead.created fires.

Across conversations there is no dedupe: the same person returning next week produces a new lead with a new conversation_id. Match on email if you need to collapse those.

Bookings do not double-fire

When a visitor books a meeting, we create the lead silently and fire booking.created only. The booking is the event worth acting on, and firing both would make every meeting look like two things happening.

If you want a record for every captured contact including bookings, subscribe to booking.created as well.