whatsapp-http-api
whatsapp-http-api copied to clipboard
[Feature Request] (Web) Get labels and get contacts by label id
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
+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.
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 labelsGET /api/{session}/labels |
âī¸ | âī¸ |
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.
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",
...
}