Gestionnaire intelligent de notes de frais : upload de justificatif → OCR navigateur → extraction Einstein → complément (catégorie / bénéficiaire) → soumission → validation/refus Approver avec contrôle de quota.
- Salesforce avec Agentforce / Einstein Generative AI
- Files activés
- Optionnel : webhook Slack (Custom Metadata) ou Salesforce for Slack
- CLI : Salesforce CLI (
sf) - CSP Trusted Site
https://cdn.jsdelivr.net(Tesseract.js + pdf.js)
cd SF_ExpenseAssistant
sf org login web --alias expense-poc
sf project deploy start --target-org expense-poc
sf apex run --file scripts/apex/demoData.apex --target-org expense-poc
sf org assign permset --name Expense_Employee --target-org expense-poc
sf org assign permset --name Expense_Approver --target-org expense-poc| Couche | Contenu |
|---|---|
| Données | Expense_Claim__c, Expense_Quota__c, Expense_Category__c, CMDT Expense_AI_Settings |
| Extraction | OCR client (Tesseract + pdf.js) → Prompt Template Einstein → Apex |
| Agent | Bundle Agent Script Expense_Agent + actions Apex invocables |
| UI employé | LWC expenseClaimUploader dans l’app Expense Manager |
| Approbation | Quick Actions + Flows, contrôle quota |
| Notif | Flow + webhook Slack / Task fallback |
- Ouvrir l’app Expense Manager.
- Uploader un justificatif PDF, PNG ou JPG (ex. billet SNCF).
- OCR + extraction Einstein → commerçant, date, montant (± catégorie).
- Compléter si besoin : catégorie et/ou bénéficiaire.
- Soumettre → statut
Pending_Approval; le formulaire se réinitialise. - Ouvrir la note (bandeau succès ou liste) en tant qu’approver (
Expense_Approver) → Valider / Refuser. - Validation : quota
Used_Amount__crecalculé ; refus si montant > reste.
- Prompt Builder : template
Expense_Receipt_Extraction— voirdocs/agentforce-setup.mdetdocs/prompt-expense-receipt-extraction.txt. - CMDT Default :
Use_Demo_Extraction__c = false.
- Incoming Webhook sur le canal dépenses / approbation.
- Renseigner
Slack_Webhook_URL__csurExpense_AI_Settings.Default.
sf agent validate authoring-bundle --api-name Expense_Agent --target-org expense-poc
sf agent publish authoring-bundle --api-name Expense_Agent --target-org expense-pocforce-app/main/default/
objects/ # Claim, Quota, Category, CMDT
classes/ # Services + invocables Agentforce
lwc/expenseClaimUploader
pages/ExpenseTesseractOcr
staticresources/TesseractJs
aiAuthoringBundles/ # Agent Script Expense_Agent
flows/ applications/ permissionsets/
scripts/apex/demoData.apex
docs/ # Setup Agentforce + prompt
- Permission sets :
Expense_Employee,Expense_Approver - App : Expense Manager (
Expense_Manager) - Agent :
Expense_Agent - Champs techniques (
Extraction_JSON__c,Ocr_Text__c) hors layout employé - OCR PDF : texte embarqué si possible, sinon rasterisation 1ʳᵉ page
- OrgFarm : pas d’IDR / Document AI ; OCR client volontaire pour le POC