Skip to main content

Posts

CPQ Notes - 2

  Quote Currency must match Opportunity Currency if Primary = True on the Quote. If the Products are included in the Opportunity as opportunity line items, the opportunity currency to be unchanged after the primary quote creation. Make sure to set the opportunity currency correctly when creating the opp and the quote. If you find you need to change the currency after quote creation, just uncheck the Primary box in the current primary one, edit the Opp’s currency and create a new primary quote. DO NOT DELETE THE PRIMARY QUOTE as it will not help the currency adjustment. If the Primary Quote is deleted, all of the related Opportunity Products must be deleted before changing the Opportunity currency.   To adjust the Opportunity amount, utilize Discount field in Opportunity Product to exclude a Product (Discount = 100%) out of the total Opp amount. Non-primary Quotes can have a different currency but those can never be made Primary for Closed/Won unless it matches Opty Cur...

Advance Approval - 'The link you followed wasnt valid for your session' error

Use case: some users get 'The link you followed wasnt valid for your session. Returned to the previous page, refresh it and try again' error  when they submit for approval or recall the quote using Advanced Approval buttons. Users follow the instruction (return to previous page and refresh) but still encounter the error. Workaround: Clear browsing data last 24h or open the quote in a different browser; and take action from there.

Advanced approval note - Why the assigned approval is disappeared and the quote get approved automatically?

Use case:  There are 3 approval levels that the quote has to go through for discount: Step 1: Direct managers (discount =< 3% and margin >=50%) Step 2: VP (discount > 3% and margin >=50%) Step 3: SVP (discount >0 and margin <50%) In quote 02613, the discount is 5% but margin is above 50%, the quote needs approval from Direct Manager (step 1) and VP (step 2). After the direct manager approves the request, the quote get approved automatically and the VP approval request is deleted. Solution: Check the Excluded Statuses field in the Approval Rule and make sure the Pending status is removed.  Based on salesforce documentation, Salesforce CPQ does not apply this rule to approvals with any of the chosen statuses, which was not quite clear to me. After testing and fail several times, searching on the internet, I even tumble across the same question on CPQ community without no answer. Finally I got on the call with a CPQ support and they recommended me to check...

Salesforce Administrator in a project

I'm sure not every Salesforce Admin role is the same, depends on workload, company size and industry. During my journey, I'm fortunate to work on a few Salesforce integration projects with some app-exchange and usually have great experience with them. A Salesforce admin sometime has to play a another role as a business analyst, project manager, tester, QC, data analyst or even sales enablement manager in  integration projects. Some projects only take a couple days or weeks from the beginning to the end but some might take sevaral months to complete. Here are just some takeaway when working with the stakeholders: Supporting/ consulting team from 3rd party vendor: It's better to ask to be involve in bidding meetings before company make purchasing decision. Salesforce admin is the one having the best idea on how Salesforce, data and business process operate. Always look at provider website or demo to have the better idea on their product and it's helpful to have the instru...

Flow: Retrieve urls of uploaded files in standard object and update a field in custom object for Platform Salesforce license

 Use case: Platform license users have no visibility to view Opportunity and its child object's records (S object) and files. E object is a custom object that has look up fields to Scope and Opportunity.  Object structure:  1Oppt - mScope 1Scope - mE. The purpose is to get the urls of files in Scope object and update in a field of E object after those files were shared to Platform license user group.   1. Get parent record through input variable (if we use it in process builder)     2.  To get ContentDocmentLink in parent object (Oppty or Scope in this case), we check LinkedEntityId equals parent object id.  3. Check if there is any doc is found. If yes, loop and get all urls, otherwise exit the flow or notify user through screen. 4. Loop each element 5. Create a formula for document url and assign values   6. Add each element to a collection 7. Assign url to a field in a child object (E object) and create/update record of E object.

Einstein Analytic Note: Prediction

Answer 4 questions:  What happened? --> Descriptive Why it happened? --> Diagnostic What will happen? --> Predictive What to do about it? --> Prescriptive Einstein Discovery works on: Numeric outcomes (revenue) True/False - Yes/No question Einstein Discovery Lifecycle: Idea/ KPI value Define the problem Create story with Dataset of historical information Iterate/ Review analysis and model metrics/ take recommendation  Deploy and Predict Review story and enable prediction Monitor and maintain in Production

Einstein Analytic Notes: Binding

Binding type: selection and result. Selection : a user need to click on somewhere in the dashboard. Selection interaction can be used to: Specify interactions between widgets which use queries from different datasets. In addition to filters, specify the measures, groupings, and other aspects of a query. Set widget display properties for some widget types (number and chart only Result : user does not need to click on dashboard or there is hidden step. A results interaction is typically used to: Define intermediate results for a complex calculation. For example, to calculate the total opportunity amount for the top-five products, use one query to calculate the top-five products. Then use those results to filter another query that calculates the total number of open cases for each product. Set an initial filter selection for a dashboard based on a characteristic of the logged-in user, like their country. Dynamically change the display of a widget based on the results of a query. For examp...