--- title: "Data Import" slug: "data-import-widget" updated: 2026-10-30T11:34:05Z published: 2026-10-30T11:34:05Z canonical: "learn.servitly.com/data-import-widget" --- > ## Documentation Index > Fetch the complete documentation index at: https://learn.servitly.com/llms.txt > Use this file to discover all available pages before exploring further. # Data Import This widget allows DPS users to import data for multiple metrics into a specific thing. ![](https://components-manager.servitly.com/components/DataImport_1/IMAGES/_screenshot?owner=AG_Servitly) The widget requires a thing in the context, so it can be placed only in a template used by a view of a thing definition. To perform a data import, the user must have the `IMPORT_DATA` [permission](/v1/docs/user-permissions). By pressing the *Import* button, the user is requested to provide a name and a CSV file containing all the data of the metrics to be imported into the context thing. ![](https://cdn.document360.io/6759e9c9-3ce3-49df-965a-7231d2d9a10a/Images/Documentation/image(912).png?sv=2026-02-06&spr=https&st=2026-11-10T16%3A13%3A25Z&se=2026-11-10T17%3A13%3A25Z&sr=c&sp=r&sig=%2FaazFbk2O9f6yn0PBNafKkfI2m7OnMzZ1TpcDIhmB70%3D) The first row of the CSV must be the header, composed of the `TIMESTAMP` column, and a column for each metric to import (the header is the metric name or mapping name). You can download a sample CSV that can be used as the starting point of your import. You can import data for any raw and computed (derived and counter) metric. The order of the `TIMESTAMP` column must contain UTC values (long) in ascending order. ```excel TIMESTAMP,,,, 1234567,22.5,true,"test text 1" 1234568,22.6,false,"test text 2" ``` By confirming, a data import is scheduled, and within the widget, you can see the status of the data imports. The time required to process a CSV file depends on the number of rows and columns to import. > Please note that data is saved as it is provided in the CSV file, and any events or insights related to the imported data period are not recalculated. The widget is based on this [data import API endpoint](https://learn.servitly.com/apidocs/schedules-a-new-data-import). > [!NOTE] > Data Import Limitations > > - It is possible to import historical data for any raw and computed (derived and counter) metric. > - The file provided cannot exceed the size of 10 MiB and 50.000 rows. > - Only one import per thing can be performed at a time. > - Completed imports are automatically removed after 30 days. ## Template Syntax Below you can find some examples of how to use the component within a template. ```xml         ``` ## Component Reference Here is a comprehensive list of all the elements and properties that can be used to configure the component. #### Data Import `<data-import-widget>` | *Reconcile Connection Status* | Reconciles the Connection Status of the imported historical data. **Name**: reconcileConnectionStatus **Type**: BOOLEAN \| Optional **Default Value**: *false* `[reconcileConnectionStatus]="true"` | | --- | --- | | *Title* | The title displayed on the top part of the widget box. **Name**: title **Type**: STRING \| Optional `[title]="'Data Import'"` | | **Rendering** | | *Availability* | Configure availability based on active features on Digital Plan on Add-ons **Name**: hasFeature **Type**: FEATURE (multiple) \| Optional `[hasFeature]="['feature_a', 'feature_b']"` | | *CSS Class* | The name(s) of the CSS class used to customize the widget layout. **Name**: class **Type**: STRING \| Optional `class="my-custom-class"` | | *Visibility Condition* | The expression that allows you to reduce the visibility of the element. **Name**: *ngIf **Type**: STRING \| Optional `*ngIf="getUser().organizationId != null"` | ## Full Syntax Example ```xml ```