Intégration data warehouse
Vos documents dans des tables Snowflake, preuves à l'appui
Holofin lit vos PDF et scans et envoie chaque champ dans une table Snowflake, avec son degré de certitude et l'endroit de la page d'où provient la valeur.
| FIELD | VALUE | CONFIDENCE | PAGE | NEEDS_REVIEW | |
|---|---|---|---|---|---|
| 1 | invoice_number | F-2026-0412 | 0.99 | 1 | FALSE |
| 2 | invoice_date | 2026-10-14 | 0.98 | 1 | FALSE |
| 3 | due_date | 2026-11-13 | 0.97 | 1 | FALSE |
| 4 | supplier_name | Atelier Mécanique Durand SARL | 0.99 | 1 | FALSE |
| 5 | total_excl_tax | 4860.00 | 0.98 | 1 | FALSE |
| 6 | vat_amount | 972.00 | 0.71 | 1 | TRUE |
| 7 | total_incl_tax | 5832.00 | 0.97 | 1 | FALSE |
✓7 champs chargés
!1 à vérifier
Comment ça marche
- 1
Connectez Snowflake une seule fois
Créez un rôle avec des droits d'insertion sur un seul schéma et collez ses identifiants dans Holofin. Holofin crée la table au premier chargement ; il ne voit rien d'autre dans Snowflake.
- 2
Envoyez vos documents comme d'habitude
Dépôt dans l'application, transfert par e-mail ou appel à l'API. Holofin classe chaque fichier, découpe les liasses en documents et lit les champs propres à chaque type.
- 3
Interrogez les lignes
Chaque champ arrive sous forme d'une ligne, avec sa confiance, la page dont il provient et un indicateur needs_review. Joignez-le à vos propres tables dans Snowflake comme n'importe quelle autre source.
Comment le connecteur Snowflake écrit les données
Holofin écrit avec Snowpipe Streaming : les lignes arrivent en quelques secondes, sans stage, sans file format et sans warehouse démarré pour les charger. Il s'authentifie par paire de clés (key-pair authentication) avec un utilisateur de service dont le rôle peut insérer dans un seul schéma, et rien d'autre.
Le seul droit dont Holofin a besoin :
CREATE ROLE HOLOFIN_LOADER; GRANT USAGE ON DATABASE HOLOFIN TO ROLE HOLOFIN_LOADER; GRANT USAGE ON SCHEMA HOLOFIN.EXTRACTED TO ROLE HOLOFIN_LOADER; GRANT INSERT, SELECT ON ALL TABLES IN SCHEMA HOLOFIN.EXTRACTED TO ROLE HOLOFIN_LOADER; ALTER USER HOLOFIN_SVC SET RSA_PUBLIC_KEY = 'MIIBIjANBgkqh...';
La table écrite par Holofin
Une ligne par champ : un nouveau type de document ne modifie jamais la table. Les colonnes sont identiques d'une plateforme à l'autre ; les types suivent la nomenclature de Snowflake.
| document_id | STRING | Identifiant Holofin du document, stable d'un chargement à l'autre. |
|---|---|---|
| document_type | STRING | La classe attribuée au document par Holofin : supplier_invoice, payslip, bank_statement, etc. |
| field | STRING | Le nom du champ, en snake_case, tel que défini dans votre schéma d'extraction. |
| value | STRING | La valeur en texte normalisé : dates ISO, point décimal, IBAN sans espaces. |
| confidence | FLOAT | Entre 0 et 1. Le degré de certitude de Holofin sur la valeur. |
| page | INTEGER | La page du fichier source sur laquelle la valeur a été lue. |
| bbox | ARRAY<FLOAT> | L'emplacement sur cette page : x, y, largeur, hauteur, en fractions de la page. |
| needs_review | BOOLEAN | Vrai quand la confiance est faible ou qu'une règle échoue, par exemple un solde qui ne tombe pas juste. |
| reviewed_by | STRING | La personne qui a confirmé ou corrigé la valeur dans Holofin, le cas échéant. |
| loaded_at | TIMESTAMP | L'heure d'écriture de la ligne. Une correction écrit une nouvelle ligne ; la plus récente fait foi. |
Interroger les données dans Snowflake
Retrouver les factures qu'un relecteur doit encore examiner, avec le champ le plus fragile de chacune, grâce au QUALIFY de Snowflake :
-- Invoices with at least one field waiting for a reviewer, -- with the weakest field of each one SELECT document_id, field, value, confidence, loaded_at FROM HOLOFIN.EXTRACTED.DOCUMENT_FIELDS WHERE document_type = 'supplier_invoice' AND needs_review AND reviewed_by IS NULL QUALIFY ROW_NUMBER() OVER ( PARTITION BY document_id ORDER BY confidence ) = 1 ORDER BY loaded_at;
Sécurité
- Les documents sont traités en Europe, sur des serveurs OVHcloud situés en France et certifiés ISO 27001.
- Holofin écrit uniquement dans le schéma que vous lui ouvrez. Il ne peut pas lire vos autres tables.
- La durée de conservation des fichiers sources dans Holofin se règle par organisation, de zéro rétention des données à une conservation illimitée. Les lignes de votre entrepôt suivent vos propres règles.
- RGPD : Holofin agit en tant que sous-traitant. Aucun document ne quitte l'Union européenne.
Questions fréquentes
Le chargement consomme-t-il mes crédits Snowflake ?
Snowpipe Streaming est facturé comme une ingestion serverless, pas via un virtual warehouse en marche, et un document ne représente que quelques lignes. Pour quelques milliers de documents par mois, le coût reste faible. Les requêtes que vous lancez ensuite utilisent vos warehouses comme d'habitude.
Puis-je utiliser mes propres noms de base et de schéma ?
Oui. Vous choisissez la base, le schéma et le nom de la table lors de la connexion. Les exemples de cette page utilisent HOLOFIN.EXTRACTED.DOCUMENT_FIELDS.
En combien de temps les champs apparaissent-ils dans Snowflake ?
Quelques secondes après la lecture du document. La plupart des documents sont lus en moins d'une minute : un fichier envoyé par e-mail est en général interrogeable dans Snowflake une minute plus tard.
Que se passe-t-il quand un relecteur corrige une valeur ?
Holofin écrit une nouvelle ligne pour ce champ avec la valeur corrigée, needs_review à false et reviewed_by renseigné. Gardez la dernière ligne par document et par champ pour obtenir l'état courant, ou conservez toutes les lignes pour une piste d'audit complète.
Puis-je choisir les champs chargés ?
Oui. Chaque type de document a son schéma d'extraction dans Holofin. Ajoutez, renommez ou supprimez des champs : les documents suivants arrivent avec les nouveaux noms. La structure de la table ne change pas.
Quels documents Holofin sait-il lire ?
Tout document d'entreprise envoyé en PDF, en scan ou en photo : factures, bulletins de paie, relevés bancaires, avis d'imposition, extraits Kbis, pièces d'identité, attestations. Holofin vérifie aussi que chaque fichier n'a pas été falsifié et peut signaler un document suspect avant qu'on se fie à ses champs.
Testez Holofin sur vos propres documents.
Chaque valeur reliée à sa position sur la page, chaque PDF analysé pour détecter les falsifications, des règles appliquées à l'ensemble du dossier.