[role="xpack"]
[[canvas-tutorial]]
== Tutorial: Create a workpad for monitoring sales

To familiarize yourself with *Canvas*, add the Sample eCommerce orders data, then use the data to create a workpad for monitoring sales at an eCommerce store.

[float]
=== Open and set up Canvas

To create a workpad of the eCommerce store data, add the data set, then create the workpad.

. On the home page, click *Try sample data*.

. Click *Other sample data sets*. 

. On the *Sample eCommerce orders* card, click *Add data*.

. Open the main menu, then click *Canvas*.

. On the *Canvas workpads* page, click *Create workpad*.

[float]
=== Customize your workpad with images

To customize your workpad to look the way you want, add your own images.

. Click *Add element > Image > Image*.
+
The default Elastic logo image appears on the page.

. Add your own image.

.. Click the Elastic logo.

.. Drag the image file to the *Select or drag and drop an image* field.
+
[role="screenshot"]
image::images/canvas_tutorialCustomImage_7.17.0.png[The Analytics logo added to the workpad]

[float]
=== Customize your data with metrics

Customize your data by connecting it to the Sample eCommerce orders data.

. Click *Add element > Chart > Metric*.
+
By default, the element is connected to the demo data, which enables you to experiment with the element before you connect it to your own.

. To connect the element to your own data, make sure the element is selected, then click *Data > Demo data > Elasticsearch SQL*.

.. To select the total price field and set it to the sum_total_price field, enter the following in the *Query* field:
+
[source,text]
--
SELECT sum(taxless_total_price) AS sum_total_price FROM "kibana_sample_data_ecommerce"
--

.. Click *Save*.
+
All fields are pulled from the sample eCommerce orders {data-source}.

. At this point, the element appears as an error, so you need to change the element display options.

.. Click *Display*

.. From the *Value* dropdowns, make sure *Unique* and *sum_total_price* are selected.

.. Change the *Label* to `Total sales`.

. The error is gone, but the element could use some formatting. To format the number, use the *Canvas* expression language.

.. Click *Expression editor*.
+
You're now looking at the raw data syntax that Canvas uses to display the element.

.. Change `metricFormat="0,0.[000]"` to `metricFormat="$0a"`.

.. Click *Run*.

[role="screenshot"]
image::images/canvas_tutorialCustomMetric_7.17.0.png[The total sales metric added to the workpad using Elasticsearch SQL]

[float]
=== Show off your data with charts

To show what your data can do, add charts, graphs, progress monitors, and more to your workpad.

. Click *Add element > Chart > Area*.

. Make sure that the element is selected, then click *Data > Demo data > Elasticsearch SQL*.

.. To obtain the taxless total price by date, enter the following in the *Query* field:
+
[source,text]
--
SELECT order_date, taxless_total_price FROM "kibana_sample_data_ecommerce" ORDER BY order_date
--

.. Click *Save*.

. Change the display options.

.. Click *Display*

.. From the *X-axis* dropdown, make sure *Value* and *order_date* are selected.

.. From the *Y-axis* dropdown, select *Value*, then select *taxless_total_price*.

[role="screenshot"]
image::images/canvas_tutorialCustomChart_7.17.0.png[Custom line chart added to the workpad using Elasticsearch SQL]

[float]
=== Show how your data changes over time

To focus your data on a specific time range, add the time filter.

. Click *Add element > Filter > Time filter*.

. Click *Display*

. To use the date time field from the sample data, enter `order_date` in the *Column* field, then click *Set*.

[role="screenshot"]
image::images/canvas_tutorialCustomTimeFilter_7.17.0.png[Custom time filter added to the workpad]

To see how the data changes, set the time filter to *Last 7 days*. As you change the time filter options, the elements automatically update.

Your workpad is complete!

[float]
=== What's next?
Now that you know the basics, you're ready to explore on your own.

Here are some things to try:

* Play with the {kibana-ref}/add-sample-data.html[sample Canvas workpads].

* Build presentations of your own data with <<create-workpads,workpads>>.

* Deep dive into the {kibana-ref}/canvas-function-reference.html[expression language and functions] that drive *Canvas*.
