CRM tools
Search, create and update contacts, manage unsubscribes and organise people with tags.
search_contacts#Search contacts
WhatsApp CRM contacts matching name or phone text, status, tags and chat activity. Returns names, phones, tags and last-chat time. Use detailed to get contact_id and tag_ids for follow-up calls. Narrow with filters instead of paging far. For an exact phone lookup use find_contact_by_phone.
Parameters (9)›
querystring
Free text matched against name and phone.statuses"okay" | "duplicate" | "issue" | "unsubscribed"[]
Filter by derived status.unsubscribed= on the unsubscribe list.tag_idsstring[]
Only contacts carrying ALL of these tags.chat_activity"all" | "chatted" | "never"
chatted= has a WhatsApp chat,never= no inbound message yet.Default"all"sort"created_at" | "updated_at" | "first_name" | "last_name" | "status" | "chat_activity"
No extra notes.Default"created_at"order"asc" | "desc"
No extra notes.Default"desc"cursorstring
next_cursorfrom the previous page; omit for the first page. Keep the other filters the same; the page size stays as on the first page.page_sizeinteger
Rows per page, 1-100. Default 20.Default20response_format"concise" | "detailed"
concisereturns the fields a person reads;detailedadds ids and raw fields for follow-up calls.Default"concise"
find_contact_by_phone#Find a contact by phone
Normalises a phone number and returns the WhatsApp CRM contact that has it, or contact_id: null. Call before create_contact to avoid PHONE_DUPLICATE.
Parameters (2)›
country_coderequiredstring
Country calling code digits only, e.g.91for India.phonerequiredstring
Local number or full E.164 without the plus sign.
get_contact#Get one contact
One WhatsApp CRM contact: name, phone, status, unsubscribe state, tags, custom attributes and chat activity. To look a contact up by phone use find_contact_by_phone.
Parameters (1)›
contact_idrequiredstring
Acontact_idfromsearch_contactsorfind_contact_by_phone.
create_contact#Create a contact
Adds one contact to the WhatsApp CRM. Needs at least one tag: ids from list_tags, or make one with create_tag. For several contacts use bulk_create_contacts. Fails with PHONE_DUPLICATE, carrying existing_contact_id, when the number exists.
Parameters (6)›
first_namerequiredstring
No extra notes.last_namestring
No extra notes.country_coderequiredstring
Country calling code digits only, e.g.91for India.phonerequiredstring
Local number or full E.164 without the plus sign.tag_idsrequiredstring[]
tag_idvalues fromlist_tags.attributesobject
Custom attribute values keyed by attribute key; list valid keys withlist_contact_attributes.
bulk_create_contacts#Create up to 100 contacts
Adds up to 100 contacts to the WhatsApp CRM in one call. Each row is checked on its own; the result lists created rows and failed rows with reasons, so one duplicate does not stop the rest. Same tag rule as create_contact.
Parameters (2)›
tag_idsrequiredstring[]
Tags applied to every created contact:tag_idvalues fromlist_tags.contactsrequiredobject[]
No extra notes.
update_contact#Update a contact
Changes name, phone, tags or custom attributes of one WhatsApp CRM contact; omitted fields stay. tag_ids replaces the whole tag set; to add or remove single tags use add_tags or remove_tags. To stop messages use unsubscribe_contact.
Parameters (7)›
contact_idrequiredstring
Acontact_idfromsearch_contactsorfind_contact_by_phone.first_namestring
No extra notes.last_namestring
No extra notes.country_codestring
Country calling code digits only, e.g.91for India.phonestring
Local number or full E.164 without the plus sign.tag_idsstring[]
Replaces the whole tag set:tag_idvalues fromlist_tags, at least one.attributesobject
Custom attribute values keyed by attribute key; list valid keys withlist_contact_attributes.
unsubscribe_contact#Unsubscribe a contact
Stops all WhatsApp messages to one contact: broadcasts skip them and single sends refuse them. Use when a customer asks to stop. Only a person in the dashboard can subscribe them again. Safe to repeat.
Parameters (2)›
contact_idrequiredstring
Acontact_idfromsearch_contactsorfind_contact_by_phone.reasonstring
Why they asked to stop; kept in the audit trail.
delete_contact#Delete a contact
Removes one contact from the WhatsApp CRM and frees its plan slot. Tags are unlinked; chat history stays. Cannot be undone. To stop messaging someone use unsubscribe_contact instead. Owner or admin keys only.
Parameters (1)›
contact_idrequiredstring
Acontact_idfromsearch_contactsorfind_contact_by_phone.
list_tags#List tags
Every WhatsApp CRM contact tag with its tag_id and how many contacts carry it. Tags group contacts for search_contacts and create_broadcast.
Takes no parameters.
create_tag#Create a tag
Creates a WhatsApp CRM contact tag. If the name exists, returns that tag_id with already_existed: true, so it is safe to repeat.
Parameters (1)›
namerequiredstring
The tag name, e.g.VIP.
rename_tag#Rename a tag
Changes a WhatsApp CRM tag's name everywhere. Fails with DUPLICATE_TAG, carrying existing_tag_id, when another tag has that name.
Parameters (2)›
tag_idrequiredstring
Atag_idfromlist_tags.namerequiredstring
The new name.
delete_tag#Delete a tag
Deletes a WhatsApp CRM tag and removes it from every contact. Refuses with TAG_DELETE_WOULD_ORPHAN when some contacts have only this tag; give them another with add_tags first. Owner or admin keys only.
Parameters (1)›
tag_idrequiredstring
Atag_idfromlist_tags.
add_tags#Add tags to contacts
Adds tags to WhatsApp CRM contacts, keeping the tags they already have. Up to 20 tags and 500 contacts per call. Safe to repeat.
Parameters (2)›
tag_idsrequiredstring[]
tag_idvalues fromlist_tags.contact_idsrequiredstring[]
contact_idvalues fromsearch_contacts.
remove_tags#Remove tags from contacts
Removes tags from WhatsApp CRM contacts. A contact always keeps at least one tag: refuses with CANNOT_UNASSIGN_LAST_TAG and lists the contacts affected.
Parameters (2)›
tag_idsrequiredstring[]
tag_idvalues fromlist_tags.contact_idsrequiredstring[]
contact_idvalues fromsearch_contacts.
list_contact_attributes#List custom contact fields
Custom fields WhatsApp CRM contacts can carry: key, label, type. Use the key values in the attributes object of create_contact and update_contact.
Takes no parameters.
create_contact_attribute#Create a custom contact field
Adds a custom field to every WhatsApp CRM contact, e.g. "City" (text) or "Renewal date" (date). The key is generated from the label; read it with list_contact_attributes. Owner or admin keys only.
Parameters (2)›
labelrequiredstring
The field name people see.typerequired"text" | "number" | "date" | "boolean"
booleanis a yes/no field.
rename_contact_attribute#Rename a custom contact field
Changes the label of a custom WhatsApp CRM contact field. Its key, type and saved values stay. Owner or admin keys only.
Parameters (2)›
attribute_idrequiredstring
Anattribute_idfromlist_contact_attributes.labelrequiredstring
The new label.
delete_contact_attribute#Delete a custom contact field
Removes a custom WhatsApp CRM contact field. Saved values stay on contacts but are no longer shown. Cannot be undone. Owner or admin keys only.
Parameters (1)›
attribute_idrequiredstring
Anattribute_idfromlist_contact_attributes.