Loading
Assicurazioni
InsClaimService:createUpdateClaim

InsClaimService:createUpdateClaim

Utilizzare questo servizio per creare o aggiornare una richiesta.

Classe: InsClaimService

Metodo: createUpdateClaim

Funzionamento

Il prodotto Salesforce Claims supporta sia il modello di oggetto Vlocity esistente (oggetti personalizzati nel pacchetto gestito) che il nuovo modello di oggetto Salesforce (oggetti Salesforce standard). Il modello Vlocity supporta la relazione Asset → InsuranceClaim tra polizze e richieste. Il modello Salesforce supporta la relazione InsurancePolicy → Claim tra polizze e richieste.

  1. Recupera un JSON pre-trasformato chiamato dall'inputKey. Quindi il servizio controlla l'elemento policyId nel JSON di input per determinare se il servizio crea un claim Vlocity o Salesforce FSC:

    • Se policyId appartiene a un record Asset, il servizio crea oggetti richiesta Vlocity: InsuranceClaim__c, InsuranceClaimInvolvedInjury__c, InsuranceClaimInvolvedProperty__c e InsuranceClaimPartyRelationship__c.

    • Se policyId appartiene a un record InsurancePolicy, il servizio crea i seguenti oggetti richiesta Salesforce FSC: Claim, ClaimItem e ClaimParticipant.

    • Se l'elemento policyId non è disponibile nel JSON di input o il suo valore è vuoto, viene selezionata l'opzione remota isAssetInsuranceClaim. Se il valore è true, il servizio crea oggetti richiesta Vlocity, altrimenti crea oggetti richiesta FSC. Nel caso in cui policyId non abbia alcun valore e isAssetInsuranceClaim non sia impostato, il valore predefinito di isAssetInsuranceClaim è false.

  2. Se non viene passato alcun claimId, il servizio crea un oggetto richiesta.

    Se viene passato un claimId, il servizio aggiorna l'oggetto richiesta.

  3. Se sono impostate le opzioni generateClaimNumber o uniqueIdGeneratorObjectSetting o entrambe, il servizio le utilizza per creare un claimNumber (campo Nome).

    È consigliabile assegnare un numero di richiesta univoco a ogni richiesta. Utilizzare le opzioni remote per soddisfare questo consiglio e assicurarsi che tutti i flussi di lavoro personalizzati generino valori claimNumber univoci. Se non è configurato un valore univoco, il sistema imposta i numeri delle richieste per tutte le richieste sullo stesso valore.

  4. Restituisce claimId, policyHolderClaimantId (o policyholderClaimParticipantId se è una richiesta FSC) e il nodo involvedItems nel JSON di output.

Opzioni remote

Opzione

Descrizione

inputKey

Obbligatorio.

Ottiene un elenco delle strutture JSON pre-trasformate che contengono le informazioni necessarie al servizio. A seconda del policyId, il claimJson utilizza uno dei seguenti modelli di oggetto richiesta:

  • Modello oggetto richiesta Salesforce FSC

  • Modello oggetto richiesta Vlocity

claimId

Facoltativo.

Se il claimId viene trasmesso, il servizio aggiorna la richiesta.

Se il claimId non viene trasmesso, il servizio crea una richiesta.

generateClaimNumber

Facoltativo.

Se true, il servizio utilizza il UniqueIdGeneratorService per generare una chiave univoca e impostare il campo Name su quella chiave univoca.

uniqueIdGeneratorObjectSetting

Facoltativo.

Se generateClaimNumber è true e questo parametro =null, il servizio trova l'impostazione Generatore UniqueId Vlocity con Object Type = Claim.

Se il servizio trova più impostazioni, restituisce un errore.

Se il servizio trova un'impostazione, la utilizza.

Se generateClaimNumber è true e questo parametro non è = null, il servizio trova Impostazione generatore UniqueId Vlocity con Name = < questo valore di parametro > e Object Type = Claim. Quindi utilizza tale impostazione per generare la chiave univoca.

isAssetInsuranceClaim

Facoltativo.

Determina se il servizio crea una richiesta Vlocity o una richiesta Salesforce FSC.

  • Se il valore è true, il servizio crea una richiesta Vlocity.

  • Se il valore è false, il servizio crea una richiesta Salesforce FSC.

JSON di input (Modello oggetto richiesta Salesforce FSC)

Questo modello è applicabile in uno dei due casi seguenti:

  • Il policyID in claimJson appartiene a un oggetto InsuranceClaim.

  • Il valore dell'opzione isAssetInsuranceClaim remoto è false.

    Nota
    Nota

    L'opzione isAssetInsuranceClaim remoto viene applicata solo quando policyId non è presente nel JSON di input o quando ha un valore vuoto. Inoltre, quando policyId non ha alcun valore e isAssetInsuranceClaim non è impostato, il valore predefinito di isAssetInsuranceClaim è false.

Il servizio utilizza il inputKey per ottenere un JSON pre-trasformato da utilizzare come input. Questo servizio può anche prelevare direttamente la specifica dell'articolo assicurato dal prodotto e creare una parte o una proprietà assicurata.

In questo esempio, inputKey = claimJson.

Input

Descrizione

inputKey = claimJson

claimJSON

Gli elementi di input all'interno della struttura JSON:

  • policyholderInsurancePolicyParticipantId: ID del partecipante assicurativo dell'assicurato.

  • policyholderClaimParticipantRole: Elenco dei ruoli del partecipante richiesta dell'assicurato. Inserire un delimitatore con punto e virgola tra ogni valore.

    Esempio: "Insured;Claimant"

  • lossDate: Obbligatorio quando la richiesta è configurata con una classe di attributo sensibile al tempo, ad esempio Rolling e Anno di calendario. Se non viene specificata alcuna data, le condizioni della polizza con tipo di durata Rolling e Anno di calendario non vengono create.

claimPropertyItems o claimPartyItems

L'elenco degli input di proprietà e lesioni. Questo parametro di input fa parte di claimJSON.

  • insurancePolicyParticipantId: ID del partecipante alla polizza ferito o che ha subito un danno patrimoniale. Se si specifica questo ID, il servizio utilizza le ContactId e i AccountId appropriati del record InsurancePolicyParticipant. È possibile tralasciare contactId e accountId se si forniscono insurancePolicyParticipantId.

  • contactId: ID del referente ferito o che ha subito un danno patrimoniale. Fornire contactId se il richiedente non dispone di un ID partecipante polizza. Se si specifica questo ID, il servizio utilizza le AccountId appropriate del record Referente. È possibile tralasciare accountId se si forniscono contactId.

  • accountId: ID dell'account. Fornire accountId se il richiedente non dispone di un ID partecipante polizza e non viene fornita alcuna contactId.

  • claimParticipantRoles: Elenco dei ruoli del partecipante richiesta dell'assicurato. Inserire un delimitatore con punto e virgola tra ogni valore.

    Esempio: "Insured;Claimant"

  • insuredItemId: Questo input accetta l'ID di un record InsurancePolicyAsset.

additionalClaimParticipants

L'elenco dei partecipanti richiesta aggiuntivi. Questo parametro di input fa parte di claimJSON.

Specificare almeno uno dei campi ID: insurancePolicyParticipantId, contactId, o accountId.

  • insurancePolicyParticipantId: ID di un partecipante aggiuntivo sulla richiesta. Se si specifica questo ID, il servizio utilizza le ContactId e i AccountId appropriati del record InsurancePolicyParticipant. È possibile tralasciare contactId e accountId se si forniscono insurancePolicyParticipantId.

  • contactId: ID del referente che è un partecipante aggiuntivo a questa richiesta. Se si specifica questo ID ma non insurancePolicyParticipantId, il servizio utilizza il AccountId appropriato del record Referente. È possibile tralasciare accountId se si forniscono contactId.

  • accountId: ID dell'account.

  • claimParticipantRoles: Elenco dei ruoli del partecipante richiesta. Inserire un delimitatore con punto e virgola tra ogni valore.

    Esempio: "Claimant;Payee;Witness"

Di seguito è riportato un esempio di JSON di input per una richiesta Salesforce FSC:

{ 
 "claimJson": {
  "claimAttributes": {
     "amountDeductible": "500.00"
  },
  "claimPropertyItems": { 
   "autoClaimInvolvedVehicle": [ 
     {
      "claimParticipantRoles": "First Party Claimant; Insured",          
      "insurancePolicyParticipantId": "0ao5w0000000Cl7AAE",          
      "contactId": null,          
      "accountId": null,
      "insuredItemId": "0YW5w0000000HLKGA2",          
      "additionalFields": {},          
      "productCode": "autoClaimInvolvedVehicle",           
      "avMake": "Jeep",           
      "avModel": "Wrangler",          
      "avLicNum": "49J9384",           
      "avLicState": "CA",          
      "avYear": "2019",           
      "avColor": "Red",          
      "claimInsuredProp": true,          
      "claimEstimate": null,          
      "claimPropertyLoc": null,          
      "claimSeverity": null,          
      "claimDamage": "Front End Damage",          
      "claimDamageLoc": null,          
      "claimDrivable": false
     },        
      {          
       "claimParticipantRoles": "Third Party Claimant",          
       "insurancePolicyParticipantId": null,          
       "contactId": "0ao5w0000000J47AX5",          
       "accountId": null,          
       "insuredItemId": null,          
       "additionalFields": {},          
       "productCode": "autoClaimInvolvedVehicle",
       "avMake": "Audi",          
       "avModel": "A5",          
       "avLicNum": "48H03949",          
       "avLicState": "WA",          
       "avYear": "2015",          
       "avColor": "Blue",          
       "claimInsuredProp": false,          
       "claimEstimate": null,          
       "claimPropertyLoc": null,           
       "claimSeverity": null,          
       "claimDamage": "Rear End Damage",          
       "claimDamageLoc": null,          
       "claimDrivable": false
      }      
     ]    
    },    
    "claimPartyItems": {      
    "claimInjuredPerson": [        
    {          
     "claimParticipantRoles": "Third Party Claimant",          
     "contactId": "0ao5w0000000J47AX5",          
     "accountId": null,          
     "insurancePolicyParticipantId": null,          
     "additionalFields": {},          
     "productCode": "claimParticipantPerson",          
     "injDescription": "Whiplash"        
    }      
   ],    
    "additionalClaimParticipants": [
     {
      "Id": null,
      "insurancePolicyParticipantId":  null,
      "contactId": null,
      "accountId": "0015g00000H480EAAR",
      "claimParticipantRoles": "Witness", 
      "additionalFields": {}
     }
    ]
   },
  "additionalFields": {},    
  "policyholderClaimParticipantRole": "Insured",    
  "policyholderInsurancePolicyParticipantId": "0ao5w0000000Cl7AAE",    
  "policyId": "0YT5w0000000ieyGAA",    
  "lossDate": "2021-03-29T16:00:00.000Z",    
  "productCode": "autoClaimProduct"  
 } 
} 

JSON di output

Di seguito è riportato un esempio di JSON di output per una richiesta Salesforce FSC:

{  
 "CreateUpdateClaimRemoteAction": {    
  "involvedItems": [      
    {       
     "insuredItemId": "0YW5w0000000HLKGA2",     
     "claimItemId": "0dq5w0000008PrNAAU",    
     "accountId": "0035w000034fL4YAK",    
     "contactId": "0035w000039cfL2AAI",   
     "insurancePolicyParticipantId": "0ao5w0000000Cl7AAE",      
     "claimParticipantRoles": "First Party Claimant; Insured",   
     "claimParticipantId": "0aS5w00000007r3EAA"    
    },      
    {
     "insuredItemId": null,    
     "claimItemId": "0dq5w0000008PrNAAU",    
     "accountId": null,   
     "contactId": "0035w000039cfL2AAI",   
     "insurancePolicyParticipantId": "0ao5w0000000Cl7AAE",  
     "claimParticipantRoles": "Third Party Claimant", 
     "claimParticipantId": "0aS5w00000004K59dD"      
    }    
   ],
   "policyholderClaimParticipantId": "0ao5w0000000Cl7AAE",    
   "claimId": "0Zk5w0000000IOVCA2"  
  },
  "policyTermIds": [     
   "a6Q5w0000002x6oEAA", 
   "a6Q5w0000002x6pEAA", 
   "a6Q5w0000002x6qEAA", 
   "a6Q5w0000002x6rEAA", 
   "a6Q5w0000002x6sEAA", 
   "a6Q5w0000002x6tEAA"  
  ]
 }

JSON di input (Modello oggetto richiesta Vlocity)

Questo modello è applicabile in uno dei due casi seguenti:

  • Il policyID in claimJson appartiene a un oggetto Asset.

  • Il valore dell'opzione isAssetInsuranceClaim remoto è true.

    Nota
    Nota

    L'opzione isAssetInsuranceClaim remoto viene applicata solo quando policyId non è presente nel JSON di input o quando ha un valore vuoto. Inoltre, quando policyId non ha alcun valore e isAssetInsuranceClaim non è impostato, il valore predefinito di isAssetInsuranceClaim è false.

Il servizio utilizza il inputKey per ottenere un JSON pre-trasformato da utilizzare come input. Questo servizio può anche prelevare direttamente la specifica dell'articolo assicurato dal prodotto e creare una parte o una proprietà assicurata.

In questo esempio, inputKey = claimJson.

Input

Descrizione

inputKey = claimJson.

claimJSON

Gli elementi di input all'interno della struttura JSON:

  • policyHolderPartyId: ID parte basato sull'ID dell'oggetto Parte (Party__c).

  • policyHolderPartyName: Nome della parte basato sul nome dell'oggetto Parte (Party__c). Deve essere il nome di un record Party__c esistente.

  • policyHolderPartyRelationshipTypeId: ID tipo di relazione basato sull'ID dell'oggetto Tipo di relazione con la parte (PartyRelationshipType__c) di Vlocity.

  • policyHolderPartyRelationshipType: Nome del tipo di relazione basato sul nome dell'oggetto Tipo di relazione con la parte Vlocity (PartyRelationshipType__c). Deve essere il nome del record PartyRelationshipType__c esistente.

claimPropertyItems o claimPartyItems

L'elenco degli input di proprietà e lesioni. Questo parametro di input fa parte di claimJSON.

Proprietà

  • claimantPartyId

  • claimantPartyName

  • claimantPartyRelationshipTypeId

  • claimantPartyRelationshipTypeName

  • insuredItemId

Lesione

  • partyId

  • partyName

  • claimPartyRelationshipTypeId

  • claimPartyRelationshipTypeName

Per claimantPartyRelationshipTypeID e claimantPartyRelationshipTypeName è necessario uno solo di questi due elementi.

Per claimantPartyName e claimantPartyID è necessario uno solo di questi due elementi.

È necessario disporre di un pacchetto di ciascuno di questi input corrispondenti.

Se si tratta di una nuova combinazione, inserisce un record. Se non è una nuova combinazione, utilizza il record esistente per la combinazione.

L'output è un claimantId (non un partyId).

Di seguito è riportato il formato del JSON di input per una richiesta Vlocity:

{
  "input": {
    "claimJson": {
      "claimAttributes": {
        "amountDeductible": <Decimal>
      },
      "claimPropertyItems": {
        "homeUnit": [
          {
            "Id": <Id>,
            "claimantPartyRelationshipTypeName": <String>,
            "claimantPartyRelationshipTypeId": <Id>,
            "claimantPartyName": <String>,
            "claimantPartyId": <Id>,
            "insuredItemId": <Id>,
            "additionalFields": {},
            "productCode": <String>,
            "productName": <String>,
            "productId": <Id>
          }
        ],
  		"claimClaimantPerson": [
    		"additionalFields": {
      		"Name": <String>
    		},
    		"productCode": <String>,
    		"persPhone": <String>,
    		"persLastName": <String>,
    		"persName": <String>,
    		"persFirstName": <String>,
    		"persEmail": <String>,
    		"claimInjury": <String>,
    		"claimPartyRelationshipTypeName": <String>,
			"claimPartyRelationshipTypeId": <Id>,
			"partyName": <String>
    		"partyId": <Id>
  		]
      },
      "additionalFields": {},
      "policyHolderPartyRelationshipType": <String>,
      "policyHolderPartyRelationshipTypeId": <Id>,
      "policyHolderPartyName": <String>,
      "policyHolderPartyId": <Id>,
      "policyId": <Id>,
      "policyNumber": <String>,
      "lossDate": <Date>,
      "productCode": "deluxeHomeowners",
      "productName": "Deluxe Homeowners",
      "productId": <Id>
    	}
	}
}

JSON di output

Di seguito è riportato il formato del JSON di output per una richiesta Vlocity:

{  
   "output": {
    "claimId": <String>,
    "policyHolderClaimantId": <Id>,
    "involvedItems": [
      {
        "insuredItemId": <Id>,
        "claimantPartyAccountName": <String>,
        "claimantPartyContactName": <String>,
        "claimantPartyId": <Id>,
        "claimantId": <Id>,
        "involvedItemId": <Id>
      },
      {
        "heldProductRelationshipId": <Id>,
        "claimantPartyAccountName": <String>,
        "claimantPartyContactName": <String>,
        "claimantPartyId": <Id>,
        "claimantId": <Id>,
        "involvedInjuryId": <Id>
      }
    ]
  }
}

Interfaccia di esempio (Modello oggetto richiesta Vlocity)

{
  "input": {
    "claimJson": {
      "claimPropertyItems": {
        "claimVehicle": [
          {
            "insuredItemId": null,
            "claimantPartyId":null,
            "claimantPartyName":null,
            "claimantPartyRelationshipTypeId":null,
            "claimantPartyRelationshipTypeName":null,
            "additionalFields": {},
            "productCode": "claimVehicle",
            "productName": "Damaged Vehicle",
            "productId": "01t3i0000001cWAAAY",
            "autoBodyType": null,
            "autoColor": null,
            "autoLicNum": null,
            "autoLicState": null,
            "autoMake": null,
            "autoModel": null,
            "autoVIN": null,
            "autoYear": null,
            "claimDamage": null,
            "claimDamageLoc": null,
            "claimDrivable": false,
            "claimImage": null,
            "claimInsuredProp": false,
            "claimEstimate": null,
            "claimPropertyLoc": null,
            "claimSeverity": null
          }
        ]
      },
      "claimPartyItems": {
        "claimWitness": [
          {
            "heldProductRelationshipId": null,
            "partyId": null,
            "partyName": null,
            "claimPartyRelationshipTypeId":null,
            "claimPartyRelationshipTypeName":null,
            "additionalFields": {},
            "productCode": "claimWitness",
            "productName": "Witness",
            "productId": "01t3i0000001cWCAAY",
            "claimRel": null,
            "claimStatement": null,
            "claimTestify": false,
            "persPhone": null,
            "persSalutation": null,
            "persAddress": null,
            "persBirthdate": null,
            "persEmail": null,
            "persFirstName": null,
            "persLastName": null,
            "persMiddleName": null,
            "persName": null
          }
        ],
        "claimInjuredPerson": [
          {
            "heldProductRelationshipId": null,
            "partyId": null,
            "partyName": null,
            "claimPartyRelationshipTypeId":null,
            "claimPartyRelationshipTypeName":null,
            "additionalFields": {},
            "productCode": "claimInjuredPerson",
            "productName": "Injured Person",
            "productId": "01t3i0000001cWEAAY",
            "claimCarrier": null,
            "claimInjury": null,
            "claimPhysician": null,
            "claimPolicyNumber": null,
            "claimRel": null,
            "claimStatement": null,
            "claimTreatLoc": null,
            "claimInsuredProp": false,
            "claimEstimate": null,
            "claimSeverity": null,
            "persAddress": null,
            "persBirthdate": null,
            "persEmail": null,
            "persFirstName": null,
            "persLastName": null,
            "persMiddleName": null,
            "persName": null,
            "persPhone": null,
            "persSalutation": null,
            "claimantPartyRelationshipTypeId":null
          }
        ],
        "claimDriver": [
          {
            "heldProductRelationshipId": null,
            "partyId": null,
            "partyName": null,
            "claimPartyRelationshipTypeId":null,
            "claimPartyRelationshipTypeName":null,
            "additionalFields": {},
            "productCode": "claimDriver",
            "productName": "Driver",
            "productId": "01t3i0000001cWBAAY",
            "persAddress": null,
            "Birthdate": null,
            "persEmail": null,
            "First Name": null,
            "persIDJuris": null,
            "perIDNumber": null,
            "persIDType": null,
            "LastName": null,
            "MiddleName": null,
            "NAME": null,
            "persPhone": null,
            "persSalutation": null,
            "claimCarrier": null,
            "claimInjury": null,
            "claimInsured": false,
            "claimPhysician": null,
            "claimPolicyNumber": null,
            "claimRel": null,
            "claimStatement": null,
            "claimTestify": false,
            "claimTreatLoc": null
          }
        ]
      },
      "additionalFields": {},
      "policyHolderPartyId": null,
      "policyHolderPartyName": null,
      "policyHolderPartyRelationshipTypeId": null,
      "policyHolderPartyRelationshipType": null,
      "policyId": null,
      "policyNumber": null,
      "lossDate": null,
      "productCode": "claimPerilAutoCollision",
      "productName": "Auto Collision",
      "productId": null
    }
  }
}
 
Caricamento
Salesforce Help | Article