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 http://www.aaarenewals.com/i_careers_RS.htm 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 salesforce.com 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!