110 lines
4.5 KiB
Markdown
110 lines
4.5 KiB
Markdown
# Salesforce Setup — Appraiser Case + DocuSign CLM
|
|
|
|
> Status note (2026-04-07): the project is now standardized on `Appraiser_Case_Deficiency__c` for both UI display and CLM document generation.
|
|
|
|
## What was added
|
|
|
|
### Custom object: `Appraiser_Case__c`
|
|
- Auto-number name field labeled **Appraiser Case Number**
|
|
- Dates: `Appraiser_Field_Review_Date__c`, `Letter_Sent_Date__c`
|
|
- Appraiser identity: `Appraiser_Name__c`, `Appraiser_Last_Name__c`, `Appraiser_Salutation__c`, `Appraiser_Email__c`
|
|
- Appraiser address: `Appraiser_Street__c`, `Appraiser_City__c`, `Appraiser_State_Province__c`, `Appraiser_Postal_Code__c`, `Appraiser_Country__c`
|
|
- Property address: `Property_Street__c`, `Property_City__c`, `Property_State_Province__c`, `Property_Postal_Code__c`, `Property_Country__c`
|
|
- Case metadata: `FHA_Case_Number__c`
|
|
- CLM tracking: `Last_CLM_Account_Code__c`, `Last_DocGen_Status__c`, `Last_DocGen_Message__c`, `Last_DocGen_Task_Id__c`, `Last_DocGen_Task_Url__c`, `Last_Template_Document_Href__c`, `Last_Destination_Folder_Href__c`, `Last_DocGen_Requested_At__c`, `Last_DocGen_Completed_At__c`
|
|
- Generated document: `Generated_Document_Id__c`, `Generated_Document_Url__c`
|
|
- Attached file: `Attached_File_Content_Document_Id__c`, `Attached_File_Url__c`
|
|
|
|
### Child custom object: `Appraiser_Case_Deficiency__c`
|
|
- Master-detail to `Appraiser_Case__c`
|
|
- `Deficiency_Number__c` (Number)
|
|
- `Description__c` (Long Text Area)
|
|
- `Resolution__c` (Long Text Area)
|
|
- `Reference__c` (Text)
|
|
|
|
### Custom metadata types
|
|
- `CLM_Account_Setting__mdt` — per-account CLM and eSignature configuration (Named Credentials, folder hrefs, template hrefs)
|
|
- `CLM_Letter_Definition__mdt` — per-account letter type definitions with optional folder/template overrides
|
|
- `CLM_Environment_Setting__mdt` — legacy environment defaults (UAT/S1); superseded by account settings
|
|
|
|
### Apex classes
|
|
- `AppraiserCasePayloadBuilder.cls` + test
|
|
- `CLMDocGenCallout.cls` + test
|
|
- `CLMAdminService.cls` + test
|
|
- `DocusignESignatureService.cls` + test
|
|
|
|
### Lightning Web Components
|
|
- `clmDocGenWorkbench` — CLM document generation UI (account selection, folder browsing, merge task submission, status polling, file attachment)
|
|
- `docusignEsignWorkbench` — eSignature API browsing (accounts, templates, envelopes)
|
|
- `clmRequestPreview` — merge request preview utility
|
|
|
|
### Named credentials
|
|
- `CLMuatNamedCreds`, `CLMs1NamedCreds` — CLM API calls
|
|
- `CLMuatDownload`, `CLMs1Download` — CLM document downloads
|
|
- `Esignature_Demo_NamedCreds` — eSignature REST API
|
|
- `AcctDemo_NamedCreds` — eSignature OAuth/userinfo
|
|
|
|
### Layouts and UI
|
|
- Page layouts for `Appraiser_Case__c` and `Appraiser_Case_Deficiency__c`
|
|
- Related list on Appraiser Case for deficiencies
|
|
- Record page: `Appraiser_Case_Record_Page`
|
|
- Quick action: `Generate Review Letter` (launches `clmDocGenWorkbench`)
|
|
- Custom tabs for both objects
|
|
- Custom app: `Appraiser_Review`
|
|
|
|
### Permissions
|
|
- `Appraiser_Case_Admin` — full access
|
|
- `Appraiser_Case_Access` — read/create access
|
|
|
|
### Sample data
|
|
- Anonymous Apex script: `scripts/apex/createSampleAppraiserCase.apex`
|
|
|
|
## Deploy
|
|
|
|
From the project root:
|
|
|
|
```bash
|
|
sf project deploy start --source-dir force-app
|
|
```
|
|
|
|
Or from elsewhere:
|
|
|
|
```bash
|
|
sf project deploy start --source-dir /home/paulh/.openclaw/workspace/projects/salesforce-appraiser-review-letter/force-app
|
|
```
|
|
|
|
## Test Apex
|
|
|
|
```bash
|
|
sf apex run test --tests AppraiserCasePayloadBuilderTest --tests CLMAdminServiceTest --tests CLMDocGenCalloutTest --tests DocusignESignatureServiceTest --result-format human
|
|
```
|
|
|
|
## Load sample data
|
|
|
|
```bash
|
|
sf apex run --file scripts/apex/createSampleAppraiserCase.apex
|
|
```
|
|
|
|
## Assign permission set
|
|
|
|
```bash
|
|
sf org assign permset --name Appraiser_Case_Admin
|
|
```
|
|
|
|
## Suggested next steps in Salesforce
|
|
|
|
1. Deploy metadata.
|
|
2. Assign permission set.
|
|
3. Run the sample Apex script.
|
|
4. Open the `Appraiser Case` tab and verify the record + related deficiencies.
|
|
5. Validate the XML merge payload path in debug logs or by running the Apex methods directly.
|
|
6. Open an `Appraiser Case` record and use the `Generate Review Letter` action to browse folders/templates and submit a merge task.
|
|
|
|
## About the quick action
|
|
|
|
The `Generate Review Letter` quick action is now wired to the `clmDocGenWorkbench` LWC for interactive CLM browsing and merge submission.
|
|
|
|
## About “page layout” and “default setup”
|
|
|
|
You said “just do default.” In Salesforce terms that means I created the baseline metadata so records can be created and edited in a normal Lightning UI without custom polish yet.
|