您在此处:
InsEnrollmentService:enrollPlans
使用此服务为登记者选择的医疗、牙科、视力和其他计划创建保单(资产或保险单)记录。
方法:enrollPlans
如何适用于保险单记录
注册服务可以写入保险单和相关对象(统一保单数据模型)或资产对象(Vlocity 模型),这取决于isFsc参数和defaultIsFSCOption的自定义设置。该服务执行以下操作:
-
该服务获取输入的 JSON,并查找创建保单的信息(保险单)。
defaultIsFSCOption
isFsc parameter
已创建策略
真
NA
保险单 ⁇ (
InsurancePolicy) ⁇ 记录假
真
保险单 ⁇ (
InsurancePolicy) ⁇ 记录假
假
资产(
Asset)记录NA
真
保险单 ⁇ (
InsurancePolicy) ⁇ 记录NA
假
资产(
Asset)记录 -
对于保险单记录,成员可以表示为联系人或个人客户。当成员(主要或依赖)被表示为客户并联系他们时,服务会使用该客户表示。
-
作为保险单参与者 (
InsurancePolicyParticipants) 与保险单相关联。它为主要成员创建另一个保险单参与者 (InsurancePolicyParticipant)。InsurancePolicyParticipants根据这些规则填充记录:您可以在给定的人口普查中为成员创建个人客户。要支持个人客户流:
-
如果主要成员表示为个人客户,则成员的
Person Account Id会设置为策略的客户。 -
如果主要成员表示为个人客户,则主要成员
InsurancePolicyParticipant记录的主要参与者客户 ID 是主要成员的个人客户 ID,主要参与者联系人 ID 是personAccount.personContactId。 -
如果依赖项的主要成员表示为个人客户,则依赖项
InsurancePolicyParticipant记录的主要参与者客户 ID 是主要成员的个人客户 ID。 -
受抚养人
InsurancePolicyParticipant记录的主要参与者联系人 ID 是主要成员的personAccount.personContactId。 -
如果依赖项表示为个人客户,则依赖项
InsurancePolicyParticipant记录的相关参与者客户 ID 是相关成员的个人客户 ID。 -
如果依赖项表示为个人客户,则依赖项
InsurancePolicyParticipant记录的相关参与者联系人 ID 是相关成员的personAccount.personContactId。
-
如果主要成员表示为联系人,成员的
Account.Id将设置为策略的客户。 -
如果主要成员表示为联系人,则主要
InsurancePolicyParticipant记录的主要参与者联系人 ID 是主要成员的联系人 ID。 -
如果依赖项的主要成员表示为联系人,则
InsurancePolicyParticipant首要参与者联系人 ID 是首要成员的联系人 ID。 -
如果依赖项表示为联系人,则相关参与者联系人 ID 是
InsurancePolicyParticipant主要成员联系人 ID。
-
-
从计划中获取
ProductId,并盖章InsurancePolicy.ProductId=plan.Product2Id。 -
创建这些关系:
保险单
InsurancePolicy.EffectiveDate= ⁇Contract.StartDate或输入 JSON 中的 ⁇ EffectiveStart ⁇ 。InsurancePolicy.ExpirationDate⁇ = ⁇Contract.EndDate或输入 JSON 中的 ⁇ EffectiveEnd ⁇ 。InsurancePolicy.ContractLineItemId__c=Plan.Id -
该服务根据
Contract.ContractTerm计算InsurancePolicy.PolicyTerm:保险单
ContractTerm = 12, InsurancePolicy.PolicyTerm= Annual.
ContractTerm = 6, InsurancePolicy.PolicyTerm= Semi-Annual
ContractTerm ⁇ =1, ⁇ InsurancePolicy.PolicyTerm= Monthly
ContractTerm ⁇ = 任何其他值, ⁇ InsurancePolicy.PolicyTerm= Custom。
-
从输入 JSON 获取
Price密钥,并创建这些关系:保险单
InsurancePolicy.PremiumAmount= PriceInsurancePolicy.TermPremiumAmount= 根据 #5 中指定的有效日期按比例分配的价格。InsurancePolicy.MonthlyPremium__c= Price/ContractTerm -
为承保项目创建保险单承保范围 (
InsurancePolicyCoverages)。
如何适用于资产
-
该服务获取输入的 JSON,并查找创建策略(资产)的信息。
defaultIsFSCOption
isFsc parameter
已创建策略
真
NA
保险单 ⁇ (
InsurancePolicy) ⁇ 记录假
真
保险单 ⁇ (
InsurancePolicy) ⁇ 记录假
假
资产(
Asset)记录NA
真
保险单 ⁇ (
InsurancePolicy) ⁇ 记录NA
假
资产(
Asset)记录 -
将主要成员的
contactId作为联系人与策略相关联。 -
将注册合同的
accountId盖章为策略的客户。 -
从输入 JSON 中获取
RawPriceData键或RateBandTierPriceData键,并将其戳到Asset.PricingLogData__c字段。 -
从计划中获取
ProductId,并盖章Asset.Product2Id=plan.Product2Id__c。 -
创建以下关系:
资产
Asset.EffectiveDate__c⁇ = ⁇Contract.StartDate或输入 JSON 中的 ⁇ EffectiveStart ⁇ 。Asset.ExpirationDate__c⁇ = ⁇Contract.EndDate或输入 JSON 中的 ⁇ EffectiveEnd ⁇ 。Asset.BenefitPlanId__c=Plan.Id -
该服务根据
Contract.ContractTerm计算Asset.Term__c:资产
ContractTerm ⁇ = 12 ⁇ Asset.Term__c ⁇ = Annual。
ContractTerm ⁇ = 6, ⁇ Asset.Term__c = 半年
ContractTerm ⁇ =1, ⁇ Asset.Term__c = 每月
ContractTerm ⁇ = 任何其他值, ⁇ Asset.Term__c ⁇ = 自定义。
-
从输入 JSON 获取
Price密钥,并创建这些关系:资产
Asset.StandardPremium__c= PriceAsset.TotalPremiumTerm__c= 根据 #7 中指定的有效日期按比例分配的价格Asset.AnnualPremium__c= Price/ContractTerm*12Asset.MonthlyPremium__c= Price/ContractTerm -
将依赖项与保单关联为保留产品关系 (
AssetPartyRelationship__c)。在为依赖项创建资产当事人关系时,必须在依赖项节点中提供 partyId。备注为主要成员创建了另一个保险单参与者 (
InsurancePolicyParticipant),但没有在“持有产品关系 (AssetPartyRelationship__c)”中为主要成员创建记录。 -
为承保项目创建保单承保范围 (
AssetCoverage__c)。
远程选项
选项 |
说明 |
|---|---|
|
必需。 预转换的 JSON 结构的密钥,其中包含服务需要的信息。 |
|
根据用户配置启动自定义集成程序。当您使用此选项时,它会将服务的所有选项传递给自定义集成程序,并将所有保单 ID 作为与对象集成的输入,例如带有成员计划的保险单对象。 |
输入 JSON
该服务采用inputKey指定的输入 JSON。在本例中,inputKey = enrollmentJson。
该服务需要:
-
contractId:<value> -
Dependents:<contactId 和 relationshipType of the dependents 的地图列表>。备注在使用 enrollPlans 服务生成资产和 AssetPartyRelationship 时,如果在 registrationJson 中传递了依赖项,则必须提供相应的 partyId。
-
包括属性和子产品的产品 JSON 结构模型
该输入 JSON 可以包含对象列表或映射,因为服务支持创建一个策略或多个策略。
为了支持个人客户 ID,primaryMemberId 是添加到enrollmentJson的新节点。 它支持个人客户 ID 和 ContactId,以实现向后兼容。根据 ID 类型primaryMemberId,服务按服务描述中的描述工作。
同样,对于依赖项,添加 memberId 节点。它支持个人客户 ID 和联系人 ID,以实现向后兼容。 根据memberId的 ID 类型,服务按照服务描述中的描述工作。
在此示例中,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"
}
]
}
}
]
}
}
]
}
}
]
}