Document Insights

Lazarus & Google Gemini

📌 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 — https://generativelanguage.googleapis.com

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 PDFInsight_Credentials__c custom setting record — Sandbox mode

FALSE

FALSE

3.2

Created PDFInsight_Credentials__c custom setting record — Production mode

FALSE

FALSE

3.3

Populated bankconnect__Generic_Form_Endpoint__c (Lazarus OCR endpoint for custom form processing)

FALSE

FALSE

3.4

Populated bankconnect__Form_Identification_Endpoint__c (Lazarus endpoint for ID document extraction — Driver's License, Passport, SSN)

FALSE

FALSE

3.5

Populated bankconnect__Org_ID__c (Organization identifier sent as orgId header on every Lazarus request)

FALSE

FALSE

3.6

Populated bankconnect__Auth_Key__c (Authentication key sent as authKey header on every Lazarus request)

FALSE

FALSE

3.7

Populated Content_Type__c (base content-type string for multipart form-data requests)

FALSE

FALSE

3.8

Confirmed Utility.sAPIMode resolves to the correct mode (Sandbox or Production) in the target environment

FALSE

FALSE


Section 4 — Custom Settings: PDFInsight_Credentials__c (Google Gemini)

#

Checklist Item

Maker

Checker

4.1

Populated bankconnect__Gemini_Endpoint__c (Full Google Gemini multimodal API endpoint URL)

FALSE

FALSE

4.2

Populated bankconnect__Google_API_Key__c (Google API key sent as x-goog-api-key header)

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., gemini-1.5-pro or gemini-2.0-flash) as required

FALSE

FALSE


Section 5 — Feature Entitlements: Feature_Entitlement__c

#

Checklist Item

Maker

Checker

5.1

Created or confirmed Feature_Entitlement__c custom setting record exists

FALSE

FALSE

5.2

Set bankconnect__Custom_Forms__c = TRUE (master switch — enables the Custom Document OCR button and all Lazarus / Gemini processing)

FALSE

FALSE

5.3

Confirmed bankconnect__PDF_Insights__c is set correctly (required if the viewPDFAnalytics host component is also in use on the same page)

FALSE

FALSE


Section 6 — Document Insight Template Object & Fields

#

Checklist Item

Maker

Checker

6.1

Confirmed bankconnect__Document_Insight_Template__c object is available and accessible in the org

FALSE

FALSE

6.2

Confirmed bankconnect__Template_Name__c field exists and is populated for each template

FALSE

FALSE

6.3

Confirmed bankconnect__Primary_Object__c field exists (stores the target Salesforce object API name)

FALSE

FALSE

6.4

Confirmed bankconnect__Source__c field exists and is set to 'Lazarus' or 'Google Gemini' per template

FALSE

FALSE

6.5

Confirmed bankconnect__Active__c checkbox exists (only active templates are shown in the LWC dropdowns)

FALSE

FALSE

6.6

Confirmed bankconnect__isDefault__c checkbox exists (pre-selects one template in the genericCustomFormInsightRequest component)

FALSE

FALSE

6.7

Confirmed bankconnect__Data_Field_Mapping__c long text field exists (stores the primary field mapping JSON)

FALSE

FALSE

6.8

Confirmed bankconnect__Related_Object__c field exists (stores the child/related object API name for table/line-item data)

FALSE

FALSE

6.9

Confirmed bankconnect__Relationship_Field__c field exists (stores the lookup field on the child object pointing to the primary record)

FALSE

FALSE

6.10

Confirmed bankconnect__Related_Object_Data_Field_Mapping__c long text field exists (stores child field mapping JSON)

FALSE

FALSE

6.11

Confirmed bankconnect__Document_Insight_Lookup_Field__c field exists (lookup field on the primary object pointing back to the PDF_Insight__c record)

FALSE

FALSE

6.12

Confirmed bankconnect__Prompt__c long text field exists on the template object (required for Google Gemini templates)

FALSE

FALSE

6.13

Confirmed bankconnect__Override_Parser_Class__c field exists (allows per-template custom processor class injection)

FALSE

FALSE


Section 7 — Document Insight Template: Lazarus Configuration

#

Checklist Item

Maker

Checker

7.1

Created at least one active Document_Insight_Template__c record with Source__c = 'Lazarus'

FALSE

FALSE

7.2

Confirmed Template_Name__c is unique and meaningful (shown in the template dropdown in the LWC)

FALSE

FALSE

7.3

Confirmed Primary_Object__c is set to the correct Salesforce object API name (e.g., Case, Opportunity__c, Lead)

FALSE

FALSE

7.4

Confirmed Data_Field_Mapping__c is populated with valid GenericFormConfiguration JSON

FALSE

FALSE

7.5

Validated the Data_Field_Mapping__c JSON structure contains the GenericFormConfiguration wrapper key

FALSE

FALSE

7.6

Confirmed each GenericFormConfiguration entry has: sPossibleKey, sObjectName, sDataType, sFieldAPIName, sPicklistValue, isParent, linkRecord

FALSE

FALSE

7.7

Confirmed sPossibleKey values use tilde (~) as the delimiter for alternative key names (e.g., "Invoice Number~Invoice #~Inv No")

FALSE

FALSE

7.8

Confirmed sDataType values use the correct format: Text, Picklist, MultiSelect Picklist, Checkbox, Date, DateTime, Time, Number, Double, Currency, Percent, URL, Email, Phone

FALSE

FALSE

7.9

For Picklist fields — confirmed sPicklistValue is set to the exact API value to be written when the form checkbox is :selected:

FALSE

FALSE

7.10

For linkRecord = true entries — confirmed sFieldAPIName points to the lookup/relationship field on the primary object that should store the source record ID

FALSE

FALSE

7.11

For isParent = true entries — confirmed sObjectName is the relationship field API name (e.g., AccountId) on the current record, not the parent object name

FALSE

FALSE

7.12

If child/table data is required — confirmed Related_Object__c, Relationship_Field__c, and Related_Object_Data_Field_Mapping__c are all populated

FALSE

FALSE

7.13

Confirmed Document_Insight_Lookup_Field__c is set if the primary object should be linked back to the resulting PDF_Insight__c record

FALSE

FALSE

7.14

If a custom processor class is needed — confirmed Override_Parser_Class__c is set and the class implements ProcessCustomFormInterface

FALSE

FALSE


Section 8 — Document Insight Template: Google Gemini Configuration

#

Checklist Item

Maker

Checker

8.1

Created at least one active Document_Insight_Template__c record with Source__c = 'Google Gemini'

FALSE

FALSE

8.2

Confirmed Prompt__c is populated with clear, specific AI extraction instructions

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 sPossibleKey values in Data_Field_Mapping__c

FALSE

FALSE

8.5

Confirmed Data_Field_Mapping__c is populated with valid GenericFormConfiguration JSON (same structure as Lazarus)

FALSE

FALSE

8.6

For Gemini Picklist fields — confirmed the prompt instructs Gemini to return the exact Salesforce API picklist value (not a custom label), since Gemini writes the raw extracted value directly

FALSE

FALSE

8.7

If table/line-item data is needed in the prompt — confirmed the prompt instructs Gemini to return it under a "tableData" JSON key as a list of objects

FALSE

FALSE

8.8

If child records are required — confirmed Related_Object__c, Relationship_Field__c, and Related_Object_Data_Field_Mapping__c are all populated

FALSE

FALSE

8.9

Confirmed Document_Insight_Lookup_Field__c is set if the primary object should be linked back to the resulting PDF_Insight__c record

FALSE

FALSE

8.10

Set one Gemini template as isDefault__c = true if the genericCustomFormInsightRequest component is used

FALSE

FALSE

8.11

(Testing only) Configured getTemplateNameForGemini in Custom Metadata / ConfigurationService to point to a Static Resource for sandbox testing without consuming Gemini API quota

FALSE

FALSE


Section 9 — Field Mapping JSON Validation

#

Checklist Item

Maker

Checker

9.1

Validated the Data_Field_Mapping__c JSON is well-formed and parseable (no syntax errors)

FALSE

FALSE

9.2

Confirmed all sFieldAPIName values in the mapping exist as valid, accessible fields on the specified sObjectName

FALSE

FALSE

9.3

Confirmed all sObjectName values in the mapping are valid Salesforce object API names accessible by the integration profile

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 sFieldAPIName entries for the same object in the mapping (would cause field overwrite)

FALSE

FALSE

9.6

Verified sPossibleKey values are unique within the mapping (duplicate keys cause the bDuplicateKeysFound flag to trigger)

FALSE

FALSE

9.7

Tested the mapping using the documentTemplateMapping LWC wizard — confirmed all JSON keys are correctly detected and mapped

FALSE

FALSE

9.8

Validated child field mapping JSON (Related_Object_Data_Field_Mapping__c) independently if child records are in scope

FALSE

FALSE


Section 10 — PDF_Insight__c (Document Insights) Object Fields

#

Checklist Item

Maker

Checker

10.1

Confirmed bankconnect__Source__c field exists on PDF_Insight__c (stores 'Lazarus' or 'Google Gemini')

FALSE

FALSE

10.2

Confirmed bankconnect__Status__c field exists (stores Completed, Failed, Extraction Failed, Processing)

FALSE

FALSE

10.3

Confirmed bankconnect__API_Response__c long text field exists (stores field validation errors or API error messages)

FALSE

FALSE

10.4

Confirmed bankconnect__Missing_Fields__c long text field exists (stores names of fields not found in OCR response)

FALSE

FALSE

10.5

Confirmed bankconnect__Duplicate_Keys__c rich text / long text field exists (stores list of duplicate key names detected)

FALSE

FALSE

10.6

Confirmed bankconnect__Application_Name__c field exists (stores templateName::primaryObject composite key)

FALSE

FALSE

10.7

Confirmed bankconnect__Application_Id__c field exists (stores Lazarus document processing ID or Gemini responseId)

FALSE

FALSE

10.8

Confirmed bankconnect__Parent_Record_Id__c field exists (stores the source record ID from which the OCR was initiated)

FALSE

FALSE

10.9

Confirmed bankconnect__Start_Time__c and bankconnect__End_Time__c DateTime fields exist (populated for Lazarus only)

FALSE

FALSE

10.10

Confirmed Custom_Forms Record Type exists on PDF_Insight__c (used by both Lazarus and Gemini)

FALSE

FALSE

10.11

Created Lookup field from PDF_Insight__c to the Source Object (e.g., Opportunity__c, Account, Lead, Contact)

FALSE

FALSE

10.12

Confirmed PDF_Insight__c is added as a Related List on the Source Object page layout

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 parentCustomFormInsightRequest LWC to the Lightning Record Page of each Source Object

FALSE

FALSE

11.3

Verified the parentCustomFormInsightRequest LWC receives the correct recordId from the Lightning Page

FALSE

FALSE

11.4

(If using standalone entry) Added the genericCustomFormInsightRequest LWC to the relevant Lightning Page or utility bar

FALSE

FALSE

11.5

(If using Gemini Chat) Added the geminiChatScreen LWC to the relevant Lightning Page

FALSE

FALSE

11.6

Confirmed the Source Object's record page also includes a related list or link to PDF_Insight__c records

FALSE

FALSE


Section 12 — Behaviour-Controlling Custom Settings / Metadata

#

Checklist Item

Maker

Checker

12.1

Configured Plaid_Common_Settings__c record Link_Attachment — set TRUE if the uploaded file should also be linked to the newly created primary record

FALSE

FALSE

12.2

Configured Plaid_Common_Settings__c record Halt_Parsing_When_Duplicate_Keys_Found — set TRUE to stop field mapping and mark PDF_Insight__c as Failed when OCR returns duplicate keys

FALSE

FALSE

12.3

Confirmed Document_Insight_Common_Settings__mdt record AllowPartialTemplateStorage is set per business requirement (allows template creation even when duplicate keys are present during the template mapping wizard)

FALSE

FALSE

12.4

(Gemini testing only) Confirmed getTemplateNameForGemini value in ConfigurationService is blank in Production (static resource bypass must not be active in live environments)

FALSE

FALSE


Section 13 — Confidence Matrix Configuration (Lazarus Only)

#

Checklist Item

Maker

Checker

13.1

Confirmed the Confidence Matrix LWC components (confidenceMatrixParent and confidenceMatrixTable) are deployed and accessible

FALSE

FALSE

13.2

Embedded the confidenceMatrixParent LWC on the PDF_Insight__c Lightning Record Page

FALSE

FALSE

13.3

Verified the Confidence Threshold is configured via Custom Settings / Custom Metadata (Utility.getConfidenceThreshold())

FALSE

FALSE

13.4

Confirmed bankconnect__Unique_Composite_Key__c field exists on Document_Insight_Template__c (used to look up the template from Application_Name__c on the PDF_Insight__c record)

FALSE

FALSE

13.5

Confirmed the Unique_Composite_Key__c value on each template matches the format templateName::primaryObject exactly (this is how the confidence matrix locates the correct template)

FALSE

FALSE

13.6

Verified Confidence Score values are being captured in the Lazarus OCR response (keyValuePairs[].confidence)

FALSE

FALSE

13.7

Confirmed the Confidence Matrix applies the threshold: fields at or above threshold → Passed; below threshold → Pending Review; not found in OCR response → Not Found

FALSE

FALSE

13.8

Verified the raw Lazarus response JSON file (stored as ContentVersion on PDF_Insight__c) contains the confidence values used by the matrix

FALSE

FALSE

13.9

Tested the createConfidenceMatrixTable() method — confirmed a ContentVersion JSON file is generated and attached to the PDF_Insight__c record

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 PDF_Insight__c

FALSE

FALSE

14.3

Confirmed users have Create / Edit access on the Primary Object (e.g., Case, Opportunity) that will be created or updated by the field mapping processor

FALSE

FALSE

14.4

Confirmed users have Read / Create access on ContentDocument and ContentVersion (required for file uploads and raw response storage)

FALSE

FALSE

14.5

Confirmed users have Read access on Feature_Entitlement__c and PDFInsight_Credentials__c custom settings

FALSE

FALSE

14.6

Confirmed users have Read access on all Document_Insight_Template__c records they need to select

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 lightning-file-upload to the Source Object (requires appropriate file sharing / storage permissions)

FALSE

FALSE

14.9

Confirmed the genericCustomFormInsightRequest component's uploadFile() Apex method is accessible to all intended users (creates ContentVersion without a recordId linkage)

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 parentCustomFormInsightRequest component renders with "Custom Document OCR" header

FALSE

FALSE

15.2

Confirmed the component renders the "Feature Not Enabled" tile when Custom_Forms__c = false

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 Lazarus (read-only) upon template selection

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 PDF_Insight__c record is created with Source__c = 'Lazarus' and Status__c = 'Completed'

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 PDF_Insight__c record via ContentDocumentLink

FALSE

FALSE

15.12

Confirmed the raw Lazarus API response is stored as a JSON ContentVersion file attached to the PDF_Insight__c record

FALSE

FALSE

15.13

Verified bankconnect__Missing_Fields__c is populated with any field names not found in the OCR response

FALSE

FALSE

15.14

Tested a document with known extractable table data — confirmed child records are created on the configured Related_Object__c

FALSE

FALSE

15.15

Verified the child records are linked to the primary record via Relationship_Field__c

FALSE

FALSE

15.16

Tested the linkRecord configuration — confirmed the primary record contains a lookup back to the Source Object record

FALSE

FALSE

15.17

Tested the isParent configuration — confirmed field values are written to a related parent record (e.g., Account) via the mapped relationship field

FALSE

FALSE

15.18

Tested with a Driver's License — confirmed Identity_Verification__c is created with correct fields (Name, DOB, Expiry, Address, etc.)

FALSE

FALSE

15.19

Tested with a Passport — confirmed Identity_Verification__c is created with correct passport-specific fields

FALSE

FALSE

15.20

Tested with an SSN document — confirmed Identity_Verification__c is created with Social_Security_Number__c and name fields

FALSE

FALSE

15.21

Tested via the genericCustomFormInsightRequest (standalone) component — confirmed file upload via base64 and template selection works correctly

FALSE

FALSE

15.22

Confirmed the genericCustomFormInsightRequest dispatches CustomEvent('close') on success (does not reload the page)

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 Google Gemini (read-only)

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 PDF_Insight__c record is created with Source__c = 'Google Gemini' and Status__c = 'Completed'

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 ContentVersion file attached to the PDF_Insight__c record

FALSE

FALSE

16.7

Verified Picklist fields are populated with the raw extracted text from Gemini (not the hardcoded sPicklistValue used in Lazarus)

FALSE

FALSE

16.8

Tested a prompt that returns table data ("tableData" key) — confirmed child records are created on the configured related object

FALSE

FALSE

16.9

Confirmed bankconnect__Missing_Fields__c is populated for fields whose JSON keys were not returned by Gemini

FALSE

FALSE

16.10

Confirmed bankconnect__Application_Name__c follows the format templateName::primaryObject::source

FALSE

FALSE


Section 17 — End-to-End Testing: Google Gemini Interactive Chat (geminiChatScreen)

#

Checklist Item

Maker

Checker

17.1

Added the geminiChatScreen LWC to the relevant Lightning Page and confirmed it renders with the Gemini AI header and Gemini icon

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 (isLoading = true)

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 inline_data

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 contentDocumentId are reset

FALSE

FALSE

17.14

Confirmed no Salesforce records (PDF_Insight__c or field updates) are created as a result of chat interactions

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 Halt_Parsing_When_Duplicate_Keys_Found = TRUE — confirmed PDF_Insight__c Status = 'Failed' and Duplicate_Keys__c is populated

FALSE

FALSE

18.2

Tested with a document that produces duplicate OCR keys when Halt_Parsing_When_Duplicate_Keys_Found = FALSE — confirmed field mapping continues and Duplicate_Keys__c is populated as a warning

FALSE

FALSE

18.3

Tested with a document where some keys are missing from the OCR response — confirmed Missing_Fields__c lists the unmapped field API names and Status = 'Completed'

FALSE

FALSE

18.4

Confirmed the documentTemplateMapping LWC wizard blocks template creation when duplicate keys are returned by the AI (unless AllowPartialTemplateStorage = true)

FALSE

FALSE

18.5

Confirmed the documentTemplateMapping LWC displays the "Incomplete Prompt Detected" error when the AI response contains no extractable key-value pairs

FALSE

FALSE


Section 19 — Error Handling & Failed Scenarios

#

Checklist Item

Maker

Checker

19.1

Tested with invalid Lazarus credentials (Auth_Key__c or Org_ID__c) — confirmed PDF_Insight__c Status = 'Extraction Failed' and the API error message is stored in API_Response__c

FALSE

FALSE

19.2

Tested with an invalid Gemini API key — confirmed PDF_Insight__c Status = 'Extraction Failed' and the Gemini error status + message is stored in API_Response__c

FALSE

FALSE

19.3

Tested a scenario where Gemini returns a response with no valid JSON structure — confirmed PDF_Insight__c Status = 'Extraction Failed'

FALSE

FALSE

19.4

Tested with a template name that does not exist in Document_Insight_Template__c — confirmed PDF_Insight__c Status = 'Extraction Failed' with "Template not Found" message

FALSE

FALSE

19.5

Tested uploading a file exceeding the 8 MB limit on parentCustomFormInsightRequest — confirmed the file is deleted and the error message is shown inline

FALSE

FALSE

19.6

Tested uploading a file exceeding the 2 MB limit on genericCustomFormInsightRequest — confirmed the client-side check blocks the upload

FALSE

FALSE

19.7

Tested uploading a file exceeding the 5 MB limit on geminiChatScreen — confirmed the file is deleted and the error message is shown

FALSE

FALSE

19.8

Tested a DML exception scenario (e.g., required field missing on the primary object) — confirmed PDF_Insight__c Status = 'Failed' and the exception message is stored in API_Response__c

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 documentTemplateMapping LWC is accessible via the New button on the Document Insight Template list view

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 Document_Insight_Template__c record is created and the sample file is attached

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.