function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Rich Wingerter 9Rich Wingerter 9 

Assumptions for the Lightning Experience Specialist Superbadge

I have some assumptions for this trail that I’m hoping will lead to the right answer. However, after going over the instructions a number of times, I can’t verify that these are correct.
 
Record Types
 
I’m assuming that I need to create record types for cases and opportunities. I’m planning to name the record types for cases:
 
“Reported by a customer”
“Reported by an expedition leader”
 
I’m assuming that the check doesn’t care what these are called or the case of the characters.
 
For opportunities, I’m planning:
 
“Individual Opportunity”
 
I’m assuming that the data I need to upload will be “Individual_Opportunity” to match what will be the actual name of the type, not it’s label. I already have an “Individual Opportunity” sales process that I plan to tie this to.
 
User Profiles
 
I’m assuming I need to create new user profiles because the instructions say: “Enable this navigation for the sales, service, and fulfillment profiles (expedition leaders and fulfillment team members), system administrators, the custom support profile, and custom sales profile.” I see the following user profiles that match three of these:
 
Custom: Sales Profile
Custom: Support Profile
System Administrator
 
I believe these match the last three listed in the instructions, but I don’t see anything for the first three. It’s possible “Custom: Sales Profile” matches “sales” and “Custom: Support Profile” matches “service”, but that doesn’t seem likely. So, I’m planning to use the three I believe match plus these three new ones:
 
Sales
Service
Fulfillment
 
Presumably, expedition leaders and fulfillment team members will be assigned the Fulfillment profile. I’m not sure who will be assigned the other five profiles, although “System Administrator” doesn’t need to map into any of the business roles in Relaxation Gauntlet.
 
Opportunity Products
 
I’m using Data Loader to load data. It does not see any Opportunity Products table. Instead, it finds “Adventure Package (OpportunityLineItem)”. I’m assuming that the internal name for the Opportunity Products table is “OpportunityLineItem”. And, it thinks “Adventures” is “Product2”, so I’m guessing that the standard table is really named “Product2” rather than “Product”.
 
Explorers = Contacts
 
The entity diagram in the instructions does not directly relate the opportunity object to the explorer object (contacts). The explorer object is related to the Adventure Package (Opportunity Products/OpportunityLineItem) and to the fulfillment object. Challenge #8 says, “Import legacy data for opportunities, explorers, adventures, opportunity contact roles, and adventure packages.”
 
No opportunity contact roles are assigned in the source data for the import. There’s no instruction what to call the role. So, I’m assuming that I can create Opportunity Contact Role records with the ROLE field set to whatever I want (let’s say, “Explorer”) and fill the other fields with some appropriate data (like setting ISDELETED to False), and the check won’t care what I call it.
 
The instructions don’t say here to create the fulfillment records, so I’m assuming that the check won’t care that this data is missing. I’m also assuming that even though the source data doesn’t have any tab for the opportunity product (Adventure Package) records, I can make this up from the data on the “Opps w Adventure + Explorer” tab data.
 
Does anyone know if any of these assumptions are incorrect before I load up the data and go on?
 
Thanks!
 
Thanks in advance for your advice!
 
 
Rich Wingerter 9Rich Wingerter 9
I loaded the data from the source spreadsheet. For that, I used "Individual Opportunity" for the record type (without the underscore). It shows as "Individual Opportunity" on the opportunities when I open them on the Opportunity work page. I used the Data Loader program, and I created five different .CSV files of input data for the five objects listed in the #8 challenge description. I don't know and I really have no way of checking if the data is correctly loaded without submitting it to the challenge check, except that it all looks correct in the GUI. That is, the Opportunity Name, Amount, Close Date, Stage, and Probability all look fine, and the Adventures (Standard) list shows the right adventure, quantity=1, Sales Price and date correct. (That is, if the assumption that the close date is supposed to represent the date of the adventure is correct.) the contact role looks fine (if the assumption that the role should be "Explorer" is correct). I don't see account names, but these look like individual opportunities, so I'm not expecting any.

The Expected Revenue shows as $1000 for a Machu Picchu adventure. I don't know if that's correct or not.

I added the adventures to the standard price book after loading them, and I linked these to the price book using the price book entries that I exported. I doubt this is necessary, but why not?

If I click the link for the adventure on the opp, I can see the Adventure Package Detail. It looks right. The Product Code is the adventure code in the source data. All three prices show as the same amount and match the source data.

If I click the Contact Name link in the Contact Roles on the opp work page I get the contact record for the explorer. It seems to have the right data, including the mailing address lines, the e-mail address, and the phone number.

So, I think all the data loaded correctly.
Rich Wingerter 9Rich Wingerter 9
I also created automation for the Approval for Package Deal process. To do that I created an Approval process ("Approval of Discount") that presents the opportunity record for approval to the opportunity record owner and sets the stage to "Scheduled" or "Negotiation Rejected" depending on the user's actions. (I put in a template and let it send an approval notification, too, although I don't see that in the requirements. But, why not?)

Then I created an "Approval for Package Deal" process with Process Builder and used it to check if the stage and discount fields change to specific values. If they are, then an Immediate Action triggers a specific approval process, which invokes "Approval of Discount".

The criteria here is:

1  [Opportunity].StageName Equals Picklist Awaiting Approval
2  [Opportunity].Discount__c Greater than Number 0

with Conditoins = "All the conditions are met (AND)" and Advanced set to Yes (for "Do you want to execute the actions only when specified channges are made to the record?").

Both are activated.

I extensively tested these processes on one of the imported opportunities and they seem to work.

I didn't see a way to do this with just the Process Builder or just the Approval process. If you know a way, please let me know. Also, in the "Approval of Discount" process I added this entry criteria:

(Opportunity: Stage EQUALS Awaiting Approval) AND (Opportunity: Discount GREATER THAN 0)

This wouldn't be necessary in the normal case, since I'm only invoking it from the Process Builder process, but if someone clicked the Submit for Approval button it should check this condition.

And, one question: Why does the Record Lock on the Final Approval Actions default to locking the record? If you're done, wouldn't the normal case be that you'd want the record unlocked? I changed it. I suspect that's correct, but I don't really know for sure.
Rich Wingerter 9Rich Wingerter 9
So, now I'm working on challenge #4, Fulfillment Creation process. I looked at other topics to see where people had problems with this.

One big problem is that the Adventure Package records have these fields: Explorer, Fulfillment Created, Fulfillment State, and FulfillmentId. Three of these show on the page layouts (but only after you enable the Relaxation Gauntlet layouts for the user profile you use).

What this means is that the user has the opportunity to set these values before a new Adventure Package record is saved.

The instructions don't say, but imply, that you should check these fields. They say: "As long as the opportunity stage is not Cancelled at the time an adventure is added and a fulfillment has not already been created for the adventure package, you create a new fulfillment record...". The first part is not too crazy. You can check the stage of the associated opportunity and see if it's "Cancelled". This implies that someone could pick a record in that stage and create an opportunity-product record--even though that doesn't make sense.

The harder part is "...and a fulfillment has not already been created for the adventure package...". What does that mean? It doesn't mean, I guess, to check whether some other process has created a Fulfillment record yet, because it's a new Adventure Package record and there's no way for that to happen. Any Fulfillment records would be for some other line item. So, it must mean to check that the user didn't set one of these fields to a value it shouldn't have.

There are two: Fulfillment Created and Fulfillment State. The user can't get to FulfillmentId in any of the layouts. But they can set these values, and they would be wrong, no doubt, if they did.

It doesn't make any logical sense to check these because what should happen is that they should be set by the process, not read. But on the off chance the challenge checking logic is checking this, they have to be checked, just because you want to pass the test. But in that case they should both be checked. What I'm seeing in the threads is that people are checking one or the other.

Then, also, there's the problem with the Explorer field. It's possible the assignment won't work properly if this is NULL. And, it shouldn't be, anyway. The business logic should be that you can't create a new Adventure Package unless you say who the Explorer is. That means the field should be read-only on the creation screen.

The real way to fix this, IMHO, would be to fix the layouts. That is, I would make the Explorer field read-only on the "Add Adventures to" and the "Adventure Package Edit" screens (and probably make the Quantity field read-only on the add screen, too, like it is on the edit screen). Then, the values for Fulfillment Created, Fulfillment State, and FulfillmentId should be set to True, "Created" and the ID of the Fulfillment record on the Adventure Package record by the process when the Fulfillment record is created.

But I have no idea if this would pass the test. Does anyone know? Has anyone tried this solution?
saran kumar 9saran kumar 9
I also created automation for the Approval for Package Deal process. To do that I created an Approval process ("Approval of Discount") that presents the opportunity record for approval to the opportunity record owner and sets the stage to "Scheduled" or "Negotiation Rejected" depending on the user's actions. (I put in a template and let it send an approval notification, too, although I don't see that in the requirements. But, why not?)

can you share screenshot of this process ?
Rich Wingerter 9Rich Wingerter 9
OK.
User-added image

User-added image

User-added image
Fields are StageName and Discount__c.

User-added image
The Approval Process is set to the specific approval process "Approval of Discount", which was set up previously and looks like this:

User-added image

I don't know if this satisfies the challenge because I haven't tested it yet. But it works in my testing.

It just seems to me that since this has a bunch of approval steps that's better supported by the Approval process. But I don't see a way to kick that off from a change of value in a records, so I kicked it off from the Process Builder.
Rich Wingerter 9Rich Wingerter 9
It’s likely setting up Approval for Package Deal as a process was incorrect. After reading what it wants for the Sales Automation process, I couldn’t reconcile the conflicting instructions except to interpret the text in Opportunity Discount Approvals, which says, “This approval process, called Approval for Package Deal, is available whenever the opportunity stage is Awaiting Approval, and it assigns approvals back to the opportunity owner,” to mean to use the Approval tool to set up something called “Approval for Package Deal” and call it from the Sales Automation process when that’s set up.
 
The reason I had this problem was because the only way to trigger something based on a change of opportunity stage is with the Process Builder. So, to completely fulfill the Opportunity Discount Approvals section I had to create a process and call the Approval from there. The instructions require the process to be called "Approval for Package Deal", so I made that the process name and gave the Approval process a different name. That doesn't seem likely to work.
 
When I got to the section for setting up the Sales Automation process, I decided to revise this. I made an approval process with the Approval tool called Approval for Package Deal and I called it from an action in the Sales Automation process. I think this is within the meaning of the instructions, but I still can’t say for sure. Eventually, when I run everything through the various checkers I’ll find out.
 
So, @saran kumar 9, that’s how I’m currently interpreting this.
Nazeer AhamedNazeer Ahamed
I have completed lightning experience superbadge challenge # 5 - Automate your sales process for various opportunity stages. 
Calling the approval process which was created earlier is right. possibly make sure to check discount is greater than 0. I was using greater than or equal to zero earlier. 

Then in the second node, I have used discount = 0 OR discount is null, along with stage = awaiting approval. 

Hope this helps. 
 
Theodore Peirce BaehrTheodore Peirce Baehr
Double posting from here (https://developer.salesforce.com/forums/?id=906F0000000kF1zIAE" target="_blank).

I'm having trouble completing challenge 5 for the Lightning Experience Specialist Superbadge. I'm working on automating stage 1 = Awaiting Approval. Under 'Immediate Actions', I'm trying to add an action with the action type 'process'. But the Process Builder refuses to allow me to call the approval process I designed at the end of challenge 2 "Approval for Package Deal". 
  1. Is that a glitch?
  2. Or is there some way to kick of the discount approval process without calling the approval process through Process Builder?
  3. Or some way to rebuild my initial 'Approval for Package Deal' in the Process Builder? 

I have looked at previous attempts to answer this challenge. Michele Losch's attempt (here (https://developer.salesforce.com/forums/?id=906F0000000kF1zIAE) and midway down the page here (https://developer.salesforce.com/forums/?id=906F0000000kEDkIAM" target="_blank)) answer seems to no longer be possible through the UI, and as @Jeff mentions, the challenge has changed anyway. 

Rich Wingerter 9 hints at an answer above, but perhaps I've been working at this for too long, because his answer is Greek to me. Perhaps another go in simpler English to answer the three questions above? 
 

For the sake of the search engines (to help other lost souls), or if anything changes in the future, the challenge as of 15 Nov 2016 reads: 
"Automate your sales process for various opportunity stages
Following the requirements described above, create the Sales Automation process flow. Please ensure that your process works as expected without errors before submitting this challenge."

Again, for the sake of the search engines, or if anything changes in the future, the instruction data as of 15 Nov 2016 reads: 
Sales Automation
You want to make some additional changes to further automate your sales process. Create another process named Sales Automation.
You’ll customize three opportunity stages with automation for each stage.
Stage - Process

Awaiting Approval
If the status changes to awaiting approval and there is a positive discount value, kick off the discount approval process. If no discount is applied, the status updates to Scheduled because no approval is needed when a package is purchased at full price.

Deposit Made
After a deposit has been made, it’s reflected on all fulfilment records related to the opportunity by setting the fulfillment status to Paid Deposit.

Cancelled
If an opportunity is cancelled, it’s reflected on all fulfilment records related to the opportunity by setting the fulfillment status to Cancelled.
venkata kalyani konakallavenkata kalyani konakalla
Try like this
User-added image

If the status changes to awaiting approval and there is a positive discount value, kick off the discount approval process.
1 [Opportunity].StageName Equals Picklist Awaiting Approval
2  [Opportunity].Discount__c Greater than Number 0

User-added image

User-added image

If no discount is applied, the status updates to Scheduled because no approval is needed when a package is purchased at full price.
1 [Opportunity].StageName Equals Picklist Awaiting Approval
2  [Opportunity].Discount__c Equals Number 0
User-added image

User-added image

Deposit Made
After a deposit has been made, it’s reflected on all fulfilment records related to the opportunity by setting the fulfillment status to Paid Deposit.

Cancelled
If an opportunity is cancelled, it’s reflected on all fulfilment records related to the opportunity by setting the fulfillment status to Cancelled.