salesforce-appraiser-review.../docs/requirements.md

3.0 KiB

Requirements — Appraiser Review Letter Generator

Purpose

Outline technical and functional requirements for Appraiser Review Letter templates in Salesforce CLM. Include assumed merge fields, integration points, edge cases, and design goals.


Functional

  • Reviewer completes form Q&A on Appraiser Review
  • Each response drives tailored content in final letter (questions, comments, tables/blocks)
  • Salesforce triggers CLM letter, merges data fields and Q&A collection

Non-Functional

  • Configurable (new Qs/fields easy to add)
  • Audit and status tracking
  • Support for complex/dynamic tables in output

Key Requirements

  • Support dynamic template merge fields (arrays/lists, booleans, enums)
  • Render tables, paragraphs, and conditional sections
  • Handle edge cases: nulls, empty lists, formatting gaps
  • Provide fallback text for empty sections (e.g., 'No deficiencies found')
  • Enable integration with Salesforce data model (objects: Appraisal, Deficiency, Reviewer)

Example JSON

{
  "AppraisalId": "a1b2c3",
  "DeficiencyList": [
    {
      "DeficiencyType": "Missing Docs",
      "DeficiencyDescription": "Appraisal report lacking required documents."
    }
  ],
  "ReviewerComments": ["Well organized report."]
}

Questions/Decisions

  • What is the authoritative object and field schema for merge?
  • Are custom field mappings needed for relationships (e.g. lookup fields)?

Initial Authoritative Salesforce Schema

  • Appraiser_Case__c (Appraiser Case)
    • Name (label: Appraiser Case Number, AutoNumber)
    • Appraiser_Field_Review_Date__c (Date)
    • Property_Address__c (Text)
  • Appraiser_Case_Deficiency__c (Appraiser Case Deficiency)
    • Appraiser_Case__c (Master-Detail -> Appraiser_Case__c)
    • Deficiency_Number__c (Number)
    • Description__c (Long Text Area)
    • Resolution__c (Long Text Area)

This schema supports CLM array merges by iterating child deficiency records tied to one appraiser case.

CLM Integration

Payload Structure (from AppraiserCasePayloadBuilder)

The Apex class AppraiserCasePayloadBuilder transforms Salesforce records into CLM-ready JSON:

  • AppraiserCaseNumber (string) -> Appraiser_Case__c.Name
  • AppraiserFieldReviewDate (ISO date) -> Appraiser_Case__c.Appraiser_Field_Review_Date__c
  • PropertyAddress (string) -> Appraiser_Case__c.Property_Address__c
  • DeficiencyList (array of objects):
    • deficiencyNumber (number) -> Appraiser_Case_Deficiency__c.Deficiency_Number__c
    • description (string) -> Appraiser_Case_Deficiency__c.Description__c
    • resolution (string) -> Appraiser_Case_Deficiency__c.Resolution__c

CLM API Integration (CLMDocGenCallout)

  • HTTP POST to DocuSign CLM API with merge payload
  • Named Credentials: Securely store CLM endpoint + OAuth token
  • Remote Site Settings: Whitelist CLM instance domain
  • Response includes document URL and ID for tracking

See CLM_INTEGRATION.md for setup and usage patterns.


Last updated: 2026-02-26 10:35 AM Work in progress: Integration and schema expansion next.