🏷️ 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:

WEBJSNOWEB
Get list of labels
GET /api/{session}/labels
✔️✔️
Get chats by label id
GET /api/{session}/labels/{labelId}/chats
✔️✔️
Get labels by chat id
GET /api/{session}/labels/chats/{chatId}/
✔️✔️
PUT labels to chat
PUT /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.


Endpoints

Get list of 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"
  },
  ...
]

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",
  ...
}