whatsapp-http-api icon indicating copy to clipboard operation
whatsapp-http-api copied to clipboard

[Feature Request] (Web) Get labels and get contacts by label id

Open zulfio opened this issue 9 months ago â€ĸ 1 comments

Engine: whatsapp-web.js Additional information: https://docs.wwebjs.dev/Client.html#getLabels

Is your feature request related to a problem? I need this feature to retrieve available labels and get contacts within those labels.

A clear and concise description of what the problem is. We can use this method to get labels. https://docs.wwebjs.dev/Client.html#getLabels And this method to get contacts by label id. https://docs.wwebjs.dev/Client.html#getChatsByLabelId

A clear and concise description of what you want to happen. NEW ENDPOINT: Get Labels: method: GET URL: /labels

Get Contacts by Label ID: method: GET URL: /label/:label_id

zulfio avatar May 06 '24 07:05 zulfio

+1 Will be perfect if you could add label directly to incoming message JSON.

Knowing the labels from incoming message JSON would help separate personal messages from business ones. It would also allow us to better organize customer messages based on their labels.

Also, it gives ability to create diverse workflows with automations.

patron:PLUS

Boffice avatar May 19 '24 15:05 Boffice

I also need it.

patron:PLUS

Himanshu1234556 avatar Jun 24 '24 06:06 Himanshu1234556

+1

patron:PLUS

Himanshu1234556 avatar Jul 17 '24 08:07 Himanshu1234556

Related PR https://github.com/devlikeapro/waha-plus/pull/13

patron:PRO

devlikepro avatar Jul 18 '24 07:07 devlikepro

working on it, will be in 2024.8.1 version!

patron:PRO

devlikepro avatar Jul 26 '24 13:07 devlikepro

Yaaay it's here 2024.8.1

patron:PRO

zulfio avatar Aug 04 '24 03:08 zulfio

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 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": "[email protected]",
    "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": "[email protected]",
    "label": null
  },
  "engine": "NOWEB",
  ...
}

patron:PRO

devlikepro avatar Aug 04 '24 04:08 devlikepro