Thursday, November 15, 2012

My Salesforce MVP and Building my "Brand"

Like so many others, this year I made the decision to build my "brand". Yeah right, honestly - I didn't even know what my "brand" was until I read an article on "careergirlnetwork.com" about it!

This year I actually just promised myself that I would work diligently on learning as much about development on the Force.com platfrom as possible. That I would attend as many webinars and seminars and online training courses as I could, find a charitable organization that uses Salesforce.com and donate some of my time. I wanted to get as involved in the community as possible both online and in real life, and just be the best "me" that I could possibly be.

I have this undeniable habit of over-committing myself, I schedule just about every evening and every weekend doing something. If I don't, then I feel like I haven't accomplished anything.

I really do need to learn to take some time for myself, just to lounge around the house (or maybe clean it? nah.) I just know myself well enough by now to know that if I do - then I'm going to get bored, and pick up yet another hobby!

This year, I have done so very many incredible things, I've completely followed my plan of action as far as my career goes (with the exception of getting my Advanced Dev certification, however I still need some formal training to get that, so I'm putting that lower on the list, and moving training up to the top!)

The one thing that I have to change is the fact that I don't take my vacation time. Yeah, that sounds crazy... but honestly I'm just dedicated I guess. I have a full PTO bank, and now I've got 10 days of vacation that I have to take before December 15th, or I lose it. So I'll be sitting at home for 10 days, with basically nothing to do! I plan on catching up with some housework, and doing some of the work for the non-profit that needs to be done.

Right now, I've been just concentrating on my work work, (as opposed to my fun work) and thinking about a question that my friend Geraldine asked... "What are you going to do with your new MVP super powers?"

I want to help elevate others, I want to be a Salesforce.com advocate and evangelist, convincing one person at a time to drink that Kool-aid.

Thursday, October 4, 2012

I know how to spell "TAPING"!! :-)


I'm sending out this blog to hopefully clear up some misconceptions about me.

I know you guys don't know me that well, so I'm just letting you know right now:

               1. I don't send links to Facebook.
               2. I generally have better grammar.

I have no clue how I got "hacked" twice now. I first received the same DM from someone else, and since it was right after Dreamforce, I actually thought that I may have missed Appirio trying to give me $1000 bucks for wearing their shirt.

NO! I was a fool... the "how did u not seee them tapping u" message was a bad bad thing to click. I figured it out pretty quick and changed my password immediately. BUT - whatever it is, it apparently "embedded" itself into my iPhone, and this morning when I logged on to Twitter with my phone - those stupid DM's started going out to my followers AGAIN.

I looked like a complete moron, and I really hate that.

So, I messaged every single person on my Twitter list and told them to NOT open anything with a Facebook link, that I was hacked, and I think I've fixed the problem and I apologized for the weird messages.

I changed my password 3 times today, and revoked access for every single app that had access to my Twitter account. I then revoked access to twitter on my iPhone.

Now, that being said - if I missed telling anyone I'm sorry - I'm sorry. I swear that I will be more careful about what I do going forward!

And, if you are interested in how to recover from this Twitter Phishing scandle, this is an EXCELLENT blog about it:


http://chelpixie.com/2009/11/recovering-from-twitter-phishing/

P.S. what r u doing in thes videos & how did u not seee them tapping u??

Monday, September 24, 2012

Back to work...

Well, it's back to work today... Dreamforce 12 is over. I had a great time, though it's super hard to get back in the swing of things here in hot hot HOT Texas. I miss wearing my boots and tights!

Everyone is blogging about their experiences, and I'm reading as many of them as I can!

So without adieu here are a few of my favorite things from #DF12:

Monday night the #GirlyGeeks DF Chatter group teamed up with the Salesforce.com Women's Network, and had a Women in Tech panel. I ran the EventBrite sign up, and helped coordinate. There were 755 women signed up!

Jill Rowley of Eloqua (@Jill_Rowley) was the moderator, and did a FANTASTIC job! We also had:

Hilarie Koplow-McAdams, President, Commercial/SMB Business Unit, Salesforce.com
Geraldine Gray (@GeraldineGray), Senior Consultant, Appirio & Founder of the GirlyGeeks
Rachel Thornton, Vice President, Dreamforce, Salesforce.com
Penny Herscher (@PennyHerscher), CEO, FirstRain
Sarah Friar (@thefriley), CFO, Square
Deepa Patel, President, Halak Consulting

These fantastic and inspiring ladies were sitting on our panel... it was terrific, and I have to say that I'm sincerely honored to have been a part of this!

Tuesday I hosted a session with Mary Scotton (@rockchick32204) called "Building Business Apps - Coding Optional", and sort of choked a bit... LOL but Mary says that no one knew it other than she and I, and Shannon Hale (@shannonsans) so it wasn't that big of a deal. I did a repeat on Friday and did MUCH better. I hope that I get another chance at presenting!

Wednesday I did a little shopping at Macy's, and got some killer boots, then had dinner with a bunch of the #GirlyGeeks before the @ChiliPeppers show and then went to the @Appirio party! I met a bunch of people, and I'm sure I missed someone on my list that I posted on Twitter earlier this week... and if I missed mentioning you, and you read this... Let me know and I'll send a shout out to you!

Friday was sad, and someone stole my old iPhone3 at the airport, but I made it home finally at about midnight CST. I slept most of the day on Saturday, and then spent a lot of time with icy hot and heating pads on my shinsplints and aching feet!

Today, it's back to the real world, and while I love my job, and my house and the fantastic city of Houston... there's still a part of me that wishes that I was independently wealthy and could just spend as much time in San Francisco as I wanted! I've been there three times now, and not yet have I really spent any time being a tourist!

I'm trying to save up enough money so that next year, I can go up a day ahead of time, and come back a day late! I want to do some stalking of my imaginary boyfriend @JamesFancoTV, and visit the redwood at Muir Woods, and ride a cable car and go over the Golden Gate Bridge!

So now I'm off home from the office, after answering about 200 emails and closing about 15 cases today!

And if anyone wants to start planning meeting up at DF13, let's schedule it now so we don't run out of time!

XOXO
Shannon











Friday, September 14, 2012

DREAMFORCE IS COMING!!!!!

Hi guys, I decided I needed to bust out a blog post before things get even crazier than they already are!

I'm still doing the volunteer work with www. SARDAA.org, and I'm helping to manage the GirlyGeeks chatter group, and my latest announcement is... (drumroll please)

I'm co-presenting a session, with the terrific Mary Scotton aka @rockchick322004!

It's called "Building Business Apps: Coding Optional", and it's already full, and there was so much interest they added a second session on Friday! (REPEAT!)

I'm so excited I can hardly stand myself.






Friday, July 20, 2012

Geekend!

Today I just want to share how much of a TRUE GEEK I really am.


Geek Out #1: I got an email from an undisclosed employee of Salesforce.com letting me know that he recommended me to Pluralsight as a potential contributor to their upcoming video series on Force.com!


I spoke to Megan with Pluralsight the other day, and now I'm planning on what my video audition is going to be, and I'm going to record it this weekend.


For those of you who aren't familiar with  Pluralsight , they bill themselves as "hardcore developer training". It's a subscription site for learning how to do .NET, and C# and HTML5 and RUBY and well, lots of other programming languages.


They don't have a Force.com section yet, so they asked me (based on my recommendation from the "unknown" employee of Salesforce.com) to do a ten minute audition video.


It needs to be something that can actually be learned within ten minutes, not just a ten minute portion of a larger training. I'm leaning towards "Creating Custom Buttons" right now, but I'd be happy to take some suggestions if any of you have some ideas!


Geek Out #2: I'm coordinating some volunteer time with our local area user group leader Rachel Rogers. (Houston Area User Group aka HUG). 


At my suggestion, Rachel reached out to the community, and gathered a group of us who would like to volunteer training, or development or even data entry for a Non-Profit Organization that uses Salesforce.com 


We heard back from the Board of Directors Chair with the Schizophrenia and Related Disorders Alliance of America here in Houston, and we are getting ready to start meeting with her to get started helping them out! 


I'm really excited about that, I love donating my time to help those in need, and I love working in Salesforce.com, so this is just right up my alley!



Thursday, June 21, 2012

Local Time!

I was sincerely surprised that SFDC doesn't have native functionality to determine what the current time is at the Account's location. It seemed like pretty "basic" functionality to me.... AND THEN...

I figured it out... I was SUPER surprised at how very difficult this task really is, especially when you start considering that some states have multiple time zones, and some don't observer daylight savings time, and that's not even considering any of the overseas countries!

I had this brilliant plan though. I built a Visualforce page, that simply pulled in an online time clock and replaced some of their parameters with the data from my Salesforce org, then dropped it into the account page layout and TADA! It's beautiful... and even ticks like a real clock and changes the seconds and everything!







Houston, Texas, US



Okay, so here's the bad news...

After I did this in my sandbox (yet another reason to use the sandbox ALWAYS when testing) I discovered that a lot of the cities and states weren't programmed on that website/service. So, unfortunately that's not going to be my final iteration.

Yes, I've found quite a couple of apps on the appexchange that do this and Local Time v1.9 looks pretty good...


Go Local looks pretty good too... but it's $100 bucks a month for unlimited users!?!

I haven't found a way to pull VF components into a report... and I can't in good consciousness recommend a component that doesn't do everything we want that costs $1200 dollars a year. (we've got 350 standard users, 1503 portal users, and 29 partner users.)

So, now I'm going back to the drawing board. Just because this didn't meet my users requirements doesn't mean that someone out there might not want to use it. So here's the code!

I'm sure that there are other ways to do this... but here's the one I personally cobbled together.


<apex:page standardController="Account" renderAs="{!$CurrentPage.parameters.renderAs}">
<div style="position:relative;width:200px;">
<iframe src="http://www.thetimenow.com/clock/{!Account.Country_Full_Name__c}/{!Account.ShippingCity}/{!Account.State_Full_Name__c}?t=n
&embed=1&text=15&textdate=15&format=12&digitalclock=36&analogclock=60&letter_spacing=-2
&bordersize=1&bordercolor=BCE2F7&bgcolor=EBF8FF&colorloc=000000&colordigital=2C8EBF
&colordate=000000&styleloc=normal&styledigital=normal
&styledate=normal&right=0" frameborder="0" width="200" height="90" scrolling="no">
</iframe>
<a href="http://www.thetimenow.com/{!Account.Country_Full_Name__c}/{!Account.ShippingCity}/{!Account.State_Full_Name__c}" 
style="position:absolute; top:0; left:0; display:inline-block; width:200px; height:90px; z-index:50;" 
target="_blank"><span style="display:none;">{!Account.ShippingCity}, {!Account.State_Full_Name__c}, {!Account.Country_Full_Name__c}</span></a>
<div style="margin:0;padding:1px;font-size:11px;color:#666;text-align:center;">
&copy; <a href="http://www.thetimenow.com" target="_blank" style="color:#666;text-decoration:none;">
The Time Now</a>
</div></div>
</apex:page>


To explain, I noticed that the specific time clock that I was using had full names for the country and the state, even though in my SFDC org, we were using the USPS abbreviations. 

I created two formula fields, one for the Country Full Name, and one for State Full Name.

They look like this:

Country Full Name
CASE( ShippingCountry ,
"US", "United States",
"USA","United States",
"CA", "Canada",
"UK", "United Kingdom",
"SZ", "Swaziland",
"ET","Ethiopia",
"MEX", "Mexico",
"IS", "Iceland",
"GU", "Guam",
"GB", "Great Britain",
"GR", "Greece",
"IE", "Ireland",
"DE", "Denmark",
"FR", "France",
"PE", "Peru",
"CAN", "Canada",
"JM", "Jamaica",
"MISSING")


State Full Name
CASE( ShippingState ,
"AL","Alabama",
"AK","Alaska",
"AZ","Arizonan",
"AR","Arkansas",
"CA","California",
"CO","Colorado",
"CT","Connecticut",
"DE","Delaware",
"FL","Florida",
"GA","Georgia",
"HI","Hawaii",
"ID","Idaho",
"IL","Illinois",
"IN","Indiana",
"IA","Iowa",
"KS","Kansas",
"KY","Kentucky",
"LA","Louisiana",
"ME","Maine",
"MD","Maryland",
"MA","Massachusetts",
"MI","Michigan",
"MN","Minnesota",
"MS","Mississippi",
"MO","Missouri",
"MT","Montana",
"NE","Nebraska",
"NV","Nevada",
"NH","New Hampshire",
"NJ","New Jersey",
"NM","New Mexico",
"NY","New York",
"NC","North Carolina",
"ND","North Dakota",
"OH","Ohio",
"OK","Oklahoma",
"OR","Oregon",
"PA","Pennsylvania",
"RI","Rhode Island",
"SC","South Carolina",
"SD","South Dakota",
"TN","Tennessee",
"TX","Texas",
"UT","Utah",
"VT","Vermont",
"VA","Virginia",
"WA","Washington",
"WV","West Virginia",
"WI","Wisconsin",
"WY","Wyoming",
"MISSING")

You don't have to put them on any page layouts, but they do need to be visible to at least the system administrator profile.

Good Luck, and feel free to hit me up with questions, or give me some answers!

Tuesday, May 8, 2012

Errors That Disappear on Their Own

My absolute favorite thing is when I get 5 or 6 cases, all of them for the same error with a system. But... by the time the user puts in the ticket, and I go look... the error has disappeared.

Personally, I think that's just Karma's way of humbling the users, and tweaking the nerves of developers/helpdesk support.


Friday, May 4, 2012

I'm SuperGirl.

On Monday I received an email from my friend Erin, who is the Marketing Communications Manager. The CEO wanted to make our company meeting more interactive, and would like for us to "stream" some chatter comments during the meeting on Wednesday (yep 2 days away) a la' Dreamforce.

Now, my first thought was... holy moly... the CEO must think I'm magic! (then I found out that Erin forgot to tell me until Monday LOL)

I wasn't really even sure where to even start... the DF feed was from twitter, and I don't remember even seeing anything about that on the appexchange... but I went and looked anyway. I found some things for streaming twitter, but the CEO didn't want that, because she wanted this not to be public. So... I google searched like mad.

I finally found one thing that seemed to be similar to what I wanted. Interestingly enough, it was a "private" listing from Force.com Labs!

I have to tell you guys, this was the bomb. I edited it to get rid of the groups postings, and set it to refresh every 10 seconds.



Friday, March 2, 2012

Tracking Portal Access, and Licenses

I recently wrote about how difficult it was to track how many licenses you have left, and that I was going to be working on a way to track those.

I also have another issue, that may or may not be relevant to each of you, but is a very big deal for my company.

Our portal users are billed for access to our data base on a monthly basis, based on the specific projects to which they have access.

I added a custom object, that has a master/detail relationship with the custom object "Project", and look ups to the user, the contact and the account, as well as specific fields such as "Activation Date", "Type of Access" and so forth, so that we can see when they were given access to that project, what site from which they view it, and if they are ever deactivated for that project, we can see what date that happened as well.

Now, I never had a reason to try this before, so it was a complete surprise to me that if you put a look up to the user object on a custom object, you're not going to be able to look up to a portal user. What I mean by that, is as of right now (this is still pending confirmation via #askforce on Twitter...) it appears that the look up field automatically excludes client portal users!

So I am currently searching for a way to do this via the API, with a trigger or something. I had SUCH a great idea... which was thwarted with this little conundrum.

Such a sad thing to happen on my birthday, or well... the day before my birthday.

;-)

Wednesday, February 15, 2012

Randomly Changing Font Size

If you ask my users, I randomly like to change the font size on SalesForce. Just sort of as a Beta Test to mess with them.

Today we had a user who actually had their font size "set" so small that they were literally using a magnifying glass to see the text on their monitor. I don't know how long they had been doing this, but today they had finally had enough.

This sort of occurrence happens quite frequently, I can't even tell you how many cases per week I receive from people who are VERY upset with me for just randomly changing their font size. It's actually very hurtful to me that people think that I just change the font size any time I feel like it without telling them. (We have a whole release process that I designed, and implemented that includes notifications to users prior to release.)

I've been contemplating telling these users: "Yes User A, you ARE part of a Beta Test to determine how big, or small we can make the font prior to anyone complaining. In order to end the Beta Test and return to your normal size font, please hold down the "Ctrl" key on your keyboard, and roll forward (or backward) with the scroll wheel on your mouse. Thank you so much for participating, your input has been tremendously helpful in our study."

:-P

Wednesday, February 8, 2012

Scheduling Reports to an Individual User

Today I was trying to set a scheduled report to send to a specific user in my company.  That user has access to the report folder where this report resides. But... the user wasn't available to send a scheduled report.

Then I had a psychedelic flashback to about 2 years ago, and for just about 60 seconds, thought I was having a "deja vu" moment... 

Back then I discovered that for some reason, SFDC doesn't "see" the individual users that have access to the folder, it only sees the public groups. I personally feel this is something that needs to be adjusted, and apparently I'm not the only one, since this idea has quite a few votes.

The idea is here: vote on it! 

While we wait for them to correct this little bug, here is the work around I employ, it's a bit convoluted but it gets the job done. 

  1. Create a public group consisting of the single user to which the scheduled report should be emailed.
  2. Edit the report folder to allow access to that new public group (of one single user, or you can put in multiple users if needed).
  3. Set the scheduled report to run and email to that new public group.
TADA! You've got a scheduled report being emailed to the single user that needs that report.

Now you just have to maintain the multitude of personal groups that are "individuals". I'm really hoping that we can rally the users to vote this idea up enough to get it into a release soon... again - The idea is here: vote on it! 



Friday, January 20, 2012

Size DOES Matter - in email recipients!

Have you ever noticed, that the number of irrelevant questions you receive in response to an email is directly proportionate to the number of people that are included on the email?

It doesn't really seem to matter if these are people with whom you correspond on a regular basis, who normally have no issues staying on "point", or if they are completely random recipients.

I spent two days composing a very important email, that needed to be reviewed by my director, and then sent to approximately twenty-four separate recipients.

This was a proposed notification process that would involve all of the people which were on the recipient list. All of those people were identified as being someone that needed to know when the development team released any changes to our SFDC production environment. I outlined what the proposal was, and added the nifty "Vote" option to the email to make things easier for everyone.(The proposal was simple... create a new distribution list comprised of all of the people on the list, and everytime we release something, we send an email to that distribution list with a notification of the change and the date/time of the scheduled implementation)

I received two completely irrelevant questions (questions about a separate issue that had nothing to do with the email to which they were responding), and a request for clarification, because the user didn't think that there was any need for that user to have to vote on any of the changes if they weren't affected by the changes.
I've received eight approvals... and the remainder of the twenty-four have not responded at all.

I asked that they vote before 5pm on Wednesday, and set a reminder on the email... I wonder what's going to happen on Wednesday at 4pm when that reminder goes off! (16 random questions?)

Thursday, January 12, 2012

8 Layers of Computer Networking

We have implemented a new category for our cases, and called it Layer 8. It was a toss up between that and PICNIC or PEBKAC. But Layer 8 seemed to be the most PC way of saying that it was a user issue not a system issue.

Yesterday a user came to me frantic, because his report "wasn't working". I took a look at the report, and it seemed to be functioning as he wanted. However, there was a field that he was using as a filter, that was showing a "Last Communication" type of something other than what the actual last activity was.

I explained that the problem wasn't the report, it was the value in the field that was being used as a filter, it didn't seem to be updating correctly. He asked me to please fix it ASAP, it was an emergency.

I immediately took some time to look over the code that updates that field. The code specifies, if the last activity on that record was a type in this predetermined list, then update the field "Last Communication". This allows the users to see if we called last, and can now send a fax or an email etc. (we don't want to send too many emails/faxes in a row).

The Type on the Activity that he was using was "Fax". The picklist doesn't include the type of "Fax", it only has "Fax Received" and "Fax Sent". Therefore, the predetermined list on the trigger wasn't seeing his activity entry as a "communication"!

My trigger wasn't malfunctioning! :-)

So, after about 2 hours of searching through my code, and trying to figure out why that field wasn't updating, it turns out that it was actually a "Layer 8" issue!

I explained to the user that the Apex Data Loader will let you put pretty much anything that you want into a picklist field, even if the option doesn't exist when you are adding the activity manually. I advised him that he needed to use one of the predetermined "Types", and provided him a list.

Friday, January 6, 2012

Portal License Predicament

One of my biggest pain points is the fact that I have internal project managers that are able to add client portal users, and I'm not able to keep up with the number of licenses that I currently have, and what we need.

For example, I like to keep about 10 licenses available for use, and yesterday I had 10. This morning I got a case from a project manager who was passive aggressively telling me that I don't do my job properly, because she needed to add 24 users and was only able to add 9.

The process is that if they need to add more than 5 at a time, they should submit a case to make sure we have enough available. Because she didn't know this process, or forgot, she was upset.

I've decided to create a custom object, called "License Tracking", and attempt to create some triggers that will add and subtract the number of licenses used when we add users, or deactivate them.

Cross your fingers!

Thursday, January 5, 2012

"Manning" the "HelpDesk"

I'm a member of the Developer Team, but I'm also sort of the most accessible of our department. I've worked here for 8 years, and have been a member of the majority of the different departments. From entry level researcher, to Project Manager, so I've become sort of a "subject matter expert" for quite a few of the subjects here. I love my job and the people that I work with. (Now, if I ever got a chance to work with @appirio, I'd JUMP on it... but that's a story for another time).

I've been working in SFDC for approximately 6 years now. I've taken every free course I could get my hands on, and basically taught myself the admin functions by just my own hard-headedness. This August I took (and PASSED) my Dev401 Certification while at DreamForce.

I'm a member of the #GirlyGeeks on #Chatter, and have made some fantastic contacts there, and I'd like to think friends as well! I'm on a quest for SFDC Certifications, in addition to my Dev401 - I'd like to have ... well... everything - mwah ha ha!  

Sometimes funny things happen here...and I know I make my own share of mistakes.. I guess the point I'm trying to make here, is that I want to share the things I'm learning as I go along. Perhaps someone else will benefit as well!

Today's Favorite Case - doesn't have anything to do with SFDC, but I laughed. Maybe you will too.

Short Description: Sticky Keys ON
Description: Sticky Keys ON

Resolution Comment: Press shift five times quickly. You can then press cancel to turn off sticky keys, if this is what you wish.