diff --git a/addons/sale/static/src/js/tour.js b/addons/sale/static/src/js/tour.js
new file mode 100644
index 00000000000..40f44b2dd12
--- /dev/null
+++ b/addons/sale/static/src/js/tour.js
@@ -0,0 +1,36 @@
+odoo.define('sale.tour', function(require) {
+"use strict";
+
+var core = require('web.core');
+var tour = require('web_tour.tour');
+
+var _t = core._t;
+
+tour.register('sale_tour', {
+ 'skip_enabled': true,
+}, [{
+ trigger: '.o_app[data-menu-xmlid="sales_team.menu_base_partner"], .oe_menu_toggler[data-menu-xmlid="sales_team.menu_base_partner"]',
+ content: _t('Organize your sales activities with the Sales app.'),
+ position: 'bottom',
+}, {
+ trigger: ".oe_kanban_action_button",
+ extra_trigger: '.o_salesteam_kanban',
+ content: _t("Let\'s have a look at the quotations of this sales team."),
+ position: "bottom"
+}, {
+ trigger: ".btn-primary.o_sale_confirm",
+ extra_trigger: '.o_sale_order',
+ content: _t("
Confirm the order if the customer purchases.
The customer can also confirm the order directly from the email he received.
"),
+ position: "bottom"
+}, {
+ trigger: ".breadcrumb li:not(.active):last",
+ extra_trigger: ".o_sale_order [data-id='sale'].btn-primary, .o_sale_order [data-id='sale'].oe_active",
+ content: _t("Use the breadcrumbs to go back to preceeding screens."),
+ position: "bottom"
+}, {
+ trigger: 'li a[data-menu-xmlid="base.menu_sales"], .oe_secondary_menu_section[data-menu-xmlid="base.menu_sales"]',
+ content: _t("Use this menu to access quotations, sales orders and customers."),
+ position: "bottom"
+}]);
+
+});
diff --git a/addons/sale/tour_view.xml b/addons/sale/tour_view.xml
new file mode 100644
index 00000000000..46bf5241960
--- /dev/null
+++ b/addons/sale/tour_view.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
diff --git a/addons/sale/views/sale.xml b/addons/sale/views/sale.xml
index 9b88383b842..cb00aea11a4 100644
--- a/addons/sale/views/sale.xml
+++ b/addons/sale/views/sale.xml
@@ -5,6 +5,7 @@
+