So, this actually sounds like 2 issues, lets flush it out a little more, and no issues at the same time.
If someone says
morning -> the bot replies
good morning... That should be possible now as it is still request / reply.
1. When someone replies
morning send a DM to the user in slack
For this to work, we need to make some assumptions about how the conversation model is setup, is it one-on-one, or is it a group chat, or some hybrid. The bot currently knows the user who sent the message, and the slack client could map that back to the user and simply DM him/her. This is how I would solve this right now. Having said that, there may be some improvements made in the bot engine. For example, in a group chat mode, perhaps we can have a listen flag or chat velocity setting, or moderator mode. Which dictate how the bot will participate in the conversation. (Right now, it tries to reply to everything)
2. Send a message to a user without first being initiated.
This was something I had in the first prototype and removed only because it needed to be flushed out more. It boils down to 2 components.
a. The bot needs to be able to see who is online and available to chat with.
b. The bot needs some rules about how it can speak out. ie: after 5 seconds of no activity, missed volley, topic change, user login event. We will finally need an API that supports these types of rules.
Happy to chat more about this, as I think they are both amazing features.