Ir para o conteúdo

Introdução

O que é

Este documento descreve o conjunto de APIs chamado de "Chat com Cliente", qual suporta a funcionalidade para a interação de forma privada entre vendedores e os clientes dos canais de venda.

Essa ferramenta visa fornecer aos potenciais compradores (clientes) informações adicionais sobre os produtos, ajudando-os a tomar decisões mais assertivas e reduzindo as incertezas no processo de compra.

A partir do momento que o cliente abre um Chat sobre o produto com o vendedor, este canal de comunicação fica aberto para a troca de mensagens, mesmo após a efetivação de um pedido pelo cliente.

Os vendedores são responsáveis pela publicação dos produtos que serão comercializados pelos canais de vendas. Os canais de venda são as plataformas de e-commerce que ofertam e realizam as vendas dos produtos como o Magalu, Netshoes e outros.

A imagem abaixo mostra o escopo (caixa pontilhada) que será abordado.

Atualmente estará disponível apenas o canal de vendas "Magalu - Magazine Luiza, logo a funcionalidade estará disponível apenas para os vendedores que contratarem o serviço de Marketplace do Magalu. No futuro novos canais de venda poderão ser adicionados.

Se você já possui integração com o Magalu através das APIs antigas (Integracommerce), seu client já possui os scopes para Perguntas & Respostas. Porém, ainda é necessário o consentimento dos usuários, para isso implemente o processo de autenticação e autorização.

Se você não possui integração com as APIs antigas, basta seguir o processo de solicitação de criação de aplicação.

Desenho componentes do sistema

Escopos necessários

Para a utilização das APIs os seguintes escopos poderão ser necessários:

Valor Descrição
services:conversations-seller:read Permite a utilização das APIs de leitura.
services:conversations-seller:write Permite a utilização das APIs de escrita/atualização.

Domínios da soluçāo

Entidade Descrição
Conversation Objeto no qual contém as informações da conversa iniciada pelo cliente.
Message Mensagem enviada pelo cliente ou pelo seller.
MinimalMessage Informações básicas de uma mensagem.
Owner Informação do usuário e enviou a mensagem. Utilizado para identificação dos responsáveis.
User Informações detalhadas sobre os usuários envolvidos na conversa (Seller ou Cliente).
Custom Field Mapa de valores dinâmicos no qual pode ser utilizado para moldar as necessidades de negócios.
BlockRule Detalhes do bloqueio efetuado em uma moderação.
Moderation Todas as mensagens são submetidas a moderação, eliminando assim a possibilidade de mensagens ofensivas e tentativas de fraudes por meios de engenharia social.
WebhookEvent Evento a ser enviado via webhook.

Estrutúra básica dos campos

Conversation

Campo Tipo Descrição
id String Identificador único da conversa.
display_name String Descrição da conversa.
owner Owner Responsável pela conversa. Normalmente faz referência ao to_user.
from_user User Usuário que originou a conversa.
to_user User Destinatanatário.
unread_from_count Inteiro Quantidade de mensagens não lidas pelo criador da conversa (cliente).
unread_to_count Inteiro Quantidade de mensagens não lidas pelo destinatário (seller).
status String Status da conversa, pode assumir os valores: OPENED, CLOSED
last_message MinimalMessage Descrição referente ao objeto de dúvida.
is_new_to Boleano Indica se a conversa é nova para o destinatário.
tags Lista Informações de contexto sobre o objeto da conversa.
created_at String Data/hora (ISO 8601, ex: yyyy-mm-ddthh-mm-ssz) de criação do registro.
updated_at String Data/hora (ISO 8601) da última alteração do registro.

Message

Campo Tipo Descrição
id String Identificador único da mensagem.
external_id String Identificador externo da mensagem.
from_user User Usuário que originou a mensagem.
to_user User Destinatanatário.
content String Texto da mensagem.
atttachments Lista de URLs Lista de URLs para anexos.
read_by Lista de Strings Lista de IDs de usuários que leram a mensagem.
moderation Moderation Objeto que indica o status da moderação. Pode indicar que a mensagem enviada foi aprovada ou não.
when_at String Data/hora (ISO 8601) de quanto a mensagem foi enviada.
custom_fields Lista de CustomField Campos adicionais no formato {“name”: “field name”, “value”: “field value”}.
metadata Dicionário Metadados do sistema de origem.

MinimalMessage

Campo Tipo Descrição
id String Identificador único da mensagem.
external_id String Identificador externo da mensagem.
from_user User Usuário que originou a mensagem.
content String Texto da mensagem.
when_at String Data/hora (ISO 8601) de quanto a mensagem foi enviada.

Owner

Campo Tipo Descrição
name String Nome e sobrenome do usuário que fez a interação.
external_id String Identificador único do usuário no sistema que originou o evento.

User

Campo Tipo Descrição
id String Identificador único do usuário.
external_id String Identificador externo do usuário. (ref_key)
full_name String Nome completo do usuário/seller.
full_name_normalized String Nome completo sem espaços e caracteres especiais.
type String Tipo do usuário, pode assumir os valores: CUSTOMER e SELLER.
owner Owner Preenchido na criação de uma mensagem pelo seller.

CustomField

Campo Tipo Descrição
name String Nome do campo. (max 100 caracteres)
value String Valor do campo. (max 1500 caracteres)

BlockRule

Campo Tipo Descrição
reason String Motivo do bloqueio.
tags Lista de Strings Tags registradas para o bloqueio, por exemplo: CPF, PIX, email.

Moderation

Campo Tipo Descrição
status String Nome e sobrenome do usuário que fez a interação. Pode assumir um dos valores: NOT_MODERATED, WAITING_MODERATION, REJECTED, APPROVED.
when_at String Data/hora (ISO 8601) de quanto a moderação foi registrada.
block_rules Lista de BlockRule Detalhes das regras bloqueadas, caso o status seja REJECTED.

WebhookEvent

Campo Tipo Descrição
data.domain String Domínio que gerou o evento, pode assumir os valores: conversation e message.
data.status String Status do Evento: NEW, UPDATED.
detail.conversation_id String Identificador da conversa que gerou o evento. Também é preenchido para eventos de mensagem, já que uma mensagem pertence a uma conversa.
detail.message_id String Identificador da mensagem que gerou o evento. Preenchido somente para eventos originados por mensagens.