Loading
Insurance
InsEnrollmentService:enrollPlans

InsEnrollmentService:enrollPlans

Utilisez ce service pour créer des enregistrements de police (Actif ou Police d'assurance) pour une sélection de régimes médicaux, dentaires, de soins de la vue et autres.

Important
Important À compter de la version Winter '23, le service InsEnrollmentServiceStd:enrollPlans est activé pour fonctionner avec le Modèle de données standard Salesforce pour Financial Services Cloud et Health Cloud. Les clients existants peuvent continuer à utiliser ce service, mais aucune autre amélioration ne sera apportée au package géré Assurance.

Classe: InsEnrollmentService

Méthode : enrollPlans

Fonctionnement des enregistrements de police d'assurance

Les services d'inscription peuvent écrire dans la Police d'assurance et les objets associés (modèle de données Police harmonisée) ou dans les objets Actif (modèle Vlocity) , selon le paramètre isFsc et le paramètre personnalisé de defaultIsFSCOption. Le service procède comme suit :

  1. Le service prend le JSON d'entrée et recherche les informations pour créer les polices (police d'assurance).

    defaultIsFSCOption

    Paramètre isFsc

    Stratégies créées

    True

    NA

    Enregistrements Police d'assurance (InsurancePolicy)

    False

    True

    Enregistrements Police d'assurance (InsurancePolicy)

    False

    False

    Enregistrements Actif (Asset)

    NA

    True

    Enregistrements Police d'assurance (InsurancePolicy)

    NA

    False

    Enregistrements Actif (Asset)

  2. Pour l'enregistrement Police d'assurance, le membre peut être représenté en tant que Contact ou Compte personnel. Lorsqu'un membre (principal ou dépendant) est représenté en tant que compte et contacte les deux, le service utilise la représentation du compte.

  3. Associe les personnes dépendantes aux polices en tant que Participants à la police d'assurance (InsurancePolicyParticipants). Il crée un autre Participant à la police d'assurance (InsurancePolicyParticipant) pour le membre principal.

    Les enregistrements de InsurancePolicyParticipants sont remplis selon les règles suivantes :

    Flux Compte personnel

    Vous pouvez créer des comptes personnels pour les membres du recensement donné. Pour prendre en charge le flux Compte personnel :

    • Si le Membre principal est représenté en tant que Compte personnel, le Person Account Id du membre est défini en tant que Compte de la police.

    • Si le Membre principal est représenté en tant que Compte personnel, l'ID de compte du participant principal de l'enregistrement de InsurancePolicyParticipant principal est l'ID de compte personnel du membre principal et l'ID de contact du participant principal est personAccount.personContactId.

    • Si le membre principal de la personne dépendante est représenté en tant que Compte personnel, l'ID de compte du participant principal de l'enregistrement de InsurancePolicyParticipant de la personne dépendante est l'ID de compte personnel du membre principal.

    • L'ID de contact du participant principal de l'enregistrement InsurancePolicyParticipant de la personne dépendante est le personAccount.personContactId du membre principal.

    • Si une personne dépendante est représentée en tant que Compte personnel, l'ID de compte du participant associé de l'enregistrement de InsurancePolicyParticipant de la personne dépendante est l'ID de compte personnel du membre associé.

    • Si une personne dépendante est représentée en tant que Compte personnel, l'ID de contact du participant associé de l'enregistrement de InsurancePolicyParticipant de la personne dépendante est le personAccount.personContactId du membre associé.

    Flux Compte non personnel

    • Si le Membre principal est représenté en tant que Contact, le Account.Id du membre est défini en tant que Compte de la police.

    • Si le membre principal est représenté en tant que contact, l'ID de contact du participant principal de l'enregistrement de InsurancePolicyParticipant principal est l'ID de contact du membre principal.

    • Si le membre principal de la personne dépendante est représenté en tant que Contact, l'ID de contact du participant principal de InsurancePolicyParticipant est l'ID de contact du membre principal.

    • si dépendant est représenté en tant que Contact, ID de contact du participant associé de InsurancePolicyParticipant est l'ID de contact du membre principal.

  4. Récupère le ProductId du plan et tamponne InsurancePolicy.ProductId = plan.Product2Id.

  5. Crée les relations suivantes :

    Police d'assurance

    InsurancePolicy.EffectiveDate= Contract.StartDate ou EffectiveStart dans le JSON d'entrée.

    InsurancePolicy.ExpirationDate = Contract.EndDate ou EffectiveEnd dans le JSON d'entrée.

    InsurancePolicy.ContractLineItemId__c = Plan.Id

  6. Le service calcule les InsurancePolicy.PolicyTerm en fonction des Contract.ContractTerm :

    Police d'assurance

     ContractTerm = 12, InsurancePolicy.PolicyTerm= Annual.

    ContractTerm = 6, InsurancePolicy.PolicyTerm= Semi-Annual

    ContractTerm = 1, InsurancePolicy.PolicyTerm= Monthly

    ContractTerm = Toute autre valeur InsurancePolicy.PolicyTerm= Personnalisé.

  7. Récupère la clé de Price du JSON d'entrée et crée les relations suivantes :

    Police d'assurance

    InsurancePolicy.PremiumAmount = Prix

    InsurancePolicy.TermPremiumAmount = prix au prorata basé sur les dates d'entrée en vigueur spécifiées au point 5.

    InsurancePolicy.MonthlyPremium__c = Prix/Durée du contrat

  8. Crée des couvertures de police d'assurance (InsurancePolicyCoverages) pour les éléments de couverture.

Fonctionnement des actifs

  1. Le service prend le JSON d'entrée et recherche les informations pour créer les stratégies (actifs).

    defaultIsFSCOption

    Paramètre isFsc

    Stratégies créées

    True

    NA

    Enregistrements Police d'assurance (InsurancePolicy)

    False

    True

    Enregistrements Police d'assurance (InsurancePolicy)

    False

    False

    Enregistrements Actif (Asset)

    NA

    True

    Enregistrements Police d'assurance (InsurancePolicy)

    NA

    False

    Enregistrements Actif (Asset)

  2. Associe le contactId du membre principal à la stratégie en tant que Contact.

  3. Estampille le accountId du contrat d'inscription en tant que Compte de la police.

  4. Prend la clé de RawPriceData ou la clé de RateBandTierPriceData du JSON d'entrée et la tamponne dans le champ Asset.PricingLogData__c.

  5. Récupère le ProductId du plan et tamponne Asset.Product2Id = plan.Product2Id__c.

  6. Crée les relations suivantes :

    Actifs

    Asset.EffectiveDate__c = Contract.StartDate ou EffectiveStart dans le JSON d'entrée.

    Asset.ExpirationDate__c = Contract.EndDate ou EffectiveEnd dans le JSON d'entrée.

    Asset.BenefitPlanId__c = Plan.Id

  7. Le service calcule les Asset.Term__c en fonction des Contract.ContractTerm :

    Actifs

    ContractTerm = 12, Asset.Term__c = Annual.

    ContractTerm = 6, Asset.Term__c = Semi-Annual

    ContractTerm = 1, Asset.Term__c = Mensuel

    ContractTerm = Toute autre valeur, Asset.Term__c = Personnalisé.

  8. Récupère la clé de Price du JSON d'entrée et crée les relations suivantes :

    Actifs

    Asset.StandardPremium__c = Prix

    Asset.TotalPremiumTerm__c = prix au prorata basé sur les dates d'entrée en vigueur spécifiées au numéro 7

    Asset.AnnualPremium__c = Price/ContractTerm*12

    Asset.MonthlyPremium__c = Price/ContractTerm

  9. Associe les personnes dépendantes aux polices en tant que Relations des produits détenus (AssetPartyRelationship__c). Lors de la création d'une relation de partie d'actif pour des personnes dépendantes, partyId doit être fourni dans le nœud des personnes dépendantes.

    Remarque
    Remarque

    Un autre participant à la police d'assurance (InsurancePolicyParticipant) est créé pour le membre principal, mais aucun enregistrement n'est créé pour le membre principal dans Relation des produits détenus (AssetPartyRelationship__c).

  10. Crée des couvertures de police (AssetCoverage__c) pour les éléments de couverture.

Options distantes

Option

Description

inputKey

Obligatoire.

La clé d'une structure JSON prétransformée qui contient les informations dont le service a besoin.

memberPlanIntegrationProcedure

Initie une procédure d'intégration personnalisée basée sur la configuration de l'utilisateur. Lorsque vous utilisez cette option, elle transmet toutes les options du service à la procédure d'intégration personnalisée et tous les ID de police en tant qu'entrée à intégrer à l'objet, par exemple l'objet Police d'assurance avec le régime du membre.

JSON d'entrée

Le service prend le JSON d'entrée spécifié par le inputKey. Dans cet exemple, inputKey = enrollmentJson.

Le service nécessite :

  • contractId : <valeur>

  • Dependents : <list of maps for contactId and relationshipType of the dependents>.

    Remarque
    Remarque

    Lors de l'utilisation du service enrollPlans pour générer Asset et AssetPartyRelationship, si des personnes dépendantes sont transmises dans enrollmentJson, partyId correspondant doit être fourni.

  • Modèle de structure JSON du produit comprenant des attributs et des produits enfants

Ce JSON d'entrée peut avoir une liste d'objets ou une carte, car le service prend en charge la création d'une ou de plusieurs stratégies.

Pour prendre en charge l'ID de compte personnel, primaryMemberId est un nouveau nœud ajouté au enrollmentJson. Il prend en charge l'ID de compte personnel et ContactId pour la rétrocompatibilité. Selon le type de primaryMemberId ID, les services fonctionnent comme indiqué dans la description du service.

De la même façon, pour les personnes dépendantes, le nœud memberId est ajouté. Il prend en charge l'ID de compte personnel et l'ID de contact pour la rétrocompatibilité. Selon le type d'ID de memberId, les services fonctionnent comme indiqué dans la description du service.

Dans cet exemple, le JSON inclut trois stratégies.

{
   "enrollmentJson":[
      {
         "primaryMemberContactId":"0035w00003HjCFcAAN",
                  "primaryMemberId" : "0015e00000DvQ89AAF"
         "contractId":"8005w000001mT4MAAU",
         "dependents":{
            "IsSpouse":false,
            "contactId":"0035w00003HhfXPAAZ",
            "memberId": "0015e00000RvO24IAJ"
            "LastName":"Jones",
            "FirstName":"Jean",
            "relationshipType":"Child"
         },
         "Id":"01t5w00000EZUtMAAX",
         "Name":"HMO 500",
         "Family":"Other",
         "ProductCode":"SG-HMO-500",
         "Type__c":"Medical",
         "SubType__c":"HMO",
         "RecordTypeName__c":"Product",
         "IsConfigurable__c":false,
         "PricingFormula__c":"GroupPremium",
         "productId":"01t5w00000EZUtMAAX",
         "currencyCode":"USD",
         "currencySymbol":"$",
         "Price":300,
         "planId":"a2S5w0000034B2cEAE",
         "planRateType":"Age",
         "attributeCategories":{
            "totalSize":1,
            "records":[
               {
                  "Code__c":"SG_Medical",
                  "Name":"SG Medical",
                  "id":"a085w00000uA9v6AAC",
                  "productAttributes":{
                     "totalSize":1,
                     "records":[
                        {
                           "rulesCode":"SG-HMO-500.SG_annualDed_INN",
                           "productCode":"SG-HMO-500",
                           "code":"SG_annualDed_INN",
                           "dataType":"text",
                           "inputType":"text",
                           "multiselect":false,
                           "required":false,
                           "readonly":true,
                           "disabled":true,
                           "filterable":true,
                           "attributeId":"a095w000010zIYkAAM",
                           "label":"Deductible",
                           "hasRules":false,
                           "hidden":false,
                           "cloneable":true,
                           "isNotTranslatable":false,
                           "values":[
                              {
                                 "readonly":true,
                                 "disabled":true
                              }
                           ],
                           "userValues":"$500 / $1,000",
                           "attributeGroupType":"In-Network"
                        }
                     ]
                  }
               }
            ]
         },
         "childProducts":{
            "totalSize":1,
            "records":[
               {
                  "Id":"01t5w00000EZUA7AAP",
                  "Name":"Emergency Services",
                  "ProductCode":"SG_Emerg_Serv",
                  "Type__c":"Medical",
                  "IsRecommended__c":false,
                  "RecordTypeName__c":"CoverageSpec",
                  "IsConfigurable__c":true,
                  "productId":"01t5w00000EZUA7AAP",
                  "pciId":"a3A5w000000Ib6fEAC",
                  "isOptional":false,
                  "isSelected":true,
                  "attributeCategories":{
                     "totalSize":1,
                     "records":[
                        {
                           "Code__c":"SG_Medical",
                           "Name":"SG Medical",
                           "id":"a085w00000uA9v6AAC",
                           "productAttributes":{
                              "totalSize":1,
                              "records":[
                                 {
                                    "code":"SG_urgentCareFacility_OON",
                                    "dataType":"text",
                                    "inputType":"dropdown",
                                    "multiselect":false,
                                    "required":false,
                                    "readonly":false,
                                    "disabled":false,
                                    "filterable":true,
                                    "attributeId":"a095w000010zIZRAA2",
                                    "label":"Urgent Care Facility",
                                    "hasRules":false,
                                    "hidden":false,
                                    "cloneable":true,
                                    "isNotTranslatable":false,
                                    "values":[
                                       {
                                          "id":"0",
                                          "label":"Not Covered",
                                          "readonly":false,
                                          "disabled":false,
                                          "value":"Not Covered"
                                       },
                                       {
                                          "id":"1",
                                          "label":"40% Coins After Ded",
                                          "readonly":false,
                                          "disabled":false,
                                          "value":"40% Coins After Ded"
                                       },
                                       {
                                          "id":"2",
                                          "label":"50% Coins After Ded",
                                          "readonly":false,
                                          "disabled":false,
                                          "value":"50% Coins After Ded"
                                       },
                                       {
                                          "id":"3",
                                          "label":"30% Coins After Ded",
                                          "readonly":false,
                                          "disabled":false,
                                          "value":"30% Coins After Ded"
                                       }
                                    ],
                                    "userValues":"Not Covered",
                                    "attributeGroupType":"Out-Of-Network"
                                 }
                              ]
                           }
                        }
                     ]
                  }
               }
            ]
         }
      }
   ]
}

JSON de sortie

La liste des stratégies créées par le service.

assetIds

ID d'enregistrement Police d'assurance pour les enregistrements Police d'assurance.

ID d'enregistrement d'actif pour les enregistrements Actifs.

policyIds

ID d'enregistrement InsurancePolicy. Généré uniquement pour les enregistrements Police d'assurance.

{
   "assetIds":[
      {
         "assetId":"0036F00002Q4wlSQAR"
      },
      {
         "assetId":"0036F00002Q4wlSQAQ"
      }
   ],
   "policyIds":[
      "0036F00002Q4wlSQAR",
      "0036F00002Q4wlSQAQ"
   ]
}
 
Chargement
Salesforce Help | Article