You are here:
InsEnrollmentServiceStd:enrollNewHires
Enroll new census members into their selected plans in the middle of a contract term.
Class: InsEnrollmentServiceStd
Method: enrollNewHires
Scenario
| groupCensusID | contractID | groupCensusMemberIds | primaryRoleName | dependentRoleName |
|---|---|---|---|---|
| groupCensusID1 | ctrlD1 | censusMemberPrimary1 | PolicyHolder | |
| censusMemberDependent1 | Member | |||
| censusMemberDependent2 | Member |
| policyID | coverage | PolicyParticipant | policyParticipant.role |
|---|---|---|---|
| policyID101 | coverage1, coverage2 | censusMemberPrimary1 | self |
| censusMemberDependent1 | spouse | ||
| censusMemberDependent2 | child |
How It Works
- The service searches for Group Census Members:
- Either all members for a given
groupCensusIdor - Only those members specified in the
groupCensusMemberIdslist.
- Either all members for a given
- Each primary
groupCensusMemberIdsof the group census should have thePolicyStartDatefield mapped. ThePolicyStartDateshould fall in between the Contract Start Date and Contract End Date.- If any of the primary
groupCensusMemberIdsdoesn't have thePolicyStartDatepopulated the service throws an error with a list ofgroupCensusMemberIdsand a message: "Specify a valid date forPolicyStartDate." - If any of the primary
groupCensusMemberIdshas aPolicyStartDatethat doesn't fall between the Contract Start Date and Contract End Date the service throws an error with a list ofgroupCensusMemberIdsand a message: '"Specify aPolicyStartDatethat's within the ContractStartDate and ContractEndDate."
- If any of the primary
- Once the service verifies all primary census members have the
PolicyStartDateinformation it searches for the pre-enrolled plans linked to each member in theGroupCensusMemberPlan. - The plan's products for each member are returned.
- If the product is eligible (it's a part of a
ContractandContractGroupPlans), an Insurance Policy is created. - Insurance Policy Coverages (
InsurancePolicyCoverages) are created for the coverage items specified in the plan. - Person accounts can be created for the group census members in the group census. To support the Person Account flow, this service goes through group census members to do below things:
- If
AccountIds(retrieved from theGroupCensusMember) are available the service usesAccountIdasInsurancePolicy.NameInsuredand createsInsurancePolicyParticipants' PrimaryParticipantAccountIdandRelatedParticipantAccountId. - If
AccountIdis null, the service uses thegroupAccountIdasInsurancePolicy.NameInsuredandcontactIdasInsurancePolicyParticipants' PrimaryParticipantContactIdandRelatedParticipantContactId.
- If
- An Insurance Policy is created only for a primary member, not their dependent. The dependent details in the Insurance Policies are stored as:
- The dependent information is created in a separate object called
InsurancePolicyParticipants. A record is also created for the primary member. The service associates these records to the Insurance Policies. - Insurance Policy Participant's (
InsurancePolicyParticipant)primaryParticipantAccountIdandrelatedParticipantAccountIdfields are also populated using theAccountIdfield of the group census member and Contact fields whenAccountIdis null.
- The dependent information is created in a separate object called
- The Insurance Policy's effective date will be same as the
PolicyStartDateof the primary member. - The Insurance Premium will be prorated based on the number of days the member is enrolled for within the contract term. For example: the total premium from the rating :16.00. Contract duration: 365 days (Start date: 10-jan-2023 to End date: 9-jan-2024)Member's policy start date : 28-Feb-2023Total days for the new hire in the contract: 316Prorated premium: 16* (316/365) = 13.85
- Insurance Policy Coverages:
- If a family member enrolls for an optional coverage during member enrollment, a separate
InsurancePolicyCoveragerecord corresponds to each and every enrolled optional coverage. EachInsurancePolicyCoveragerecord corresponding to optional coverages stores the enrolled Insurance Policy Participant in thevlocity_ins_fsc__InsurancePolicyParticipantId__cfield on theInsurancePolicyCoverageobject. - There's a single
InsurancePolicyCoveragerecord for mandatory coverages for a family per product.
- If a family member enrolls for an optional coverage during member enrollment, a separate
- Insurance Policy Premium: If
saveMemberPremiumis set totrue, theInsurancePolicyParticipantrecords contain theStandardPremiumAmountvalue of the policy. This amount is prorated (and is calculated the same way as the Insurance Premium in step 10).Note Configure the expression set or calculation procedure to set the member level premium amount to amemberPremiumfield the Include in Calculation output option set to true.
Configure the rating procedure to pass the effective dates as options into the expression set or calculation procedure.
- Key for the expression set or calculation procedure remote option :
effectiveDate - Value for the expression set or calculation procedure remote option:
%options:effectiveDate% - What it does: This value is passed in as an option to the
InsProductService:getRatedProductservice by this Integration Procedure. This data is used to pull the correct versions of the expression set or calculation procedure and matrices the Integration Procedure uses for rating.
Remote Options
| Option | Description |
|---|---|
contractId
|
Required. The ID of the contract that the members belong to and the plans that they will be enrolled in |
dependentRoleName
|
Optional. Default value is The |
groupCensusId
|
Required if not using The ID of the census that contains all census members for enrollment. |
groupCensusMemberIds
|
Required if not using A list of IDs of specific census members for enrollment, separated by commas. |
isBatchMode
|
Optional. Default value is Creates policies asynchronously. |
primaryRoleName
|
Optional. Default value is |
saveMemberPremium
|
Optional. Default Value is The value indicates the policy premium amount to be set for all If the value is |
Input JSON
Here's the sample input JSON:
{
"Input": {
"groupCensusId": "0rfRO00000005OUYAY",
"contractId": "800RO000000WG4mYAG"
},
"Options":{
"isBatchMode":false
}
}Output JSON
Here's the sample output JSON:
{
"policyIds":[
"0036F00002Q4wlSQAR",
"0036F00002Q4wlSQAQ"
]
}
