Loading
Страхование
InsEnrollmentService:enrollPlans

InsEnrollmentService:enrollPlans

Используйте эту службу для создания записей полиса (актива или страхового полиса) для выбранных участником планов медицинского, стоматологического, зрения и других.

Важно!
Важно! Начиная с выпуска Winter '23, у нас есть служба InsEnrollmentServiceStd:enrollPlans, включенная для работы со стандартной моделью данных Salesforce для Financial Services Cloud и Health Cloud. Текущие клиенты могут продолжать использовать эту услугу, но дополнительные улучшения не будут предоставлены в управляемом пакете страхования.

Класс: InsEnrollmentService

Метод: enrollPlans

Принцип работы записей страховых полисов

Службы регистрации могут либо записывать в страховой полис и связанные объекты (гармонизированная модель данных полиса), либо в объекты актива (модель Vlocity) , в зависимости от параметра isFsc и настраиваемого параметра для defaultIsFSCOption. Служба выполняет следующие действия:

  1. Служба берет вводные данные JSON и ищет сведения для создания полисов (страховой полис).

    defaultIsFSCOption

    Параметр isFsc

    Созданные полисы

    True

    Недоступно

    Записи страхового полиса (InsurancePolicy)

    False

    True

    Записи страхового полиса (InsurancePolicy)

    False

    False

    Записи активов (Asset)

    Недоступно

    True

    Записи страхового полиса (InsurancePolicy)

    Недоступно

    False

    Записи активов (Asset)

  2. В записи страхового полиса участник может быть представлен как контакт или организация-лицо. Когда участник (основной или зависимый) представлен в качестве организации и связывается с ними, служба использует представление организации.

  3. Связывает зависимых с полисами как участников страховых полисов (InsurancePolicyParticipants). Он создает еще одного участника страхового полиса (InsurancePolicyParticipant) для основного участника.

    Записи для InsurancePolicyParticipants заполняются в соответствии со следующими правилами:

    Поток организаций-лиц

    Вы можете создать организации-лица для участников данной переписи. Для поддержки потока организации-лица:

    • Если Основной участник представлен в качестве организации-лица, Person Account Id участника устанавливается в качестве организации политики.

    • Если основной участник представлен как организация-лицо, код организации основного участника записи InsurancePolicyParticipant будет кодом организации-лица основного участника, а код контакта основного участника - personAccount.personContactId.

    • Если «Основной участник зависимой организации» представлен как «Организация-лицо», то «Код организации основного участника» записи InsurancePolicyParticipant зависимой организации является «Код организации-лица основного участника».

    • Код контакта основного участника записи InsurancePolicyParticipant зависимого является personAccount.personContactId основного участника.

    • Если зависимый представлен как организация-лицо, код связанной организации-участника записи InsurancePolicyParticipant зависимого является кодом организации-лица связанного участника.

    • Если зависимый представлен как организация-лицо, код контакта связанного участника записи InsurancePolicyParticipant зависимого является personAccount.personContactId связанного участника.

    Поток нелицевой организации

    • Если Основной участник представлен как контакт, Account.Id участника устанавливается как организация политики.

    • Если основной участник представлен как контакт, код контакта основного участника записи InsurancePolicyParticipant будет кодом контакта основного участника.

    • Если «Основной участник зависимого» представлен как «Контакт», код контакта основного участника InsurancePolicyParticipant является кодом контакта основного участника.

    • если зависимый представлен как контакт, код контакта связанного участника InsurancePolicyParticipant является кодом контакта основного участника.

  4. Получает ProductId из плана и ставит отметку InsurancePolicy.ProductId = plan.Product2Id.

  5. Создает следующие взаимосвязи:

    Страховой полис

    InsurancePolicy.EffectiveDate= Contract.StartDate или effectiveStart во вводе JSON.

    InsurancePolicy.ExpirationDate = Contract.EndDate или effectiveEnd в JSON ввода.

    InsurancePolicy.ContractLineItemId__c = Plan.Id

  6. Служба рассчитывает InsurancePolicy.PolicyTerm на основе Contract.ContractTerm:

    Страховой полис

     ContractTerm = 12, InsurancePolicy.PolicyTerm= Annual.

    ContractTerm = 6, InsurancePolicy.PolicyTerm= Semi-Annual

    ContractTerm = 1, InsurancePolicy.PolicyTerm= Monthly

    ContractTerm = Любое другое значение InsurancePolicy.PolicyTerm= Настраиваемое.

  7. Получает ключ Price из ввода JSON и создает следующие взаимосвязи:

    Страховой полис

    InsurancePolicy.PremiumAmount = цена

    InsurancePolicy.TermPremiumAmount = пропорциональная цена на основе дат вступления в силу, указанных в No 5.

    InsurancePolicy.MonthlyPremium__c = Price/ContractTerm

  8. Создает покрытия страховых полисов (InsurancePolicyCoverages) для элементов покрытия.

Как это работает для активов

  1. Служба берет вводные данные JSON и ищет информацию для создания политик (активов).

    defaultIsFSCOption

    Параметр isFsc

    Созданные полисы

    True

    Недоступно

    Записи страхового полиса (InsurancePolicy)

    False

    True

    Записи страхового полиса (InsurancePolicy)

    False

    False

    Записи активов (Asset)

    Недоступно

    True

    Записи страхового полиса (InsurancePolicy)

    Недоступно

    False

    Записи активов (Asset)

  2. Связывает contactId основного участника с политикой как контактом.

  3. Штампует accountId контракта на регистрацию в качестве организации полиса.

  4. Берет ключ RawPriceData или ключ RateBandTierPriceData из ввода JSON и маркирует его в поле Asset.PricingLogData__c.

  5. Получает ProductId из плана и ставит отметку Asset.Product2Id = plan.Product2Id__c.

  6. Создает следующие взаимосвязи:

    Активы

    Asset.EffectiveDate__c = Contract.StartDate или effectiveStart во вводе JSON.

    Asset.ExpirationDate__c = Contract.EndDate или effectiveEnd в JSON ввода.

    Asset.BenefitPlanId__c = Plan.Id

  7. Служба рассчитывает Asset.Term__c на основе Contract.ContractTerm:

    Активы

    ContractTerm = 12, Asset.Term__c = Annual.

    ContractTerm = 6, Asset.Term__c = Semi-Annual

    ContractTerm = 1, Asset.Term__c = Monthly

    ContractTerm = Любое другое значение, Asset.Term__c = Настраиваемое.

  8. Получает ключ Price из ввода JSON и создает следующие взаимосвязи:

    Активы

    Asset.StandardPremium__c = цена

    Asset.TotalPremiumTerm__c = пропорциональная цена на основе дат вступления в силу, указанных в No 7

    Asset.AnnualPremium__c = Price/ContractTerm*12

    Asset.MonthlyPremium__c = Price/ContractTerm

  9. Связывает зависимых с политиками как «Удержанные взаимосвязи продуктов (AssetPartyRelationship__c)». При создании взаимосвязи сторон актива для зависимых, partyId должен быть предоставлен в узле зависимых.

    Примечание
    Примечание

    Другой участник страхового полиса (InsurancePolicyParticipant) создается для основного участника, но запись не создается для основного участника во взаимосвязи удерживаемого продукта (AssetPartyRelationship__c).

  10. Создает покрытия полисов (AssetCoverage__c) для элементов покрытия.

Удаленные параметры

Параметр

Описание

inputKey

Обязательно.

Ключ к предварительно трансформированной структуре JSON, содержащей нужные сведения.

memberPlanIntegrationProcedure

Инициирует настраиваемую процедуру интеграции на основе конфигурации пользователя. При использовании этого параметра он передает все параметры службы настраиваемой процедуре интеграции и все коды полисов в качестве вводных данных для интеграции с объектом, например, объект страхового полиса с планом участника.

JSON ввода

Служба использует JSON ввода, указанный inputKey. В данном примере inputKey = enrollmentJson.

Услуга требует:

  • contractId: <value>

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

    Примечание
    Примечание

    При использовании службы enrollPlans для создания актива и AssetPartyRelationship, если зависимости передаются в enrollmentJson, необходимо предоставить соответствующий partyId.

  • Модель структуры продукта JSON, включая атрибуты и дочерние продукты

Этот вводной JSON может иметь список объектов или карту, поскольку служба поддерживает создание либо одной политики, либо нескольких политик.

Для поддержки кода организации-лица primaryMemberId - это новый узел, добавленный в enrollmentJson. Он поддерживает код организации-лица и ContactId для обратной совместимости. В зависимости от типа primaryMemberId «Код», службы работают так, как описано в описании службы.

Таким же образом, для зависимых добавлен узел memberId. Он поддерживает код организации-лица и код контакта для обратной совместимости. В зависимости от типа memberId «Код», службы работают так, как описано в описании службы.

В данном примере JSON содержит три политики.

{
   "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

Список полисов, созданных службой.

assetIds

Коды записей InsurancePolice для записей страховых полисов.

Коды записей активов для записей активов.

policyIds

Коды записей InsurancePolice. Создается только для записей страхового полиса.

{
   "assetIds":[
      {
         "assetId":"0036F00002Q4wlSQAR"
      },
      {
         "assetId":"0036F00002Q4wlSQAQ"
      }
   ],
   "policyIds":[
      "0036F00002Q4wlSQAR",
      "0036F00002Q4wlSQAQ"
   ]
}
 
Загрузка
Salesforce Help | Article