Mensagem de boas-vindas
Lê e grava a mensagem automática que a loja envia quando um cliente cumprimenta o WhatsApp, com até 3 botões.
A boas-vindas é a primeira mensagem que o cliente vê. Ela sai quando o cliente manda apenas uma saudação e a regra de trigger permite. Existem dois textos: um para quem a plataforma reconhece pelo número (pode usar o nome) e outro para visitantes. Os botões levam o cliente direto para comprar, ver pedidos, falar com uma pessoa ou seguir uma instrução sua.
Ler a boas-vindas
/api/v1/vendor/whatsapp-confluence/welcomeSellerRetorna a boas-vindas e o que o editor precisa
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (lojista). Veja Tokens.Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/whatsapp-confluence/welcome" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"config": {
"enabled": true,
"message_known": "Olá, {nome}! Seu número foi reconhecido e você já está logado na *{loja}*. Como posso te ajudar hoje?",
"message_guest": "Olá! Seja bem-vindo(a) à *{loja}*! Como posso te ajudar hoje?",
"trigger": "inactivity",
"inactivity_hours": 24,
"after_exit": true,
"buttons": [
{
"label": "Quero comprar",
"action": "comprar"
},
{
"label": "Meus pedidos",
"action": "pedidos"
},
{
"label": "Ofertas da semana",
"action": "custom",
"text": "Mostre as ofertas da semana e pergunte a categoria preferida do cliente."
}
],
"search_help": "Explique que o cliente pode digitar o nome do produto e ofereça o botão da loja."
},
"defaults": {
"enabled": true,
"message_known": "Olá, {nome}! Seu número foi reconhecido e você já está logado na *{loja}*. Como posso te ajudar hoje?",
"message_guest": "Olá! Seja bem-vindo(a) à *{loja}*! Como posso te ajudar hoje?",
"trigger": "inactivity",
"inactivity_hours": 24,
"after_exit": true,
"buttons": [
{
"label": "Quero comprar",
"action": "comprar"
},
{
"label": "Meus pedidos",
"action": "pedidos"
},
{
"label": "Ofertas da semana",
"action": "custom",
"text": "Mostre as ofertas da semana e pergunte a categoria preferida do cliente."
}
],
"search_help": "Explique que o cliente pode digitar o nome do produto e ofereça o botão da loja."
},
"button_defaults": {
"comprar": "Quero comprar",
"pedidos": "Meus pedidos"
},
"store_name": "Loja Exemplo",
"search": {
"audio": false,
"image": false
},
"actions": {
"comprar": true,
"promocoes": true,
"revender": true,
"pedidos": true,
"atendente": true,
"custom": true
},
"limits": {
"body": 1024,
"buttons": 3,
"label": 20
}
}Campos da resposta
configobjectA boas-vindas salva (ou o padrão, se a loja nunca salvou).
enabledbooleanmessage_knownstring{nome} e {loja}.message_gueststring{loja}.triggerstringfirst_contactinactivityfirst_contact só na primeira conversa do telefone; inactivity na primeira conversa e de novo após inactivity_hours sem contato.inactivity_hoursintegerafter_exitbooleantrue, se o cliente sair da conversa a boas-vindas volta na próxima saudação.buttonsarrayAté 3 botões de resposta rápida.
labelstringactionstringcomprarpromocoesrevenderpedidosatendentecustomtextstringcustom.search_helpstringdefaultsobjectconfig, com os valores de fábrica do segmento da loja. Use para um botão "restaurar padrão".button_defaultsobjectcomprar, promocoes, revender, pedidos, atendente, custom).store_namestring{loja}.searchobjectaudio e image (boolean): se a loja aceita busca por áudio e por foto agora.actionsobjectação: boolean. false indica que a ação não funciona agora (por exemplo atendente sem atendimento humano habilitado).limitsobjectbuttons 3, label 20, body 1024.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token ou token inválido. | {"error":"missing authorization header"} |
| 403 | O usuário não é um seller, ou o seller ainda está em análise de cadastro. | {"error":"vendor_pending_review"} |
Gravar a boas-vindas
Envie o objeto completo, com os mesmos campos de config. Campos que faltam não recebem padrão: trigger ausente é recusado e inactivity_hours ausente conta como 0 e também é recusado. A resposta é a mesma da leitura, já com o que foi salvo.
/api/v1/vendor/whatsapp-confluence/welcomeSellerValida e grava a boas-vindas
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário seller (lojista). Veja Tokens.Content-Typestringobrigatórioapplication/json.Corpo da requisição
enabledbooleanobrigatóriomessage_knownstringobrigatóriomessage_gueststringobrigatóriotriggerstringobrigatóriofirst_contactinactivityinactivity_hoursintegerobrigatórioafter_exitbooleanfalse.buttonsarraylabel (até 20 caracteres, único), action (comprar, promocoes, revender, pedidos, atendente, custom) e text (obrigatório em custom).search_helpstringExemplo de requisição
curl -X PUT "$BASE_URL/api/v1/vendor/whatsapp-confluence/welcome" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"message_known": "Olá, {nome}! Seu número foi reconhecido e você já está logado na *{loja}*. Como posso te ajudar hoje?",
"message_guest": "Olá! Seja bem-vindo(a) à *{loja}*! Como posso te ajudar hoje?",
"trigger": "inactivity",
"inactivity_hours": 24,
"after_exit": true,
"buttons": [
{
"label": "Quero comprar",
"action": "comprar"
},
{
"label": "Meus pedidos",
"action": "pedidos"
},
{
"label": "Ofertas da semana",
"action": "custom",
"text": "Mostre as ofertas da semana e pergunte a categoria preferida do cliente."
}
],
"search_help": "Explique que o cliente pode digitar o nome do produto e ofereça o botão da loja."
}'Resposta
{
"config": {
"enabled": true,
"message_known": "Olá, {nome}! Seu número foi reconhecido e você já está logado na *{loja}*. Como posso te ajudar hoje?",
"message_guest": "Olá! Seja bem-vindo(a) à *{loja}*! Como posso te ajudar hoje?",
"trigger": "inactivity",
"inactivity_hours": 24,
"after_exit": true,
"buttons": [
{
"label": "Quero comprar",
"action": "comprar"
},
{
"label": "Meus pedidos",
"action": "pedidos"
},
{
"label": "Ofertas da semana",
"action": "custom",
"text": "Mostre as ofertas da semana e pergunte a categoria preferida do cliente."
}
],
"search_help": "Explique que o cliente pode digitar o nome do produto e ofereça o botão da loja."
},
"defaults": {
"enabled": true,
"message_known": "Olá, {nome}! Seu número foi reconhecido e você já está logado na *{loja}*. Como posso te ajudar hoje?",
"message_guest": "Olá! Seja bem-vindo(a) à *{loja}*! Como posso te ajudar hoje?",
"trigger": "inactivity",
"inactivity_hours": 24,
"after_exit": true,
"buttons": [
{
"label": "Quero comprar",
"action": "comprar"
},
{
"label": "Meus pedidos",
"action": "pedidos"
},
{
"label": "Ofertas da semana",
"action": "custom",
"text": "Mostre as ofertas da semana e pergunte a categoria preferida do cliente."
}
],
"search_help": "Explique que o cliente pode digitar o nome do produto e ofereça o botão da loja."
},
"button_defaults": {
"comprar": "Quero comprar",
"pedidos": "Meus pedidos"
},
"store_name": "Loja Exemplo",
"search": {
"audio": false,
"image": false
},
"actions": {
"comprar": true,
"promocoes": true,
"revender": true,
"pedidos": true,
"atendente": true,
"custom": true
},
"limits": {
"body": 1024,
"buttons": 3,
"label": 20
}
}Campos da resposta
configobjectA boas-vindas salva (ou o padrão, se a loja nunca salvou).
enabledbooleanmessage_knownstring{nome} e {loja}.message_gueststring{loja}.triggerstringfirst_contactinactivityfirst_contact só na primeira conversa do telefone; inactivity na primeira conversa e de novo após inactivity_hours sem contato.inactivity_hoursintegerafter_exitbooleantrue, se o cliente sair da conversa a boas-vindas volta na próxima saudação.buttonsarrayAté 3 botões de resposta rápida.
labelstringactionstringcomprarpromocoesrevenderpedidosatendentecustomtextstringcustom.search_helpstringdefaultsobjectconfig, com os valores de fábrica do segmento da loja. Use para um botão "restaurar padrão".button_defaultsobjectcomprar, promocoes, revender, pedidos, atendente, custom).store_namestring{loja}.searchobjectaudio e image (boolean): se a loja aceita busca por áudio e por foto agora.actionsobjectação: boolean. false indica que a ação não funciona agora (por exemplo atendente sem atendimento humano habilitado).limitsobjectbuttons 3, label 20, body 1024.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token ou token inválido. | {"error":"missing authorization header"} |
| 403 | Falta o privilégio vendor_settings ou vendor_manage_whatsapp, ou o WhatsApp da loja não é deste seller. | {"error":"store_whatsapp_owner_required"} |
| 400 | Campo inválido. field diz qual e reason o motivo: required, too_long, invalid, out_of_range, too_many, duplicate. | {"error":"invalid_welcome","detail":"buttons.0.label: too_long","field":"buttons.0.label","reason":"too_long"} |
| 400 | Corpo que não é JSON. | {"error":"invalid body"} |