Skip to the content
Menu: The inbox

The inbox

When a website visitor asks your avatar to be called back, to book something, or to speak to a person, Zentiq puts it in the organisation's inbox: a lead, a booking request or a hand-off. Each is an inbox item (inb_…), named after the visitor's conversation.

What an item holds#

  • The visitor's contact details, only what they gave with their consent: name, email, phone, company, role, where they are, when suits them. Never an under-18 visitor's: their details are never taken down.
  • Their consent: purpose (for example callback: contact them about this request) and marketing (whether they agreed to more than that).
  • The request: its kind, a lead's band, a booking's service and time, a hand-off's team, when it is due, and whether the visitor was verified.
  • Its status in your team's hands (new, contacted, …), with who moved it last.

Reading items needs inbox:read; the visitor's own words (what they need, the conversation's summary) need transcripts:read as well.

Following up#

  • GET /v1/inbox/items lists them (for one portal with portalId; updatedAfter with order=asc to sync), and GET /v1/inbox/items/{id} reads one.
  • PATCH /v1/inbox/items/{id} moves it on: { "status": "contacted", "expectedStatus": "new" }. With expectedStatus, a change someone else made first is 409 conflict, never overwritten. The change is recorded as made by your key.

Joining a visitor's call#

When an owner switches on serve.staff_join, the people who look after the inbox can join a visitor's live conversation as themselves: from the console's inbox, from the link in the hand-off email (it works for 15 minutes, once for each person, after signing in), or from your own helpdesk with POST /v1/sessions/{id}/staff-token. The avatar says who joined and what the visitor needs, then goes quiet until the team has left; it never speaks for them, and the visitor sees who joined. handoff.joined and handoff.left record each join and leave, with the member's id.

By webhook#

lead.captured, booking.requested and handoff.requested carry the item's id, the visitor's contact details and consent, so your CRM has them at once; a visitor who asks for a person first and says how to reach them later in the conversation sends handoff.updated with the same reference and their details. lead.updated and booking.updated say when a status changed and who changed it. When a visitor asks to be forgotten, visitor.detail_removed names the fields to delete from your systems too. The visitor's words go only to a webhook made with includeConversation. See Website leads to your CRM.