Vuun Connector

Built on the WhatsApp Business Platform

Everything a notification needs, and nothing it does not.

Four capabilities that map one to one onto what a business does with WhatsApp: connect a number, send, receive, and see what happened.

Connect your own number

Your WhatsApp Business account and phone number stay yours. We link them to your workspace and keep the link healthy.

Embedded Signup

The onboarding flow is Meta's own, inside our panel. No token sharing by e-mail, no manual configuration; the number is connected in minutes.

Numbers already in use

A number that is active in the WhatsApp or WhatsApp Business app can be connected without giving it up, and its recent history is synchronised.

Status you can see

Number status, display-name approval, template approval and the quality rating of each number are shown in the panel, with a warning before Meta acts on a drop.

Send notifications

Transactional messages from approved templates: order updates, delivery notices, appointment reminders, booking changes and one-time codes.

One API call

POST /v1/messages with the number to send from, the recipient, the template and its variables. The answer is a 202 and an id; delivery is reported to your webhook.

Idempotent by design

Every write accepts an Idempotency-Key. A retried request is answered with the original result, so a network hiccup never sends a customer the same code twice.

One-time codes have a lane

Verification codes travel on their own priority queue, are never held back by a plan quota, and are dropped rather than sent when they are too old to be valid.

Templates in the panel

Create and submit message templates, see their approval state and category, and keep sending code unchanged when a template changes.

Sandbox first

A test environment with its own keys where nothing reaches WhatsApp and everything else behaves exactly like production, including webhooks.

Meta's charges, shown

Meta bills messages to your own account. The panel shows an estimate of those charges next to your usage, so the total cost is never a surprise.

Receive every inbound message

The part everybody gets wrong. A reply from your customer is stored before it is acknowledged, then delivered to your system until it arrives.

Signed webhooks

Every delivery carries a timestamp and an HMAC signature over the body. Verifying it is four lines in any language; rotating the secret is a click.

Retries, dead-letter queue, replay

Failed deliveries retry with backoff. After the last attempt the event is kept in a dead-letter queue you can inspect, and replayed one at a time or by filter.

In order, at least once

Events from one customer are delivered in the order they happened, and at least once: each carries an id that does not change across retries, so your handler can be idempotent.

Event log

Every delivery is recorded with the response your endpoint gave, so a dispute about what was delivered is settled from the record rather than from memory.

Circuit breaker

An endpoint that keeps failing is paused rather than hammered, you are told, and deliveries resume from where they stopped when it is back.

Nothing is dropped for being new

A message type Meta introduces that we do not recognise yet is still delivered, with the raw payload, rather than silently discarded.

See what happened

A log, not a dashboard of charts. The value is in the rows.

Message log

Every outbound message with its status over time, the failure reason in plain words and Meta's code beside it, and the delivery attempts of the events it produced.

Usage against your plan

Messages accepted this month against the plan's allowance, with a warning at 80% and a webhook at 100%.

Built for the audit

Every staff access to a workspace is recorded in that workspace's own audit log, visible to the customer, and can be switched off by the customer.

How it is built

  • Each customer's data is isolated at the database level, not only in code.
  • Access tokens live in a secrets vault; the database holds only references.
  • One-time codes are never written to the database or to a log, and are held only for the seconds needed to send them.
  • Phone numbers, template variables and tokens are redacted from the service's application logs at the source.
  • Hosted in a single region in the UK or the European Union, named in your data processing agreement.
  • The public API never calls Meta while you wait: it validates, queues and answers.