Skip to main content
Grupo destacado

* Salesforce Health Cloud *

Welcome! This group is dedicated to your success with Salesforce Health Cloud. Join the conversation here to stay up to date on the product, learn best practices, and everything in between. Use this group to review resources, ask questions, help each other, and share experiences. --------------------------------------- This group is maintained and moderated by Salesforce employees. The content received in this group falls under the official Forward-Looking Statement: http://investor.salesforce.com/about-us/investor/forward-looking-statements/default.aspx

Is there a way to install the Life Sciences Cloud Mobile on an iPad emulator like Xcode? Also, is there a direct download link available for the app? I just want to test the featured functionality of life sciend cloud in ipad

1 respuesta
0/9000
I'm a beginner in the salesforce, and i have just achieved the admin certificate. I need to develop my career in the health sector with health cloud as i'm a veterinarian.
4 respuestas
  1. 23 feb, 21:42

    The best place I've found to learn things is becoming a Salesforce partner and there are way more technical webinars and release notes than available to the common folk.  I started my own LLC so I could.  There are a few requirements each year but pretty easy.  Message me if you have questions.  https://partners.salesforce.com/pdx/

0/9000

Hi Team, 

 

I have added a member to a household account using the 'Add Member'. When I go to the member, it shows the relationship with household account on the relationship tree, however household account does not show the added member in the relationship tree. 

 

Household account not showing added members on relationship tree

 

Relationship tree on Person Account: 

 

image.png

 

#Salesforce Health Cloud

2 respuestas
  1. 17 abr, 18:51

    Ankur, couple of things to check:  

     

    • First, verify the AccountContactRelation record exists and is active. Go to Setup → Object Manager → AccountContactRelation and query the records for that household/member pair. Make sure IsActive is set to true and that the Roles field is populated (e.g. "Member"). A missing role is the most common reason the Household tree won't render the relationship
    • Second, check whether the Contact's direct Account lookup (Contact.AccountId) is pointing to the Household Account. If it's pointing to a different account (like a person account or a previous household), the Household relationship tree won't show it.
    • Third, if the ACR exists and is active but the tree still won't show the member from the Household side, the issue is likely with the Care Program Enrollee or Member Plan record not being associated

    The only question I would have is that the member's Contact record a Person Account or a standard Contact? Person Accounts behave differently, as you know. 

0/9000

Hi all,  

 

We have an upcoming Healthcare Provider webinar on Tuesday, April 7th @ 11am PT discussing how to streamline referral management from generation to intake to tracking featuring our customer Huron!

 

Reserve your spot today to join the live webinar or just to receive the recording on-demand. We hope you can join us!  

3 comentarios
0/9000

Hello Everyone,

 

I passed the Health cloud accredited certification exam in November 2022 and now if it expiring on November 2024. 

Can anyone please let me know do I need to retake the exam now or how can I maintain my certificate.

Thanks in advance.

2 respuestas
  1. 31 mar, 15:44

    I successfully passed my exam using 𝗜𝗧𝗘𝗫𝗔𝗠𝗦𝗣𝗥𝗢

0/9000

I need some clarification regarding the execution behavior of a before update trigger and roll-up summary fields on Account.

 

In my scenario, when child records are created, roll-up summary fields on the Account (such as Count and  Sent Date) are updated accordingly. Based on these values, I have implemented a before update trigger on Account to populate Status and latest Sent Date fields in the same object.

 

I would like to understand a few points before finalizing the implementation:

 

1. What are the key considerations when relying on roll-up summary fields within a before update trigger?

2. Will the roll-up summary values (especially MAX date) always be reliably available during before update execution, or are there timing scenarios where they may still be null?

 

3. Is it recommended to handle this logic in a before update trigger, or would an after update trigger be more consistent for this use case?

 

4. Are there any best practices or known limitations when using roll-up summary fields to drive trigger logic, particularly during bulk data loads?

@* Salesforce Developers * 

2 respuestas
  1. 22 mar, 22:37

    These are excellent questions about trigger timing and roll-up summary field behavior. Let me break down each consideration:

    1. Key Considerations for Roll-Up Summary Fields in Before Update Triggers

    Roll-up summary fields are calculated before the trigger fires, which makes them available in before update triggers. However, you need to be aware of:

    Calculation timing: Roll-ups are recalculated when child records are inserted, updated, deleted, or undeleted. The parent record's before update trigger fires after this recalculation.

    Same-transaction updates: If you're updating the Account directly in the same transaction (not via child records), roll-ups won't recalculate until child changes occur.

    Field availability: In Trigger.new, roll-up values reflect the recalculated state. In Trigger.old, they reflect the previous state.

    Governor limits: Roll-up calculations count toward SOQL query rows (when Salesforce retrieves child records internally).

    2. Reliability of Roll-Up Summary Values (MAX Date)

    Roll-up summary fields, including MAX aggregates, are reliably available in before update triggers when the trigger is fired due to child record changes. However, watch for these edge cases:

    Scenarios where values are reliable:

    Child record insert/update/delete/undelete operations

    Bulk operations on child records (the roll-up recalculates for all affected parents)

    Potential null scenarios:

    Initial Account creation: If no child records exist yet, MAX will be null

    All child records deleted: MAX will become null

    Field-level security: If the user can't see the child field being rolled up, behavior may vary

    Reparenting: When a child is reparented away, the old parent's roll-up recalculates (potentially to null)

    Best practice: Always null-check roll-up values in your trigger logic:

    APEX

    if (Trigger.isBefore && Trigger.isUpdate) {

    for (Account acc : Trigger.new) {

    Account oldAcc = Trigger.oldMap.get(

    acc.Id

    );

    // Null-safe check for roll-up changes

    if (acc.Rollup_Count__c != oldAcc.Rollup_Count__c ||

    acc.Rollup_Max_Sent_Date__c != oldAcc.Rollup_Max_Sent_Date__c) {

    if (acc.Rollup_Max_Sent_Date__c != null) {

    acc.Latest_Sent_Date__c = acc.Rollup_Max_Sent_Date__c;

    }

    // Status logic based on count

    if (acc.Rollup_Count__c > 0) {

    acc.Status__c = 'Active';

    } else {

    acc.Status__c = 'Inactive';

    }

    }

    }

    }

    3. Before Update vs. After Update Trigger

    For your use case, BEFORE UPDATE is the correct choice because:

    ✅ Advantages of Before Update:

    You can modify the Account record (Trigger.new) directly without requiring an additional DML operation

    More efficient (no extra update statement = better governor limit usage)

    Atomic operation (all changes saved in one transaction)

    No risk of recursion from updating the same record again

    ❌ After Update would require:

    An additional update DML statement to save your Status/Date changes

    Recursion prevention logic (to avoid infinite loops)

    Higher governor limit consumption

    Potential for additional trigger executions

    When to use After Update instead:

    When you need to update related records (not the triggering record itself)

    When you need the record's final committed state (including system fields like LastModifiedDate)

    When performing asynchronous operations (@future, Queueable, Platform Events)

    4. Best Practices & Known Limitations for Bulk Operations

    Best Practices:

    a) Bulkify your trigger logic:

    APEX

    trigger AccountBeforeUpdate on Account (before update) {

    // Use handler pattern

    AccountTriggerHandler.handleBeforeUpdate(Trigger.new, Trigger.oldMap);

    }

    APEX

    public class AccountTriggerHandler {

    public static void handleBeforeUpdate(List<Account> newAccounts,

    Map<Id, Account> oldAccountMap) {

    for (Account acc : newAccounts) {

    Account oldAcc = oldAccountMap.get(

    acc.Id

    );

    // Only process if roll-up fields changed

    if (hasRollupChanged(acc, oldAcc)) {

    updateStatusAndDate(acc);

    }

    }

    }

    private static Boolean hasRollupChanged(Account newAcc, Account oldAcc) {

    return newAcc.Rollup_Count__c != oldAcc.Rollup_Count__c ||

    newAcc.Rollup_Max_Sent_Date__c != oldAcc.Rollup_Max_Sent_Date__c;

    }

    private static void updateStatusAndDate(Account acc) {

    // Null-safe logic

    if (acc.Rollup_Max_Sent_Date__c != null) {

    acc.Latest_Sent_Date__c = acc.Rollup_Max_Sent_Date__c;

    }

    acc.Status__c = (acc.Rollup_Count__c > 0) ? 'Active' : 'Inactive';

    }

    }

    b) Avoid SOQL in loops:

    Your approach using roll-ups already avoids this ✅

    Don't query for child records again; trust the roll-up values

    c) Test with bulk data:

    APEX

    @IsTest

    private class AccountTriggerTest {

    @IsTest

    static void testBulkChildInsert() {

    // Create 200 Accounts

    List<Account> accounts = new List<Account>();

    for (Integer i = 0; i < 200; i++) {

    accounts.add(new Account(Name = 'Test ' + i));

    }

    insert accounts;

    // Create 200 child records (adjust to your object)

    List<Child__c> children = new List<Child__c>();

    for (Account acc : accounts) {

    children.add(new Child__c(

    Account__c =

    acc.Id

    ,

    Sent_Date__c = Date.today()

    ));

    }

    Test.startTest();

    insert children; // This triggers Account before update

    Test.stopTest();

    // Verify roll-up triggered status update

    List<Account> updatedAccounts = [

    SELECT Status__c, Latest_Sent_Date__c, Rollup_Count__c

    FROM Account

    WHERE Id IN :accounts

    ];

    for (Account acc : updatedAccounts) {

    System.assertEquals('Active', acc.Status__c);

    System.assertEquals(Date.today(), acc.Latest_Sent_Date__c);

    System.assertEquals(1, acc.Rollup_Count__c);

    }

    }

    }

    Known Limitations:

    a) Roll-Up Summary Limits:

    Maximum 25 roll-up summary fields per object

    Maximum 10 roll-up summary fields per object that use SOQL aggregate functions (COUNT, SUM, MIN, MAX)

    Child object must be on the detail side of a master-detail relationship

    b) Bulk Load Considerations:

    Data Loader: Roll-ups recalculate normally; your trigger will fire for each batch

    Batch size: Keep batches at 200 or less to avoid governor limits

    Parallel processing: If using Bulk API with parallel mode, be aware of lock contention on parent records

    Recalculation delays: In very large bulk loads, there can be slight delays, but values are consistent once the trigger fires

    c) Performance:

    Roll-up recalculation happens synchronously and can slow down child record DML in high-volume scenarios

    Consider whether you truly need real-time accuracy or if a scheduled batch recalculation would suffice

    d) Recursion scenarios:

    If your before update trigger modifies fields that could trigger workflows/process builders that update child records, you could create a loop

    Implement recursion prevention if needed:

    APEX

    public class TriggerRecursionHelper {

    private static Set<Id> processedAccountIds = new Set<Id>();

    public static Boolean isFirstRun(Id accountId) {

    if (processedAccountIds.contains(accountId)) {

    return false;

    }

    processedAccountIds.add(accountId);

    return true;

    }

    }

    Summary Recommendation

    Your implementation approach is sound:

    ✅ Use before update trigger to populate Status and Latest Sent Date

    ✅ Roll-up summary values will be available and reliable

    ✅ Always null-check roll-up values

    ✅ Only update fields when roll-up values actually change (compare with Trigger.oldMap)

    ✅ Bulkify your logic and test with 200+ records

    ✅ Use the handler pattern for maintainability

    ⚠️ Monitor for recursion if you have other automation on Account or child objects

    This pattern is efficient, governor-limit friendly, and will handle bulk operations reliably.

0/9000

🧬  A huge thank you to everyone who joined our Planning Your Life Sciences Cloud for Customer Engagement (LSC4CE) Implementation & Overview Session today! 

 

We were absolutely thrilled with the high level of participation and the thoughtful, technical questions we received from our attendees. The engagement during this session has given us invaluable insight into the specific areas where our customers need more support as they move from basic setup into daily operations! 

 

What We Learned: 

The feedback from the Q&A highlighted a strong interest in several key areas: 

Deployment & Setup: Clarifying the relationship between ‘core’ features and managed packages. 

Mobile Field Excellence: Deep dives into offline sync logic and iPad-optimized experiences. 

Admin Control: Best practices for deploying configurations and leveraging Permission Sets for tailored access. 

AI-Driven Support: Understanding how the Metadata Cache and Agentforce power 24/7 engagement. 

 

We are excited to take this information and continue building impactful experiences for our customers! 

 

Today’s Session Recording: Planning Your Life Sciences Cloud for Customer Engagement (LSC4CE) Implementation & Overview Session

 

🔐 Password: Kk@1w!cdqq 

 

1 comentario
  1. 21 feb, 17:45

    Excited to watch this overview session!

0/9000

Hello Everyone, 

I’m working on a 

POC in Salesforce Life Sciences Cloud where I need to make the Channel field required when submitting a Visit. I am using the Visit Action → Custom Script (Validation Type) feature to implement this.

I wrote a custom JavaScript validator that checks if the Channel

 field is empty. If it is empty, the script is supposed to return an error object like: 

return {

    status: 'error',

    title: "Channel is required to submit the Visit."

}; 

However, when I test the Submit action and the Channel field is blank, the UI 

does not show my custom message.

Instead, I always get the default system message:

 

If anyone has implemented Visit validation scripts successfully, I would greatly appreciate your pointers. 

 

Thanks in advance! 

Monisha

 

Life Sciences Cloud - Visit Action Validation Script Not Showing Custom Error Message

 

#Salesforce Health Cloud

 

@* Salesforce Health Cloud *

1 respuesta
0/9000

I am doing benefit verification in life science cloud from care program enrolle record and i am using manual request for verification and when i fill the information in the omniscript and click on save button then care benefit request record is created automatically and coverage benefit all records is created but status is none for care benefit request and when i am trying to fill values in the response data appear after the submit button and if i am saving this then nothinh happened and data is rolled back. I am struck here. Can some please guide me 

Benefit verification

 

 

1 respuesta
0/9000