Friday, November 17, 2006

Question Guide

Are you struggling to understand which Clicktools question types to use when?

Then why not use the Question guide to help you understand when to use which question type.

Surveys in emails

I am often asked about including surveys in emails. There are several ways of doing this and we could (and people do) argue for a long long time about the rights and wrong of each approach. Obviously, some people's email readers block any form of html so the ony guaranteed way to esnure your link gets through is to send it as a pure link. If, however, you do want to use html or place a survey in email, These are my preferred three options.

Option 1: Hide complex links within a "Click Here" (or similar) link - EASY, LOW RISK.

This option doesn't duplicate any of the survey in an email BUT usefully hides long and unwieldy links under something that a) takes up less space and b) won't be broken. To do this you need to use a HREF statement. The following example html code will place a link in an email displaying click here and, when clicked on, will take the user to the survey. This should work in most emails but some text only email readers may not display the link.

-- example code begins --

<a href="SURVEY LINK HERE">Click Here</a>

-- example code ends --

There is a great site (W3 Schools) that enables you to learn and play with html. To try the HREF example click the following link:

Option 2: Include one or two questions in the email and then take them to the complete survey - DIFFICULT, MEDIUM RISK

Now for something a little more tricky. This option involves coding some html to duplicate question(s) in a survey. Clicking on a button (or link) then takes the user to the survey and auto-populates the answers.

This involves building a html form that presents the question(s) and you can only generate four question types: Text, Radio, Pulldown and Checkbox. In the example code below we present one question (the Net Promoter question) in the html. Note the use of a 'hidden' field that records the SURVEY CODE. This is the 15 digit code that is at the end of a Clicktools survey link. Each of the input options presents a value and passes a corresponding value across to Q1 in a Clicktools survey. Finally, the Input type at the bottom of the code presents a button that actually transfers the answers and presents the rest of the survey to the user. This should work in most emails but obviously will not work if people accept text only.

Please Note: The Code below only works with Anonymous URLs.

-- example code begins --

<form action="">
<input type="hidden" name="iv" value="SURVEY CODE HERE">
<strong>Where 0 is 'Not at all' and 10 is 'Extremely'. how likely is it that you would recommend us to a friend or colleague?</strong>
<table border=0>
<td><input type="radio" name="q1" value="1"></td>
<td><input type="radio" name="q1" value="2"></td>
<td><input type="radio" name="q1" value="3"></td>
<td><input type="radio" name="q1" value="4"></td>
<td><input type="radio" name="q1" value="5"></td>
<td><input type="radio" name="q1" value="6"></td>
<td><input type="radio" name="q1" value="7"></td>
<td><input type="radio" name="q1" value="8"></td>
<td><input type="radio" name="q1" value="9"></td>
<td><input type="radio" name="q1" value="10"></td>
<td><input type="radio" name="q1" value="11"></td>
<input type="submit" name="OK" value="Submit">

-- example code ends

Again, look at the W3 site for more instructions:
Paste the above code in to one of the example windows to see how this looks.

Option 3: Include the whole survey completely in the email - EASY, HIGH RISK

If you want to actually include the survey in the body of the email itself you can use what is called an IFRAME. This quite simple to do as the code below shows.

Paste the following html in to an email template, replacing the SURVEYLINK with your own survey link and, obviously, test!... Note: Active content in email is increasingly becoming blocked by email readers so this approach will NOT work in some email readers (e.g. where IE security settings are set to HIGH.). If you use this option I would recommend including a link as well at the top of the page giving people an alternative should they not be able to see the survey.

-- example code begins --
Introductory text here </p>
<iframe src ="SURVEY LINK HERE" width="100%" height="400" frameborder="no" scrolling="yes"> </iframe>

-- example code ends --

You can change the settings (width, height etc.) to find the right setting for your survey. Again, there is a W3Schools page where you can test the html to see how your survey would look in an email:

Monday, November 13, 2006

Clicktools questions to Salesforce fields? What goes where...

Below is a list of all the field types in Salesforce with a recommendation of what question types to use to populate these types:

Salesforce Field Type Recommendation Alternative/Notes
Auto Number Not possible  
Formula Not possible  
Master-Detail Relationship Text NOTE: A Salesforce ID MUST BE USED to
create/update any reference field.
Lookup Relationship Text NOTE: A Salesforce ID MUST BE USED to
create/update any reference field.
Checkbox Checkbox
NOTE: Please see earlier blog posting here.
Currency Number  
Date Date Date completed option.
NOTE: You cannot create/update the Date
created or modified fields in Salesforce.
Date/Time  Date Date/Time completed.
NOTE: You cannot create/update the Date
created or modified fields in Salesforce.
Email Text, Multi-text  
Number Number, Radio/Drop with Numeric
choices in the question. NOTE: Clicktools passes numbers
across with TWO decimal places so formatting in salesforce
must be set to this to work correctly.
Percent  Percent, Multi-percent Number 
Phone Number Text, Multi-text
Picklist Radio, Dropdown, Multi-radio, Multi-dropdown  
Picklist (Multi-Select) Checkbox, Multi-checkbox  
Text Text, Multi-text Any other question type except Essay
Text Area  Text, Multi-text Any other question type except Essay
Text Area (Long) Essay Any other question type
URL  Text, Multi-text

 If you have any questions about specific mappings, drop us an email...

Integration with IVR.

A great example of three-way on-demand integration is Clicktools integration with Angel provides an on-demand IVR tool and we have built an integration that transfers results directly from IVR phone based surveys in to Clicktools which can then, obviously, go in to Salesforce (any object!).

The basic use case is:

  1. Customer calls Support Desk
  2. Call center agent uses Salesforce to respond to call
  3. At end of call, Agent re-directs caller to to take survey
  4. collects survey response and passes to Clicktools
  5. Clicktools can be used for real-time analysis and transfer back in to Salesforce.

At the same time, an email survey could be sent to cases closed through that channel. Responses to both the email and IVR survey can be collected in the same survey in Clicktools - hey presto, a seamless, real-time multi-channel feedback environment enabling you to compare and contrast support levels across different channels.

To have a look at the demo:

  1. Click and login to the demo Clicktools account with the email and the password 'angelivr'
  2. Call 866-248-8135 and answer the short four question survey by saying the numbers or pressing digits on your phone. Leave a comment too.
  3. In Clicktools, Click the + then 'Results' link in Clicktools to see your result appear before your eyes. This includes storing a link to the comment which you can cut and paste in to another browser window to hear.

This is all seamless and all in real-time, integrating three enterprise strength software tools in minutes. You gotta LOVE on demand software!

Friday, November 10, 2006

It's official - Clicktools is cool!

Wendy Close, ex Gartner Analyst and Salesforce CRM guru (aka 'Ask Wendy'), has included Clicktools in her cool tools list...

Cool Tools Heat-Up The AppExchange

Dreamforce session on line

As your local Blockbuster is unlikely to have it in stock for a while, the Top Ten AppExchange Apps for Professional Edition Dreamforce session is now up on the Dreamforce blog.

You can download a PDF/PPT of the slides as well as watch a video.

Wednesday, November 08, 2006

Checkboxes in Salesforce - aaarrrgghhh!

Quite a few of our customer often want to update checkboxes in Salesforce. To the un-initiated a checkbox in salesforce is a boolean (basically a True or False and using it means you get a nice looking box on your form that is either ticked (for true) or not ticked (for false)).

As nice as these are, from an integration perspective they are a pain in the ****. Why? Well, Salesforce treats checkboxes as booleans - That means that when you export the information from Salesforce it comes out as a one or zero. And, when you pass information back in to Salesforce you can only set 0,1 or True/False. This gives two problems, firstly displaying pre-selected information in Clicktools and second, pushing information back in to Salesforce

So what options do you have?

  1. If you are passing information in to a clicktools form you can only show information that is selected (i.e. true). That is until we can find a useable way of recognizing '0'.

  2. If you are creating information have a radio question in Clicktools with the options True or False. This is ok, but not in all circumstances. Please note: These will not be successfully pre-populated from Salesforce in to Clicktools.
  3. If you are creating or updating information have a one-option checkbox question, set the option to '1' and hide the question text.
  4. If you want to use Clicktools to present Checkbox information in a form and then use the same form to update it please speak to us - we can do it, it just involves a little manual effort.

Option 3 is quite clever as it presents a checkbox that people can select. This involves putting the following html '<p style=color: white>1</p>' in against the Option value in Clicktools which ends up looking in the survey like this:

The option is set to be 1 but, it is displayed as white so it can't be seen by the person completing the form. It's an acceptable solution and looks ok. We will come up with something better though - soon.

Wednesday, November 01, 2006

Case/Support surveys

If you are capturing case/support feedback and want to integrate with Salesforce, I think the best way to do this is by storing the feedback response in to two objects.

First, pass the feedback about the operational aspects of the case (e.g. speed of response, professionalism etc.) in to the case itself and pass any overall Key Feedback Indicators (KFIs. E.g. Loyalty, advocacy and overall satisfaction) in to a generic custom object. This way you can store KFIs from many different surveys in one place and use reports and dashboards as required.

The screen below shows an example of how this operational feedback can be stored against a case: 

Case object screenshot

You can see we have also used a graphic formula field to show an amazon style rating for the case. In this instance, the rating is made up from the scores given to three questions.

We also use a generic 'KFI' object to capture the overall feedback. Link the KFI to the case but, in addition, classify what type of survey it was, maintain a link to the survey and again used a formula field to display an Amazon style rating. This KFI can be seen from the case as a related list but also, powerfully, enables us to report on the same KFIs across many different surveys.

KFI object screenshot

I think this is the best combination of capturing feedback for cases. It has the power for individual line managers and support teams to see and understand how they deal with individual cases but also enables senior management teams to see how different operational issues affect loyalty, advocacy and overall satisfaction.

There really is no point in collecting feedback unless you are going to do something with it -this approach really helps to turn insight in to action.

Tuesday, October 31, 2006

Link with Salesforce for Google Adwords

One interesting application one of our customers is just about to implement is using a Clicktools form as a Landing Page from a Google Adwords campaign.

You can see an example here. Now, whilst a standard web2lead form generated in salesforce does exactly what it says on the tin, one of the many benefits of Clicktools is that you can do much much more than that. So, this form does something a little more complicated...

It creates a contact, an account, an opportunity, links them all together, adds the individual to the campaign and sets the campaign member status. How cool is that?

Complex Stay-in-touch

Salesforce includes a stay-in-touch form but changing this can be time consuming. Several of our customers are now using Clicktools to manage complex stay-in-touch requests. Simply, this takes information in Salesforce about a Contact, sends it to the contact and enables them to update it. This new information is imported back in to Salesforce.

There are a couple of important factors to consider when designing this sort of form.

1) Use manual synchronization. If you use automatic synchronization you risk good information being overwritten with bad. Using a manual synch enables you to exploit the "triage" to quickly scan and correct and errors before they are imported.

2) Address lines must be in one text field. When transferring information out of Salesforce in to the form, you can choose between individual address lines (1-3) or the complete address. BUT, you can only put information back in to Salesforce in one address line, not 3. So, to correctly place information back in to the address field you MUST put the address line in to one text field or one option in a multi-text field (the recommended approach).

The example URL below populates the first 6 questions in a surveythat would be used in a Clicktools template to pass across individual details is:

"surveyURL&q1=${Contact ID}&q2=!urlencode{${First Name}}%20!urlencode{${Last Name}}%20!urlencode{${Preferred Name}}%20!urlencode{${Title}}%20!urlencode{${Organisation}}%20!urlencode{${Email}}%20!urlencode{${Phone}}%20!urlencode{${Fax}}&q3=!urlencode{${Mailing Address Line1}%20${Mailing Address Line2}%20${Mailing Address Line3}}%20!urlencode{${Mailing City}}%20!urlencode{${Mailing State/Province}}%20!urlencode{${Mailing Zip/Postal Code}}&q4=!urlencode{${Mailing Country}}&q6=${Primary Contact}"

If you prefer to use Mailing Address, you can do. In this case, the URL looks like this:

"surveyURL&q1=${Contact ID}&q2=!urlencode{${First Name}}%20!urlencode{${Last Name}}%20!urlencode{${Preferred Name}}%20!urlencode{${Title}}%20!urlencode{${Organisation}}%20!urlencode{${Email}}%20!urlencode{${Phone}}%20!urlencode{${Fax}}&q3=!urlencode{${Mailing Address}}%20!urlencode{${Mailing City}}%20!urlencode{${Mailing State/Province}}%20!urlencode{${Mailing Zip/Postal Code}}&q4=!urlencode{${Mailing Country}}&q6=${Primary Contact}"

Please note the use of:

  • 'urlencode' to cater for spaces and other characters that could cause trouble on a URL
  • '' to concatenate multiple salesforce fields in to a clicktools 'multi-' question
  • %20 to enter a space which stops field being placed in the wrong question(useful if you have blank address fields)

I hope you gives you some help in building stay in touch requests using clicktools. As ever, if you have any questions, please contact us.


One of the recent new mappings we have implemented is linking a form to the Applicant object in the "Recruitment Manager" app on the AppExchange.

Basically, this grabs information about an individual, including education, resume and professional details and then creates an applicant object. The created applicant can also be linked to a job opening.

For a real-life example of this please go to and click the 'Online Application Button'.

Storing feedback in Salesforce

We are often asked for help in defining, once feedback is captured in Clicktools, how and where it should be stored in Salesforce. Whilst each organization is different, the following guidelines may help.

There are three main approaches and each approach has its own advantages and disadvantages:

1. Add custom fields to standard object.


  • Easily incorporated in to standard page layout 
  • Doesn’t impact custom object limits (doesn't apply to Unlimited)
  • Powerful reporting options.


  • Difficult to track multiple responses
  • Difficult to track responses over time (if multiple responses)
  • Information (even blank) is stored for every object.

Recommended use: When only one piece of feedback is collected for an object, e.g. case/support surveys. In this example, we would recommend extending the case object to include the feedback. Another examples could be a win/loss survey. General satisfaction surveys should not be generally stored using this approach as you would be naturally limited to storing the 'latest' response. If you are not implementing this survey for a large number of instances of an object (e.g. only 1 in 50 cases are being sent a survey) then you should consider option 3.

2. Shared custom object for all feedback.


  • Easily trend information over time
  • Minimises the number of custom objects required
  • Enables multiple surveys per object and ‘cascading’ feedback.


  • Potential for lots of empty spaces in an object
  • Object can become complicated very quickly if multiple questions/surveys are used to populate the object
  • Less powerful reporting (as with any custom object)
  • Difficult to display usefully as related lists.

Recommended use: When collecting answers to the same questions from multiple surveys (e.g. Recommendation, advocacy and loyalty questions may be asked in many operational surveys and these can go in to one common object). We would not recommend using this approach to combine different questions from different surveys and we would also recommend avoiding using "Question X" type labels for different answers to different questions.

3. Dedicated custom object for each type of feedback


  • Easily trend information over time
  • Minimises the number of custom objects required
  • Enables multiple surveys per object and ‘cascading’ feedback.
  • Only uses space when required
  • Can be displayed usefully as related lists.


  • Custom object limitations in some editions
  • Less powerful reporting (as with any custom object)

Recommended use: Collecting feedback on specific operational issues where multiple surveys will be sent to one or more individual (E.g. Market research, on-going customer satisfaction surveys, customer insight surveys, product design). The decision between using option 1 and option 3 will come down to the frequenct and volume of feedback collected. The decision between using option 2 and 3 will come down to the number of custom objects you want to use.

In reality there is no right or wrong and each organization must find the route that is right for them. I certainly wouldn't view these as mutually exclusive as it is possible that all three methods may be required in some way.

Thursday, October 26, 2006

What makes a good survey?

I hadn't originally intended to blog this, but a recent entry on Gareth Davies mktg blog prompted me to follow up on my comment against his blog entry.

And, as surveys are one of the most common uses of Clicktools for AppExchange I thought it would be a good place to start.

As a company Clicktools is method "agnostic" (We don't enforce an approach) as many organizations/requirements need a different approach. However, there are some common denominators that we (amongst our customer base) see:

  • Focus on Action. The aim of the exercise is not to collect data but to improve
  • Start at the end. Don’t start with building a questionnaire but with the results you want people across the organisation to see. Build surveys that deliver this information.
    Share the data widely. Getting everybody to drive improvements is more effective than a few centrally planned initiatives.
  • Keep surveys tightly focused. Lengthy surveys often results to low response rates and unreliable data.
  • Ask people only about what they experience. Ensure that data are
    collected from people who have first hand experience of the interaction and don't ask for feedback and then try and sell-on any thing.
  • Remember the emotional element. Ask how people feel about your
  • Seek competitive comparisons. Success is not about being perfect but
    about being better than the competition in the things that really count.
  • Gather timely feedback. Forget about the ‘annual do you love us survey’, collect feedback from people while the experience is fresh in their minds.
  • Use simple language. Jargon, three letter acronyms and convoluted sentences are to be avoided at all costs.
  • Ensure the data is representative. Ensure your responses are representative of the targeted customer base.
  • Follow up. Asking for feedback raises expectations of action. Failure to act effectively says to customers that their views don’t count.
  • Integrate feedback with operational and financial data. Remember that the reason for gathering feedback is to drive performance improvements that improve financial performance.

Knowing how a customer feels about doing business with you is essential to being able to do something to improve it. The former is data collection, the latter is performance improvement.

Friday, October 20, 2006

The basics

So, what is Clicktools for AppExchange all about and why are we winning more and more customers? Well, simply, our application enables customers to create custom forms, surveys and landing pages. Once completed, the information entered can be used to create or update ANY information in salesforce.

There are a couple of questions that I am often asked:

1. Can we create/update custom objects (called Cobjects by some people within sfdc:)?
2. Can we createupdate multiple objects in one landing page, form or survey?

The answer to both of these questions is YES!