Dados de clientes no chat (pedidos, entregas e faturas)
Permita que o assistente de IA responda às perguntas de clientes conectados sobre seus próprios pedidos, com segurança por meio de uma identidade assinada, campos definidos com precisão e dados consultados na sua loja ou importados.
Com os dados de clientes, o assistente de IA responde a perguntas como “Onde está minha encomenda?”, “Minha fatura foi paga?” ou “O que havia no meu último pedido?”, para clientes conectados e somente sobre seus próprios dados. O recurso está disponível nos planos pagos.
Como os dados são protegidos
- O navegador não comprova nada. Nenhum número de pedido ou fatura, endereço de e-mail, informação exibida na página ou escrita no chat concede acesso. Quem pode ver quais dados é determinado exclusivamente por uma identidade assinada pelo seu servidor.
- Um número é apenas um filtro. Se um cliente informar um número de pedido, a busca será feita apenas entre os pedidos desse cliente. Um número de outra pessoa não retorna nada.
- Você decide cada campo. O assistente recebe apenas os campos que você habilita. Todo o restante é descartado ao chegar, mesmo que sua loja o envie.
- Sem armazenamento de dados do nosso lado (consulta). No modo de consulta, o reactive.chat solicita os dados à sua loja a cada pergunta e não armazena a resposta. Na importação, os dados são armazenados de forma criptografada do nosso lado e excluídos em no máximo 90 dias.
- Somente nossas próprias máquinas. Os dados vão apenas para nossos próprios servidores de IA (ou para seu nó de IA próprio), nunca para um serviço de IA de terceiros.
Pré-requisito: verificação de identidade
O assistente usa dados de clientes apenas para visitantes cuja identidade foi confirmada pelo seu servidor. Configure um segredo em Projeto → Verificação de identidade na conta. Ele permanece no seu servidor e nunca deve estar no navegador ou no código de incorporação.
Para cada cliente conectado, seu servidor calcula um hash com prazo de validade (no máximo 24 horas à frente) e o passa ao widget:
$userId = (string) $customer->id;
$exp = time() + 3600;
$hash = hash_hmac('sha256', $userId . '.' . $exp, getenv('RC_IDENT_SECRET'));
echo "<script>ReactiveChat('identify', { userId: " . json_encode($userId)
. ", userHash: " . json_encode($hash) . ", exp: " . $exp . " });</script>";
const crypto = require('crypto');
const exp = Math.floor(Date.now() / 1000) + 3600;
const hash = crypto.createHmac('sha256', process.env.RC_IDENT_SECRET)
.update(String(user.id) + '.' + exp).digest('hex');
// in the template: ReactiveChat('identify', { userId: '<id>', userHash: '<hash>', exp: <exp> });
Um hash sem exp ainda confirma o visitante (por exemplo, para o histórico de conversas), mas não é suficiente para os dados de clientes. Quando você renova o segredo, o anterior continua válido por 24 horas.
Assinar também o e-mail (para agendamentos e integrações baseadas em e-mail). Um email junto ao hash só conta como confirmado se fizer parte da assinatura: userHash = HMAC-SHA256(secret, userId + "." + exp + "." + email) – o endereço exatamente como você o passa para identify. Sem isso, o visitante continua conectado, mas o assistente não agenda um compromisso para esse endereço, e as integrações não o consultam. O formato existente userId + "." + exp continua funcionando sem alterações.
Consulta, importação ou ambos
Em Projeto → Dados de clientes, você escolhe de onde o assistente obtém os dados:
- Consultar sua loja – o reactive.chat chama seu endpoint a cada pergunta pertinente. Os dados permanecem com você. Recomendado.
- Importar pela API – sua loja envia os pedidos de um cliente ao reactive.chat. Útil se sua loja não puder oferecer um endpoint.
- Ambos – primeiro os dados importados; se nada for encontrado, a consulta.
Quais dados o assistente pode receber
Você habilita cada campo individualmente. Os padrões cobrem as perguntas habituais:
bestellung.nummer– número do pedido. Padrão: sempre ativado. Uso: obrigatório – não há pedido sem númerobestellung.datum– data do pedido (YYYY-MM-DD). Padrão: ativado. Uso: “Quando fiz o pedido?”bestellung.status– status do pedido em texto. Padrão: ativado. Uso: “Meu pedido já foi enviado?”bestellung.summe– valor total. Padrão: ativado. Uso: “Quanto paguei?”bestellung.waehrung– moeda (ISO, por exemplo, EUR). Padrão: ativado. Uso: somente junto com o totalpositionen.name– nome do item. Padrão: ativado. Uso: “O que havia no pedido?”positionen.menge– quantidade por item. Padrão: ativado. Uso: “Quantas unidades pedi?”versand.dienst– transportadora. Padrão: ativado. Uso: “Quem entrega a encomenda?”versand.sendungsnummer– código de rastreamento. Padrão: ativado. Uso: “Onde está minha encomenda?”versand.status– status da entrega em texto. Padrão: ativado. Uso: “Está a caminho?”versand.ort– cidade do endereço de entrega. Padrão: desativado. Uso: “Para onde vai minha encomenda?”versand.plz– código postal do endereço de entrega. Padrão: desativado. Uso: como acimarechnung.nummer– número da fatura. Padrão: ativado. Uso: “Qual fatura corresponde ao pedido?”rechnung.status– status do pagamento em texto. Padrão: ativado. Uso: “Minha fatura foi paga?”rechnung.faellig_am– data de vencimento. Padrão: ativado. Uso: “Quando preciso pagar?”
Um campo desativado nunca chega ao assistente: na consulta, ele é descartado; na importação, nem sequer é armazenado. Cidade e código postal só são permitidos quando você os habilita explicitamente, de propósito; rua e nome ficam sempre de fora.
O que nunca é repassado
Estes dados não podem ser habilitados. Se sua loja os enviar, serão descartados:
- rua, número e demais linhas do endereço
- nome do destinatário ou cliente
- endereço de e-mail e número de telefone
- IBAN, BIC, número de conta e dados de cartão
- data de nascimento
- senhas, tokens e chaves de acesso
- números fiscais e de documentos de identidade
Limites
No máximo 10 pedidos por resposta, 20 itens por pedido, textos de até 200 caracteres e resposta completa de até 16 kB. Campos desconhecidos são descartados sem erro.
O endpoint de consulta
O reactive.chat chama seu endpoint com POST:
POST https://shop.your-domain.com/rc-customer-data
Content-Type: application/json
X-RC-Zeit: 1791196400
X-RC-Signatur: <hex(HMAC_SHA256(endpoint secret, X-RC-Zeit + "." + body))>
{"user_id":"4711","anliegen":"bestellung","referenz":"2026-0815","sprache":"en","nonce":"..."}
user_idé o ID do cliente confirmado pela verificação de identidade, nunca algo obtido do chat.anliegenébestellung(pedido),lieferung(entrega),rechnung(fatura),retoure(devolução) outestpara o botão de teste.referenzé um número mencionado pelo cliente ou está vazio. Procure-o apenas entre os pedidos desseuser_id.
Seu endpoint deve:
- verificar a assinatura (comparação em tempo constante) e rejeitar requisições cujo
X-RC-Zeittenha uma diferença superior a 5 minutos, - retornar apenas dados do
user_idinformado, - ser acessível por
httpsna porta 443 em um endereço público, sem redirecionamentos, - responder em até 3 segundos.
Resposta:
{
"bestellungen": [
{
"nummer": "2026-0815", "datum": "2026-09-28", "status": "shipped",
"summe": "49.90", "waehrung": "EUR",
"positionen": [ { "name": "Balance bike blue", "menge": 1 } ],
"versand": { "dienst": "DHL", "sendungsnummer": "00340434...", "status": "out for delivery" },
"rechnung": { "nummer": "R-2026-1201", "status": "paid", "faellig_am": "2026-10-12" }
}
]
}
Um exemplo completo em PHP está disponível na documentação para desenvolvedores (kundendaten-referenz-endpunkt.php).
Com Testar conexão, o reactive.chat chama seu endpoint com o user_id rc-test e o tipo de solicitação test e mostra o resultado. Retorne uma lista vazia ou um pedido de exemplo para esse caso.
Importar pela API
Com uma chave de API que tenha a permissão kundendaten:schreiben:
PUT https://reactive.chat/v1/kundendaten/4711?project_id=123
Authorization: Bearer <API key>
Content-Type: application/json
{"bestellungen":[ ... as above ... ]}
project_id é o número do seu projeto; se seu espaço de trabalho tiver apenas um projeto, você pode omiti-lo. Um PUT substitui todos os pedidos desse ID de cliente (no máximo 50). DELETE /v1/kundendaten/4711?project_id=123 os remove. Os dados importados são armazenados de forma criptografada do nosso lado e excluídos 90 dias após a última importação; por isso, envie as alterações continuamente, por exemplo, a cada mudança de status.
Visitantes que não estão conectados
Se alguém sem identidade confirmada perguntar sobre um pedido, o assistente não consulta nada. Em vez disso, mostra um aviso que você configura em Projeto → Dados de clientes: um texto por idioma e, opcionalmente, um link de login. Como alternativa, transfere a pergunta para sua equipe.
O que é armazenado
- Consulta: a resposta da sua loja é usada apenas para aquela resposta do assistente e não é armazenada, nem na conversa nem na base de conhecimento.
- Importação: dados criptografados, por no máximo 90 dias, excluídos junto com o projeto.
- A resposta do assistente aparece no histórico da conversa como qualquer mensagem. Sua equipe a vê no painel.
Solução de problemas
- O assistente pede que o cliente entre, embora ele já esteja conectado: se
expestiver ausente, tiver expirado ou o hash não corresponder, o visitante não será considerado confirmado. Verifique o segredo, a sequênciauserId + "." + expe o relógio do seu servidor. - O botão de teste informa “endereço não permitido”: o endpoint precisa ser acessível por
httpsem um endereço público; endereços internos e outras portas são rejeitados. - Seu sistema informa um erro de assinatura: a string assinada é
X-RC-Zeit + "." + bodycom o segredo do endpoint, exatamente o corpo recebido, sem recodificação. - Um campo não aparece na resposta do assistente: ele está habilitado em “Quais dados o assistente pode receber”?
Leia mais na documentação
Em detalhes: Endpoint de dados de clientes. Todos os capítulos estão na documentação.
Pēdējoreiz atjaunināts: