REQUEST A DEMO

Author: Kevin Miller

Software Creator

Kevin Miller
Kevin Miller
About:

I am an Austin Texas based software developer flying his geek flag proudly. I work hard creating customer service and support software and web experiences. When I am not creating software or gushing about my toddler. I soak neck deep in Twitter, discover new music at Rdio, host "European" board game meet ups, and read nerdy stuff like Vernor Vinge.


Subscribe to Kevin Miller's RSS feed and never miss a post.

Posts by Kevin Miller:

Installing Visual SVN Server

April 15, 2009 After being forced to re-install a Apache hosted Subversion service I decided to use Visual SVN Server and found the process of migrating from a existing multi-repository Apache Subversion service to be quite straight forward. I did learn a few things along the way that I wanted to share. Why I Had to do it. (a.k.a Whoops!) I did a dumb thing. I attempted to upgrade the version of our own existing Apache Subversion service in the middle of the day. You likely know how the rest goes, terribly. I Backed up all the files I was going to touch and dropped in the new .dlls in the right places and viola upgrade! right?. Not so much. The server didn’t start. So I reverted to my backups and the server still didn’t start. Oh noes!!!111one. Apache puked and people started…

Can your CRM place a phone call?

April 13, 2009   When new cases come in we have many ways of having our support team notified so we can provide speedy assistance to our customers.   We get an email Twitter sends us direct messages Our campfire (chat) gets notified   Recently we needed a better way to notify on-call support agents of new cases. Our existing notification mechanisms work great during office hours but at night a spam email getting past my filters better not wake me up at 2am just because it might be a new support case. We needed something better. The simplest thing we could think of was to have our CRM make a phone call.   Phone calls are cross platform. No special smart phone client application beats a phone call. Better yet spammers don’t place calls  at 2am pitching “Enlargement”. At night I can…

Searching For Motivation

February 20, 2009 People love search. I love search. I have to admit though that I am guilty of not using my own tools to the best of their ability. Dovetail Seeker is a search product we created to find important knowledge stuck in your Clarify/Dovetail CRM. At Dovetail we use our own software to support our customers and Seeker is always indispensible, when working new cases, effectively mining our solutions and previous cases for knowledge.   That said, I am stuck in my old ways. I’ve been supporting our product line since before we had an effective search tool and whenever I get a support question I am quick to rack my brain and not our knowledge base.   To combat this affliction I created this motivational poster in effort to remind me to hit the search button before I think too hard.    

When a Guid is not a Guid?

February 18, 2009   Databases are fun things. Assigning identifiers to things in your database can be important. Sometimes it is handy to have an Uber alternate key that is guaranteed globally unique. This can be useful in many ways one of which is database replication. Globally Unique Identifiers   I just ran into a spot in a legacy database where it seems they wanted to future proof globally identifying database rows. They have quite a few tables with a field called guid. That might ring a bell. In case it doesn’t GUIDs are a Microsoft implementation of globally unique identifiers. Easy to create. 16 bytes wide and lovely to look at.   string guid = Guid.NewGuid().ToString(); value: ba72c396-4b49-4d95-b9d7-03d42d5d5141   Funny thing about this “guid” database field is that it’s a Unicode string 31 characters wide. You might notice the Guid value above is 36 characters. Ok, Get…

Setup ASP.Net caching using a super simple fluent interface

February 10, 2009 While reviewing what I did to Create an RSS Feed Using ASP.Net. We got worried that overzealous customers or feed readers might hit this feed kind of often, and since the data served up by the feed does not change too a lot we could easily do some caching. Luckily this is easy to do using ASP.Net’s built in caching support. Unfortunately the code to, programmatically, setup the caching is a little ugly. To make things easier to read I added a couple extension methods to create a very poor man’s DSL. Following the Microsoft code example is ugly   Seeing the code below in my HttpHandler made me cringe. Hopefully it makes you cringe too.   TimeSpan freshness = Timespan.FromHours(1); DateTime now = DateTime.Now; context.Response.Cache.SetExpires(now.Add(freshness)); context.Response.Cache.SetMaxAge(freshness); context.Response.Cache.SetCacheability(HttpCacheability.Server); context.Response.Cache.SetValidUntilExpires(true); context.Response.Cache.SetValidUntilExpires(true); context.Response.Cache.VaryByParams["days"] = true;   The essence of what I want to do…

Creating RSS Feeds Using ASP.Net

February 6, 2009 Warning: This is one of those late to the party posts where I show off some cool thing that everyone already likely knows about. I just feel special right now because I was able to push out something we’ve wanted to do for quite some time in an afternoon.   We wanted to have an RSS feed so customers could keep up to date with new or recently updated Dovetail Knowledge Base articles. My personal mental gate was that I really didn’t want to try to figure out how to properly create an RSS or Atom feed and I didn’t want to bother with complex heavy handed frameworks like Argotic. Then one day Joshintroduced me to the System.ServiceModel.Syndication namespace (introduced in .Net 3.5) and my life was never the same.   Simple stuff really. Create a SyndicatedFeed filled with feed items and hand that to a…

Mobile Agent 1.1 – Now with better access to your knowledge

January 23, 2009 Today we are releasing a better Dovetail Mobile Agent. In this release we focused on exposing the knowledge contained in your Dovetail CRM to your mobile agents and public users.  For more details please take a look at the documentation but to sum up I’ve composed for you a sort of visual what’s new in this release. Agents can now… Search for and use solutions while working cases. Solutions found to apply to a case being worked can easily be sent and linked to the case. Searching now returns both solution and cases. Once a solution is found details about it can be easily sent to a case.   Because sending emails from a mobile device can be time consuming, Mobile Agent fills in most details of the email for the agent. The solution is also linked to the case…

Avoid Mickey Mouse Email Loops

January 12, 2009   Say you have an application (i.e. bot, script, automaton, service)  polling an email account (POP3 or IMAP) for emails. And say that your application sends an automated response back to the sender of the email. Be careful. You can easily get into situations that will create an email loop or worse yet the Sorcerer’s Apprentice Syndrome.   After sending email from an automaton it is quite common for the receiving mail servers to bounce emails back or accounts to temporarily respond with an “Out of Office” response. If your service is not smart enough to ignore automated responses to it’s own emails? Well. The streams will cross and poorly written email services will implode under the weight of your unending email loop. Kittens die. System administrators call you. This is bad.   RFC 3834 comes to the rescue with…

Sending Knowledge To Your Customers

January 5, 2009 Our next release of Dovetail Mobile Agent is focusing on adding functionality for agents and customers alike to access Dovetail CRM knowledge. I wanted to talk about one of the features we are adding to allow agents to send a solution to a case. Solutions = Knowledge A little background. Dovetail CRM support agents can capture Solutions to common problems. These solutions are more useful when exposed to the customer so they can solve their own problems. We do just this on Dovetail’s website. Let Me Find That For You It is pretty common though that a customer will not be diligent enough to search the existing knowledge base. Or diligent customers may not know the correct search terms and are not getting useful hits from your knowledge base. Frustrated they’ll create a case for a common problem. For these…

Dovetail Seeker 1.1 Shipped

December 3, 2008 We have added a few bows and ribbons to Dovetail Seeker our handy web based search service for Clarify. We’ve made it easier for search clients, like Dovetail Mobile Agent, and Dovetail Search for Clarify, to page results. Added example code for consuming Seeker’s search services from a .Net client. Better documentation of the search service API. Details Details Here is a copy and paste of our release notes for this version with all the gritty details. Version 1.1.0 Documentation added with information on the Seeker Search Web Service API. Added client-example directory to the installation directory. This directory now contains source code and assemblies for a C# Seeker client. Please view the ReadMe.txt file in that directory for more information. Added new value RequestedNumberOfResults to the search results information returned by the search service. This value reflects the number…