---
title: "Create a widget"
canonical: "https://docs.devo.com/space/latest/95207411/Create%20a%20widget"
format: markdown
---
> Macro (toc)

## Adding widgets to an Activeboard

To create a widget from scratch:

> Macro (rw-ui-steps-macro)
> 
> > Macro (rw-step)
> 
> Click the **Widgets** button at the top of the Activeboard (available only with the [editing mode](https://docs.devo.com/space/latest/95207321/View+and+edit+modes+in+Activeboards) activated), then click and drag your selected graph style to the Activeboard workspace.
> 
> See the different types of widgets available [in this article](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95207451).
> 
> ![image](media://00262443-add5-4089-828a-d027e1a69f9f)
> 
> > Macro (rw-step)
> 
> Now you have to insert data to feed your widget. You can choose from several methods to do so. Check the following article to know about them: [Build your widget's source query](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95207835).
> 
> > Macro (rw-step)
> 
> If the data in the query meets the data requirements of the graphic you selected, the new graphic will appear right away. However, you may need to specify which fields of data in the query you want to use to draw the widget. To do so, click the widget title bar to display the settings pane, which will appear to the right. Check these properties in the section below.
> 
> ![20_Create a widget.png](media://e36d44c5-4808-4b8d-bc88-578b030a1975)

## Widget properties

<span style="color: #172b4d">When you click the title bar (or the ellipsis menu and select </span>**Properties**<span style="color: #172b4d">), a panel opens on the right side with the following tabs:</span>

### Data

|  |  |
| --- | --- |
| **ID** | This is a unique name for the widget used for internal calls, such as referring to data in the widget from another widget's script. It is auto-generated and cannot be modified. |
| **Name** | The name of the widget. This is the friendly name that appears in the widget title bar in the Activeboard. |
| **Description** | Enter a meaningful description of the widget. |
| **Data source** | This is the query that feeds data to the widget. Click the **Edit** button to open the **Query editor**, where you can edit and update the widget's query script. Learn how to build your widget's source queries in [this article](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95207835). |
| **Custom date range** | *(Optional)* Toggle on this option to set a date range to apply to the widget and its dependencies, overriding the date range set for the Activeboard. Widgets with a custom date range show the calendar icon in the top right corner. Learn more about setting time ranges [here](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95208299). |
| **Data loading** | You can select the data fetching method for your widget. When you select an option other than *Inherited*, the widget option will always take priority over the global Activeboard option.<br>![25_Create a widget.png](media://011ac473-86f4-411c-8327-c9070066b265) |
|  | **Inherited (default)** | This option aligns the data fetching method with that of the Activeboard. |
| **On demand** | [PERFORMANCE: OPTIMAL] Having several widgets with this option has a positive impact on performance, as it ensures that resources are utilized exactly where and when you need them.<br>When this option is enabled, the widget will retrieve data only when manually prompted. This means that the widget is empty after accessing the Activeboard and displays a message explaining why, along with a button to manually fetch data.<br>Widgets with this option enabled will remain unaffected by the [Active refresh](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95208482) and will work fine when [scheduling Activeboard reports](https://docs.devo.com/space/latest/248381467/Schedule+reports+in+Activeboards#Receiving-scheduled-reports). However, it has implications when [exporting the Activeboard to PDF](https://docs.devo.com/space/latest/95207274/Manage+and+filter+Activeboards#Activeboard-ellipsis-menu).<br>![30_Create a widget.png](media://34418b68-2684-48f1-96df-fb190b20a39e) |
| **Lazy** | [PERFORMANCE: BALANCED] Having several widgets with this option has minimal impact on performance, as resources are utilized only when needed and for limited data segments.<br>When this option is enabled, the widget will retrieve data only when it enters the screen after scrolling. This means that the widget will not be loaded unless it is within the visible part of the landing screen or enters the screen after scrolling.<br>![35_Create a widgetV2.gif](media://6cf9d247-f8a6-4101-a4d6-9b3424c2a1d6) |
| **Eager** | [PERFORMANCE: POTENTIALLY REDUCED] Having several widgets with this option might affect performance considerably, as it needs to allocate as many resources as needed to retrieve data instantly.<br>When this option is enabled, the widget will retrieve data as soon as the Activeboard is accessed. |

### Visual

The settings available in the **Visual** tab will depend upon the type of graphic chosen for the widget. Learn more about the settings of the different types of widgets [in this article](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95207451).

### Raw

Here you can access the raw configuration of each widget. You can edit this, and copy and paste it in the **Raw** field of another widget to clone the widget settings. This is especially useful when you wish to copy widgets across different Activeboards. If you perform any changes, click the **Save changes **button to apply them.


#### Related articles

- [Widget types](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95207451)
- [Build your widget’s source query](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95207835)
- [Manage your widgets](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95207931)
- [Setting a time range in Activeboards](https://devodocs.atlassian.net/wiki/spaces/latest/pages/95208299)