# Make a direct call

Calling one number from the agent that will speak on it: what has to be true before the button works, the three requests the screen makes, and what each refusal means.

_Takes about five minutes for the first call._

## Before you start

> **Before you start**
>
> Three things have to be true. The agent must be published — a draft has no frozen script version, so there would be nothing fixed for the call to follow. You must be able to state a consent basis for the number and say what evidence sits behind it. And the workspace must have credits: the call is priced and the credits are reserved before the dial, then refunded in full if no call takes place.
>
> [Your saved agents](/wani/agents)

> **Publishing an agent does not call anybody**
>
> Placing a call needs a telephony carrier. Without one the call is still authorised, priced, recorded and traceable to the consent that permitted it — and nothing rings. The screen says so in the provider's own words rather than showing a spinner over a call that cannot happen.

## 1. 1. Record the consent basis

Open a published agent and find "Call a number now" at the bottom of the editor, or use the Call button on the agent's row in the list.

Enter the number with its country code, then state the basis. There are three, and they are not interchangeable. Explicit opt-in means the person affirmatively agreed to receive commercial calls; it is the only basis that permits a promotional call. An existing customer relationship — an order, a booking, an account — carries service calls only. An inbound request means they approached you, through a form, a missed call or an enquiry, and carries service and qualification calls.

Evidence is required and is not a formality: it is what you would produce if a regulator asks. Consent also expires, and the expiry is derived from the basis rather than accepted from the caller, so nobody can grant themselves a longer one.

> **Calling the same number again is not a problem**
>
> Consent is one live record per number. Attesting again updates it and writes a superseded event beside it, so the history survives and the second call does not fail at the first step.

## 2. 2. Queue it against the agent

Pressing Call now puts the call in the same dial queue every campaign, reminder and qualification call uses. There is exactly one helper that creates a queue row, which is what makes the consent check impossible to enter around: the queue row's consent reference cannot be null, so a code path that forgot to check would have nothing to write in the column.

The agent's own purpose is used rather than one the screen supplies. That single field decides whether the national do-not-call scrub runs at all, so an agent built for promotions cannot queue itself as a service call and walk past it.

If the gate says "not now" rather than "not at all" — it is outside the permitted hours where the recipient is — the call is queued as held, with the time it may next be tried shown on screen, and it is not dispatched.

## 3. 3. Dispatch it immediately

A queued call is otherwise picked up by a background sweep that runs once a minute. The panel dispatches it straight away so the call goes out now.

Dispatch is not a formality on top of the queue check. It re-reads the consent, re-runs the do-not-call scrub, re-checks the per-contact attempt cap and re-evaluates the calling window in the recipient's own time zone — because consent lapses, gets revoked and gets superseded between the moment a call is queued and the moment it comes up. Credits are reserved here, before the dial, and the call is then handed to the carrier.

Where no carrier is configured, the call is recorded as awaiting a provider and the reservation is refunded in full. That is the honest end of the line, not a failure: everything a dial needs has been decided and written down, and only the provider is missing.

## 4. 4. What each refusal means

Every refusal is shown with the reason code and the sentence the server wrote, because they need different things done about them.

No consent record: nothing has been recorded for this number. Consent expired: it lapsed, and needs capturing again with fresh evidence. Opted out: the person asked not to be called, which is permanent and is not reversible from this screen. On your do-not-call list: the number is suppressed by this workspace, and removing it is a deliberate act elsewhere. On the national register: it cannot take a promotional call. No fresh do-not-call answer: a promotional call is refused rather than waved through, so scrub the number first. Outside the calling window, or a weekday your policy blocks: the call is held, not lost, and the screen shows when it may next be tried. Attempt cap reached: this contact has had as many attempts as your policy allows in the current window. Time zone unresolved: we cannot tell what time it is where the number is, so give it explicitly rather than let the window be guessed. Not dialable: check the country code and the digits; a number is never silently corrected. Not enough credits: top up, and dispatch the queued call again — it is still in the queue.

## After connecting

- The call appears in Monitor ▸ Call logs with the consent record that authorised it.
- A refusal is written to the compliance block log, so "we never reached this contact" and "we were not allowed to" stay different facts.
- The same three steps, applied to a list instead of one number, are an outbound campaign.

## Next

- [Wani quick start](/docs/wani/guides/quick-start)
- [Connect Vobiz](/docs/wani/guides/connect-vobiz)
- [Record calls with consent](/docs/wani/guides/record-the-call-and-consent)
- [Outbound campaigns](/wani/campaigns)

---

Status: draft
Author: claude-opus-5