Dovetail Seeker Introduced

Stephen Lynn recently talked about our new search product in his post – Dovetail Seeker to the RescueGary and I are working hard to get Seeker shipped to our customers. I wanted to post a follow up to Stephen’s post to divulge some more details about Dovetail Seeker.


What is It?


Dovetail Seeker makes the data in your Dovetail CRM searchable just like Google makes the Internet searchable. All you need to do is type in a text box and click on Go.


We have worked very hard to deliver a great search solution for Dovetail CRM and I like to think we succeeded. Here is a summary of what we tried to accomplish with Seeker:


    • For Users: the ability to easily search for interesting data in Dovetail CRM.
    • For Administrators: the ability to control exactly what data users can search for.
    • For Developers: the ability to integrate Dovetail Seeker with their CRM applications.


Let’s take a look at each of these points in more detail.




Your users don’t really care about search. They only want to find what they are looking for. We tried to make Seeker simple to use for basic searches while making it easy to discover how to unleash the power of advanced searches.


Here are a couple views of Dovetail Agent’s new search interface:


Dovetail Agent 4.0 Search


Our Search Tips page teaches you how to use Seeker’s more advanced capabilities.




Below is a screen shot of another Seeker implementation. Our Dovetail Software Knowledge Base is using Seeker to expose our Solutions on our public web site. This is a very simplistic integration with Seeker it only lets you search Solutions and does not expose any of Seeker’s advanced capabilities to the user. But. It’s public so you can take it for aspin if you like.


Dovetail Knowledge Base


If you are an existing customer and have a Dovetail Self Service Account you can play with a more advanced integration with Seeker at our Self Service web site.



As an administrator you want your Dovetail CRM users to have quick access to your important CRM data. Dovetail Seeker leverages the excellent Lucene.Net text search engine to index Dovetail CRM. Seeker adds value by making it easy to define and index the Dovetail CRM data you want to make available to your users.

Seek Indexer


Before you can search you need an index. An index is created by the Seek Indexer using a configuration file setup by the Dovetail CRM administrator to describe what data you want to make searchable. Below is a screen shot of the Seek Indexer running. Not very exciting but you may notice that it is pretty fast indexing over 300 Solutions in 3 seconds.


Seeker Indexer


To keep the index in-sync with your database it needs to be updated regularly. To accomplish this it is easy to setup a scheduled task in Windows to run the Seek Indexer and it will only update the records that have been modified since you last ran the indexer.

Seeker Search Web Service


Once you have an index setup your Dovetail CRM is searchable. Search capability is exposed by the Seeker web application which acts as a search web service. Applications can search Dovetail CRM by making requests against this web service application.


This screen shot shows details about the indexed Solutions.




The Dovetail Seeker web application does not include a HTML search user interface. The Seeker web application is a search service. It is only intended to get called by other Seeker enabled applications. When we release Dovetail Agent 4.0 it will include a search interface that consumes search results returned from Seeker.




To integrate an application with Seeker you need to be able to communicate with the Seeker web application using HTTP GET requests and be able to parse JSON. That’s it.


Search results from the Seeker search web service are returned in a response encoded as JavaScript Object Notation (JSON). Using JSON is a handy way to serialize data between different applications. Please do not get scared by the JavaScript in the name there is a JSON implementation for many many languages.


Here is an example search request to Seeker’s search service searching for the terms “create a case”:

GET http://servername/seeker/search/search.castle?query=create%20a%20case


Here is some example JSON output from Seeker:

{"SearchResults":0[{"Score":1,"Domain":"case","Id":"7","Title":"Case with error in the title","Summary":"
Case History"}], "TotalNumberOfResults":1, "StartResultIndex":0,"SearchQuery":"Error"}


There is of course a lot more to know from a developer’s point of view. I will follow up with a more details post about my experience integrating Dovetail Seeker with Dovetail’s Knowledge Base.