diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 6e86d84..f44daf3 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -143,3 +143,7 @@
 get_translated_dict = {
 	("doctype", "Global Defaults"): "frappe.geo.country_info.get_translated_dict"
 }
+
+bot_parsers = [
+	'erpnext.utilities.bot.FindItemBot',
+]
\ No newline at end of file
diff --git a/erpnext/utilities/bot.py b/erpnext/utilities/bot.py
new file mode 100644
index 0000000..e1f3d00
--- /dev/null
+++ b/erpnext/utilities/bot.py
@@ -0,0 +1,36 @@
+# Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+
+from __future__ import unicode_literals
+
+from frappe.utils.bot import BotParser
+
+import frappe
+from frappe import _
+
+class FindItemBot(BotParser):
+	def get_reply(self):
+		if self.startswith('where is', 'find item', 'locate'):
+			item = '%{0}%'.format(self.strip_words(self.query, 'where is', 'find item', 'locate'))
+			items = frappe.db.sql('''select name from `tabItem` where item_code like %(txt)s
+				or item_name like %(txt)s or description like %(txt)s''', dict(txt=item))
+
+			if items:
+				out = []
+				warehouses = frappe.get_all("Warehouse")
+				for item in items:
+					found = False
+					for warehouse in warehouses:
+						qty = frappe.db.get_value("Bin", {'item_code': item[0], 'warehouse': warehouse.name}, 'actual_qty')
+						if qty:
+							out.append(_('{0} units of [{1}](#Form/Item/{1}) found in [{2}](#Form/Warehouse/{2})').format(qty,
+								item[0], warehouse.name))
+							found = True
+
+					if not found:
+						out.append(_('[{0}](#Form/Item/{0}) is out of stock').format(item[0]))
+
+				return "\n\n".join(out)
+
+			else:
+				return _("Did not find any item called {0}".format(item))
\ No newline at end of file
