🏷️ Labels
You can work with WhatsApp Labels available in WhatsApp Business using the API!
Features
Here’s the list of features that are available by 🏭 Engines:
WEBJS | NOWEB | |
---|---|---|
Get labelsGET /api/{session}/labels | ✔️ | ✔️ |
Create labelPOST /api/{session}/labels | ✔️ | ✔️ |
Update labelPUT /api/{session}/labels/{labelId} | ✔️ | ✔️ |
Delete labelDELETE /api/{session}/labels/{labelId} | ✔️ | ✔️ |
Get chats by label idGET /api/{session}/labels/{labelId}/chats | ✔️ | ✔️ |
Get labels by chat idGET /api/{session}/labels/chats/{chatId}/ | ✔️ | ✔️ |
PUT labels to chatPUT /api/{session}/labels/chats/{chatId}/ | ✔️ | ✔️ |
labels.upsert | ✔️ | |
labels.deleted | ✔️ | |
labels.chat.added | ✔️ | |
labels.chat.deleted | ✔️ |
If you see the feature is not available in the above list, please create a feature request or leave “+1” comment on the existing one.
Label color
You’ll see two color-related fields in the body and response:
color: 1
- internal color number,0-19
values.colorHex: #64c4ff
- is the latest know hex color for the label
⚠️ It’s possible that color
- colorHex
map will be changed so consider using color
value instead
when creating or updating labels.
Here’s the current color map (color
- colorHex
- preview):
0
-#ff9485
-1
-#64c4ff
-2
-#ffd429
-3
-#dfaef0
-4
-#99b6c1
-5
-#55ccb3
-6
-#ff9dff
-7
-#d3a91d
-8
-#6d7cce
-9
-#d7e752
-10
-#00d0e2
-11
-#ffc5c7
-12
-#93ceac
-13
-#f74848
-14
-#00a0f2
-15
-#83e422
-16
-#ffaf04
-17
-#b5ebff
-18
-#9ba6ff
-19
-#9368cf
-
Endpoints
Get labels
You can get a list of labels for the session using the endpoint:
GET /api/{session}/labels
Response:
[
{
"id": "1",
"name": "New Client",
"color": 1,
"colorHex": "#64c4ff"
},
...
]
Create label
POST /api/{session}/labels
Using color
{
"name": "New Client",
"color": 1
}
Using colorHex
{
"name": "New Client",
"colorHex" : "#64c4ff"
}
Update label
PUT /api/{session}/labels/{labelId}
Using color
{
"name": "New Client",
"color": 1
}
Using colorHex
{
"name": "New Client",
"colorHex" : "#64c4ff"
}
Delete label
DELETE /api/{session}/labels/{labelId}
Get chats by label id
You can get a list of chats by label id using the endpoint:
GET /api/{session}/labels/{labelId}/chats
ℹ️ Response right now depends on 🏭 Engine you’re using, the same way as 💬 Chats
Get labels by chat id
You can get a list of labels by chat id using the endpoint:
GET /api/{session}/labels/chats/{chatId}/
Response:
[
{
"id": "1",
"name": "New Client",
"color": 1,
"colorHex": "#64c4ff"
},
...
]
Update labels to chat
PUT /api/{session}/labels/chats/{chatId}/
Upsert label:
👉 You need to provide the full list of labels you want to set to the chat. All other labels will be removed.
{
"labels": [
{
"id": "1"
}
]
}
Remove labels:
{
"labels": []
}
Webhooks
labels.upsert
{
"event": "label.upsert",
"session": "default",
"payload": {
"id": "10",
"name": "Label Name",
"color": 14,
"colorHex": "#00a0f2"
},
"engine": "NOWEB",
...
}
labels.deleted
{
"event": "label.deleted",
"session": "default",
"payload": {
"id": "10",
"name": "",
"color": 14,
"colorHex": "#00a0f2"
},
"engine": "NOWEB",
...
}
labels.chat.added
{
"event": "label.chat.added",
"session": "default",
"payload": {
"labelId": "6",
"chatId": "11111111111@c.us",
"label": null <=== right after scanning QR it can be null.
},
"engine": "NOWEB",
...
}
labels.chat.deleted
{
"event": "label.chat.deleted",
"session": "default",
"payload": {
"labelId": "6",
"chatId": "11111111111@c.us",
"label": null
},
"engine": "NOWEB",
...
}