Monday, March 9, 2015

Salesforce.com Advanced Adminstrator Sample Questions - Part 1


In my previous blog SalesforceAdvanced Admin Certification, I discussed some tips and tricks on how to clear this exam. In this article, I will be posting advanced admin sample questions. More questions are on the way! Keep visiting....

Q1. EU Sales Manager has come to you with a request that he wants to manage users in the APAC sales role and all subordinate roles. He would like to have access to all custom objects which his profile does not provide. What would you do as an admin? Choose 2 answers

a)     Create New Profile
b)    Create new permission set
c)     Delegated admin
d)    Give super-sys access

Q2. SFDC 123 uses salesforce to track Training Employees and Courses.  A trainee can apply for multiple courses and one course can have multiple trainee. How would you set this up in salesforce?
How can this be accomplished? Choose 1

a)     Create two custom object Employees and Courses.
b)    Create a lookup relationship between Employees and courses with Applicants as the parent.
c)     Create a master-detail relationship between employees and courses
d)    Create a many-to-many relationship using a junction object with both employees and courses as masters.

Q3. You are an admin of SFDC123, sales manager has requested to create a field on a custom object ABC that will total the expense amount field for all expenses associated to the object ABC.

How should this be accomplished? Choose 1

a)     Create a master detail relationship between Expense and ABC and rollup summary field on the opportunity object.
b)    Create a lookup relationship between Expense and ABC and a workflow rule that will display the total on the opportunity.
c)     Create a lookup relationship between Expense and ABC and a rollup summary field on the opportunity object.
d)    Create a master detail relationship between Expense and ABC and a workflow rule that will display the total on the opportunity.   

Q4. Which permission is required to use inbound change sets?

a)     Deploy Change Set
b)    Manage Change Set
c)     Create Change Set
d)    Upload Change Set


Q5. Following Change set components can be added in an outbound change set? Select 2

a)      Publisher action
b)      Chatter Answer
c)      Page layout
d)     Object

 Q6. What can be used to retain achieved field history data?

a)      Activities
b)      Field Audit Trail
c)      Audit History
d)     Debug log

Not sure about the answers? Post your comments or queries below!
Click here to view more questions Salesforce.com Advanced Administrator Sample Questions - Part 1




Sunday, March 8, 2015

Territory Management Part-1

Territory Management is organizing your company users into various account territories that provides account access and related opportunity access. 

to be continued........

Saturday, March 7, 2015

Scrum Framework

Scrum is an iterative and incremental framework to manage and develop a product. Scrum is one of the most heavily used agile techniques. It is not about programming, but it focuses on organization and project management methodologies. Scrum defines a set of iterative processes that is implemented based on the product backlogs and identified based on the priorities. Several tools in managing scrum are rally, agile project management, jira, salesforce agile accelerator, and target process etc. to track user stories and to make sure the team is following the Sprint planning.  



The approach to implement scrum may differ from organization to organization where teams can address complex issues in their own creative way and provide on time delivery to follow the baseline framework of scrum. The definition of delivery for every user story is decided by the team. Delivery to the business can be a deployment in the production, just an analysis, discovery, testing, uat etc. We will come back to define delivery with more examples later. 

Overview

Use Case:

SFDC123 Inc. has an IT team of 100 people, they have been following old sequential method of waterfall technology for software development projects and day to day activities like tickets, bugs, defects, enhancements, implementations, releases, upgrades etc. Management has decided to transition the entire IT team into scrum for speed and flexibility in product development.

SCRUM Team

The first step for our use case would be to divide the entire IT team of 100 folks into 10 “Scrum teams”.Each team would consist of SCRUM Master, Product owner, the development team, BSA’s and Admins.

SCRUM Master:

The Scrum master is the leader who conducts meetings and ensures that the entire team understands the Scrum practices and techniques. As a coordinator scrum master helps the team to manage their tasks and make progress to achieve the sprint target. Any issues or impediments are directly reported to him or her which is usually discussed in everyday stand-up meetings.


Product Owner

Product owner is also the subject matter expert who decides what needs to be build this sprint. He or she is responsible to draft the details of the user stories and prioritizes them in the product backlog. User story could be anything like building an internal or external application, tickets, bugs, documentation, discovery tasks, deployment, enhancements etc. What is defined as completed for each user story is also defined by the product owner. He or she becomes the first point of contact for the entire team to answer questions regarding the user stories assigned.

Development Team:

Development team is a cross functional team and its role differs from team to team, it mainly consists of bsa, admin, developers, architect, QA, web designer, technical specialist etc. Usually its members have collectively all the skills required to achieve the goal of the sprint. The team picks their own tasks and decides the amount of time required to move the task to complete.

 Scrum Structure


Sprint Cycle

Sprint is a work cycle decided by the team members and the Scrum Master. It can be either short sprints of two weeks or 30 day long. 


Product Backlog Grooming Session

Initial requirement discussions with the business and stakeholders are conducted by the product owner. He or she has the vision of the total amount of work that needs to be done. Product owner interacts with the team and decides the list of user stories that will be going in the current Sprint. A Sequence of work is listed according to the priority in the product backlog. It depends on the product owner of he or she wants to prioritize the items in product grooming session or want to prioritize them in the Sprint planning session. Items in the product backlog can be modified, added or deleted at any time as the business requirement changes. Another aspect of grooming session is assigning the story points.

Story Points

Story points are used to give an estimate about the user story in terms of difficulty level and the amount of time required to finish the task. User story is reviewed by the product owner with the entire team and then the voting begins. Few estimating methods are t-shirt size  XS,S,M,L,XL etc. , Fibonacci sequence 1,2,3,4,8 etc., Regular numbers like 1,2,3,4 etc. It is not necessary to assign hours to the estimates but if the team does than it is important to define the number of working hours in a day. 

For Example-

In SFDC 123 Inc. employees work from 8 AM to 5 PM. Lunch break timing is 12 PM to 1 PM. Miscellaneous activity = 1 hour, total amount of working hours in a day = 6 hrs.

Fibonacci Sequence
Days
Hours
1
Less than half day
3 hours
2
One day
6 hours
3
One and half day
9 hours
5
Three days
18 hours
8
Five Days
30 hours

Sprint Planning

In Sprint planning session the entire team- Scrum master, product owner and the development team decides to list the user stories which will be included in the upcoming sprint and what goal will be achieved. Product backlog may contain a lot of work which may not be achieved in a two weeks’ time line. In this session user stories are assigned to the development team followed by the task breakdown. Task breakdown can be done either by the product owner or the task owner. The story points assigned should match the task hours. If the Sprint duration is two weeks than each team member should have at least 60 hours of work given that the number of working hours in a day is 6. 



Back Burner
Low priority tasks like tickets, bugs, defects etc. are staged in the Back burner. Team members can assign the back burner tasks to themselves if they have finished the current Sprint work or the task that they are working on has a dependency and is paused. 

Implementation Phase

Once the Sprint planning session is done, the development team starts working on the tasks assigned to them. What is done will already be defined by the product owner in the user stories. Team members are responsible to update their tasks on daily basis. In the above example when the task owner begins the build in Dev environment the task should be moved to in progress section. Remaining number of hours should also be updated in each tasks and this depends on the available functions on the tool that you are using to track your activity. The above screenshot resembles the “Virtual wall” of Salesforce Agile accelerator which I will explain in detail in my next article.

If a user story has a task that needs to be done by someone else on your team it could be coding, testing etc., a task is created and assigned to new team member. More than one person can work on a user story given that the owners are clearly defined in the user story along with the hours matching the story points.

What is defined as completed or done?

During Sprint planning either the product owner or the scrum team with mutual discussion decides what will be defined as “DONE” for this user story. Depending on the experience and speed of the task owner “done” is defined.

Example:


Task
Task Owner
Subject Knowledge and Task Owner Comments
What is defined as "Done" for this user Story?
Build workflow rule
Admin
Excellent. I know the task very well.
Deploy to Prod
Complex issue on Sales side.






BSA
Not sure what the issue is, needs knowledge transfer from subject matter expert and some time for analysis.
Discovery
Build was done last sprint. Big Enhancement. Deployed to STG. Start UAT
QA
Excellent. Business would need two weeks’ time for testing.
Manage UAT
Code fix, needs analysis.
Developer
Average. Initial analysis and build can be done this sprint.
Build in DEV


Stand up Meetings:

Stand-up meetings are usually done in the first few hours of the working day.

The entire team updates the Scrum master which tasks were completed yesterday, what tasks are you planning to do today and are there any impediments. Scrum master notes down the road blocks and impediments reported by the team members and immediately works towards fixing them. In stand-up meetings team members usually discuss impediments like- business is not responding, my task has dependency on external team member, I am facing issues in build and I have exceeded the time allotted to me for this task, I need help from the team etc. Daily stand-up meetings promote collaboration, smooth functioning of the sprint, team members.

Highlights of the Daily Stand-up Meeting
  • Promotes Collaboration
  • Team Effort
  • Helps in smooth functioning of the Sprint
  • The entire team stays updated with what's going on.
  • Road blocks are addressed immediately
  • Sprint status, backlog items are communicated to the team
  • Team velocity is monitored
  • Number of hours remaining for the team members is tracked




Sprint Review Meetings

Sprint review meetings are conducted to review the delivered products or “done” items with the stakeholders, customers, end users, interested members of other teams and the scrum team. The Scrum team decides which features will be reviewed with the stakeholders. With this meeting all the participants get clear visibility of what has been built till now and are there are any changes required. Stakeholders and team members discuss collaborate and provide feedback on the delivered product which results in increased credibility of the team effort. The discussion helps for the continuation and expansion of the program/product.

 Sprint Retrospective Meeting

In this meeting the Scrum team (Scrum master, product owner and the development team) come together to discuss the following
  • What went well in our last sprint?
  • What are the areas that can be improved?
  • Recognition to a team member for an outstanding job.
  • What did not go well in our last sprint?

Team members are encouraged to draft their thoughts on sticky notes or they can  jot down the points on a board and then discuss them one by one. The goal of the meeting is to come up with the action items and scope of improving the next sprint.  This is the last step in a Sprint cycle. Once the retrospective session is completed Scrum master documents the discussion and updates the team with the notes.

Conclusion:

Hope this article gives you some basic idea about Scrum framework.There are some great tools available in the market that can help in a focused overview of scrum roles, scrum artifacts, and the sprint cycle. In my next blog, I will cover the basics of Salesforce.com Agile Accelerator. 







Friday, March 6, 2015

Introduction to Record Type


Understanding what Record types are can be very confusing in the beginning but when you start relating them with your day to day activities it becomes easier to grasp the concept behind it. I like to visually relate things, as it helps to retain information and makes sense of what you hear. Isn't it true? Images always float around in the head.

As an example, consider a family that has a mom, dad and kids. Mom and dad work in the office and kids go to the college. Each one of them decides to record their monthly expenditure for better budget planning. Dad takes care of major expenses like house loan, bills etc. Mom takes care of household chores and kids go to school. As an admin can you help setting them up in Salesforce?



In Salesforce an object is a container to store data, monthly expenditure is your object. Your target audience is mom, dad and kids. While they want to record their monthly expenditure at the same time, it is not necessary that all of them will record their expenditure in the same way. For example kids would like to record books, stationery, tuition fees, pocket money, miscellaneous items etc. Dad wants to track home loan, car loan, phone bills etc. Mom would like to record grocery shopping, medical, household stuff etc. Imagine all of them drafting their data on a page? The pages would not be identical right? You don’t want to create same page for everyone in Salesforce. You have 3 types of audience and you might want to create 3 different page layouts for your object “Monthly Expenditure”.


With the help of record types, you connect the page layouts to your target audience.

Record types allow you to specify categories of records that display different page layouts. You are tailoring the information according to the user so that they don’t see too much of the information. Record types are the keys to the page layouts. Page-layout visually represents the data in the form of fields. For every object you will have a master record type defined. Access to record types are defined on profile. Kids may not have access to Loan record type certainly the page layout either and this will be defined on their profile. Mom may have access to loan record type but the default record type defined for her would be Grocery. 

Good to Know:
  • Default record type is defined on profiles
  • Users can pick the record types before they create a record.
  • During data upload if a user does not specify the record type than the data loader picks the default record type defined on the profile. 
  • We can use workflow rules to update the record type and flip page layout of a record. 






Thursday, March 5, 2015

Workflow rule field update for users in specific roles

Use Case:

Users belonging to different roles "EU Sales" and "APAC Sales" would like to have a functionality in salesforce to automatically update " Reason" field on leads to "Not responding" when the lead status is changed to " Closed-Not Converted".






For this use case the best recommendation would be to create a field update workflow rule. 
Workflow rules can be used to assign tasks to users,update fields or send emails.

Step1: Create a workflow rule on the lead object. You want the reason field to be updated when a record is created as well as edited to subsequently meet the criteria. Evaluation criteria would be created and every time its edited. 

Step2: Select rule criteria to Formula evaluates to true

Formula:

AND(ISPICKVAL(Status,"Closed: Not Converted"), 
OR($UserRole.Id = "000123456789jji", $UserRole.Id = "0005678786hihyi"))



Let us breakdown the formula

When the lead status ( Picklist value) changes to Closed: Not Converted then the workflow rule should trigger and update the field. The current user changing the lead status should belong to one of the roles. 

AND : Checks whether all the conditions defined in the formula are true and returns true.

(ISPICKVAL(Status,"Closed: Not Converted") : Checks whether lead Status Picklist is closed not converted.

OR($UserRole.Id = "000123456789jji", $UserRole.Id = "0005678786hihyi"))
We are using OR condition because we want the rule to check if the current user belongs to one of the defined roles. 

Note: You can either use $UserRole.Id  "000123456789jji" in the formula or $UserRole.Name " US Sales" both should work in the workflow rule. 




Step3: Create a workflow action on the workflow rule. Specify the field value and the field to be updated. 


Activate your workflow rule and you are done!





Wednesday, March 4, 2015

Regular Expression

Introduction

It is a great experience to see as an admin the power of salesforce.This platform has taught me how to build complex formulas using UI and solve business problems leveraging existing salesforce functionalities. Recently business approached me with a requirement and after reviewing the details, I was not sure if it is really possible by creating a simple formula from UI until I came across the robotic regex function. I am calling it a robot because it is capable of carrying out a complex series of actions automatically. Having realized it is a solution for the requirement I thought I would share this on my blog to help admins and developers in achieving similar use case. This blog introduces how to use regex function in building advanced formulas
  
Regex Function

A regular expression which is also known as Regex is a text string that describes a pattern to search, edit, find positions in a body or manipulate text and data. You define the patterns and the regex function simply goes and matches it in the string. I love regex because with such tiny expressions you can write complex validation rules, workflow rules and formulas in salesforce. It is worth investing little bit of time learning this expression to make your life easier while working in salesforce.

I don’t really know where to start in terms of how huge and significant this expression is. Let us begun with a use case

Use Case:

123 SFDC corporation has lead traffic coming into salesforce from various servers. These servers have relaxed validation rules due to which leads are coming into salesforce with missing phone and email information. If country is United States than salesforce should not accept leads that have both email and phone field blank. If email is blank than phone number field should contain minimum 4 numbers. Phone number field can also contain upper and lower case alphabets, dashes, brackets etc.
  
We are basically trying to limit or control the data a user can enter on a lead record before saving it. This can be achieved by creating a validation rule. A validation rule can contain a formula expression that evaluates the data in field and returns a value of “True” or “False”. When the rule returns a true value then an error message pops up.  

Extract of high level requirements:
  • New lead records and country is United States
  • Both Phone and email cannot be blank
  • If email is blank than phone should contain minimum 4 numbers
Validation Rule:

Let us break down the validation rule step by step:

Step1: We want this rule to work only for new leads i.e. every time a new lead record is created in salesforce. This rule is not applicable for existing records. 

Use ISNEW () function, AND function checks whether all arguments are true and returns TRUE if all arguments are true

AND (ISNEW(),
  
Step2: Validation rule should trigger if country is US, use country = ‘United states’ in teh formula.

Step3: Phone or email cannot be blank. Use ISBLANK function.
ISBLANK checks whether an expression is blank and returns true or false value.

ISBLANK (Email), ISBLANK (Phone)

Step4: If email is blank than phone number should contain minimum 4 numbers.

Use REGEX function

 NOT REGEX(Phone, "[\\w\\d\\s)(-]*[\\d]{1}[\\s\\w\\d)(-]*[\\d]{1}[\\s\\w\\d)(-]*[\\s\\d]{1}[\\s\\w\\d)(-]*[\\d]{1}[\\s\\w\\d)(-]*") 

 [ ] -     Match anything inside the square bracket
Dash- Inside the square bracket is the range separator and allows us to define a range
\\ -       escaped backslash for re.compile ( pattern, flags = 0)
\s -      Match any whitespace characters (space, tab etc.). 
\w -     Match any character in the range 0 - 9, A - Z and a - z 
\d -      Match any character NOT in the range 0 - 9
)(-       Field can contain bracket and dashes
* -       Zero or more times






Tuesday, March 3, 2015

A Guide to Sharing Architecture

Sharing model is an essential and critical element of salesforce. It enables record -level access control for all the custom objects and many standard objects. 

License: 
It is essential for every user in salesforce to have a minimum of one user license. 
They are the keys to enable functionality. 

Types of licenses:

·        Full Sharing Model
·        High Volume Customer Portal License
·        Chatter Free License


Components

Profiles and Permission Sets
  •  These provide object level security (CRED access to records)
  • “View All” and “Modify All” permissions for objects bypass sharing rules and settings
  • This is also a preferable alternative to “View All Data” and “Modify All Data” administrative permissions.

 Record Ownership and Queues
  •  Owner of the record has full access to the record
  • Users higher in a hierarchy inherit the same data access as their subordinates for standard objects

 Queues
  • Manage your leads, orders, cases, service contracts, and custom objects by using Queues
  • Records in the queue can be assigned or owned by the queue members or users above them in the role hierarchy.

 Organization-Wide Defaults
  •  Organization-wide defaults are the only way to restrict user access to a record.
  • Defines default level of access that users have to the records
  • Locks down your data to the most restrictive level
  • You can remove the grant access to the managers in the role hierarchy by unchecking Grant Access Using Hierarchies setting for custom objects.
Note: Grant Access Using Hierarchies setting cannot be changed for custom objects.

I strongly recommend to watch : Who sees what video