Monday, January 4, 2010

Salesforce’s Customer Portal Tip#2: Custom Homepage Components

Ever wondered how to customize the way your Portal homepage looks? You have this big blank space only broken up by some left sidebar components you checked on your Portal Homepage Layout and you want to put some information or maybe a poll or even the 10 most recent Solutions.



Here are my tips for doing this.

You need to consider the information you want to display and style/layout in order to display it correctly.
To do this you need to look at 4 components for each piece of information/section and maybe a 5th if sourcing images as well.

First is your CSS document for styling and layout. The first information section in the image above has a header, a left and right column and a footer. The header contains my title, the left column some text and hyperlinks, the right column some images and the footer for style purposes.



Once you have created your CSS and saved it as a text/css file (I do this in Notepad and save as a .css and file type text) you need to upload it as a Static Resource.

Now you need to create the actual content of the section. I did this as a new Visualforce Component.



(Zoomed in Area)



For the poll I used Polldaddy.com (free) and used Flash Embed as my source and created my Visualforce Component like this:



Polldaddy.com actually gives you its flash code via embed tags. I chose to redo it using object tags for styling purposes. If you need help on this let me know and I will gladly do so.

You can see from two images above that I sourced the images into the Visualforce Component using the apex:image tag:

apex:image url={!URLFOR($Resource.SolutionImage)}”/

Obviously I had already uploaded my images as Static Resources.

The next step is to create your Visualforce Page. Here you call your CSS Static Resource and your Visualforce Component. This is a simple page.



Now you can create the Homepage Component. You need to have an HTML Area Component and select the Show HTML check box. Very simply you are now creating an iframe.



You may find you need to tweak the iframe height to display the full section based on your CSS layout.
And the last step is to actually select it on your Homepage Layout for your Portal.

Hope that helps you think through some options for display stuff on your Portal Homepage.

Thursday, December 24, 2009

Salesforce’s Customer Portal Tip#1: incorporating HTML

I thought I would start a post on some tips on using the Customer Portal. Up until recently there was not too much in the way of information regarding the Customer Portal. In fact when our company rolled out the Portal to our Customers in March of this year all I was able to find was a couple of implementation guides and a short video demo. Recently I stumbled across http://developer.force.com/consultants/crc_page?name=CustomerPortal quite by chance. I was doing a search for “Customer Portal” in Developerforce and came across it. Not sure how long it has been around but it certainly was not a resource back in March and to think you have to be thinking “Consultant” to even find it.

Anyhow, I wrote a Developerforce Discussion Board post back in July with a tip for incorporating HTML in the header/footer sections of your Customer Portal which has received quite a few views and I have been told by Salesforce’s very own Partner Enablement team that it is going to be an article in the “Configure” section of the Consultant Resource Center Customer Portal sometime in the New Year.

In a nutshell the tip is for incorporating an HTML header section that is a full width image. The issue was dynamic resizing of an image based on a web browsers screen resolution settings. Below is the issue presented and the proposed fixed. Hopefully it helps someone out there!

Through trial and error I discovered that placing a graphic on the Customer Portal via Setup>Customize>Customer Portal>Settings [Your Portal] Edit>Look and Feel(section)>Lookup for a HTML Document to include in your Header or Footer you have to do some trickery to display it properly.

The major issue is that a graphic will not dynamically resize to the end users screen resolution settings. So, as in my case, I wanted to display a graphic to fill the entire Header section of the Customer Portal.
I created my graphic, which happened to be 1440px in width and 100px in height, and uploaded it to SF Documents as a .jpg image. I then created my HTML doc with a simple <> tag referencing the unique path of the image with will be something like, https://na6.salesforce.com/servlet/servlet.ImageServer?id=[an id]&oid=[another id]&lastMod=1247154430000.

(In order to get the image path you have to go to Documents and locate the image you want, click on the file to see its details, and then right click over the image and do a “Copy Image Location.”)

I then uploaded that to SF Documents. I then referenced that HTML document in the Customer Portal Setup as my Header.

All looked great, until I changed my browser to display on a screen with a 1024x768 resolution. The graphic displayed so long here that I had to scroll horizontally to see the entire graphic. I tested this with other resolutions and well much dismay.

So the Solution: Your either have to use JavaScript in your HTML document to handle the image resizing based on the end users screen resolution or you can use a <> tag. I chose the latter. Here is the code:



A caveat on this though. You must create your image to be the width of the largest screen resolution you may encounter. That maybe 1280 or 1440 or even bigger. The above code will allow that image to display correctly on all resolutions settings, dynamically.

I have since discovered that the resizing to display on the appropriate end users screen res settings for even HTML components used on the Customer Portal Homepage layout you will have to use the above code somewhere as well. If you do not your may see your square HTML component change size.

Wednesday, December 23, 2009

A philisophical adjustment to SF releases!

Argh! So to revisit the Quotes Pilot for a moment. Today I was trying to set up some Workflow rules so that via a field update we could adjust the Subtotal or TotalPrice of the Quote. Alas no! Subtotal and TotalPrice is not available via the merge fields in the Formula Engine.

This got me thinking about the underlying philosophical persuasion of the SF product team when it comes to releases. It seems that on several occasions they have released a product without holistically looking at all the ramifications of a product without the basic core functionality including critical fields being exposed to the Formula Engine, for example.

This leaves me wondering whether the Senior Product Managements attitude is a little cavalier towards product releases with a “Just get it out there!” mentality.

Ok maybe I am being unfair, granted, but come on product team you wet our appetite with new products/features/functionality but you cut appendages off so we are using the product in a less the optimal and efficient way.

Oh no! Another thought struck me. I so hope that there is not a persuasive attitude of give 75% functionality and allow them to develop the further 25%. That would suck, especially for us non-developers.
What is your experience?


Monday, December 21, 2009

Chatter



Salesforce Chatter!

What are your thoughts and feeling about the next iteration of Salesforce with an integrated Social Platform? Does it make sense for all business sizes or another SFDC Product offering geared for the Large Business?

Thursday, December 17, 2009

Answers Pilot and the future of SF Communities

So we are seeing the next evolution of Salesforce with its Service Cloud 2 offerings and now the Sales Cloud 2 offerings and many of you have notice the seeming corporate jump on the proverbial Social Networking Bandwagon. What are you thoughts about this?

Also Dreamforce unveiled the new Chatter Application which will be among us soon. So Social Networking and collaboration seem to be the general dance being danced.

One may think my tone shows some skepticism but in truth not so. I am seeing the great possibilities that then move into the Social Networking arena SF can have. From a Support point the more “Channels” available for your Knowledge to be seen the happier your Customers, or something like that.

Anyway, the move forward SF is taking in the nature of Communities, first with Ideas and soon to be Answers, gives our own SF Users something to use to interact with one another but has even greater benefits for our Customers. Ideas was a start and was ideal for granting your Customers the ability to suggest Product enhancements etc. Answers will hopefully fill the other gab.

SF Cases helps solve issues your Customers may have in traditional sense but is it not more satisfying when those forums that do work have Product Team members, Sales folk and Support Techies chiming in a dialog of sorts to bring a satisfactory conclusion to that frustrating bug or question you have had?

Answers helps here, or at least it will do. Right now Answers is in its Pilot phase and yes I have access to it. At first I was like what the heck is this as it does not have the interface that Ideas has. In fact at this time the Answers tab in my org takes me to an Enhanced List view. I was intially confused and wondered what I could possibly do to give it more of an Ideas or forum interface. I started getting all hot under the collar with the thoughts of more Visualforce and Apex development.

Fortunately a quick email to the Answers Product Management team gave me an Answer, excuse the pun. The next release (February time) will see something similar to the below, with the caveat that it might look slightly different. The sreenshot shows the SF Dev teams Dev edition as of today.

Tuesday, December 15, 2009

Quotes Pilot and the future of

So for those of you who have access to the Quotes Pilot what are your thoughts thus far? For those of you who don’t have access as yet here is what you can look forward to.

Quotes is a SF Object in itself but obviously has tight dependency upon Opportunities. Right now the Pilot Quotes does not even have a Tab, so the only way you can access it is via Opportunities and that via a Related List.



The idea is you select your Products on your Opportunity and then Create a Quote. The Quote then displays standard field info like Quote Name, Number, Expiration Date, Status, Discount, Sub-Total, Total, Grand Total and Address information.

Once you save the initial data you can then add new Quote Line Items similar to Product Line Items on the Opportunity and you can apply individual Line item Discounts, qty etc if need be and you can edit the existing Line Items that were populated upon the converting the Opp Line Items into the Quote.



You now have the ability to Create a PDF version of the Quote (of which the Visualforce page can be customized with your companies logo) and you can email the Quote directly from the Details page.
So to the limitations. You can check out the IdeaExchange Idea for the Quotes Pilot here.

First thing one notices once you have played around with the Quote, adding Discounts etc you have a different Grand Total from the Amount shown on your Opportunity. Could be a problem I hear you say! Yes exactly! Not sure about the rest of you but in our Company our Quote needs to reflect the Opportunity. What this has meant until now is a plethora of Custom Fields on the Opportunity to handle Discounts etc.

I queried this with the Product Manager for Quotes and thankfully they are building a syncing mechanism into the next iteration/release with a possible February slot.

Great News!

The second limitation is that you can only grant Discounts to individual Line Items and not a overall discount after the individual Line Item Discounts have been applied. News has it that this may be a feature in the Summer Release.

So some thoughts about the new Quotes Object. About time! One does find himself wondering how this is viewed by all those Application Partners of Salesforce. Is this considered competition by them? Anyway all I can say is that I am patient enough to watch and ride the evolution of Quotes and hopefully reap the benefits of this being taken care of Salesforce and not some third party App.

Just our of interest for those who require further functionality such as invoicing etc take a look at Financialforce

Wednesday, December 9, 2009

Update 2 to the SF Knowledge App Post

My call with a marvelously friendly and knowledgeable Frenchmen who is one of the Senior Product Managers has just ended. He graciously answered all of my questions and I feel I have some good information to move forward with our own implementation of Knowledge and some helpful information to share.

One of the biggest concerns surrounding the newly released Knowledge was the costing factor of which I included the link to my Idea in my original post. The understanding here is that this initial release of Knowledge came with a price for many different reasons. The primary one that made sense to me is kind of backward thinking but still makes sense. Eventually SF will replace Solutions, which answers why they are not investing in further development in regards to it. What they will be replacing Solutions with is a slightly scaled down free version of Knowledge. It seems based on our conversation that the strategic vision for Knowledge is much larger than what Solutions presents for us today and therefore SF feel justified in associating a cost with the Knowledge Application out of the gate and then following up with a free version sometime in the not too distant future. Stay tuned for a possible Winter 2011 release or at least somewhere within the 2011 release windows. Did I say Winter 2011? Ok that could float over to 2012 or what the heck maybe even 2013.

The second concern, that I had at least, was the seeming targeted focus that SF Knoweldge scalability to the large public facing SF Customer that channels like web searchable Knowledge Article and access to Article via Social Networks have a big contributing factor. Apologies, a mouthful of a sentance I know! I was thinking “what about us SF Customers who cannot serve our Customers Knowledge in a public fashion but have to serve them something that should be worthwhile and usable none the less!” Here I am concerned about the self-service angle. Where is the Suggested Article for the Portal User to encourage self-closure of their Cases and where is the Create an Article on Case Closure functionality that maybe I have come to be secure in because let’s be honest it’s all we have had to serve up Knowledge to our Customers to date. Thankfully functionality that has not been forgotten and enhanced upon. These capabilities will be available, hopefully, in the Summer 2010 release along with some API functionality and a probable migration tool/wizard to handle the gap between all those Solutions and how the heck to turn them into Knowledge Articles.

So what else do we have to look forward to in SF Knowledge? Obviously these are raw and not promised and by no means comprehensive a list but the Spring 2010 release we can look forward to Analytics surrounding Knowledge and also User Permissions and Security. There is a big play to position the underlying Dimensions engine in other aspects of Salesforce with the inclusion of that engine and the availability of Articles in the Answers Object/Arena. Answers is a sort of Ideas sort of Forum capability still in the process of being released by SF but it will be a solution to those of us with Portals and the desire to build private communities as well as the public sphere.

Anyhoo that kind of sums up my conversation with the SF Knowledge Product Manager and hopefully helps anyone reading this who is interested that Knowledge is going to be a very interesting and worthwhile ride.

P.S. I forgot to mention yes Knowledge will become available for Salesforce 2 Salesforce sometime after the API work is done, probably not until 2011 and there is a package of sorts that SFDC Professional Services have put together to handle your migration from Solutions to Knowledge. I am sure a call to Professional Services will unearth it, albeit with a cost.