Skip to main content
Contacts are automatically created when you send messages. Each contact represents a unique recipient (phone number or email) and stores metadata about their messaging preferences and history.

How Contacts Work

When you send a message to a new recipient, Zavu automatically:
  1. Creates a contact record
  2. Detects the country from the phone number
  3. Determines available messaging channels
  4. Captures the WhatsApp profile name (if available)

Contact Properties

Get Contact by ID

Response

Get Contact by Phone Number

Look up a contact using their phone number:
Use this endpoint to check if a recipient already exists before sending messages, or to retrieve their metadata for personalization.

List Contacts

Retrieve all contacts with pagination:

Filter by Phone Number

phoneNumber is an exact match on the contact’s primary phone number, in E.164. It is not a prefix filter — use search for partial matches.
search matches the contact’s name — both displayName and the WhatsApp profile name — as well as its phone numbers and email addresses. It is case- and accent-insensitive, so jose finds “José”.
A phone number also matches on a trailing fragment, which is how people usually remember them:
Contacts created automatically from an inbound message have no displayName, so they only match on their identifier until you name one with Update Contact.
Search results come back in relevance order, not newest-first. cursor is opaque in both modes — pass back exactly what the previous response returned, and start a fresh pagination run whenever the search term changes.

Filter by Tag

Tags group contacts into an audience you send to more than once. Filter by name:
Repeat the parameter to require every tag, not any of them:
An unknown tag returns 400. A typo that silently matched every contact would be a worse answer than an error.
Tags are created, renamed and assigned from the dashboard. There is no tag CRUD in the API yet.

Update Contact

Update a contact’s default channel or metadata:

Updateable Fields

To change a contact’s phone number or email address, add or remove a channel — identifiers are not updated through this endpoint.
Setting defaultChannel affects smart routing. When you send a message with channel: "auto", Zavu will prefer the contact’s default channel.

Contact Metadata

Store custom data on contacts for personalization and segmentation:
Metadata values must be strings. Store complex data as JSON strings if needed.

Available Channels

The availableChannels array indicates which channels can reach this contact:

Phone Number Introspection

Validate a phone number and check available channels without creating a contact:

Response

Use introspection to validate phone numbers before adding them to broadcasts or CRM systems.

Complete Example

Next Steps

Smart Routing

Learn how defaultChannel affects message routing

Broadcasts

Send messages to many contacts at once

Phone Lookup

Validate and lookup phone numbers

Webhooks

Receive updates when contacts reply

API Reference

Manage contacts programmatically: