1. Home
  2. Features
  3. API & Integrations

Connect wavadesk to the rest of your stack

Support does not live in isolation. The API and webhooks let your own systems read conversations, create contacts, send verification codes and react to events as they happen.

7-day free trial No card at signup From $19 a month

What integration is for

The value of a support tool multiplies when it knows things your business already knows. An agent answering "where is my order" should not be looking up an order number in a second system — that lookup should already be on screen.

Integration goes both ways. You push context in, so agents and the AI can use it. And you pull events out, so your own systems react when something happens in support.

REST API

Read and write conversations, contacts, tags and messages from your own backend.

Webhooks

Receive an event when a conversation is created, claimed, replied to, resolved or escalated.

OTP API

Send and verify one-time passcodes over WhatsApp from your application.

Reporting export

Pull the metrics behind the dashboard for your own BI or data warehouse.

Authentication

API access uses a workspace-scoped bearer token, created in settings and revocable at any time. Tokens are scoped to a workspace, so a token from one tenant cannot read another.

Requests are made over HTTPS to your workspace endpoint, with the token in an Authorization header. There is no separate signing step for REST calls; webhook deliveries are signed so you can verify they came from us.

  • Bearer token per workspace, created and revoked in settings
  • Scoped so a token cannot read outside its workspace
  • Signed webhook payloads with a shared secret for verification
  • Rate limited per token, with limits returned in response headers
  • Every API action recorded in the same audit trail as human actions
Treat tokens as credentials

A workspace token can read your conversation history. Keep it server-side — never in front-end code or a mobile app binary.

What the REST API covers

The API is organised around the same objects as the interface, so what you can see you can generally read and write.

ResourceWhat you can do
ConversationsList, filter by channel or status, read messages, create, claim, assign, resolve
MessagesSend into a conversation, read history, attach internal notes
ContactsCreate, update, look up by phone or email, merge, attach custom fields
TagsApply and remove, list by conversation or contact
Teams and agentsList, read availability, read assignment
ReportsPull the metrics behind the dashboard for a period
OTPSend a passcode, verify a passcode

The most common first integration

Pushing customer context onto the contact record. If your system knows a customer's order history, plan or account status, writing it as custom fields on the contact means the agent sees it in the context panel without leaving the conversation.

Customer context panel showing contact details, tags, status and recent orders
The context panel is where pushed custom fields appear, so an agent has your business data in front of them while replying.

Webhooks and events

Webhooks let your systems react to support activity rather than polling for it. You register an endpoint, choose the events you care about, and we POST a signed payload when they happen.

Events you can subscribe to

  • conversation.created — a new conversation arrived on any channel
  • conversation.claimed — an agent took ownership
  • conversation.resolved — marked resolved, with the resolving agent
  • conversation.escalated — the AI handed over, with the trigger
  • message.received — an inbound customer message
  • message.sent — an outbound reply, human or AI
  • contact.created and contact.updated
  • otp.verified — a passcode was successfully verified

Practical uses

Three integrations cover most of what teams build. Creating a CRM activity on conversation.resolved, so support history appears against the account. Alerting a Slack channel on conversation.escalated for named accounts. Unlocking a feature in your product on otp.verified.

Deliveries are retried

A webhook that fails is retried with backoff. Respond 2xx quickly and do the work asynchronously — long processing inside the request will trip the timeout and cause duplicate deliveries.

The OTP endpoints

Two calls, and no state to keep on your side. The passcode is generated, hashed and stored by us and is never returned to you.

1
POST to send

With the phone number and an optional purpose label such as login or signup. Returns a request identifier, not the code.

2
Customer receives it on WhatsApp

From your connected business number.

3
POST to verify

With the number and the code the customer entered. Returns pass or fail.

4
Handle the failure reason

Failures come back distinguished: incorrect, expired, or attempt limit exceeded — so you can show the right message.

Expiry, attempt limits and per-number rate limiting are enforced server-side. Full detail in WhatsApp OTP and verification.

Embedding and the widget

The live chat widget is itself an integration point. Beyond the install snippet, you can identify the visitor from your own application so the conversation is linked to a known contact rather than an anonymous session.

Calling the identify method with your user's details on page load means the agent sees a named customer with full cross-channel history instead of an anonymous visitor.

Live chat settings screen with the install snippet and configuration options
The install snippet and widget configuration live in the same settings screen, alongside a live preview.

See Live chat widget for installation and branding.

Limits and versioning

Two things you want to know before building against any API: how hard you can push it, and whether it will change under you.

  • Rate limits per token, with remaining quota returned in response headers
  • 429 responses include a retry-after value
  • Breaking changes ship behind a version, and existing versions remain supported
  • Additive changes — new fields and new event types — can arrive without a version bump, so parse defensively
  • Webhook payloads are versioned alongside the API

API access is included on the Scale plan. See pricing.

Frequently asked questions

Which plan includes API access?

API access, webhooks and the OTP endpoints are included on the Scale plan. Other plans can add the OTP module separately.

How do I authenticate?

With a workspace-scoped bearer token created in settings. Tokens are revocable, scoped to a single workspace, and should be kept server-side — never in front-end code.

Can I push my own customer data into wavadesk?

Yes, and it is usually the first integration worth building. Writing custom fields onto the contact record means agents see your order history, plan or account status in the context panel while replying.

What events can webhooks send?

Conversation created, claimed, resolved and escalated; message received and sent; contact created and updated; and OTP verified. Payloads are signed so you can verify them.

What happens if my webhook endpoint is down?

Deliveries are retried with backoff. Respond 2xx quickly and process asynchronously — slow handling inside the request will time out and cause duplicate deliveries.

Will the API change without warning?

Breaking changes ship behind a version and existing versions stay supported. Additive changes such as new fields or event types can arrive without a version bump, so parse payloads defensively.

Put your WhatsApp support on rails

One shared inbox, claim locking so nobody double-replies, and an AI agent that answers from your own knowledge base.