Funcionalidades
Lista e liga ou desliga as funcionalidades do atendimento do seller, e aplica um modelo pronto como conjunto de interruptores.
Uma funcionalidade (capability, ou pack no campo pack) é um recurso do atendimento no WhatsApp que o seller pode ligar ou desligar: a base de conhecimento, a busca por foto, o atacado, as ligações de voz. As funcionalidades mudam os menus do painel e o que o assistente automático oferece ao cliente. Elas não alteram o desenho do fluxo.
Por padrão tudo vem ligado. Desligar é que gera um registro. As funcionalidades de base (core) estão sempre ligadas e não podem ser desligadas.
pack | Nome | Base | Depende de |
|---|---|---|---|
core | Atendimento base | sim | |
catalog | Catálogo e busca | sim | |
cart | Carrinho e checkout | sim | catalog |
orders | Pedidos | sim | |
kb | Base de conhecimento (FAQ) | não | |
ai | Atendimento com IA | sim | |
visual_search | Busca por foto | não | catalog |
b2b | Atacado e B2B | não | |
multi_vendor | Multi-vendedor | não | |
wallet | Carteira e cashback | não | |
wishlist | Lista de desejos | não | |
rfq | Cotação e ofertas | não | |
calls | Ligações (voz) | não |
Listar as funcionalidades
/api/v1/vendor/whatsapp/capabilitiesSellerLista as funcionalidades e o estado de cada uma para o seller
Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/whatsapp/capabilities" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"capabilities": [
{
"pack": "kb",
"name": "Base de Conhecimento (FAQ)",
"description": "O bot responde dúvidas comuns da loja usando a sua base de conhecimento.",
"icon": "BookOpen",
"core": false,
"enabled": true
},
{
"pack": "visual_search",
"name": "Busca por foto",
"description": "O cliente manda uma foto e o bot acha o produto parecido no seu catálogo (precisa do Catálogo).",
"icon": "Image",
"depends_on": "catalog",
"core": false,
"enabled": false
}
]
}Campos da resposta
capabilitiesarraycapabilities[].packstringcapabilities[].namestringcapabilities[].descriptionstringcapabilities[].iconstringcapabilities[].depends_onstringcapabilities[].corebooleantrue para as de base, que ficam sempre ligadas.capabilities[].enabledbooleantrue nas de base.Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token | {"error":"authentication required"} |
| 403 | Token que não é de seller; módulo desligado; sem privilégio | veja Fluxo |
| 404 | Usuário sem cadastro de seller | {"error":"vendor profile not found","code":"vendor_profile_not_found"} |
| 500 | Falha ao ler | {"error":"failed to load capabilities"} |
Ligar ou desligar uma funcionalidade
/api/v1/vendor/whatsapp/capabilities/{pack}SellerLiga ou desliga uma funcionalidade do seller
Parâmetros de caminho
packstringobrigatóriocapabilities[].pack).Corpo da requisição
enabledbooleanobrigatóriotrue liga, false desliga.Exemplo de requisição
curl -X PUT "$BASE_URL/api/v1/vendor/whatsapp/capabilities/visual_search" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enabled": false
}'Resposta
{ "success": true, "pack": "visual_search", "enabled": false }Campos da resposta
successbooleantrue quando a chamada não falhou.packstringpack da URL, como enviado.enabledbooleanErros
| Status | Quando | Corpo |
|---|---|---|
| 401 / 403 | Autenticação, módulo ou privilégio | veja Fluxo |
| 404 | Usuário sem cadastro de seller | {"error":"vendor profile not found","code":"vendor_profile_not_found"} |
| 500 | Falha ao gravar | {"error":"failed to update"} |
Aplicar um modelo como conjunto
/api/v1/vendor/whatsapp/capabilities/presetSellerLiga as funcionalidades de um modelo pronto e desliga as demais
Atalho para configurar vários interruptores de uma vez a partir de um modelo da lista de Modelos prontos. Liga as funcionalidades que o modelo usa e desliga todas as outras que não são de base. Não instala nem troca nenhum fluxo.
Corpo da requisição
slugstringobrigatóriouniversal.b2b).Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/whatsapp/capabilities/preset" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"slug": "universal.b2b"
}'Resposta
{
"capabilities": [
{ "pack": "kb", "name": "Base de Conhecimento (FAQ)", "core": false, "enabled": true },
{ "pack": "b2b", "name": "Atacado / B2B", "core": false, "enabled": true },
{ "pack": "wallet", "name": "Carteira / Cashback", "core": false, "enabled": false }
],
"applied": "universal.b2b"
}Campos da resposta
capabilitiesarrayappliedstringErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Falta slug ou o corpo é inválido | {"error":"slug obrigatório"} |
| 400 | Modelo inexistente | {"error":"playbook não encontrado: x"} |
| 401 / 403 | Autenticação, módulo ou privilégio | veja Fluxo |