Tag Archives: Salesforce


Tim Davies, UI / UX Practice DirectorMeet Tim Davies, Practice Director UI / UX. Tim joined Tquila in July 2012.

A design geek at heart, if you don’t see him engrossed in the latest online design gallery then, as a big gamer, you will find him playing military airsoft! Why not challenge him to a game…

Here’s what Tim has to say about his role at Tquila:

What I do

“User Interface concept and designs for mobile apps. Mapping a user journey and creating sales concepts and pitch materials to present to clients. I take part in client consultation and workshops to help clients get maximum impact from their applications and interfaces. I also deal with project management and oversee road mapping.”

Why I love my job

“It sounds like a cliche, but no two days are the same. This role has opened my eyes to a whole new way of working, I work fast, I work agile and I work fast again! Alongside some of the most talented people in the industry. Every day brings a new challenge with diverse projects.”

Why I love Tquila

“Tquila is a fun and creative brand that pushes the boundaries of traditional technology and helps customers achieve more from their Salesforce solution. We get to help customers see the bigger picture – and for me in particular – get to convince them of the importance of mobile! There is such a great culture here and the atmosphere is electric.”

Follow Tim on twitter @RandomTrashy

Want to be part of this? Check out our job openings or send your CV to careers@tquila.com

Tagged , , , , ,

4 things I love about Desk.com

4 reasons why I love Desk.comI’ve been on a bit of a service-related binge lately, studying for my Service Cloud exam and working with lots of clients on projects to help them better service their customer base.

When working with smaller companies, I’ve found myself spending more and more time talking about Desk.com. Here are the 4 things I really love:

1. Impressive out-of-the-box functionality

Desk.com provides quite impressive functionality, like case management (including Twitter), knowledge base, live chat and a mobile client.

With all this functionality I could easily see companies being able to establish a service presence in days rather than months.

2. Easy automation

This was one area that really impressed me.

The inbuilt rules engine is very similar to Salesforce’s own workflow and automation tools. This means that evolving business logic to provide better customer service is just as quick and easy as it is in Salesforce.

3. Gamification

Gamification is a hot topic right now (check out our blog posts on gamification!) – so I was pleasantly surprised to see it was built in to Desk.com.

I think gamification in the service space is great way to encourage the right behaviours when it comes to dealing with your customers.

4. Salesforce integration

A lot of the value of Desk.com comes from being able to piggyback off your Salesforce data. The Salesforce integration means there’s just once central customer database, saving organisations (and their information architects) hours and hours of time.

It also offers the opportunity to use a hybrid service model – for example, using Service Cloud for standard support, and Desk.com for premium support. And because of the Salesforce integration, there’s still just one customer database.

Tagged , ,

Tquila’s Gamification Engine: Under the Hood

Gamification with TquilaAs Iain mentioned in an earlier post, we’ve been busy building a gamification engine on the Salesforce platform for a client.

In this post I dig a little deeper into how the engine works.

Design considerations
Having gathered requirements from the client, we first considered off-the-shelf gamification apps. Looking at what was already available gave us some great additional ideas – but also confirmed that we needed to create a bespoke solution.

As we designed the bespoke app, we kept a few key elements in mind:

  • It had to be flexible: our client’s business embraces change, so the gamification engine had to as well. It should be easy for an admin to modify the rules that award points and badges.
  • It had to deliver in real time: users want instant gratification, so they need immediate notification when they’re awarded new points and badges.
  • It had to be fun and sexy: users expect slick, engaging experiences. In order to successfully drive the end business goal – increased collaboration and productivity – the system has to make users love using it.

How the engine works
The first step is stakeholders deciding which activities they’d like to gamify.

Then an admin user accesses the Gamification Admin Console, and defines the specific actions that will be gamified – for example, “Lead Creation” or “Contact Phone Updates”. The admin then allocates points, based on specific activities and different users’ roles.

The next step is badge and trophy creation: uploading icons for each new badge and trophy, and defining achievement rules and weightings for each group of users.

The rule definition is fairly simple. Using common operators like AND, OR, NOT, SUM, the admin creates functions that include actions and weighting that users must fulfil in order to win an award.

For example: in order to achieve the “Lead-Gen Leader” badge, a user has to create 50 leads and update all the phone numbers for the leads. To set this up the admin would define the rules as:

AND(50″Lead Creation”, 50″Contact Lead Phone Update”).

To keep the evaluation process simple, the functions are compiled into an easy-to-process tree dataset. Using the Composite Pattern, whenever a new badge is created, the dataset is loaded and the evaluation is carried out invoking the same interface on different nodes, whose implementation depends on node types: AND, OR, NOT, SUM, etc.

Keeping users engaged: What they see
Each user has a “Social User Profile”, which acts as their gamification and achievements dashboard. Here they can see which badges and trophies they’ve achieved, future goals, points, trends and their activity timeline.

To simplify navigation and tap into users’ competitive spirit, we created a number of widgets, like friends and rivals.

To support the engaging UI, we added some different kinds of notifications. An element of instant gratification is important, but users don’t want to feel inundated, or suffer from email overload. So we’ve balanced different levels of on-screen notification. We built a nifty javascript framework that collects notifications and displays them in Salesforce – either as subtle animations or full-screen events, depending on the achievement.

If you’re interested in finding out more about Tquila’s approach to gamification, please get in touch! We’ll follow up with a code-centric post soon, which will give you more insight into the structure of our system and design decisions we’ve made.

Tagged , , ,

We’re building a gamification engine on Salesforce!

Tquila loves gamificationPiow piow! Gamification is so hot right now. In fact it’s probably too hot, with many online services adding badges and a leader-board to their sites without always thinking about the business value. Its popularity means there are also a lot of misconceptions about gamification (How can I make my accounting app more like World Of Warcraft? Can I bring Angry Birds into my sales pipeline?).

So what is gamification? Gamification is about bringing elements of what make games fun, addictive and rewarding in to every-day business applications. Why? Because if you can harness even a part of the energy users put in to games like Plants vs Zombies (yes really), you can super-charge your customer activity and employee performance.

Recently I’ve been working with a team at Tquila on some exciting new gamification features aimed at driving specific user behaviours within Salesforce. We’re not just adding trophies, we’re starting from business goals and working up from there. We’ve pinpointed different behaviours we want to encourage (initially around capturing quality contact data) and have built a bespoke engine to help our clients change their focus over time.

Why didn’t we use one of the myriad of gamification add-ons currently available? Because we spent time understanding our client, and nothing out-of-the-box was going to get them where they wanted to go. Cost was also a factor: why pay a monthly fee per user for something quite generic? Instead, we created a bespoke gamification engine that’s easy for the client to manage – and we’re all really excited with the results.

We’ll continue the rollout in the coming months, and we’re looking forward to sharing the lessons we’ve learned. My colleague Dario has driven the technical design, and is keen to share information on the engine itself. If you’re interested in learning more about gamification, this book by Kevin Werbach came out in October last year, and is an excellent start.

Tagged , , ,

5 Open source Force.com projects for Admins and Developers

I’ve previously mentioned the growing popularity of Force.com projects on github and I wanted to call out a few that are likely to be interesting to most developers out there.

Infinite Scroll

Infinite scroll has been a popular concept on the web for a while now, and is a neat alternative to pagination in some cases. This Force.com project allows you to add the infinite scroll capability to your Visualforce pages by dropping the required components into your project.


Stratosource is an incredible project that aims to be your one-stop-shop for backup, source control and release management on Force.com.


Milestones is has been around for a good while now and is an incredibly competent project management tool from Force.com Labs.

Find Nearby

Another great application from Force.com Labs, this one (in it’s current form) allows you to find and map Accounts, Contacts and Leads within a certain area.

Automated Testing for Force.com

Getting fully featured Continuous Integration up and running can be complicated. Automated Testing for Force.com gives you many of the features of CI, but in an easy to install and configure package!

If there are any other great open source projects out there that you’ve found useful I’d love to hear about them too.

Tagged , , , ,

The Force.com Streaming API

The Streaming API isn’t new but I thought I’d put together a post to document my experiences and get some source code onto Github to help you get started.

Streaming APIThere are different ways to interact with the Streaming API i.e. from within the Force.com Platform using Visualforce, or from outside the platform using the language of your choice. Either way you’ll need to implement the Bayeux protocol, which is easier than it sounds because there are many libraries out there to help you out.

At it’s core all you need to do is create a push topic – which is the registration of an SOQL query for use with the Streaming API – that the client subscribes to. The client then waits for updates or inserts and handles the data appropriately. I’m not going to go into too much detail since a lot is covered in the docs, but if you’re interested in a working example you can get my source code here. Note that for my source code to work you’ll need to create a push topic more or less in the following way:

PushTopic pushTopic = new PushTopic();
pushTopic.Name = 'AllAccounts';
pushTopic.Query = 'SELECT id, name FROM Account';
pushTopic.ApiVersion = 26.0;
pushTopic.NotifyForOperations = 'All';
pushTopic.NotifyForFields = 'Referenced';
insert pushTopic;

You’ll need to execute this code using the System Log or the Execute Anonymous capabilities of any appropriate app.

Lessons Learned

  • The API will only feed through information that is inserted/updated after the page/app implementing the API opened/started.
  • You cannot use aggregate queries e.g. you could not create a running total of the sales amount this month.
  • You cannot use it with Chatter objects.
  • You can only have 10 concurrent subscribers i.e. only 10 instances of your page/app could subscribe to a topic.
  • You can use Workbench to experiment with the Streaming API as shown below:

Workbench and the Streaming API

If you’ve had any interesting experiences or projects where you’ve had to use the Streaming API let us know in the comments!

Tagged , ,

Offline Salesforce on an iPad: Tquila Anywhere

You know we love Salesforce – and we’re very proud to have pioneered the ability to work with Salesforce when you’re offline, on your iPad.

Ever wondered how easy it really is to use Tquila Anywhere? Check out our nifty new video and see for yourself!

Interested in seeing Tquila Anywhere in the flesh? Get in touch!

Tagged , , , , ,

Multi-Org vs Single-Org strategies

Tquila works with some of the largest enterprise companies in the world. Often we’re brought in to discuss architectural strategy whether this is before the first Salesforce project kicks off or some way down the line when they’re looking for some feedback on their current state.

A common question that comes up from our larger customers is the question as to whether they should have one or several Orgs, and I was in the process of creating a whitepaper when I noticed that salesforce.com has done this already!

I would however add one more line to their “Single Org versus Multiple SF Orgs Capability Matrix” which would be:

Capability Single Org Multiple SF Org Other Considerations
Development process & team organisation Complex if there are several delivery teams especially if release cycles differ. Simple if there is a single team on a single release schedule Simpler but may result in redundant code and libraries Both approaches need an enterprise architect but in slightly different coordination roles

Perhaps you have some lessons that you’d like added to the whitepaper too?

Tagged , , , ,

The Force.com Multitenant Architecture

Salesforce.com’s platform landscape is ever-growing, and I’m sure that many of you have often wondered how the heck they’ve devised an architecture capable of supporting it all. You might be surprised to know that this (perhaps slightly out-of-date e.g. the document states 47k+ orgs) information is available in the form of a whitepaper on the Developerforce website!

Not only does this give you insight into the architecture of their multitenant platform but it becomes clear very quickly why the platforms works in the way that it does e.g. why use metadata or governor limits.

It is a heavy read but at 15-pages long it won’t take too long, and for anyone using the platform day-in-day-out it’ll give you a new-found appreciation for the tools you use.

Tagged , ,

Using Twitter Bootstrap with Visualforce pages

Building beautiful websites used to take patience and skill. If one were trying to create a visually appealing website from scratch, good knowledge of CSS3 would have been a must. Additionally, skill with jQuery would be another hurdle for completing dynamic aspects. Putting everything in the proper order would have taken days to weeks.

Now, there are fast UI frameworks for front-end development. I will be introducing you to Twitter Bootstrap, specifically how to integrate it with Visualforce Pages.

Some people have compared the Force.com platform (APEX programming language) to Visual Basic. Even a good application needs an attractive UI. Most applications nowadays are web facing. Browsers use CSS + HTML5 + JavaScript to render text, images, layout, and user interaction. Bootstrap is a UI framework with all those elements pre-fabricated. You just need to mark HTML elements with the proper CSS 3 classes and voila, it’s done.

It is extremely easy to use Bootstrap.

  1. Go to http://twitter.github.com/bootstrap/ and download the framework. It is a ZIP file, which already contains CSS, image (glyphicons), and JavaScript. (The required jQuery JavaScript is a separate download.)
  2. Upload as Static Resource to your Force.com org. (Setup > Develop > Static Resources). You can give it a name, for example, bootstrap.
  3. Create your visual page and include the required bootstrap components.
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.0/jquery-ui.min.js"></script>

<apex:stylesheet value="{!URLFOR($Resource.bootstrap, '/css/bootstrap.css')}"/>

<apex:stylesheet value="{!URLFOR($Resource.bootstrap, '/css/bootstrap.min.css')}"/>

<apex:includeScript value="{!URLFOR($Resource.bootstrap, '/js/bootstrap.js')}"/>

<apex:includeScript value="{!URLFOR($Resource.bootstrap, '/js/bootstrap.min.js')}"/>

That’s all the setup that’s needed.

By default, bootstrap uses a 12-column layout. If you want a div that spans across 4 columns, just indicate it is a “span4”. The convention is {name#columns}. Many useful UI classes are already pre-fabricated, i.e.

  • Navigation bar
  • Buttons
  • Pagination
  • Labels
  • Input boxes
  • Breadcrumbs
  • Progress bar

There is even a photo carousel built into it. See http://twitter.github.com/bootstrap/javascript.html#carousel

Furthermore, this UI framework supports mobile devices and will automatically resize elements accordingly. It’s really easy to use it. In 10 minutes, I created a demo page, showing VF pages + Bootstrap = Like.

The URL is: http://tquila-ray-developer-edition.na11.force.com/

Additionally, there are many bootstrap themes available on the Internet. Go ahead, try it and I am sure you will enjoy creating a polished website.


Tagged , , , ,