Ti trovi qui:
InsEnrollmentService:enrollPlans
Utilizzare questo servizio per creare record di polizze (asset o polizze assicurative) per i piani medici, dentali, visivi e di altro tipo selezionati dall'iscritto.
Metodo: enrollPlans
Funzionamento per i record Polizza assicurativa
I servizi di iscrizione possono scrivere nella Polizza assicurativa e negli oggetti correlati (modello di dati della polizza armonizzata) o negli oggetti Asset (modello Valcity), a seconda del parametro isFsc e dell'impostazione personalizzata per la defaultIsFSCOption. Il servizio esegue le seguenti operazioni:
-
Il servizio prende il JSON di input e cerca le informazioni per creare le polizze (Polizza assicurativa).
defaultIsFSCOption
Parametro isFsc
Policy create
Vero
NA
Record Polizza assicurativa (
InsurancePolicy)Falso
Vero
Record Polizza assicurativa (
InsurancePolicy)Falso
Falso
Record asset (
Asset)NA
Vero
Record Polizza assicurativa (
InsurancePolicy)NA
Falso
Record asset (
Asset) -
Per il record Polizza assicurativa, il membro può essere rappresentato come Referente o Account personale. Quando un membro (principale o dipendente) è rappresentato come account e contatta entrambi, il servizio utilizza la rappresentazione account.
-
Associa i dipendenti alle polizze come Partecipanti polizza assicurativa (
InsurancePolicyParticipants). Crea un altro partecipante alla polizza assicurativa (InsurancePolicyParticipant) per il membro principale.I record per
InsurancePolicyParticipantsvengono compilati in base alle seguenti regole:È possibile creare account personali per i membri del censimento specificato. Per supportare il flusso Account personale:
-
Se Membro principale è rappresentato come Account personale, il
Person Account Iddel membro viene impostato come Account della policy. -
Se Membro principale è rappresentato come Account personale, l'ID account partecipante principale del record
InsurancePolicyParticipantdel principale è l'ID account personale del membro principale e l'ID referente partecipante principale èpersonAccount.personContactId. -
Se il membro principale del dipendente è rappresentato come Account personale, l'ID account partecipante principale del record
InsurancePolicyParticipantdel dipendente è l'ID account personale del membro principale. -
L'ID referente partecipante principale del record
InsurancePolicyParticipantdel dipendente è ilpersonAccount.personContactIddel membro principale. -
Se il dipendente è rappresentato come account personale, l'ID account partecipante correlato del record
InsurancePolicyParticipantdel dipendente è l'ID account personale del membro correlato. -
Se il dipendente è rappresentato come account personale, l'ID referente partecipante correlato del record
InsurancePolicyParticipantdel dipendente è ilpersonAccount.personContactIddel membro correlato.
-
Se Membro principale è rappresentato come Referente, il
Account.Iddel membro viene impostato come Account della policy. -
Se Membro principale è rappresentato come Referente, l'ID referente partecipante principale del record
InsurancePolicyParticipantdel principale è l'ID referente del membro principale. -
Se il membro principale del dipendente è rappresentato come Referente, l'ID referente partecipante principale di
InsurancePolicyParticipantè l'ID referente del membro principale. -
se dipendente è rappresentato come Referente, ID referente partecipante correlato di
InsurancePolicyParticipantè l'ID referente del membro principale.
-
-
Recupera il
ProductIddal piano e contrassegnaInsurancePolicy.ProductId=plan.Product2Id. -
Crea le seguenti relazioni:
Polizza assicurativa
InsurancePolicy.EffectiveDate=Contract.StartDateo EffectiveStart nel JSON di input.InsurancePolicy.ExpirationDate=Contract.EndDateo EffectiveEnd nel JSON di input.InsurancePolicy.ContractLineItemId__c=Plan.Id -
Il servizio calcola i
InsurancePolicy.PolicyTermin base alleContract.ContractTerm:Polizza assicurativa
ContractTerm = 12, InsurancePolicy.PolicyTerm= Annual.
ContractTerm = 6, InsurancePolicy.PolicyTerm= Semi-Annual
ContractTerm = 1, InsurancePolicy.PolicyTerm= Monthly
ContractTerm = Qualsiasi altro valore, InsurancePolicy.PolicyTerm= Personalizzato.
-
Recupera la chiave
Pricedal JSON di input e crea le seguenti relazioni:Polizza assicurativa
InsurancePolicy.PremiumAmount= PrezzoInsurancePolicy.TermPremiumAmount= prezzo ripartito in base alle date effettive specificate in #5.InsurancePolicy.MonthlyPremium__c= Price/ContractTerm -
Crea coperture polizze assicurative (
InsurancePolicyCoverages) per le voci copertura.
Funzionamento per gli asset
-
Il servizio prende il JSON di input e cerca le informazioni per creare le policy (asset).
defaultIsFSCOption
Parametro isFsc
Policy create
Vero
NA
Record Polizza assicurativa (
InsurancePolicy)Falso
Vero
Record Polizza assicurativa (
InsurancePolicy)Falso
Falso
Record asset (
Asset)NA
Vero
Record Polizza assicurativa (
InsurancePolicy)NA
Falso
Record asset (
Asset) -
Associa il
contactIddel membro principale alla policy come Referente. -
contrassegna il
accountIddel contratto di iscrizione come Account della polizza. -
Recupera la chiave
RawPriceDatao la chiaveRateBandTierPriceDatadal JSON di input e la timbra nel campoAsset.PricingLogData__c. -
Recupera il
ProductIddal piano e contrassegnaAsset.Product2Id=plan.Product2Id__c. -
Crea le seguenti relazioni:
Asset
Asset.EffectiveDate__c=Contract.StartDateo EffectiveStart nel JSON di input.Asset.ExpirationDate__c=Contract.EndDateo EffectiveEnd nel JSON di input.Asset.BenefitPlanId__c=Plan.Id -
Il servizio calcola i
Asset.Term__cin base alleContract.ContractTerm:Asset
ContractTerm = 12, Asset.Term__c = Annual.
ContractTerm = 6, Asset.Term__c = Semi-Annual
ContractTerm = 1, Asset.Term__c = Monthly
ContractTerm = Qualsiasi altro valore, Asset.Term__c = Personalizzato.
-
Recupera la chiave
Pricedal JSON di input e crea le seguenti relazioni:Asset
Asset.StandardPremium__c= PrezzoAsset.TotalPremiumTerm__c= prezzo ripartito in base alle date effettive specificate in #7Asset.AnnualPremium__c= Price/ContractTerm*12Asset.MonthlyPremium__c= Price/ContractTerm -
Associa i dipendenti alle polizze come relazioni prodotto detenuto (
AssetPartyRelationship__c). Durante la creazione della relazione parte asset per i dipendenti, partyId deve essere specificato nel nodo dipendenti.NotaViene creato un altro partecipante alla polizza assicurativa (
InsurancePolicyParticipant) per il membro principale, ma non viene creato alcun record per il membro principale in Relazione prodotto detenuto (AssetPartyRelationship__c). -
Crea le coperture delle polizze (
AssetCoverage__c) per le voci copertura.
Opzioni remote
Opzione |
Descrizione |
|---|---|
|
Obbligatorio. Chiave di una struttura JSON pre-trasformata che contiene le informazioni necessarie al servizio. |
|
Avvia una procedura di integrazione personalizzata in base alla configurazione utente. Quando si utilizza questa opzione, passa tutte le opzioni del servizio alla procedura di integrazione personalizzata e tutti gli ID polizza come input per l'integrazione con l'oggetto, ad esempio l'oggetto polizza assicurativa con il piano membro. |
Input JSON
Il servizio accetta il JSON di input specificato dal inputKey. In questo esempio, inputKey = enrollmentJson.
Il servizio richiede:
-
contractId: <valore> -
Dependents: <list of maps for contactId and relationshipType of the dependents>.NotaQuando si utilizza il servizio enrollPlans per generare Asset e AssetPartyRelationship, se i dipendenti vengono passati in enrollmentJson, è necessario specificare partyId corrispondente.
-
Modello struttura JSON del prodotto con attributi e prodotti secondari
Questo JSON di input può avere un elenco di oggetti o una mappa, poiché il servizio supporta la creazione di una policy o di più policy.
Per supportare l'ID account personale, primaryMemberId è un nuovo nodo aggiunto al enrollmentJson. Supporta sia ID account personale che ContactId per la compatibilità retroattiva. In base al tipo di primaryMemberId ID, i servizi funzionano come descritto nella descrizione del servizio.
Analogamente, per le persone dipendenti viene aggiunto il nodo memberId. Supporta sia l'ID account personale che l'ID referente per la compatibilità retroattiva. In base al tipo di memberId ID, i servizi funzionano come descritto nella descrizione del servizio.
In questo esempio, il JSON include tre policy.
{
"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 di output
L'elenco delle policy create dal servizio.
assetIds |
ID record InsurancePolicy per i record Polizza assicurativa. ID record asset per i record Asset. |
|---|---|
policyIds |
ID record InsurancePolicy. Generato solo per i record Polizza assicurativa. |
{
"assetIds":[
{
"assetId":"0036F00002Q4wlSQAR"
},
{
"assetId":"0036F00002Q4wlSQAQ"
}
],
"policyIds":[
"0036F00002Q4wlSQAR",
"0036F00002Q4wlSQAQ"
]
}