📌 Purpose
This document ensures all required configurations and validations for the Document Insights application with Lazarus and Google Gemini Integration are completed using a Maker-Checker approach.
Each configuration item must be marked TRUE once completed by the Maker and reviewed by the Checker.
🧠Legend
-
Maker – Responsible for executing the setup/configuration.
-
Checker – Responsible for reviewing and validating the configuration.
Section 1 — Org-Level Pre-Requisites
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
1.1 |
Verified that the Document Insights managed package is installed in the target org |
FALSE |
FALSE |
|
1.2 |
Confirmed the org is on a supported Salesforce edition (Enterprise / Unlimited) |
FALSE |
FALSE |
|
1.3 |
Verified that API access is enabled for the integration user / profile |
FALSE |
FALSE |
|
1.4 |
Confirmed Files (ContentDocument / ContentVersion) are enabled on all relevant objects in the org |
FALSE |
FALSE |
|
1.5 |
Confirmed the integration user / profile has the Document Insights permission set or equivalent profile permissions |
FALSE |
FALSE |
Section 2 — Remote Site Settings
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
2.1 |
Configured Remote Site Setting for the Lazarus OCR API endpoint (Generic Form endpoint host URL) |
FALSE |
FALSE |
|
2.2 |
Configured Remote Site Setting for the Lazarus Identity Document API endpoint (Form Identification endpoint host URL) |
FALSE |
FALSE |
|
2.3 |
Configured Remote Site Setting for Google Gemini API — |
FALSE |
FALSE |
|
2.4 |
Confirmed all Remote Site Settings are marked Active |
FALSE |
FALSE |
|
2.5 |
Verified no Remote Site Settings are blocked by an outbound firewall or Salesforce Egress restriction |
FALSE |
FALSE |
Section 3 — Custom Settings: PDFInsight_Credentials__c (Lazarus)
Note: One record per API mode (Sandbox / Production). Verify both environments as applicable.
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
3.1 |
Created |
FALSE |
FALSE |
|
3.2 |
Created |
FALSE |
FALSE |
|
3.3 |
Populated |
FALSE |
FALSE |
|
3.4 |
Populated |
FALSE |
FALSE |
|
3.5 |
Populated |
FALSE |
FALSE |
|
3.6 |
Populated |
FALSE |
FALSE |
|
3.7 |
Populated |
FALSE |
FALSE |
|
3.8 |
Confirmed |
FALSE |
FALSE |
Section 4 — Custom Settings: PDFInsight_Credentials__c (Google Gemini)
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
4.1 |
Populated |
FALSE |
FALSE |
|
4.2 |
Populated |
FALSE |
FALSE |
|
4.3 |
Confirmed the Google API Key has the Generative Language API enabled in Google Cloud Console |
FALSE |
FALSE |
|
4.4 |
Confirmed the Google API Key has appropriate usage restrictions (IP allowlist or referrer restrictions) set for security |
FALSE |
FALSE |
|
4.5 |
Verified the Gemini endpoint URL format matches the correct model version (e.g., |
FALSE |
FALSE |
Section 5 — Feature Entitlements: Feature_Entitlement__c
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
5.1 |
Created or confirmed |
FALSE |
FALSE |
|
5.2 |
Set |
FALSE |
FALSE |
|
5.3 |
Confirmed |
FALSE |
FALSE |
Section 6 — Document Insight Template Object & Fields
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
6.1 |
Confirmed |
FALSE |
FALSE |
|
6.2 |
Confirmed |
FALSE |
FALSE |
|
6.3 |
Confirmed |
FALSE |
FALSE |
|
6.4 |
Confirmed |
FALSE |
FALSE |
|
6.5 |
Confirmed |
FALSE |
FALSE |
|
6.6 |
Confirmed |
FALSE |
FALSE |
|
6.7 |
Confirmed |
FALSE |
FALSE |
|
6.8 |
Confirmed |
FALSE |
FALSE |
|
6.9 |
Confirmed |
FALSE |
FALSE |
|
6.10 |
Confirmed |
FALSE |
FALSE |
|
6.11 |
Confirmed |
FALSE |
FALSE |
|
6.12 |
Confirmed |
FALSE |
FALSE |
|
6.13 |
Confirmed |
FALSE |
FALSE |
Section 7 — Document Insight Template: Lazarus Configuration
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
7.1 |
Created at least one active |
FALSE |
FALSE |
|
7.2 |
Confirmed |
FALSE |
FALSE |
|
7.3 |
Confirmed |
FALSE |
FALSE |
|
7.4 |
Confirmed |
FALSE |
FALSE |
|
7.5 |
Validated the |
FALSE |
FALSE |
|
7.6 |
Confirmed each |
FALSE |
FALSE |
|
7.7 |
Confirmed |
FALSE |
FALSE |
|
7.8 |
Confirmed |
FALSE |
FALSE |
|
7.9 |
For |
FALSE |
FALSE |
|
7.10 |
For |
FALSE |
FALSE |
|
7.11 |
For |
FALSE |
FALSE |
|
7.12 |
If child/table data is required — confirmed |
FALSE |
FALSE |
|
7.13 |
Confirmed |
FALSE |
FALSE |
|
7.14 |
If a custom processor class is needed — confirmed |
FALSE |
FALSE |
Section 8 — Document Insight Template: Google Gemini Configuration
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
8.1 |
Created at least one active |
FALSE |
FALSE |
|
8.2 |
Confirmed |
FALSE |
FALSE |
|
8.3 |
Confirmed the Gemini prompt ends with "Return output strictly in valid JSON format" to ensure structured output |
FALSE |
FALSE |
|
8.4 |
Confirmed all JSON key names in the prompt exactly match the |
FALSE |
FALSE |
|
8.5 |
Confirmed |
FALSE |
FALSE |
|
8.6 |
For Gemini |
FALSE |
FALSE |
|
8.7 |
If table/line-item data is needed in the prompt — confirmed the prompt instructs Gemini to return it under a |
FALSE |
FALSE |
|
8.8 |
If child records are required — confirmed |
FALSE |
FALSE |
|
8.9 |
Confirmed |
FALSE |
FALSE |
|
8.10 |
Set one Gemini template as |
FALSE |
FALSE |
|
8.11 |
(Testing only) Configured |
FALSE |
FALSE |
Section 9 — Field Mapping JSON Validation
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
9.1 |
Validated the |
FALSE |
FALSE |
|
9.2 |
Confirmed all |
FALSE |
FALSE |
|
9.3 |
Confirmed all |
FALSE |
FALSE |
|
9.4 |
Confirmed FLS (Field-Level Security) is enabled on all mapped fields for the running user's profile |
FALSE |
FALSE |
|
9.5 |
Verified there are no duplicate |
FALSE |
FALSE |
|
9.6 |
Verified |
FALSE |
FALSE |
|
9.7 |
Tested the mapping using the |
FALSE |
FALSE |
|
9.8 |
Validated child field mapping JSON ( |
FALSE |
FALSE |
Section 10 — PDF_Insight__c (Document Insights) Object Fields
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
10.1 |
Confirmed |
FALSE |
FALSE |
|
10.2 |
Confirmed |
FALSE |
FALSE |
|
10.3 |
Confirmed |
FALSE |
FALSE |
|
10.4 |
Confirmed |
FALSE |
FALSE |
|
10.5 |
Confirmed |
FALSE |
FALSE |
|
10.6 |
Confirmed |
FALSE |
FALSE |
|
10.7 |
Confirmed |
FALSE |
FALSE |
|
10.8 |
Confirmed |
FALSE |
FALSE |
|
10.9 |
Confirmed |
FALSE |
FALSE |
|
10.10 |
Confirmed |
FALSE |
FALSE |
|
10.11 |
Created Lookup field from |
FALSE |
FALSE |
|
10.12 |
Confirmed |
FALSE |
FALSE |
Section 11 — Source Object Configuration
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
11.1 |
Identified all Source Objects from which Lazarus / Gemini OCR will be triggered |
FALSE |
FALSE |
|
11.2 |
Added the |
FALSE |
FALSE |
|
11.3 |
Verified the |
FALSE |
FALSE |
|
11.4 |
(If using standalone entry) Added the |
FALSE |
FALSE |
|
11.5 |
(If using Gemini Chat) Added the |
FALSE |
FALSE |
|
11.6 |
Confirmed the Source Object's record page also includes a related list or link to |
FALSE |
FALSE |
Section 12 — Behaviour-Controlling Custom Settings / Metadata
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
12.1 |
Configured |
FALSE |
FALSE |
|
12.2 |
Configured |
FALSE |
FALSE |
|
12.3 |
Confirmed |
FALSE |
FALSE |
|
12.4 |
(Gemini testing only) Confirmed |
FALSE |
FALSE |
Section 13 — Confidence Matrix Configuration (Lazarus Only)
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
13.1 |
Confirmed the Confidence Matrix LWC components ( |
FALSE |
FALSE |
|
13.2 |
Embedded the |
FALSE |
FALSE |
|
13.3 |
Verified the Confidence Threshold is configured via Custom Settings / Custom Metadata ( |
FALSE |
FALSE |
|
13.4 |
Confirmed |
FALSE |
FALSE |
|
13.5 |
Confirmed the |
FALSE |
FALSE |
|
13.6 |
Verified Confidence Score values are being captured in the Lazarus OCR response ( |
FALSE |
FALSE |
|
13.7 |
Confirmed the Confidence Matrix applies the threshold: fields at or above threshold → |
FALSE |
FALSE |
|
13.8 |
Verified the raw Lazarus response JSON file (stored as |
FALSE |
FALSE |
|
13.9 |
Tested the |
FALSE |
FALSE |
|
13.10 |
Confirmed the Confidence Matrix table renders correctly in the LWC with all expected field rows |
FALSE |
FALSE |
Section 14 — User Permissions & Security
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
14.1 |
Assigned the Document Insights permission set (or equivalent) to all users who will trigger OCR from Source Object records |
FALSE |
FALSE |
|
14.2 |
Confirmed users have Read / Create / Edit access on |
FALSE |
FALSE |
|
14.3 |
Confirmed users have Create / Edit access on the Primary Object (e.g., |
FALSE |
FALSE |
|
14.4 |
Confirmed users have Read / Create access on |
FALSE |
FALSE |
|
14.5 |
Confirmed users have Read access on |
FALSE |
FALSE |
|
14.6 |
Confirmed users have Read access on all |
FALSE |
FALSE |
|
14.7 |
Verified FLS is correctly set on all mapped Salesforce fields for the relevant user profiles |
FALSE |
FALSE |
|
14.8 |
Confirmed users can upload files via |
FALSE |
FALSE |
|
14.9 |
Confirmed the |
FALSE |
FALSE |
Section 15 — End-to-End Testing: Lazarus OCR
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
15.1 |
Opened the Source Object Lightning Record Page — confirmed the |
FALSE |
FALSE |
|
15.2 |
Confirmed the component renders the "Feature Not Enabled" tile when |
FALSE |
FALSE |
|
15.3 |
Uploaded a sample PDF via the file upload widget — confirmed file size validation enforces the 8 MB limit |
FALSE |
FALSE |
|
15.4 |
Confirmed the uploaded file appears in the file table after upload |
FALSE |
FALSE |
|
15.5 |
Selected a Lazarus template from the Document Template dropdown — confirmed the Primary Object dropdown is populated |
FALSE |
FALSE |
|
15.6 |
Confirmed the Source column auto-populates as |
FALSE |
FALSE |
|
15.7 |
Selected the Primary Object from the dropdown and clicked Submit |
FALSE |
FALSE |
|
15.8 |
Confirmed a success toast "Document Insight has been Successfully Initiated!" is displayed |
FALSE |
FALSE |
|
15.9 |
Confirmed a |
FALSE |
FALSE |
|
15.10 |
Confirmed extracted field values are correctly populated on the Primary Object record |
FALSE |
FALSE |
|
15.11 |
Confirmed the uploaded PDF file is linked to the |
FALSE |
FALSE |
|
15.12 |
Confirmed the raw Lazarus API response is stored as a JSON |
FALSE |
FALSE |
|
15.13 |
Verified |
FALSE |
FALSE |
|
15.14 |
Tested a document with known extractable table data — confirmed child records are created on the configured |
FALSE |
FALSE |
|
15.15 |
Verified the child records are linked to the primary record via |
FALSE |
FALSE |
|
15.16 |
Tested the |
FALSE |
FALSE |
|
15.17 |
Tested the |
FALSE |
FALSE |
|
15.18 |
Tested with a Driver's License — confirmed |
FALSE |
FALSE |
|
15.19 |
Tested with a Passport — confirmed |
FALSE |
FALSE |
|
15.20 |
Tested with an SSN document — confirmed |
FALSE |
FALSE |
|
15.21 |
Tested via the |
FALSE |
FALSE |
|
15.22 |
Confirmed the |
FALSE |
FALSE |
Section 16 — End-to-End Testing: Google Gemini (Template-Based Field Mapping)
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
16.1 |
Opened the Source Object record page — confirmed Gemini templates appear in the template dropdown alongside Lazarus templates |
FALSE |
FALSE |
|
16.2 |
Selected a Google Gemini template — confirmed the Source column shows |
FALSE |
FALSE |
|
16.3 |
Uploaded a sample PDF and submitted — confirmed the Gemini API is called (or the Static Resource mock is used in Sandbox) |
FALSE |
FALSE |
|
16.4 |
Confirmed a |
FALSE |
FALSE |
|
16.5 |
Confirmed extracted field values are correctly populated on the Primary Object record |
FALSE |
FALSE |
|
16.6 |
Confirmed the raw Gemini API response JSON is stored as a |
FALSE |
FALSE |
|
16.7 |
Verified Picklist fields are populated with the raw extracted text from Gemini (not the hardcoded |
FALSE |
FALSE |
|
16.8 |
Tested a prompt that returns table data ( |
FALSE |
FALSE |
|
16.9 |
Confirmed |
FALSE |
FALSE |
|
16.10 |
Confirmed |
FALSE |
FALSE |
Section 17 — End-to-End Testing: Google Gemini Interactive Chat (geminiChatScreen)
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
17.1 |
Added the |
FALSE |
FALSE |
|
17.2 |
Confirmed the component loads available Gemini templates in the Template Tree (folder icon → tree view) |
FALSE |
FALSE |
|
17.3 |
Clicked a template from the tree — confirmed the prompt text is auto-filled in the message textarea |
FALSE |
FALSE |
|
17.4 |
Typed a free-form message and clicked Send — confirmed the user message appears in the chat bubble as "You" (outbound) |
FALSE |
FALSE |
|
17.5 |
Confirmed Gemini's response appears in the chat as "Gemini" (inbound bubble) with Markdown stripped |
FALSE |
FALSE |
|
17.6 |
Confirmed the typing indicator (animated dots) appears while the API call is in progress |
FALSE |
FALSE |
|
17.7 |
Confirmed the Send button is disabled while a message is being processed ( |
FALSE |
FALSE |
|
17.8 |
Clicked the paper-clip icon — confirmed the file upload modal opens |
FALSE |
FALSE |
|
17.9 |
Uploaded a PDF via the modal — confirmed file size validation enforces the 5 MB limit |
FALSE |
FALSE |
|
17.10 |
Confirmed the file preview link appears after successful upload |
FALSE |
FALSE |
|
17.11 |
Sent a message with a file attached — confirmed the file is included in the Gemini request as |
FALSE |
FALSE |
|
17.12 |
Sent a follow-up message — confirmed the full conversation history is included in the subsequent Gemini API call (multi-turn session) |
FALSE |
FALSE |
|
17.13 |
Clicked the Clear Chat button — confirmed all messages, file attachments, and |
FALSE |
FALSE |
|
17.14 |
Confirmed no Salesforce records ( |
FALSE |
FALSE |
|
17.15 |
Confirmed the Powered By Cloud Maven, Inc. footer is visible |
FALSE |
FALSE |
Section 18 — Duplicate & Missing Key Scenarios
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
18.1 |
Tested with a document that produces duplicate OCR keys when |
FALSE |
FALSE |
|
18.2 |
Tested with a document that produces duplicate OCR keys when |
FALSE |
FALSE |
|
18.3 |
Tested with a document where some keys are missing from the OCR response — confirmed |
FALSE |
FALSE |
|
18.4 |
Confirmed the |
FALSE |
FALSE |
|
18.5 |
Confirmed the |
FALSE |
FALSE |
Section 19 — Error Handling & Failed Scenarios
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
19.1 |
Tested with invalid Lazarus credentials ( |
FALSE |
FALSE |
|
19.2 |
Tested with an invalid Gemini API key — confirmed |
FALSE |
FALSE |
|
19.3 |
Tested a scenario where Gemini returns a response with no valid JSON structure — confirmed |
FALSE |
FALSE |
|
19.4 |
Tested with a template name that does not exist in |
FALSE |
FALSE |
|
19.5 |
Tested uploading a file exceeding the 8 MB limit on |
FALSE |
FALSE |
|
19.6 |
Tested uploading a file exceeding the 2 MB limit on |
FALSE |
FALSE |
|
19.7 |
Tested uploading a file exceeding the 5 MB limit on |
FALSE |
FALSE |
|
19.8 |
Tested a DML exception scenario (e.g., required field missing on the primary object) — confirmed |
FALSE |
FALSE |
|
19.9 |
Tested submitting without selecting a template or primary object — confirmed the inline validation error is shown and no Apex call is made |
FALSE |
FALSE |
|
19.10 |
Confirmed a failed OCR run does not partially update the primary object record with incomplete data |
FALSE |
FALSE |
Section 20 — Document Insight Template Mapping Wizard (documentTemplateMapping LWC)
|
# |
Checklist Item |
Maker |
Checker |
|---|---|---|---|
|
20.1 |
Confirmed the |
FALSE |
FALSE |
|
20.2 |
Step 1 — Confirmed "Intelligence Model Name", "AI Intelligence Engine", and "Target Record" fields are marked required and validated before proceeding |
FALSE |
FALSE |
|
20.3 |
Step 1 — Confirmed selecting Google Gemini as AI Engine reveals the "AI Extraction & Response Instructions" (prompt) textarea |
FALSE |
FALSE |
|
20.4 |
Step 1 — Confirmed selecting Custom Forms as AI Engine hides the prompt textarea |
FALSE |
FALSE |
|
20.5 |
Step 1 — Confirmed file upload is required before clicking "Continue to Field Mapping" |
FALSE |
FALSE |
|
20.6 |
Step 1 — Confirmed file size validation enforces the 5 MB limit on the template wizard upload |
FALSE |
FALSE |
|
20.7 |
Step 2 — Confirmed the field mapping table is populated with JSON keys extracted from the AI response |
FALSE |
FALSE |
|
20.8 |
Step 2 — Confirmed the "SF Fields" dropdown lists all accessible fields on the selected Primary Object |
FALSE |
FALSE |
|
20.9 |
Step 2 — Confirmed the "Picklist Values" dropdown appears and populates when a Picklist field is selected |
FALSE |
FALSE |
|
20.10 |
Step 2 — Confirmed the "Data Type" column auto-populates based on the selected SF field |
FALSE |
FALSE |
|
20.11 |
Step 2 — Confirmed the "Parent" toggle and "Parent Records" columns appear when Source Object = Primary Object |
FALSE |
FALSE |
|
20.12 |
Step 2 — Confirmed the "Child Field Mapping" section appears when the AI response contains table/list data |
FALSE |
FALSE |
|
20.13 |
Step 2 — Clicked Submit and confirmed a |
FALSE |
FALSE |
|
20.14 |
Step 2 — Confirmed the wizard navigates to the newly created template's record detail page after save |
FALSE |
FALSE |
|
20.15 |
Confirmed the Previous button on Step 2 returns to Step 1 with all values intact |
FALSE |
FALSE |
Section 21 — Sign-Off
|
Role |
Name |
Date |
Signature |
|---|---|---|---|
|
Maker (Configuration Lead) |
|
|
|
|
Checker (QA / Technical Lead) |
|
|
|
|
Project Manager / Owner |
|
|
|
Document Version: 1.0 Last Updated: 2026-05-11 Prepared By: Cloud Maven, Inc.