Monday, January 27, 2014

The Best Thing I Built on Salesforce: My Career


Dear Mr. Benioff,


During the Q&A session on the last day of Dreamforce, I really wanted to ask you a question but I was too shy.  I wanted to ask, “Did you know that you were going to change my life?”


A few hours after Dreamforce ended I was still thinking about this question and more so the question of where would I be if Salesforce wasn’t invented?  I was having a late night breakfast with some new Dreamforce friends at Denny’s and looked up and asked everyone sitting at the table with me,  “What do you think you would be doing if Salesforce didn’t exist?”


My new friends went around the table, each telling their story. Everyone had some great ideas of cool stuff they might be doing in or out of the technology world.  They turned to me waiting for me to speak and my answer was, “Probably a hair dresser, makeup artist and/or a secretary.” It was one of the first times I said it out loud. I never said it before because I was afraid or embarrassed of what people would think of me.  I was concerned that they might think I wasn’t good enough to be the Lead BA at a large financial services company because I used to play with hair and makeup for a living.  In the past, I would start telling my story at the part where I ended up on a Salesforce project in 2004, but not the part about how I ended up on the project in the first place. One of my new friends looked at me and encouraged me to share further.


My story really starts back in 2001. I was working at a top salon in my area blowing out hair 10-12 hours a day.  I was known for my blow outs. I would have people booking me weekly to get their thick, curly, unruly hair blown out smooth for a special event or just for the weekend. I was also working part time as a makeup artist on the side, which was my real passion, but the blow outs paid the bills. I would take any chance I could get to put makeup on someone. I loved that feeling when I would put makeup on a woman who didn’t feel good about herself who suddenly realized that she was beautiful.  It wasn’t the makeup, it was that she saw herself, really saw herself.  That was and still is my favorite part of makeup. I always tell women “I didn’t make you beautiful, I just made you look in the mirror.”


It was a hot day in June when I was blowing out one of my regular clients on a Friday afternoon when I felt pain like no other in my right shoulder.  I finished my blow out and let the salon manager know that I needed to cancel the rest of my appointments and head to the doctor.  I knew something was really wrong.  I was right. I had severe inflammation and a slight tear in my right rotator cuff.  My doctor told me the repetitive motion of the blow drying had caused the injury and that I should probably look for a new career.   I was devastated.  I went back and spoke to my salon manager the next day who offered to give me an office job temporarily until I could find new work.  


I ended up being really good at “office work” so my salon manager came to me and said that she couldn’t afford to keep a full time office manager but her husband was looking for a full-time secretary.  She handed me an application and told me I should apply.  I saw the name of the company on the application and remember thinking, “Corporate America brace yourselves, here I come.”


My corporate life started in August of 2001.  I started out answering phones, taking messages, keeping calendars, setting up meetings and arranging large dinners and travel. All pretty standard secretarial stuff.  My manager started giving me more things to do, including database entry and putting together metrics for inventory, cost of goods sold, and customer service.  I loved the metrics piece.  It was almost like I was telling our company’s weekly story in an excel spreadsheet.  I prided myself on those reports.  It was my favorite thing to do every week.  


By 2003 I was handling a lot of the sales and operations metrics for the company.  The metrics came in various formats in which I had to scrub the data. The process would take me 3 days to put together the weekly reports for Friday’s review.  So every review, we were viewing data from the week before.  


It was sometime in mid-2004 that I said to my manager, “Wouldn’t it be great if all of this stuff was in one system where we could just run reports?”  My boss turned to me and said  they were implementing something called ‘Salesforce.’ “You should be on that project,” he said.  It wasn’t until I first logged into Salesforce.com in the Fall of 2004 that I realized the power of the platform.  No one in my company showed much interest in it, but I immediately loved it! By clicking a few checkboxes I could add fields to reports, and alleviate helpdesk tickets that could take 3 weeks for a response!  Within 3 days time I taught myself how to update report criteria and how to run my own reports.  


I would spend hours each night reading about Salesforce. I immersed myself in the guide that we were given from our Salesforce implementation.  In 2005, I convinced some disinterested people in IT to grant me Administrative access to our org. With that new authority, I created my first formula field that allowed us to drill further down into our contacts for information that we needed.  That is the moment that opened my eyes to the power of what someone with little technology skills could do with Salesforce.


I knew this is what I wanted to do: I wanted to play with Salesforce all day and all night.  But how could I do that?  How could I make Salesforce my career?  I searched Monster that night for Salesforce.com and there it was, my dream job.  A start up company was looking for a Sales and Field operations manager to do reporting and manage their Salesforce org.  Bingo!  I applied, and I got the job!


By early 2006 I was doing all sorts of crazy formulas, validation rules, workflow rules, data mining and building business processes in Salesforce.  Even more importantly improving business processes by using Salesforce.  I learned everything about each piece of our business: marketing, sales, client support, finance and how to make each team more efficient with Salesforce always at the center of the equation.  


It was a cold rainy November day in 2007 when my big break came.  A recruiter from a huge financial services company called me. A mutual friend had shared examples of some cool stuff I was doing in Salesforce.  The recruiter wanted me to apply and interview for a job they had open.  I did so, and I got the job!  I was astonished!  Me, a hairdresser/makeup artist/secretary was going to Wall Street to work on a large team to do Salesforce Administration.  


Just over 6 years have passed since that phone call.  I’m currently the lead BA on all Salesforce projects at a top Financial Services company in New York City.  In addition, I run day to day operations, make sure issues are handled appropriately, and support our end users’ needs.


At the conclusion of fully recounting this whole story at Denny’s, everyone encouraged me to share it, with the emphasis to give encouragement to those out there who want more themselves, and are wondering if they can make Salesforce a career. I hesitated to commit to writing my story down, as I wasn’t sure if I should.  


I made up my mind to give an account of my Salesforce experience while attending the NYC Salesforce1 tour.  I found myself telling it again at the developer meetup. A Salesforce.com employee overheard me and told me that there was someone who was working in an office manager role, that wanted to make Salesforce his career. This person struggled with understanding how to accomplish that dream.  The Salesforce.com employee asked if I’d mentor this aspiring office manager, since I came from a similar place in life.  Of course I agreed.  I now realize that I need to tell my story. It’s not about ‘getting it off my chest’ or to impress anyone, but to help others.  


If someone loves Salesforce, and is passionate in a similar way that I’ve been, if they want to make it a career but are not sure if they can, I’m here to say: If I can do it, they can do it!


You may have started reading this thinking that it is one of your numerous contributions to the non-profit world that changed my life. But no, it is not.  It’s the fact that you started Salesforce.com. Salesforce changed my life. I could give you a giant list of things I’ve built on the platform, but what I really built on Salesforce.com was my career.  


Thank you from the bottom of my heart.


All the best in 2014, see you at my birthday party, I mean Dreamforce.


Cheryl Feldman

Friday, January 17, 2014

Potential Solution for Reporting on Salesforce Opportunity Approvals

To all who read this:

I'm not a developer, I have no idea how to write code, however I have a really good understanding of what a trigger is, when it should be used and etc.  If you're curious, I'm a Technical BA at a large financial services firm here in NYC.  

Here's our challenge:

We rolled out approvals on opportunities January of 2008.  Our user base has grown immensely as well as our use of opportunities and enforcement of getting approvals on discounted opportunities.

As we are enhancing our approval process we need to be able to answer certain questions:
How long does it take for an opportunity to be approved?  We currently do pull up some information from the approval process through field updates on the opportunity but that is not detailed enough.  

We want to really break it down.  How many times is an opportunity submitted for approval?  How many times is rejected before finally approved.  Why is it being rejected?  How many times are users being forced to re-submit due to pricing or product changes (we have validation forcing users to do this).  Who is the approver on the opportunity and how long does it take that one person to approve on avg? Who is the approver changed to?   Since we really can't answer these questions with out of the box reporting, I think I may have found a solution which would require a custom object and some APEX.

We have done some similar things with opportunity history reporting and case history reporting have found that these designs work well for us and how we need to look at the data.    

I posted something similar on Salesforce Answers, but wanted to also put it here.  Selfishly because I always wanted to start a blog, so I guess this is also my first post.

Here is the design, would love feedback if you've done this before. Did it work?  What challenges did you have?  

Design for Approval History Reporting

Problem: Salesforce currently doesn’t allow for reporting or metrics on approvals.  Our business needs to be able to report on how long it takes for one approval to happen, how many times it was submitted/rejected/approved, how many different approvers it went to.

Potential Solution:
Add a custom object called “Approval History Reporting” to be a child object of opportunities through a master detail relationship.
Add the following fields to the custom object:
Approval History Start Date/Time
Approval History End Date/Time
Approver – lookup to user
Approver Changed to – lookup to user
From Approval Status (picklist) – Submitted, Approved, Rejected, Recalled
To Approval Status (picklist) – Submitted, Approved, Rejected, Recalled
Approver Comments text field
Age = formula field to calculate Approval History End – Approval History Start, show number in hours
How this object will work
Records will be inserted and/or updated when certain things happen.

Scenario 1: Opportunity is submitted for approval
Upon initial submission of an opportunity to an approval process a record will be inserted into the Approval History Reporting with the following fields populated:
Approval History Start Date/Time – Time opportunity was submitted for approval
Approver – user selected as approver
From Approval Status = Blank
To Approval Status = Submitted


Scenario 2: Opportunity is Approved by Approver:
Existing record with To Status of Submitted will update to have an Approval End Date/Time of the time the stage changed
New record will insert with the following information:
Approval History Start Date/Time – Time opportunity was approved
Approver – user selected as approver
From Approval Status =Submitted
To Approval Status = Approved
Comments = any comments entered by approver

Scenario 3: Opportunity is Rejected by Approver:
Existing record with To Status of Submitted will update to have an Approval End Date/Time of the time the stage changed
New record will insert with the following information:
Approval History Start Date/Time – Time opportunity was Rejected
Approver – user selected as approver
From Approval Status =Submitted
To Approval Status = Rejected
Comments = any comments entered by approver

Scenario 4: Opportunity is Recalled by User:
Existing record with To Status of Submitted will update to have an Approval End Date/Time of the time the stage changed
New record will insert with the following information:
Approval History Start Date/Time – Time opportunity was Recalled
Approver – user selected as approver
From Approval Status =Submitted
To Approval Status = Recalled
Comments = any comments entered by approver

Scenario 5: Approver is reassigned
Existing record that is submitted with no End time will have the Approver Changed To lookup update to the new approver

Scenario 6: Opportunity is Recalled and User Submits Again
New record will be inserted with the following information
Approval History Start Date/Time – Time opportunity was submitted for approval
Approver – user selected as approver
From Approval Status = Recalled
To Approval Status = Submitted

Scenario 7: Opportunity is Rejected and User Submits Again
New record will be inserted with the following information
Approval History Start Date/Time – Time opportunity was submitted for approval
Approver – user selected as approver
From Approval Status = Rejected
To Approval Status = Submitted

Scenario 8: Opportunity is Approved and user hits validation due to product/pricing changes and is forced to submit again
New record will be inserted with the following information
Approval History Start Date/Time – Time opportunity was submitted for approval
Approver – user selected as approver
From Approval Status = Approved
To Approval Status = Submitted

** For Clarification on Scenario 8, our validation is on the stage.  If a user tries to close and an opportunity hasn't been approved or products/pricing has changed they will be forced to submit again.

One item to note is I'm also considering maybe adding a type field and inserting records when approvers change.  I'm not sure if that's necessary right now but that maybe an option for anyone trying to get more reporting on approvers and how often they change.