Loading
Insurance
InsClaimService:createUpdateClaim

InsClaimService:createUpdateClaim

Utilisez ce service pour créer ou mettre à jour une réclamation.

Classe: InsClaimService

Méthode : createUpdateClaim

Fonctionnement

Le produit Salesforce Claims prend en charge le modèle d'objet existant Vlocity (objets personnalisés dans un package géré) et le nouveau modèle d'objet Salesforce (objets Salesforce standard). Le modèle Vlocity prend en charge la relation Actif → InsuranceClaim entre les polices et les déclarations. Le modèle Salesforce prend en charge la relation Police d'assurance → Déclaration entre les polices et les déclarations.

  1. Récupère un JSON prétransformé appelé par le inputKey. Le service vérifie ensuite l'élément policyId dans le JSON d'entrée pour déterminer si le service crée une réclamation Vlocity ou Salesforce FSC :

    • Si policyId appartient à un enregistrement Actif, le service crée des objets de réclamation Vlocity : InsuranceClaim__c, InsuranceClaimInvolvedInjury__c, InsuranceClaimInvolvedProperty__c et InsuranceClaimPartyRelationship__c.

    • Si policyId appartient à un enregistrement InsurancePolicy, le service crée les objets de réclamation Salesforce FSC suivants : Claim, ClaimItem et ClaimParticipant.

    • Si l'élément policyId n'est pas disponible dans le JSON d'entrée ou si sa valeur est vide, l'option distante isAssetInsuranceClaim est cochée. Si sa valeur est true, le service crée des objets de réclamation Vlocity, sinon il crée des objets de réclamation FSC. Si policyId n'a aucune valeur et que isAssetInsuranceClaim n'est pas défini, la valeur par défaut de isAssetInsuranceClaim est false.

  2. Si aucun claimId n'est transmis, le service crée un objet réclamation.

    Si un claimId est transmis, le service met à jour l'objet réclamation.

  3. Si l'generateClaimNumber ou l'uniqueIdGeneratorObjectSetting, ou les deux options, sont définies, le service les utilise pour créer un claimNumber (champ Nom).

    La meilleure pratique consiste à attribuer un numéro de réclamation unique à chaque réclamation. Utilisez des options distantes pour respecter cette recommandation et assurez-vous que tous les workflows personnalisés génèrent des valeurs claimNumber uniques. Si aucune valeur unique n'est configurée, le système définit les numéros de toutes les réclamations sur la même valeur.

  4. Renvoie claimId, policyHolderClaimantId (ou policyholderClaimParticipantId si c'est une réclamation FSC) et le nœud involvedItems dans le JSON de sortie.

Options distantes

Option

Description

inputKey

Obligatoire.

Récupère la liste des structures JSON prétransformées qui contiennent les informations dont le service a besoin. Selon le policyId, le claimJson utilise l'un des modèles d'objet de réclamation suivants :

  • Modèle d'objet Réclamation Salesforce FSC

  • Modèle d'objet Déclaration Vlocity

claimId

Facultatif.

Si le claimId est transmis, le service met à jour la réclamation.

Si le claimId n'est pas transmis, le service crée une réclamation.

generateClaimNumber

Facultatif.

Si true, le service utilise le UniqueIdGeneratorService pour générer une clé unique et définir le champ Name sur cette clé unique.

uniqueIdGeneratorObjectSetting

Facultatif.

Si generateClaimNumber est true et que ce paramètre est =null, le service recherche le paramètre Vlocity UniqueId Generator avec Object Type = Claim.

Si le service détecte plusieurs paramètres, il renvoie une erreur.

Si le service trouve un paramètre, il utilise ce paramètre.

Si generateClaimNumber est true et que ce paramètre n'est pas = null, le service recherche Vlocity UniqueId Generator Setting avec Name = < cette valeur de paramètre > et Object Type = Claim. Il utilise ensuite ce paramètre pour générer la clé unique.

isAssetInsuranceClaim

Facultatif.

Détermine si le service crée une réclamation Vlocity ou une réclamation Salesforce FSC.

  • Si la valeur est true, le service crée une réclamation Vlocity.

  • Si la valeur est false, le service crée une réclamation Salesforce FSC.

JSON d'entrée (modèle d'objet de réclamation Salesforce FSC)

Ce modèle est applicable dans l'un des deux cas suivants :

  • La policyID claimJson appartient à un objet InsuranceClaim.

  • La valeur de l'option distante isAssetInsuranceClaim est false.

    Remarque
    Remarque

    L'option de télécommande isAssetInsuranceClaim est appliquée uniquement lorsque policyId n'est pas présent dans le JSON d'entrée ou lorsqu'il contient une valeur vide. De plus, lorsque policyId n'a aucune valeur et que isAssetInsuranceClaim n'est pas définie, la valeur par défaut de isAssetInsuranceClaim est false.

Le service utilise le inputKey pour obtenir un JSON prétransformé à utiliser en entrée. Ce service peut également extraire directement la spécification de l'article assuré du produit et créer une partie ou une propriété assurée.

Dans cet exemple, inputKey = claimJson.

Entrée

Description

inputKey = claimJson

claimJSON

Les éléments d'entrée dans la structure JSON :

  • policyholderInsurancePolicyParticipantId : L'ID du participant à l'assurance de l'assuré.

  • policyholderClaimParticipantRole : Une liste des rôles du participant à la réclamation du souscripteur. Insérez un délimiteur point-virgule entre chaque valeur.

    Exemple : "Insured;Claimant"

  • lossDate : Requis lorsque la réclamation est configurée avec une classe d'attribut sensible au temps telle que Rolling et Calendar Year. Si aucune date n'est fournie, les Termes de police avec le type de durée Rolling et Calendar Year ne sont pas créés.

claimPropertyItems ou claimPartyItems

La liste des entrées de biens et de blessures. Ce paramètre d'entrée fait partie de claimJSON.

  • insurancePolicyParticipantId : L'ID du participant à la police qui est blessé ou qui a subi une perte matérielle. Si vous fournissez cet ID, le service utilise les ContactId et les AccountId appropriés de l'enregistrement InsurancePolicyParticipant. Vous pouvez ignorer les contactId et les accountId si vous fournissez des insurancePolicyParticipantId.

  • contactId : L'ID du contact blessé ou ayant subi une perte matérielle. Saisissez un contactId si le demandeur n'a pas d'ID de participant à la police. Si vous fournissez cet ID, le service utilise le AccountId approprié de l'enregistrement Contact. Vous pouvez ignorer les accountId si vous fournissez des contactId.

  • accountId : L'ID du compte. Saisissez des accountId si le demandeur n'a pas d'ID de participant à la police et si vous ne fournissez pas de contactId.

  • claimParticipantRoles : Une liste des rôles du participant à la réclamation du souscripteur. Insérez un délimiteur point-virgule entre chaque valeur.

    Exemple : "Insured;Claimant"

  • insuredItemId : Cette entrée accepte l'ID d'un enregistrement InsurancePolicyAsset.

additionalClaimParticipants

La liste des participants à la réclamation supplémentaires. Ce paramètre d'entrée fait partie de claimJSON.

Spécifiez au moins un champ ID : insurancePolicyParticipantId, contactId, ou accountId.

  • insurancePolicyParticipantId : L'ID d'un participant supplémentaire dans cette réclamation. Si vous fournissez cet ID, le service utilise les ContactId et les AccountId appropriés de l'enregistrement InsurancePolicyParticipant. Vous pouvez ignorer les contactId et les accountId si vous fournissez des insurancePolicyParticipantId.

  • contactId : L'ID du contact qui est un participant supplémentaire dans cette réclamation. Si vous fournissez cet ID, mais pas insurancePolicyParticipantId, le service utilise la AccountId appropriée de l'enregistrement Contact. Vous pouvez ignorer les accountId si vous fournissez des contactId.

  • accountId : L'ID du compte.

  • claimParticipantRoles : Une liste des rôles du participant à la réclamation. Insérez un délimiteur point-virgule entre chaque valeur.

    Exemple : "Claimant;Payee;Witness"

Voici un exemple de JSON d'entrée pour une réclamation 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 de sortie

Voici un exemple de JSON de sortie pour une réclamation 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 d'entrée (modèle d'objet Vlocity Claim)

Ce modèle est applicable dans l'un des deux cas suivants :

  • La policyID dans claimJson appartient à un objet Actif.

  • La valeur de l'option distante isAssetInsuranceClaim est true.

    Remarque
    Remarque

    L'option de télécommande isAssetInsuranceClaim est appliquée uniquement lorsque policyId n'est pas présent dans le JSON d'entrée ou lorsqu'il contient une valeur vide. De plus, lorsque policyId n'a aucune valeur et que isAssetInsuranceClaim n'est pas définie, la valeur par défaut de isAssetInsuranceClaim est false.

Le service utilise le inputKey pour obtenir un JSON prétransformé à utiliser en entrée. Ce service peut également extraire directement la spécification de l'article assuré du produit et créer une partie ou une propriété assurée.

Dans cet exemple, inputKey = claimJson.

Entrée

Description

inputKey = claimJson.

claimJSON

Les éléments d'entrée dans la structure JSON :

  • policyHolderPartyId : ID de partie basé sur l'ID de l'objet Partie (Party__c).

  • policyHolderPartyName : Nom de la partie basé sur le nom de l'objet Partie (Party__c). Il doit correspondre au nom d'un enregistrement Party__c existant.

  • policyHolderPartyRelationshipTypeId : ID de type de relation basé sur l'ID de l'objet Type de relation de partie Vlocity (PartyRelationshipType__c).

  • policyHolderPartyRelationshipType : Nom du type de relation basé sur le nom de l'objet Type de relation de partie Vlocity (PartyRelationshipType__c). Il doit correspondre au nom de l'enregistrement PartyRelationshipType__c existant.

claimPropertyItems ou claimPartyItems

La liste des entrées de biens et de blessures. Ce paramètre d'entrée fait partie de claimJSON.

Propriété

  • claimantPartyId

  • claimantPartyName

  • claimantPartyRelationshipTypeId

  • claimantPartyRelationshipTypeName

  • insuredItemId

Blessure

  • partyId

  • partyName

  • claimPartyRelationshipTypeId

  • claimPartyRelationshipTypeName

Pour claimantPartyRelationshipTypeID et claimantPartyRelationshipTypeName, vous avez besoin d'un seul de ces deux éléments.

Pour claimantPartyName et claimantPartyID, vous avez besoin d'un seul de ces deux éléments.

Vous devez avoir un package de chacune de ces entrées qui correspondent.

S'il s'agit d'une nouvelle combinaison, elle insère un enregistrement. Si ce n'est pas une nouvelle combinaison, elle utilise l'enregistrement existant pour la combinaison.

La sortie est un claimantId (pas un partyId).

Voici le format du JSON d'entrée pour une réclamation 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 de sortie

Voici le format du JSON de sortie pour une réclamation 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>
      }
    ]
  }
}

Exemple d'interface (modèle d'objet Vlocity Claim)

{
  "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
    }
  }
}
 
Chargement
Salesforce Help | Article