• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Looking for ideas for a dynamic, automated email reply system

Furor

Golden Member
Currently we receive about 3500 questions a day regarding various subjects that are typical in standard e-tailer businesses.

The general questions consist of

Do you ship to x
Why is my tax x
Will this item work with my x
How do i return x
Does this come bundled with x

etc, etc..most of the answers are on the website, however people don't seem to read the site and would prefer to send an email

Right now, we have about 5-10 "template" replies which are basically copy/pasted into a reply and sent.

What we would like to do is "detect" certain keywords in the emails and automatically send the correct template as a reply (similar to how dell and bigger companies do it)

I'm not looking for any type of code, but a methodology of how to accomplish this efficiently.

My first thought was to parse all messages, save each word occurance and which reply was used in a database, then increment the number of occurances when it was found and replied to. I have no idea if this would work or not, so I thought I would see if anyone has some ideas.

Thanks
 
Keywords are a start, but I think you'd need some higher level contextual analysis too. Probably the one thing that pisses people off more than waiting for an automated voice prompt to connect them to a human is typing:

Dear Sirs,

Can you tell me if your diecast ship model, the one of the battleship Massachusetts in a bottle, is in stock? Thank you.


Dear ...

Thank you for contacting Artistic Miniatures. Your request is very important to us.

Artistic Miniatures ships from stock to all residential and commercial addresses in Massachusetts. Standard shipping rates apply, and there are options for faster shipping if you desire.

We hope this answers your question. Please do not reply to this email.
 
As Markbnj pointed out, this could very well turn into something that is a detriment to sales and reputation. Why not go a slightly different route, one that I've seen other sites use fairly effectively, and try to answer the question before the e-mail is sent?

I'm sure you've seen this, where the visitor selects certain options in regards to what their inquiry is about, and then several knowledgebase articles or FAQ items come up trying to assist with an immediate answer. Then if the articles or FAQ answers aren't sufficient, the visitor has the option to continue with their e-mail.

Since you seem to have already identified the topics of a good percentage of your e-mails, putting together something like this might be fairly easy.
 
I would suggest you read up on baysian (sp?) filters (used mainly for spam, but I don't see why it couldn't be applied here). The other thing I would suggest is that you set it up so that the emails are still read by a person, but in more of a "They said this, we will send this email, is that correct?" Sort of fashion, then you can gear the baysian filter to "learn" from the responses so that every email will quickly be assigned the correct generic answer or give a chance to receive a real response if no answer is correct. Either way, you can't ignore putting a human in the background to read the emails, filters always have false positives.
 
Originally posted by: jjones
As Markbnj pointed out, this could very well turn into something that is a detriment to sales and reputation. Why not go a slightly different route, one that I've seen other sites use fairly effectively, and try to answer the question before the e-mail is sent?

I'm sure you've seen this, where the visitor selects certain options in regards to what their inquiry is about, and then several knowledgebase articles or FAQ items come up trying to assist with an immediate answer. Then if the articles or FAQ answers aren't sufficient, the visitor has the option to continue with their e-mail.

Since you seem to have already identified the topics of a good percentage of your e-mails, putting together something like this might be fairly easy.

We do that on our website, however a lot of the questions come from third party sites where we can't control things like that. Most people prefer to send an e-mail than read FAQs anyway.

I would suggest you read up on baysian (sp?) filters (used mainly for spam, but I don't see why it couldn't be applied here). The other thing I would suggest is that you set it up so that the emails are still read by a person, but in more of a "They said this, we will send this email, is that correct?" Sort of fashion, then you can gear the baysian filter to "learn" from the responses so that every email will quickly be assigned the correct generic answer or give a chance to receive a real response if no answer is correct. Either way, you can't ignore putting a human in the background to read the emails, filters always have false positives.

Good idea..I will look into that - I started reading about NLP (natural language processing) and was wondering if I could use one of the open-source NLP API to build something.

We are currently doing something like this...the e-mail is read by a human, then the human sends them a template response and we record which response we sent them - but the problem is that we get so many emails, it requires several people to keep up with them.
 

Bayesian or another statistical analysis model would be able to give a pretty accurate "guess" of which type of e-mail it is, as long as you have e-mails you can train it from.
You could then get together a set of stock e-mails for different types of things, and auto-reply with these.

Maybe your best bet is do something like this:

Person sends an e-mail
Queue the e-mail in a database so we can work on it later
Bayesian filter to determine the correct response
Send the response, in the response are two links:

---
response here

If this answered your question, click here:
http://domain.com/?question_answered={question ID # here}

If this DID NOT answer your question, click here:
http://domain.com/?question_not_answered={question ID # here}
-----

Now, if they click the 'it did not answer my question' box OR if a message sits in the queue for more than, say, 2 days, FORWARD the message to your customer service people.
If they click the "it answered my question" link, delete it from the queue and forget it about, your'e done!


From a technical standpoint, you could implement this in your language of choice as a Postfix after-queue filter (assuming you're using the Postfix mail server) or a Sendmail milter (assuming you're using Sendmail). If you use Postfix, the easy way to do this is extending the Python SMTP server class and setting the script as an after-queue filter.

We do something similar to what you're doing at the company I work for, it works like a charm. We get about ~2,000 e-mails a day at our office of just 3 people (and only 2 of us answer e-mails) and this saves us lots of time!
 
Originally posted by: Superwormy

Bayesian or another statistical analysis model would be able to give a pretty accurate "guess" of which type of e-mail it is, as long as you have e-mails you can train it from.
You could then get together a set of stock e-mails for different types of things, and auto-reply with these.

Maybe your best bet is do something like this:

Person sends an e-mail
Queue the e-mail in a database so we can work on it later
Bayesian filter to determine the correct response
Send the response, in the response are two links:

---
response here

If this answered your question, click here:
http://domain.com/?question_answered={question ID # here}

If this DID NOT answer your question, click here:
http://domain.com/?question_not_answered={question ID # here}
-----

Now, if they click the 'it did not answer my question' box OR if a message sits in the queue for more than, say, 2 days, FORWARD the message to your customer service people.
If they click the "it answered my question" link, delete it from the queue and forget it about, your'e done!


From a technical standpoint, you could implement this in your language of choice as a Postfix after-queue filter (assuming you're using the Postfix mail server) or a Sendmail milter (assuming you're using Sendmail). If you use Postfix, the easy way to do this is extending the Python SMTP server class and setting the script as an after-queue filter.

We do something similar to what you're doing at the company I work for, it works like a charm. We get about ~2,000 e-mails a day at our office of just 3 people (and only 2 of us answer e-mails) and this saves us lots of time!


I like that idea of queuing into a database, attempting an automated response, then moving it to the actual customer service queue if it didn't help or they didnt answer.

That gave me another thought of going even further to make it so once they click a link, it puts it into the customer service queue and also offers them a box to enter additional details that would update their e-mail and hopefully reduce the number of back-and-forth emails.

I've been searching for information about the bayesian method but I must not be searching for the right thing because all I find are spam filters and mail programs...
 
Back
Top