Envoie une preuve vérifiable de n'importe quelle action, à n'importe qui, en un lien
Chaque event Recalled embarque un reçu portable : un objet JSON et une URL de page publique. Envoie-le à un client qui conteste une action, attache-le à un ticket support, colle-le dans une réponse Slack, ou laisse ton agent IA le citer. Le destinataire clique, voit l'action, la date et un bandeau vert 'Vérifié', sans compte Recalled ni clé API.
Un user contacte le support : 'Je n'ai jamais supprimé mon projet, c'est votre système.' Ou un client dit qu'un remboursement n'a jamais été traité. Ou ton agent IA dit qu'il a archivé un fichier et le user conteste. Sans preuve partageable, l'équipe support fouille les logs bruts pendant des heures, le client attend, et tu n'as aucun artefact neutre à filer sans tout leaker autour.
Appelle /v1/events/:id/receipt sur n'importe quel event loggué, peu importe qui a agi : un user humain, un membre du support depuis ton back-office, un agent IA, un cron. Tu récupères un reçu JSON avec verification_url et view_url. view_url est une page publique qui masque la PII de l'acteur et la metadata, n'affiche que le verbe d'action, la date et la preuve cryptographique. Le JSON et la page marchent tous les deux sans clé API. Envoie le lien, le destinataire clique, le litige se résout tout seul.
// After any logged action (human or agent),
// fetch a portable, citable receipt for that event.
const { data: receipt } = await recalled.events.getReceipt(eventId);
// receipt.view_url is a public, no-auth page anyone can open.
// Send it to a customer disputing the action, attach it to a
// ticket, paste it in a Slack reply, or let your AI agent cite it.
return res.json({ proofUrl: receipt.view_url });Pourquoi les receipts comptent pour tous tes workflows
- Un seul lien couvre humains et agents
Même endpoint, même forme, que l'acteur soit ton user, ton support, un agent IA ou un cron. Choisis le cas, envoie le lien.
- Vérification publique, sans auth
Le visiteur clique sur l'URL du reçu, la page tape un endpoint sans auth qui recalcule le hash et la signature côté serveur, et affiche un bandeau vert ou rouge. Pas de login, pas de compte.
- PII strippée sur la page publique
Nom, email, IP, user agent de l'acteur et metadata n'apparaissent jamais sur la vue publique. Uniquement l'action, le type d'acteur, la date et les hashes. Safe à partager avec n'importe qui.
- Un seul objet citable
Le reçu est un objet JSON avec view_url et verification_url. Colle-le dans une réponse support, un message Slack, un ticket, un mail, une réponse d'agent. Auto-suffisant.
- Contexte de chaîne préservé
Le reçu porte prev_hash, donc le destinataire sait que l'action s'inscrit dans une chaîne d'events ininterrompue. Tamper-evident, pas seulement signature checkée.
Cas d'usage liés
Ton agent IA agit au nom des users. Recalled enregistre chaque action avec actor.type à 'agent', une chaîne de hash et une signature HMAC, plus l'id de conversation et l'humain qui l'a déclenché. Quand l'agent se trompe, tu as un trail forensique.
Crée un token embed côté serveur, pose le composant React `<RecalledFeed />` dans ton outil support et donne à tes agents les 25 dernières actions du client sans changer d'onglet.
Recalled est hébergé en EU, chiffré au repos, et expose un endpoint d'anonymisation en un appel pour l'Article 17. Shippe un trail d'audit RGPD sans construire ta propre couche de protection des données.
Ton prochain audit log est à 2 minutes
Arrête de bricoler ta propre table de logs. Branche Recalled, émets ton premier event, passe à la suite.