API and webhooks

Events out, messages in.Your own systems, in step.

Zavis tells your systems when a patient writes, a chat closes or a contact changes. Your own app can send messages into the shared inbox. Available on request, and set up by our team with yours.

Book a demo

Webhooks, out to your URL

message_createdconversation_status_changed
messagescontacts

API, into Zavis

Example events. Each connection is set up with your developer by our team.

Ten events,sent as they happen.

Pick the ones your systems need. Each one reaches your URL as JSON, with its conversation, patient and inbox attached.

When this happensEvent
A message is sent or receivedmessage_created
A message is edited or its status changesmessage_updated
A patient starts a new chatconversation_created
A chat is resolved, reopened or snoozedconversation_status_changed
A chat’s labels, owner or details changeconversation_updated
A new contact is savedcontact_created
A contact’s details changecontact_updated
Someone opens your website chatwebwidget_triggered
Someone starts typing in a chatconversation_typing_on
They stop typingconversation_typing_off
What your URL receivesPOST · JSON
{
  "event": "message_created",
  "id": 48213,
  "message_type": "incoming",
  "content": "Can I move my teeth cleaning to Thursday?",
  "created_at": "2026-10-23T09:41:12Z",
  "sender": {
    "name": "Ayesha Nair",
    "phone_number": "+971500000123"
  },
  "conversation": {
    "id": 7715,
    "channel": "Channel::Whatsapp",
    "status": "open",
    "labels": ["reschedule"]
  },
  "inbox": { "id": 5, "name": "Bright Smile WhatsApp" },
  "account": { "id": 2, "name": "Bright Smile Dental" }
}

An example message_created payload with demo data, shortened.

Set up by our team. One URL per webhook.

Where it lives,inside Zavis.

Our team adds your webhooks. Your developer copies the API inbox identifier and their own access token from Zavis settings.

Zavis Add new webhook settings with ten selectable events and a demo callback URL

Settings · Integrations · Webhooks · added by our team

Profile · Access token

Every user has a personal token to copy or reset.

Personal access token settings, with the token hidden and Copy and Reset controls

Settings · Inboxes · API inbox

Your app’s chat gets its own inbox and identifier.

API inbox identifier and user identity validation settings with keys hidden

Real Zavis screens with demo data. Keys hidden.

Build on the recordyour team already uses.

Some of what your developer can do with it. Tell us what you need, and we check it during setup.

Your app’s chat in the inbox

Patients write from your own app. Your team answers next to WhatsApp and Instagram.

INAPI inbox

New patients in your records

When Zavis saves a contact, your system gets the name, phone and email.

OUTcontact_created

Resolved chats, closed out

When a chat is resolved, mark the enquiry done in your own tools.

OUTconversation_status_changed

Messages from your software

Post a message into a patient’s conversation. WhatsApp’s 24-hour rule still applies.

INPOST messages

Reports in your own tools

Read conversations and contacts into the dashboards your owners already use.

READGET conversations

Labels and owners, in your tools

When a chat’s labels or owner change, your system receives an update.

OUTconversation_updated

On request,set up with your team.

API access isn’t self-serve. Tell us what you’re building, and our team switches on what you need and tests it with your developer.

  1. 01

    Tell us what you’re building

    The systems, the events you need and who is building it.

  2. 02

    We switch it on

    An API inbox and webhooks to your URL, agreed with your developer.

  3. 03

    Your developer connects

    With their personal access token from Zavis, found under Profile.

  4. 04

    We test it together

    We check the first events and messages with your developer before go-live.

Questions fromyour IT team.

Anything else, bring your developer to the demo and ask us directly.

Is the API self-serve?

No. API and webhooks are on request. Our team switches them on for your account and sets them up with your developer.

How does our software sign in?

With a personal access token. Every Zavis user has one under Profile, sent as the api_access_token header. You can reset it at any time.

Which events can we subscribe to?

Ten. New and updated conversations, messages and contacts, a change in a chat’s status, website chat opens, and typing on and off.

Can our patient app’s chat come into Zavis?

Yes, through an API inbox. Its messages sit in the shared inbox with WhatsApp and Instagram, and your team replies from Zavis.

How do we review data access?

Bring your IT lead. We review the data your integration needs, access controls and hosting before go-live.

Who can see what’s connected?

Our team manages webhooks. Admins see additions, changes and removals in the audit log, with who did it and when.

Tell us what you’re building.We’ll set it up with you.

Book a demo