Skip to main content

#Answers4 discutindo

Hi Everyone,

We are currently evaluating a significant change to our Salesforce data model and would appreciate guidance from anyone who has implemented a similar solution in a large enterprise environment.

Current Situation

The Account object is our primary master data entity.

 Looking for Experience and Best Practices: Splitting Salesforce Account into Separate Business Entities (Commercial Account vs Legal Entity) 

If your organisation has implemented a similar transformation, we would greatly appreciate insights on:

  1. Recommended target architecture.
  2. Expected level of effort.
  3. Biggest implementation risks.
  4. Business processes that were unexpectedly impacted.
  5. Integration challenges discovered after design.
  6. Impact on CPQ, contracts, billing, and reporting.
  7. Data migration strategy and lessons learned.
  8. Account Hierarchy Impact  

    How did the change affect:

    • Parent Account hierarchies
    • Rollup reporting
    • Account Teams
    • Territory Management
    • Enterprise Account structure
  9. How were Opportunities handled?  

    Did Opportunities relate to:

    • Commercial Account
    • Legal Entity

Any reference architectures, lessons learned, implementation patterns, anti-patterns, or best practices would be extremely valuable.

Thank you in advance for sharing your experience and recommendations. 

 

#Answers #Salesforce Admin #Sales Cloud

2 respostas
  1. 14 de ago., 16:48

    Hi Ravishankar - having done a couple of these (legal-entity vs operating/commercial splits), the single biggest decision - and the one that drives everything else - is: keep Legal Entity as an Account record type, don't make it a separate custom object. 

     

    Recommended target architecture: 

    - One Account object, two record types: Commercial Account (the selling/operating relationship) and Legal Entity (the contracting/billing/tax party). 

    - Link them via Account Hierarchy (Parent Account) or a dedicated lookup (Legal_Entity) - hierarchy if it's a clean 1:many, a lookup/junction if a commercial account can map to different legal entities over time or geography. 

    - Introduce account ROLES on the transactional objects instead of forcing one account: sold-to = Commercial Account, bill-to / contracting party = Legal Entity, via lookups on Opportunity/Quote/Order/Contract. 

    Why not a custom object for Legal Entity: Contracts (Contract.AccountId), Orders, CPQ, Billing/Revenue Cloud, Assets and Entitlements all reference the standard Account. Making Legal Entity a custom object means losing all of that out-of-the-box and rebuilding it - a huge, avoidable cost. Record types keep standard functionality intact. 

     

    Biggest risks: 

    - Reparenting existing data (Opps, Contacts, Contracts, Assets, Cases) to the correct entity - the hardest part; plan the migration + validation carefully. 

    - Sharing/visibility: OWD, role hierarchy and territories keyed on Account can shift when the structure changes - re-model sharing deliberately. 

    - Reporting roll-ups: anything rolling up at account/hierarchy level needs rework for the two-tier model. 

    - Duplicate/matching rules must distinguish the two record types. 

     

    Processes that unexpectedly bite: 

    - Quote-to-cash is where the split really lands. Decide sold-to (commercial) vs bill-to (legal entity) explicitly and thread it through Opportunity - Quote - Order - Contract - Invoice. 

    - Territory assignment, approval routing, and case entitlements/SLAs that read Account fields. 

    - Tax and consent/privacy, which usually belong to the Legal Entity. 

     

    CPQ / Contracts / Billing / Reporting: 

    - CPQ: quote on the Commercial Account, but carry the Legal Entity as bill-to (lookup) so contracts and orders bind to the right party. 

    - Contract.AccountId points to the Legal Entity (contracting party); keep the commercial relationship as a related lookup. 

    - Billing/Revenue Cloud: bill-to = Legal Entity. 

    - Reporting: build for both tiers - commercial performance vs legal-entity consolidation - via the hierarchy/lookup. 

     

    Approach / effort: 

    - Start with an impact assessment: catalog everything referencing Account - objects with Account lookups, flows/triggers/validation rules, reports/dashboards, sharing rules, CPQ & billing config, and every integration keyed on Account Id / External Id. 

    - Build and validate in a full sandbox, especially the CPQ/billing/reporting flows, before any cutover. 

    - Phase it, and plan the data migration + External Id/MDM alignment with your ERP (which almost certainly already has a legal-entity / sold-to / bill-to model you'll want to map to). 

    - For a large enterprise with CPQ + billing + integrations this is typically a multi-month program, not a config change - the data migration and quote-to-cash rework dominate the timeline. 

     

    Happy to go deeper on the quote-to-cash role modeling or the sharing re-design - those are where the effort is usually underestimated.

0/9000

Hi,

I have some static field values created as custom metadata. Now i want to change the generic values, but not able to locate where its been maintained.

I went to setting > Custom metadata type> manage records.

Although i can see the field value name, i can't locate where the values are maintained , which need to be updated. Any suggestions ? #Sales Cloud

6 respostas
  1. 27 de jul., 16:28

    @Sourav P

      

    Yes. The answer is: 

    In Salesforce, Custom Metadata records are maintained under: 

    Setup → Custom Metadata Types → [Your Custom Metadata Type] → Manage Records 

    There are two different things: 

    • Custom Metadata Type → Defines the structure/fields. 
    • Custom Metadata Record → Stores the actual values. 

     

    If you can see the field name but not the actual value, click Edit on the specific metadata record. The values should be displayed there. 

      

    For example: 

      

    Custom Metadata Type: Application Settings 

     → Manage Records 

     → Default Settings 

     → Edit 

     → Update the field values. 

      

    If the value is still not visible or editable, it may be coming from another source, such as: 

     

    •  A Custom Label
    • Custom Setting
    • Custom Metadata referenced by Apex/Flow
    •  A Formula
    •  A Named Credential
    •  A value hard-coded in Apex/LWC 

     

    You can also check the Apex/Flow code that references the metadata to identify exactly where the value is being used. 

     

0/9000

Hey, newbie is here.

Absolute trivial situation, but didn't manage to handle it so far.

So, there are tables:

"users" (id, name, etc)

"questions" (id, answered_user_id, date)

"comments" (id, question_id, user_id, date)

What i need is to get ⌗answers and ⌗comments for particular user at particular time. I've create separated dimension "date" and made following joins:

users-questions (inner,by user_id)

questions-date (inner,by date)

date-comments (inner by date and user_id)

Looks right to me, but figures doesn't make any sense. Thank you in advance, any help is appreciated

5 respostas
  1. 3 de set. de 2023, 09:04

    Hi Oraz,

     

    If you're comfortable with joins, you may want to prepare a Logical Table as follows:

     

    1) UNION the questions and comments tables (right in Tableau)

    2) 'ALIGN' the 'same entity' columns using the Tableau-generated [Table Name] as the anchor:

    // aligned_question_id

    CASE [Table Name]

    WHEN 'questions' THEN [id]

    WHEN 'comments' THEN [question_id]

    END

    // aligned_user_id

    CASE [Table Name]

    WHEN 'questions' THEN [answered_user_id]

    WHEN 'comments' THEN [user_id]

    END

    // aligned_date

    [date]

    3) JOIN the users table with the Unioned one by the [aligned_user_id] Join Calculation on the left

     

    Step 3 has to be prepend the step 2, I just show the calcs first to explain the Join to be made.

     

    Yours,

    Yuri

0/9000
3 respostas
0/9000

I have a permission set that allows only assigned users to perform an "Unlock" action on a locked Order. So there is a custom button on the Order page that says "Unlock Order". That button executes a FLOW to unlock the order.

However, I only want certain users to be able to unlock Orders. 

Currently unauthorized users sometimes click on the button, and then they get an error and we admins get an error email. Waste of all of our time.

So only users that have the permission set assigned should be able to see that button. 

Is there any way to make the button only visible on the Lightning page layout to users with the permission set assigned?

All help greatly appreciated!

 

#Answers  #Lightning Experience

11 respostas
0/9000

Making a text field dependent on a picklist

 

I am trying to make a new text field dependent on the Stage field. Quite simply, when a user selects the stage "Closed Lost" I want it to make it mandatory to enter the reason in free text.

I can't seem to find a way to do this. Is it possilbe? 

2 comentários
0/9000

Hi ,

 

Recently, even if I receive a notification of the best answer, when I open the link, I encounter a screen like the one below.

 

Are there any bugs in this community feature?

 

#Answers

4 respostas
  1. 15 de mai. de 2024, 07:59

    Hi @Keiji Otsubo

    If you are satisfied with the answer please close this thread by marking accepted answers.

0/9000

Hi everyone! LWR allows us to add CSS class names to components, which is great for adding some custom styling. We have a client who is on the B2B Aura Template, and we are about to start on a small design refresh of their site. We want to use as many standard Experience Builder components as possible, however the styling options for Aura sites is a bit limited.

 

So I wanted to check if anyone knows of any App Exchange products that give you the ability to add CSS classes to components for Aura sites? I do have a way of targeting specific elements for styling, but it's a really roundabout way that is messy. So if there was a way to add CSS classes, or something like that it would be helpful.

 

Thanks!

 

#Experience Site #Appexchage Apps #Experience Builder #Answers

1 resposta
  1. 8 de mar. de 2024, 21:45

    Unfortunately, something like this would have to be introduced at a platform level to apply to all / any component. Otherwise it would have to be done at a component level (to take in a custom CSS Class name as a property input and apply it to the parent wrapper of the component). So it's unlikely that there's anything on the appexchange that would address this.

     

    Maybe create an idea to extend similar functionality from LWR to Aura?

    FYI @Alicia Teo

0/9000
3 respostas
  1. 20 de mar. de 2024, 14:29

    Yes, could use Email Service or if you are using Email-To-Case, you can do it in Trigger.

    One Visual Solution could be use Custom Notification for Visual effect:

    https://help.salesforce.com/s/articleView?id=sf.notif_builder_custom.htm&type=5

     

    Additionaly, the check in the Case could be used, if you want this solution, but should work with List View and Filter for the Checkbox field. That way your agents could review this cases with incoming emails received.

     

    Thanks a lot,

    Regards

0/9000
3 respostas
  1. 8 de fev. de 2024, 06:38

    Hi @Laksh Prajapati ,

     

    Try your browser's incognito mode.Or try it in a different browser.

0/9000