Monday, October 31, 2011

ZenDesk vs. SalesForce

Once we were ready to go GA, we needed an online tool for our support. In this post I’ll cover how we decided on our support tool.
We had quite an extensive set of requirements, and started out with ZenDesk as our tool of choice. We were extremely happy with it, and were very unhappy with SalesForce Support options, which were both expensive and limited (a great business model).

So how did I end up using SalesForce support?
Well, it’s a long story, but for short – we decided that features are not as important as ease of integration – and although ZenDesk offers good integration with SalesForce, SalesForce support is even better integrated. It all came down to a small little feature – but I’m getting ahead of myself.

Requirements list
As I said – we had a very extensive requirements list from our support tool. I wanted most of our support to happen online, since it’s easier to manage, and easier to keep history of what our customers are doing. These are just the leading items I had in the requirement list:
  1. Communication
    1. Customers can open support tickets by sending emails to a pre-defined address
    2. Customers can open support tickets online
    3. Support team can open tickets on behalf of customers
  2. Notifications
    1. Our management can get notifications whenever support tickets are opened closed, or any sort of communication occurs.
    2. Customers get email notifications when changes to their tickets occur
  3. Publishing
    1. It’s possible to make tickets global, for all to see
  4. Security
    1. Customer will have username and password access to the support portal
  5. Integration
    1. It must be possible to see in a contact or account view in SalesForce the tickets this customer opened

Evaluation

I feel comfortable saying ZenDesk is better at points 1-3. SalesForce made me write rules so that management gets a notification when our support staff answers a ticket. Making tickets global is very limited, and what’s worst is the limited customization options of the SalesForce support portal (yeah – they have a more customizable portal, which cost by named users, an impossible pricing model for us). ZenDesk and SalesForce are at the same level for point 4. Point 5 proved fatal for ZenDesk. I just couldn’t implement it. When a customer creates a ZenDesk user, it is impossible to map that user to the customer in SalesForce. If the account name and company name are not the same in those two tools – and the integration just doesn’t work.

Bottom line

For me – point #5 was a blocking feature, and I had to settle for a much more limited SalesForce support. Now, SalesForce is so limited, I can’t even automatically create a support user for a customer – something that is just painful. Still – I can get a 360 degree customer view – and I was willing to give up any functional requirement for this integration.
But I’m checking ZenDesk periodically. They offer a great solution and I’d love moving the minute this tiny integration point is solved…

Monday, October 10, 2011

My SalesForce Experience

My SalesForce Experience

In my previous post I wrote about the customization efforts of integrating our different marketing and sales tools. In this post I’ll detail some of the customization I’ve implemented in SalesForce.

Sales Dashboard

I don’t like the default opportunity report view of SalesForce. It requires too many clicks to enter into and doesn’t support in place editing.
So, I’ve developed a sales dashboard that makes viewing our most important opportunities a snap – and can be found at the home page of our sales guys. In the process I’ve added about 20 custom fields to each opportunity, trying to cover the following topics:
1.       Dates of all steps in our sales process – like POC date, closing date, production date, etc.
2.       Feature management – which missing features the customer needs (if any). In the future I plan to connect this to our feature management tools.
3.       Fields for all relevant opportunity data (for us – number of databases, type of database, etc)
4.       Pricing. Although SalesForce has a product feature, which allows mapping products from the product map to opportunities, it just requires too many steps to implement. Instead we just made sure the product list associated with the opportunity is empty so the amount field can be updated.
This dashboard is used by our Sales Reps to view their opportunities, and is sorted according to the stage of the opportunity in the process.

Auto Conversion

When visitors register at our site LoopFuse automatically creates a lead in SalesForce. This is not enough in our scenario. Why? Because those who register need to gain access to our support portal, and SalesForce only enables Self Service Support for Contacts, not Leads.
Now, LoopFuse allows for creating Contacts in SalesForce instead of leads, but no opportunity is created.
So we have created a trigger that is activated whenever a lead is created. Not wanting to convert all leads, we use the campaign field to mark which leads come from LoopFuse – and which are generated manually.
We have made some other tweaks to SalesForce, but those were the major ones. I guess we’ll have more soon – I’ll update new developments on this blog.

Monday, October 3, 2011

Marketing Automation

I’ve invested huge amounts of my time in the last few months in automating our sales and marketing processes. Basically, at my startup, we let you download an evaluation version of our product and try it out for 30 days. We use SalesForce for CRM, LoopFuse for marketing automation, Wufoo for our forms, Woopra for online site analytics and Google Analytics for history site analytics (when we launched Google Analytics couldn’t be used to real time analytics. It changed now – but I really like Woopra).

I’ll talk about the processes in future posts, but for now, the most important criteria for us was integration between the product. For example, we love ZenDesk as a support portal, but ended up using SalesForce for support, although it’s a much more limited. ZenDesk SalesForce integration didn’t let us create users when new SalesForce contacts were created – a major limitation in our automated process.

So, the process goes as follows:

Someone visits site and is tracked by LoopFuse, Woopra and Google Analytics. Each is used for a different task.

When the visitor fills out a form, he fills it on our site using a Wufoo integrated form. Integrating Wufoo and WordPress is very easy. Integration with LoopFuse is OK, I encountered a major bug in capturing details from Wufoo to LoopFuse, but that was fixed since.

Since I don’t really trust integration, our entire sales team gets an email from both Wufoo and LoopFuse when a new registration occurs. This way we can make sure that the registration run through the entire process.

Once the form is submitted details are sent to LoopFuse, which automatically sends this data to SalesForce as a lead. I found no problems in this integration.

Custom code in SalesForce converts the lead to an opportunity, and, for quality control, sends an email to the entire sales team, with a special email sent to the sales rep who is responsible for the opportunity.

At this point the user receives a confirmation mail, and an additional email, sent automatically from SalesForce, containing the support portal credentials.

It was an incredibly difficult to implement this integration, and I’ll dive into each tool we use and how we use it in the following posts.

Feel free to ask questions about this topic in the remarks section, or just sent me a LinkedIn invite and I’ll be happy to chat.

Thursday, August 11, 2011

New life

Wow, it has been almost 18 month since my last post - and I guess my life just turned upside down. From being THE technical guy in the room, I'm now taking a more BizDev and SE angle. But - I still like to blog (not just on the ScaleBase blog), so I'll get back to my old blogging habits here.
Basically, I'd like to write about the work I'm doing at ScaleBase. We've worked very hard on our product, but also on the eco-system to support it - which was my responsibility. So SalesForce, LoopFuse, ZenDesk, WordPress and, of course, PowerPoint, were heavily used. I'll try to write about these experiences, why we decided on a certain path and how we ended up implementing it.
I hope it will be worth a read.

Thursday, March 4, 2010

Configuration based ESB

I think that anyone who read my previous posts can see that I work allot with ESBs - the blog posts were mostly dedicated to IBM, but I work with OSB, JBossESB and some other solutions as well.
I am amazed at just how much work customers invest in ESB development - they build an architecture, build a development team - and usually, 99% of the work they do - is the same across all organizations.
Because everybody are using ESB in the same way - to enforce web services policies - usually security, but also validation, version management, monitoring and a bit more.
So - what do all these off-the-shelf products give us? Not enough.
I believe that a new generation of ESB is in order - one that will not require coding. The ESB should contain a single point of entry for all services in the organization, all will follow a configured validation and enrichment path, and at the end will be directed to the actual service. No coding, no development team - just simple configuration. Should definitely suffice most customers.

I have a few ideas on an architecture of such a thing, and Aluna even has a small product based on open source technologies, that runs with both .net and Java clients.
But that is another story.

Sunday, January 31, 2010

WebServices Reliable Messaging

A customer of mine asked me to build a POC of using WS-RM with CXF, C# and Oracle Service Bus. Against my better judgement - I said yes. I know it doesn't work - but I'm always up to the challenge.
Turns out documentation is shitty at best. Vendors provide a one-page demo, using messaging infra or embedded HTTP servers - no web containers or web servers.
So - I have decided to start with .net and CXF and leave the OSB for later.
The pain is installing VS2010 Beta 2 over my machine which had VS2010 Beta 1 - a version that was deleted a couple of month ago.
You can't install VS2010B2 on a B1 computer - you must do a reinstall of B1, then uninstall it, then install B2.
Bloody nightmare.

Sunday, January 3, 2010

WebSphere 7 - deployment performance

Well, I'm currently running a migration project from Oracle's OC4J to WebSphere 7. Why 7? Because the customer wants to use JSF 1.2, and EJB 3 - and we decided on going to WAS7 instead of WAS6.1 with the fix packs.

The migration wasn't so smooth - the customer used some proprietary code we had to change. And let me tell you - configuring TopLink to run on WAS is a real pain, especially when some TopLink code is accessed through EJBs and some through regular Java classes from the web tier.

But the real problem was WAS7 deployment. It took forever... We tried running it from RAD7.5 or from the admin console directly - it was painful. It took around 5 minutes, and every configuration action that required application restart took ages to complete.

Turns out the problem lies in the JavaEE5 spec. When you deploy an EAR it needs to look for annotated classes that are marked as EJB and servlets. So deploying a WAR file with a large number of classes and JAR files will be very slow.

There are deployment separation solutions (putting the classes in the app-inf/lib of the EAR instead of web-inf/lib of the WAR) but a quick fix, that fits when you don't use annotated servlets is to add the metadata-complete attribute to your web.xml file (in the web-app tag). It tells the deployer that all of your servlets and filters are configured inside the web.xml file.
See this link for the complete web_app_2_5 XSD description. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd