Chats

Nesta seção é apresentada a consulta das interações em tickets gerados para o serviço de SAC, assim como são fornecidas as orientações para criar uma interação e atualizar o status do chat

Na guia Listar SAC é possível observar que o retorno para o endpoint /sac traz informações gerais sobre o ticket, porém nele não constam as interações realizadas.

Para verificar as mensagens presentes em um SAC é necessário utilizar a URI /sac/{code}/chats, que permite a consulta das interações, sejam elas entre seller e marketplace, seller e cliente e cliente e marketplace.

GET - Consultando chats de um pedido

A consulta dos chats para um pedido permite verificar todas as interações que ocorreram para a entrega informada em {code}, conforme endpoint observado a seguir:

https://api.skyhub.com.br/sac/{code}/chats

Nesta consulta será utilizado o código completo do pedido (canal de venda + código numérico).

Para este endpoint serão necessários os headers padronizados na API e descritos abaixo:

Request headers:

KeyValue

X-User-Email

email_de_usuario

X-Api-Key

token_de_integracao de sua conta SkyHub

X-Accountmanager-Key

token_account único de cada Plataforma/ERP

Accept

application/json

Content-Type

application/json

Example request:

curl --location --request GET 'https://api.skyhub.com.br/sac/Lojas Americanas-200123456789001/chats' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'

Response esperado:

200 [Success] - OK: Como resposta haverão as interações para o SAC gerado para o pedido referido na consulta:

{
    "chats": [
        {
            "last_message": "2023-06-06T21:44:44",
            "messages": [
                {
                    "content": "Olá! Produto ainda não foi entregue.",
                    "created_at": "2023-06-06T21:41:56",
                    "part": {
                        "code": 12345678,
                        "email": "john@exemploskyhub.com.br",
                        "name": "João dos Santos",
                        "role": "CUSTOMER"
                    },
                    "replyed_at": null
                }
            ],
            "parts": "CUSTOMER_SELLER",
            "seller_status": "UNREAD",
            "status": "ACTIVE"
        }
    ],
    "next_page": "https://api.skyhub.com.br/sac/Lojas Americanas-200123456789001/chats?cursor=...In0="
}

Através do retorno acima é possível observar que as interações são identificadas no campo parts e consistem em:

  • CUSTOMER_B2W: Interação entre o cliente e a Americanas;

  • B2W_SELLER: Interação entre a Americanas e o seller;

  • CUSTOMER_SELLER: Interação entre o cliente e o seller.

Além do parts, o retorno apresentado na consulta trará o campo role, que será preenchido com a identificação de quem foi responsável pela interação e poderá conter os seguintes valores:

  • CUSTOMER: Cliente;

  • SELLER: A loja que está atuando na solicitação;

  • EMPLOYEE: Agentes do marketplace estão auxiliando no chat "Ajuda Americanas".

POST - Interagindo em um atendimento

Para responder a um ticket, será necessário utilizar os headers padronizados na API para executar uma requisição contendo o método POST para o endpoint abaixo:

https://api.skyhub.com.br/sac/{code}/chats/{parts}

Note que a URI do /sac para a interação requer dois parâmetros obrigatórios - code e parts - sendo:

  • code: Corresponde ao código completo do pedido (canal de venda + código numérico);

  • parts: Responsável pela interação, podendo conter os valores CUSTOMER_SELLER ou B2W_SELLER.

Request body:

{
  "deliveryId": "Número da entrega",
  "identityId": "Documento de identificação", // CNPJ do seller cadastrado na Americanas
  "messageTo": "TO_CUSTOMER", // Destinatário da mensagem, podendo ser Americanas (TO_B2W) ou o cliente final (TO_CUSTOMER)
  "messageType": "TEXT_MESSAGE",
  "orderId": "ID do pedido",
  "message": "Mensagem a ser enviada"
}

Example request:

curl --location --request POST 'https://api.skyhub.com.br/sac/Lojas Americanas-200123456789001/chats/CUSTOMER_SELLER' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
    "deliveryId": "200123456789001",
    "identityId": "12345678901234",
    "messageTo": "TO_CUSTOMER",
    "messageType": "TEXT_MESSAGE",
    "orderId": "02-123456789",
    "message": "Olá! Agradecemos sua compra e nos colocamos à disposição caso precise de algo. Tenha um excelente dia!"
}'

Response esperado:

201 [Success] - Created

É comum ser retornado o status 422 ao tentar interagir em um chat com status PAUSED.

Isto ocorre porquê não é possível interagir em chats contendo este status, uma vez que o PAUSED destina-se a atendimentos que estão sendo mediados pelo marketplace.

PATCH - Atualizando o status do chat

É possível atualizar o status de um chat, seguindo a mesma estrutura vista na interação com o atendimento. Para tal, será necessário utilizar os headers padronizados na API para executar uma requisição contendo o método PATCH para o endpoint abaixo:

https://api.skyhub.com.br/sac/{code}/chats/{parts}

Novamente serão utilizados os parâmetros obrigatórios code e parts, sendo:

  • code: Corresponde ao código completo do pedido (canal de venda + código numérico);

  • parts: Responsável pela interação, podendo conter os valores CUSTOMER_SELLER ou B2W_SELLER.

Request body:

{
    "status": "ARCHIVED"
}

Os valores a serem preenchidos para o status são READ (lido), UNREAD (não lido) e ARCHIVED (arquivado).

Example request:

curl --location --request PATCH 'https://api.skyhub.com.br/sac/Lojas Americanas-200123456789001/chats/CUSTOMER_SELLER' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
    "status": "READ"
}'

Response esperado:

204 [Success] - No content

Last updated