So You Want to Be a Salesforce Admin…

So you want to be a Salesforce Admin but don’t know where to start? Luckily for all of us, there are many, many wonderful resources available to learn from.

First off, I highly recommend creating a Salesforce Developer org to practice in. I suggest using a personal email address to sign up for your developer org instead of a work email address. The biggest benefit to using a personal email address versus a work email address is your Developer org can follow you wherever you go. This org will allow you to test the concepts you learn along the way and possibly try out apps from the AppExchange all without disrupting your employer’s sandbox or production orgs.

Ok, so now that we got that out of the way, on to the resources!

My new favorite that I keep telling everyone about is this fantastic Salesforce interactive learning path called Trailhead. There are currently 3 different “trails” to choose from, with additional trails coming soon.

  • Getting Started with the Force.com Platform
  • Intro to Visual App Development
  • Intro to Programmatic App Development

There are quite a few learning objectives and modules to choose from within these trails. There are challenges built right and you have the opportunity to earn some really cool badges.

Second place to look for information would be the Salesforce Help & Training. It my go-to place when looking for specific content such as Release Notes, Knowledge articles, guides, tip sheets, and some basic online training videos. I have to say, it’s probably one of the most robust documentation repositories I have ever seen any company provide.

Another valuable resource is the Salesforce Success Community. You can join local User Groups, Collaborate with other Salesforce users around the world, ask questions, and create and/or promote Ideas. One fantastic group to follow, among many in the Success Community, is “Success – Getting Started” – it is monitored by Salesforce employees, Salesforce MVPs, and other customers like yourself. With a community of over 1.5 million contributing members, you are never alone!

Lastly, if you have the means, you should try to take the Salesforce Instructor-Led Training. I was fortunate to attend the “Administration Essentials for New Admins (ADM201)” course back in 2010 and it was a great starting point. I also wanted to point out that if you are a member of the Success Community, you can find a special offer here if you purchase the training by February 28, 2015 and attend by April 17, 2015.

I hope this all helps. If I’ve left out any other valuable resources, please feel free to tell us about them in the Comments!

Advertisements

2014 Salesforce MVP Summit

 

Welcome to the MVP Summit

So it’s been just over a week since I was scrambling to get things ready at home before heading out to the 2nd Annual Salesforce MVP Summit in beautiful San Francisco. I was nervous about leaving my husband and kids for a few days and made sure outfits were picked out and everything was organized before I could comfortably travel. I was also excited at the thought of seeing my MVP family and couldn’t wait to give everyone a big hug!

This year’s Summit was two full days of learning, networking, smiling, and of course, laughing. On the first morning, we kicked things off with a Salesforce Foundation event where we learned that we would be making cozy blankets and stuffing LOTS of bags with a book, a stuffed animal, and a nice warm blanket. A wonderful organization called Project Night Night (which you should check out BTW) would then distribute these beautiful items to children in need. We got to hear about the organization’s mission and a few heartwarming stories from Project Night Night’s Executive Director, Kendra. I can’t even begin to explain the emotions we all felt, but this was the perfect start to what was going to be an amazing event.

The MVPs then broke off into groups of four and came up with things they had in common with one another. After we completed this list, one representative from a few of the groups announced 4 or 5 of the commonalities to the rest of the attendees. Since we have such a diverse group of folks that come from many different parts of the world, this was a great way to get to know everyone a bit more and we realized we have a lot more in common than our love for Salesforce.

Without getting into too much detail since we are all under NDA, the remainder of our first day focused on presentations from the Platform, ISV, and Salesforce1 teams. Once presentations and discussions were over, we were greeted by the UX Design team at a wonderful reception they hosted for us. Parker Harris started off Day 2 with a True to the Core and IdeaExchange overview and from there we heard from the Analytics, Sales Cloud, Service Cloud, and Chatter/Communities teams. At the end of each day we broke out into Round Table discussions with PM’s from each of the above mentioned teams where we were able to ask questions and share ideas and pain points. Peter Coffee also had a few Round Table discussions on the Internet of Things (IoT), a topic which I find to be quite fascinating.

In addition to all of the great things I covered, the other big highlight of the Summit (or any other Salesforce gathering) for me is meeting and networking with others in our community. Salesforce has such an amazing platform, and the Community behind it is top notch. Over the last 4+ years I have made many new friends, some of which are like family. On Friday evening, I had the privilege of sitting with and listening to others share why they are so passionate about helping others and how and why they got started in the community — I would have contributed more to the discussion if my voice didn’t decide to disappear, but just sitting there listening to them made me love and appreciate our wonderful community even more. Thank you, yes YOU reading this, for being a part of my extended family. You help me to grow and to be a better person and admin.

Lastly, a billion THANKS to Matt Brown, Erica Kuhl, April Nassi, and their amazing team for another successful event and for their passion for our community! We wouldn’t be where we are today without their vision, talent, and hard work!

I now leave you with a few photos…

The 2014 MVP Summit Attendees sporting their new gear. Photo courtesy of Bella Lu Photography

The 2014 MVP Summit Attendees sporting their new gear.
Photo courtesy: Bella Lu Photography

#DenMom with our youngest MVP

#DenMom with our youngest MVP

Our #DenDad

Our #DenDad

Parker Harris kicking off Day 2

Parker Harris kicking off Day 2

Photo courtesy of Brent Downey

Photo courtesy: Brent Downey

"Say Cheese" Me: "I can't!"

“Say Cheese”
Me: “I can’t!”

Laughing so hard he's crying!

Laughing so hard he’s crying!

"Gotcha!" Photo courtesy: Matt Bingham

“Gotcha!”
Photo courtesy: Matt Bingham

Blankets to be made...

Project Night Night – Blankets to be made…

And bags to be stuffed with goodies

And bags to be stuffed with goodies

Out celebrating with my new friend

Out celebrating with some new friends

MVP Besties with a surprise photo bomb ;)

MVP Besties with a surprise photo bomb 😉
Photo courtesy: Kyla Longe

The Bay Bridge

The Bay Bridge

Got to visit the "Mothership" on Saturday morning

Paid a visit to the “Mothership” on Saturday morning

Custom Quotes Tab in Salesforce

Just to note, I am not a developer but had some code laying around that I tweaked to help out another community member. It’s a bit rough around the edges (as is this post) but it’s (hopefully) a good starting point to creating a custom Quotes tab in Salesforce. Feel free to add any comments below on how to improve!

Apex Class:

public class CustomQuotesController
{
public List<Quote> allQuotes {get;set;}
public Boolean hasResults {get;set;}
public Id quoteId {get;set;}

public CustomQuotesController(ApexPages.StandardController stdController)
{
Sobject quote =  stdController.getRecord();
quoteId = (Id) quote.get(‘Id’);

String rowsString = ApexPages.currentPage().getParameters().get(‘rows’);
if (rowsString == null || rowsString  ==”)
{
rowsString = ’10’;
}

if (rowsString == ‘All’)
{
rowsString = ‘1000’;
}

Integer  rows = Integer.valueOf(rowsString);

allQuotes = new List<Quote>([SELECT Opportunity.Account.Name, Opportunity.name,OpportunityId, Name, IsSyncing, Id, ExpirationDate, Discount, CreatedById From Quote q limit :rows]);
if (allQuotes.isEmpty())
hasResults = false;
else
hasResults = true;
}
}

Visualforce Page:

<apex:page StandardController=”Quote”  extensions=”CustomQuotesController” id=”thisPage”>

<apex:form >
<apex:pageBlock >

<apex:outputPanel rendered=”{!NOT(hasResults)}”>
No records to display
</apex:outputPanel>

<b>Display rows:</b>
<a href=”#”  onClick=”window.parent.location.href=’/apex/Quotes?rows=10′”>10</a>&nbsp;|&nbsp;
<a href=”#”  onClick=”window.parent.location.href=’/apex/Quotes?rows=25′”>25</a>&nbsp;|&nbsp;
<a href=”#”  onClick=”window.parent.location.href=’/apex/Quotes?rows=75′”>75</a>&nbsp;|&nbsp;
<a href=”#”  onClick=”window.parent.location.href=’/apex/Quotes?rows=100′”>100</a>&nbsp;|&nbsp;
<a href=”#”  onClick=”window.parent.location.href=’/apex/Quotes?rows=200′”>200</a>&nbsp;|&nbsp;
<a href=”#”  onClick=”window.parent.location.href=’/apex/Quotes?rows=All'”>All</a>

<div style=”width:100%; margin-top:5px; height:200px;overflow:scroll;”>
<apex:pageBlockTable width=”100%” value=”{!allQuotes}”  rendered=”{!hasResults}” id=”related” var=”quotes”>

<apex:column >
<apex:facet name=”header”>Name</apex:facet>
<a href=”#” onClick=”window.parent.location.href=’/{!quotes.Id}'”>{!quotes.Name}</a>
</apex:column>

<apex:column >
<apex:facet name=”header”>Account Name</apex:facet>
<a href=”#” onClick=”window.parent.location.href=’/{!quotes.Opportunity.Account.Id}'”>{!quotes.Opportunity.Account.name}</a>
</apex:column>

<apex:column >
<apex:facet name=”header”>Opportunity Name</apex:facet>
<a href=”#” onClick=”window.parent.location.href=’/{!quotes.Opportunity.Id}'”>{!quotes.Opportunity.name}</a>
</apex:column>

<apex:column value=”{!quotes.IsSyncing}” />

<apex:column value=”{!quotes.ExpirationDate}” />
<apex:column value=”{!quotes.CreatedById}” />

</apex:pageBlockTable>
</div>
</apex:pageBlock>
</apex:form>
</apex:page>

Custom Quotes

Follow this help tip on how to create a Visualforce tab to display your new Visualforce page.