Aller au contenu principal

Payload de résultat d'une analyse

info

Golem.ai devient Miralia.ai !

L'API est désormais disponible sur le domaine api.console.miralia.ai au lieu de api.console.golem.ai, mais vous pouvez continuer à utiliser le domaine api.console.golem.ai pour les requêtes API.

Le décomissionnement de l'URL historique api.console.golem.ai est planifié pour Décembre 2026.

Introduction

Quand une analyse est terminée, Miralia.ai vous envoie un payload JSON :

Ce guide décrit tous les champs que ce payload peut contenir. La présence des champs optionnels dépend de la configuration de votre environnement (réglée avec les équipes Miralia.ai). Si un champ documenté ici est absent de votre payload, il est généralement désactivé dans la configuration de sortie (Output).

La référence OpenAPI complète est disponible ici : result.

Exemple complet

Exemple d'une analyse terminée avec la plupart des champs activés. Chez vous, certains champs optionnels peuvent être absents selon la configuration de l'environnement.

Réponse HTTP (GET /analyses/{analysisId}/result)

{
"status": "FINISHED",
"result": {
"analysisId": "25e625ab-7d91-1234-8a4b-09f52c07ecb9",
"filename": "mail-0123456.eml",
"feedbackURL": "https://api.console.miralia.ai/analyses/25e625ab-7d91-1234-8a4b-09f52c07ecb9/feedback",
"rpaActions": {
"UploadDocuments": ["UploadBody", "UploadAttachments"]
},
"metadata": {
"inbox": "support@example.com",
"ticket_id": "123456"
},
"categories": ["Convocation"],
"attachmentsCategories": {
"file.txt": ["Autre"],
"factures_groupees | pages=[1-2].pdf": ["Facture"],
"factures_groupees | pages=[3-4].pdf": ["Facture"],
"CNI.pdf": ["CNI"],
"CNI Recto.png": ["CNI recto"],
"CNI Verso.png": ["CNI verso"]
},
"extractedData": {
"message": {
"date_rdv": { "jour": "24", "mois": "05", "annee": "2025" },
"heure_rdv": { "heure": "15", "minute": "00" },
"reference": "6754679"
},
"attachments": {
"factures_groupees | pages=[1-2].pdf": { "amount": "120.00" },
"factures_groupees | pages=[3-4].pdf": { "amount": "95.50" }
}
},
"fileOperations": [
{
"type": "merge",
"id": "6f1a2ef4-2ac8-4b6b-9a4e-3e7c9f1b2b31",
"filename": "CNI.pdf",
"sources": [
{ "id": "1c9a2f52-1a3f-4e3a-8b9d-6b6a8b6a8b6a", "filename": "CNI Recto.png" },
{ "id": "2d0b3f63-2b4f-5f4b-9c0e-7c7b9c7b9c7b", "filename": "CNI Verso.png" }
]
},
{
"type": "split",
"id": "3e1c4f74-3c5f-6a5c-ad1f-8d8c0d8c0d8c",
"filename": "factures_groupees | pages=[1-2].pdf",
"sources": [
{ "id": "9f8e7d6c-5b4a-3928-4938-0f0e0d0c0b0a", "filename": "factures_groupees.pdf" }
]
},
{
"type": "split",
"id": "4f2d5f85-4d6f-7b6d-be2f-9e9d1e9d1e9d",
"filename": "factures_groupees | pages=[3-4].pdf",
"sources": [
{ "id": "9f8e7d6c-5b4a-3928-4938-0f0e0d0c0b0a", "filename": "factures_groupees.pdf" }
]
}
],
"messageHeader": {
"From": "patient@example.com",
"To": "support@example.com",
"Subject": "Confirmation de rendez-vous",
"Date": "Mon, 20 Jul 2026 10:00:00 +0000"
},
"messageHTMLBodies": [
"<!DOCTYPE html><html><body><p>Bonjour, je confirme mon rendez-vous.</p></body></html>"
],
"attachments": [
{ "name": "factures_groupees.pdf", "data": "JVBERi0xLjQKJc..." },
{ "name": "factures_groupees | pages=[1-2].pdf", "data": "JVBERi0xLjQKJc..." },
{ "name": "factures_groupees | pages=[3-4].pdf", "data": "JVBERi0xLjQKJc..." },
{ "name": "CNI Recto.png", "data": "iVBORw0KGgoAAAANSUhEUg..." },
{ "name": "CNI Verso.png", "data": "iVBORw0KGgoAAAANSUhEUg..." }
],
"replyTemplate": "Bonjour,\n\nNous confirmons votre rendez-vous du 24/05/2025 à 15h00.\n\nCordialement"
}
}

Corps du webhook

Le webhook envoie directement l'objet contenu dans result (sans l'enveloppe status) :

{
"analysisId": "25e625ab-7d91-1234-8a4b-09f52c07ecb9",
"filename": "mail-0123456.eml",
"feedbackURL": "https://api.console.miralia.ai/analyses/25e625ab-7d91-1234-8a4b-09f52c07ecb9/feedback",
"rpaActions": {
"UploadDocuments": ["UploadBody", "UploadAttachments"]
},
"metadata": {
"inbox": "support@example.com",
"ticket_id": "123456"
},
"categories": ["Convocation"],
"attachmentsCategories": {
"file.txt": ["Autre"],
"factures_groupees | pages=[1-2].pdf": ["Facture"],
"factures_groupees | pages=[3-4].pdf": ["Facture"],
"CNI.pdf": ["CNI"],
"CNI Recto.png": ["CNI recto"],
"CNI Verso.png": ["CNI verso"]
},
"extractedData": {
"message": {
"date_rdv": { "jour": "24", "mois": "05", "annee": "2025" },
"heure_rdv": { "heure": "15", "minute": "00" },
"reference": "6754679"
},
"attachments": {
"factures_groupees | pages=[1-2].pdf": { "amount": "120.00" },
"factures_groupees | pages=[3-4].pdf": { "amount": "95.50" }
}
},
"fileOperations": [
{
"type": "merge",
"id": "6f1a2ef4-2ac8-4b6b-9a4e-3e7c9f1b2b31",
"filename": "CNI.pdf",
"sources": [
{ "id": "1c9a2f52-1a3f-4e3a-8b9d-6b6a8b6a8b6a", "filename": "CNI Recto.png" },
{ "id": "2d0b3f63-2b4f-5f4b-9c0e-7c7b9c7b9c7b", "filename": "CNI Verso.png" }
]
},
{
"type": "split",
"id": "3e1c4f74-3c5f-6a5c-ad1f-8d8c0d8c0d8c",
"filename": "factures_groupees | pages=[1-2].pdf",
"sources": [
{ "id": "9f8e7d6c-5b4a-3928-4938-0f0e0d0c0b0a", "filename": "factures_groupees.pdf" }
]
},
{
"type": "split",
"id": "4f2d5f85-4d6f-7b6d-be2f-9e9d1e9d1e9d",
"filename": "factures_groupees | pages=[3-4].pdf",
"sources": [
{ "id": "9f8e7d6c-5b4a-3928-4938-0f0e0d0c0b0a", "filename": "factures_groupees.pdf" }
]
}
]
}

Champs toujours présents

ChampTypeDescription
analysisIdstring (UUID)Identifiant de l'analyse
feedbackURLstring (URI)URL pour envoyer un feedback / une correction sur cette analyse
rpaActionsobjectActions RPA déclenchées, groupées par moteur. Peut être {}

rpaActions

{
"MonMoteurConsolidation": ["UploadBody", "UploadAttachments"]
}

Forme : { "<nomDuMoteur>": ["<nomAction>", ...] }.

Champs optionnels

filename

Nom du fichier / email principal analysé.

"filename": "mail-0123456.eml"

metadata

Métadonnées associées à l'analyse (celles envoyées à la création, éventuellement enrichies). Objet plat : clés → scalaires (string, number, boolean, ou null). Pas d'objets / tableaux imbriqués.

"metadata": {
"inbox": "support@example.com",
"ticket_id": "123456"
}

categories

Catégories détectées sur le corps du message. Souvent vide ou un seul élément.

"categories": ["Convocation"]

attachmentsCategories

Catégories par nom de pièce jointe.

"attachmentsCategories": {
"file.txt": ["Autre"],
"image.jpg": ["Facture"]
}

extractedData

Données structurées extraites. Les clés exactes dépendent de votre configuration d'extraction. Forme courante :

"extractedData": {
"message": {
"reference": "6754679",
"date_rdv": { "jour": "24", "mois": "05", "annee": "2025" }
},
"attachments": {
"invoice.pdf": { "amount": "120.00" }
}
}

messageHTMLBodies

Corps HTML du message (si activé).

"messageHTMLBodies": ["<!DOCTYPE html><html>...</html>"]

messageHeader

En-têtes email (si activés). Clés fréquentes : From, To, Cc, Bcc, Subject, Date (RFC 2822), Message-ID, In-Reply-To. D'autres en-têtes source peuvent apparaître.

"messageHeader": {
"From": "sender@example.com",
"To": "recipient@example.com",
"Subject": "Confirmation de rendez-vous",
"Date": "Mon, 20 Jul 2026 10:00:00 +0000"
}

attachments

Pièces jointes (si activé). Dans les webhooks, chaque entrée contient généralement name et data (contenu en base64).

"attachments": [
{
"name": "invoice.pdf",
"data": "JVBERi0xLjQKJc..."
}
]

fileOperations

info

🚧 Bientôt disponible — ce champ n'est pas encore disponible.

Object décrivant comment les documents déliassés ou fusionnés pendant le traitement de l'analyse se rattachent à ce qui a été reçu à l'origine. Absent ou vide si aucun découpage ni fusion n'a eu lieu.

  • type: "split" : une entrée par document résultant. id identifie ce document, et sources contient l'unique document d'origine dont il a été extrait.
  • type: "merge" : une entrée par document fusionné. id identifie le document fusionné, et sources contient les deux (ou plus) documents d'origine qui ont été combinés.

L'id de n'importe quelle entrée, ainsi que celui de n'importe laquelle de ses sources, peut être utilisé comme fileId dans GET /analyses/{analysisId}/files/{fileId}/download (également bientôt disponible) pour télécharger le contenu brut de ce document.

"fileOperations": [
{
"type": "merge",
"id": "6f1a2ef4-2ac8-4b6b-9a4e-3e7c9f1b2b31",
"filename": "CNI.pdf",
"sources": [
{ "id": "1c9a2f52-1a3f-4e3a-8b9d-6b6a8b6a8b6a", "filename": "CNI Recto.png" },
{ "id": "2d0b3f63-2b4f-5f4b-9c0e-7c7b9c7b9c7b", "filename": "CNI Verso.png" }
]
},
{
"type": "split",
"id": "3e1c4f74-3c5f-6a5c-ad1f-8d8c0d8c0d8c",
"filename": "factures_groupees.pdf | pages=[1-2].pdf",
"sources": [
{ "id": "9f8e7d6c-5b4a-3928-4938-0f0e0d0c0b0a", "filename": "factures_groupees.pdf" }
]
},
{
"type": "split",
"id": "4f2d5f85-4d6f-7b6d-be2f-9e9d1e9d1e9d",
"filename": "factures_groupees.pdf | pages=[3-4].pdf",
"sources": [
{ "id": "9f8e7d6c-5b4a-3928-4938-0f0e0d0c0b0a", "filename": "factures_groupees.pdf" }
]
}
]

replyTemplate

Brouillon de réponse généré (si la génération de réponse est activée).

"replyTemplate": "Bonjour,\n\nNous confirmons votre rendez-vous..."

Sortie NLU

Si la sortie NLU est activée, le payload contient l'un des deux formats suivants (jamais les deux).

Format actuel (results)

"results": {
"...": "structure dépendante de votre configuration NLU"
}

Format historique (interactions / labels / usedLanguage)

{
"interactions": [
{
"idInteraction": "...",
"idContext": "...",
"parameters": [{ "name": "reference", "value": "6754679" }],
"parametersDetail": {},
"incomplete": false,
"postProcessors": {}
}
],
"labels": [
{
"type": "...",
"expression": "...",
"archetype": "...",
"used_parameter": "...",
"interaction_id": "...",
"call_idx": 0
}
],
"usedLanguage": "fr"
}

Envoyer un feedback

Utilisez feedbackURL pour corriger le résultat. Seuls certains champs peuvent être corrigés : categories, attachmentsCategories, extractedData, et rpaActions. N'envoyez que les champs que vous souhaitez corriger ; les champs omis restent inchangés. Voir Send feedback on an analysis.

rpaActions

Contrairement au payload de résultat (qui liste les actions déclenchées), le feedback est indexé directement par nom d'action. Pour chaque action, le feedback attend deux évaluations booléennes indépendantes :

  • rpa_action_configurations : l'action aurait-elle dû se déclencher ?
  • rpa_action_executions : si elle s'est déclenchée, a-t-elle été exécutée correctement ?

Les deux clés sont optionnelles et indépendantes ; n'envoyez que celles que vous souhaitez qualifier.

{
"result": {
"rpaActions": {
"UploadBody": {
"rpa_action_configurations": true,
"rpa_action_executions": true
},
"UploadAttachments": {
"rpa_action_configurations": true,
"rpa_action_executions": false
}
}
}
}

Forme : { "<nomAction>": { "rpa_action_configurations"?: boolean, "rpa_action_executions"?: boolean } }.

Télécharger un fichier

info

🚧 Bientôt disponible — cet endpoint n'est pas encore disponible.

Télécharger le contenu brut d'un document directement :

GET /analyses/{analysisId}/files/{fileId}/download

fileId accepte n'importe quel identifiant de document trouvé dans fileOperations : aussi bien l'id d'une entrée (le document résultant d'un déliassage ou d'une fusion) que l'id de n'importe laquelle de ses sources (le ou les documents d'origine dont il provient).

CodeDescription
200Contenu du fichier, servi en téléchargement (en-tête Content-Disposition: attachment)
404Analyse introuvable, ou aucun fichier ne correspond à ce fileId pour cette analyse

La référence OpenAPI complète est disponible ici : Download File.