Skip to main content

#Scenario0 discussing

Sharing and Visibility Scenario

 

Acme Inc has currently got operations in 4 countries (US, UK, FR, Germany) which are set up as there own BU's. They are looking to expand into new regions and would like to set up a new BU called 'New Markets'. Each region has it's own, Heads of Sales, Service and Marketing. All BU's roll up to the HQ, based in the US. Provide a solution which meets the following sharing requirements

 

1. Each BU should only be able to see there own customer data within there region. Some customers may operate in multiple regions, the account managers for these regions should be able to see all data belonging to customer accounts. 

 

2. Service Center employee should be able to access to all customer data. 

 

3. Marketing users don't have access to any customer data except should only be able to check if the prospects they have created are already existing customers. 

 

What are the optimal solutions for the three requirements above? 

 

#CTA Prep #Scenario 

6 comments
  1. Sep 11, 2019, 10:31 PM
    Account relationship sharing rules let partner community users access records for other accounts - I don't think they could be used in this scenario where country operations are business units rather than separate organisations
0/9000

Communities and Flow Scenario

 

Design a system where we can build a highly interactive user interface and capture information from a prospective customer without authenticating them. i,e, on a public website.

 

  • Do you think using salesforce communities and flow is the optimal solution in this case? List out the Pro's and Con's and any considerations which must be taken into account while implementing this requirement via the salesforce platform. 
  • Which objects would you use to implement this scenario?

 

Interesting?

 

#CTA Prep #Scenario 

7 comments
  1. Sep 9, 2019, 8:09 AM
    Maybe a silly suggestion, but you could also simply consider an AppExchange such as FormAssembly : have a look, great flexibility, clicks-not-code.
0/9000

Approvals Rule Scenario

 

A driver goes to make a delivery to a customer, and the customer provides the driver with some updates on the information regarding the account. The driver must capture this information but it must be submitted for approval to the account manager... (internal company employee) ... what is the optimal solution to store the account update request in salesforce so that once it's approved. The customer account get's updated!

 

What do you guys think ?

 

#CTA Prep #Scenario 

9 comments
  1. Sep 7, 2019, 9:20 PM

    1) Custom object "Account Changes" with fields that Drivers are allowed to request account changes for. This object can be set up as m/d to Account.

    2) Quick Action with Flows on Account which Drivers can use to request Account Changes. This flow will create a child record with data entered by Driver. Status field on the custom object can be used to drive the Approval Process or automate changes to Account upon Approval.

    3) Process Builder can be used to submit Account Changes records for an Approval and upon Approval, it can be also be used to update the parent Account records with new data.

0/9000

Partner Community Self Registration Scenario 

 

What is the optimal solution to invite the users to self register for a community - but they can only register if they have a valid invitation link. When they do register, they must be allocated a profile and a role based on the information on the existing contact record - which must match based on the email address which has been invited to sign up. 

 

The distinction must be between an Exec, Manager, User role - which would be stored on a field in the contact record. 

 

Finally before the registration is confirmed, the users must verify their email address by a two factor authentication.

 

Interesting?

1 comment
  1. Aug 27, 2019, 8:00 AM
    @Gunish Chawla

    Late response, but hope it's still useful :)

    It sounds like the requirements around registration would be best handled through a custom self-registration controller and a custom visualforce self-registration page.

    Contacts to be invited could be sent a link to the self-registration page with a query string parameter populated with something by which the contact can be identified (maybe a custom ID field on contact or a hash of the email address).

    This query string parameter would be read by the self-registration controller and used to find the matching contact record. You might want a custom field on contact indicating an invitation has been sent to check be absolutely sure. Based on whether a valid contact exists the controller can continue and create the user or return an exception.

    Assuming we've found a contact who was sent the invitation, the relevant info on the contact can be used in the controller to determine which profile and role are applied.

    I don't know of a simpler way to ensure that only users sent the email are allowed to register, so as far as I know that would be optimal.

    Verification of email address can be done through a standard Salesforce self-registration mechanism:

    https://help.salesforce.com/articleView?id=networks_customize_login_passwordless_verify.htm&type=5
0/9000

Another Interesting Question - Maybe has an obvious solution - but still interested. 

 

Let's assume you have a customer community which allows self registration and social sign on (facebook, google as Auth Provider). You have over 25K customer expected to sign up on the day of the launch, and they DO NOT have person accounts enabled. 

 

In the login settings for the community, you have specified an 'Parking Account' where all the contacts get added to this common account record. 

 

What would be the optimal solution so that you avoid the 'Account data skew' as described in this document. 

 

https://developer.salesforce.com/blogs/engineering/2012/04/avoid-account-data-skew-for-peak-performance.html

 

#CTA Prep  #Scenario 

5 comments
  1. Aug 3, 2019, 6:10 AM

    It helps, the reason it is suggested to use a User with no role or with the only role of an hierarchy is because it prevents extra processing for sharing to the records and related records. But it only goes so far and you should be prepared to see decreased performance for the user around the benchmark either way.

    I'm choosing my words carefully here, prepared for it, not expect it, decreased performance not poor performance, around the benchmark not at it.

0/9000