---
sourceDocument: Xanadu Create Integrations with Applications
sourceDocumentLink: https://www.servicenow.com/docs/r/xanadu/integrate-applications

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu Create Integrations with Applications

ft:clusterId :

    - crint

bundleId :

    - crint

workflow :

    - Creator


---

# Create Extract Transform Load (ETL) definitions

# Create Extract Transform Load (ETL) definitions {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes to read

Create ETL definitions to extract data from a source table, transform the data as
desired, and load the data into multiple target tables. ETL definitions also support nested
data structures.

## Before you begin

Role required: import_transformer

## Procedure

1. Navigate to AllSystem Import SetsAdministrationETL Definitions.
2. Click New.
3. Complete the form.  
   {#create-etl-definitions__table_fnb_s3p_3jb__entry__2}

   | Field | Description |
   |-|-|
   | Name | Name of the ETL definition. |
   | Description | Description of the ETL definition. |
   | Copy empty fields | Option to copy empty field values. If the incoming data has a field with an empty value, you can either copy the empty value or ignore it and keep the existing value. |
   | Execute onBefore script | Option to run a script before inserting or updating data. The onBefore script has three parameters. * source: The source data from the import record. * target: The transformed data from the import record. In the onBefore script, this parameter accesses transformed data before it's inserted into the target table. * importLog: The log that records information about data import activity. {#create-etl-definitions__ul_zl1_jxd_ntb} The onBefore script has two variables. * ignore. Type: Boolean. When true, the specified import set row is ignored. * ignore_reason. Type: String. Message describing why the import set row was ignored. {#create-etl-definitions__ul_ekz_wxd_ntb} |
   | Execute onAfter script | Option to run a script after inserting or updating data. The onAfter script has three parameters. * source: The source data from the import record. * target: The transformed data from the import record. In the onAfter script, this parameter accesses transformed data after it's inserted into the target table. Once a record is inserted or updated, it has a sys_id. * importLog: The log that records information about data import activity. {#create-etl-definitions__ul_srr_kxd_ntb} |
   | Application | Application scope for this record. |
   | Active | Selected if the ETL definition is active. Unselected if the ETL definition isn't active. |
   [ ]

   {#create-etl-definitions__table_fnb_s3p_3jb}
4. Click Submit.

## Example

In this example, the ETL Definition for Worker has both an onBefore and onAfter script. In the onBefore script, the source record with an id of 124 is ignored because that worker has already resigned. The source data and target
data are both written to the import log. Finally, the script iterates through the transformed values of the sn_etl_demo_worker table to get each worker's ID and name and record them in the import log.

In the onAfter script, the source and target data are both written to the import log. The script again iterates through the transformed values of the sn_etl_demo_worker table. Now that the data has been inserted into the target
table, each record has a sys_id. The script records each worker's Sys ID, ID, and name in the import log.  
Note:  
* For creating these definitions and mapping using a guided or step-by-step experience, refer to [Integration Hub - Import](https://www.servicenow.com/docs/8G5IervqTMojgELvqJIu2A "Automate data import tasks through a consolidated interface that provides a guided, step-by-step experience. Define external data sources, specify target tables, map how source data becomes target data, and schedule regular imports.").
* If your target table or application is related to CMDB, use the [IntegrationHub ETL](https://www.servicenow.com/docs/access?context=integrationhub-etl&version=xanadu&pubname=xanadu-servicenow-platform&ft:locale=en-US) guided experience.
{#create-etl-definitions__ul_xmd_xch_jzb}
**Related tasks**   

* [Define ETL entities](https://www.servicenow.com/docs/Luihz~GsHdK8TJ_do2sUDw "Define the Extract Transform Load (ETL) entities used by the Robust Transform Engine.")
* [Define ETL entity mappings](https://www.servicenow.com/docs/2kmIOU7UvmU1l61Wyh5q1w "Map the source entity to a target entity.")
* [Create ETL entity field definitions](https://www.servicenow.com/docs/ntAHPhM8AwfxaP_G2E2Glg "Define the entity fields mapped for Extract Transform Load (ETL) operations.")
* [Define Robust Transform Engine operations](https://www.servicenow.com/docs/LzR2NUHmfJZcBl3GR8y7~w "Define the operations the Robust Transform Engine (RTE) should perform.")

*[\>]: and then


