
This node initiates the import of data to a catalog created in **Data Modeling Hub > Catalogs**.   


<div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

Importing data to the catalog is an asynchronous process, which means your data is added to a queue and will become available after processing.

</div></div></div>


### Import modes

When importing data into your catalog, you can choose how to handle existing and new records. You can use the following options:

1. **Create or overwrite records**  
    **How it works:**

    - If an item does not exist in the catalog, it will be created as a new record.
    - If the item already exists, the entire record will be fully updated, replacing all existing parameters with the new data.

    **When to use it**:  
    You want to discard some or all items in the catalog and replace them with their new versions, without keeping any of their old data.  
    **Example:**
    | Before import                            | Imported data                       | Results after import                                |
    |----------------------------------------|---------------------------------|---------------------------------------------------|
    | Item A: <br>  <pre><code class="language-json">{ "Name": "Widget", "Price": 10, "Color": "Red" }</code></pre> | Item A:  <pre><code class="language-json">{ "Name": "Widget", "Price": 12 }</code></pre> | Item A:  <pre><code class="language-json">{ "Name": "Widget", "Price": 12 }</code></pre> (Color removed)    |
    | Item B does not exist                | Item B: <br> <pre><code class="language-json">{ "Name": "Gadget", "Price": 25 }</code></pre> | Item B: <br> <pre><code class="language-json">{ "Name": "Gadget", "Price": 25 }</code></pre> |

2. **Create or partial update**  
    **How it works:**  
    - If an item does not exist, it will be created as a new record.
    - If the item already exists, only the parameters included in the import will be updated or added; existing parameters not mentioned remain unchanged.

    **When to use it:**  
    You want to update specific parts of existing records without losing any other data, allowing incremental or additive changes.   
    **Example**:
    | Before import                            | Imported data                       | Results after import                          |
    |----------------------------------------|---------------------------------|---------------------------------------------|
    | Item A: <br>  <pre><code class="language-json">{ "Name": "Widget", "Price": 10, "Color": "Red" }</code></pre> | Item A: <br> <pre><code class="language-json">{ "Price": 12 }</code></pre> | Item A: <br>  <pre><code class="language-json">{ "Name": "Widget", "Price": 12, "Color": "Red" }</code></pre> |
    | Item B does not exist                | Item B: <br> <pre><code class="language-json">{ "Name": "Gadget", "Price": 25 }</code></pre> | Item B: <br> <pre><code class="language-json">{ "Name": "Gadget", "Price": 25 }</code></pre> |

### Summary

| Option                     | Creates new records? | Updates existing records? | Update type       | When to use                        |
|----------------------------|---------------------|--------------------------|-------------------|----------------------------------|
| Create or overwrite records | Yes                 | Yes                      | Full replacement  | Completely refresh existing data |
| Create or partial update    | Yes                 | Yes                      | Partial / additive| Incrementally update or add parameters |

## Requirements
---
- [Create a catalog](/docs/assets/catalogs/creating-catalogs). The catalog can be empty.
- This node must be preceded by one of the following nodes:
    - [Local File](/docs/automation/operation/local-file-node)
    - [SFTP](/docs/automation/integration/sftp-integrations)
    - [HTTPS](/docs/automation/integration/http-integrations) 
    - [Amazon S3](/docs/automation/integration/amazon-s3-bucket/get-file-amazon-s3-bucket)
    - [Azure](/docs/automation/integration/azure-blob-storage/get-file-azure-blob-storage)
    - [Google Cloud Storage](/docs/automation/integration/google-cloud-storage/get-file-from-gcs) 

## Node configuration
---
1. To configure the node, click it.  
    **Result**: 
    <figure><img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/docs/automation/_gfx/import-to-catalog.png" class="medium" alt="The preview of a form in the Import to catalog node"><figcaption>The preview of a form in the Import to catalog node</figcaption></figure>
1. From **Select catalog** dropdown list, select the catalog to which the data from the file will be imported.  
2. In **Primary key**, enter the name of the column which contains the unique identifiers of the items.  
    This field accepts [snippets](/docs/assets/snippets) or [inserts](/developers/inserts).  
3. In the **Import modes** section, select how data will be updated in the catalog:  
    - **Create or overwrite records** - if an item from the file exists in the catalog, the entire record in the catalog is overwritten with data from the file;
    - **Create or partial update** - if an item from the file exists in the catalog, the record is modified - new parameters are added, matching parameters are updated. If a parameter doesn't exist in the file, it's not modified in the catalog.    
    You can learn more about import modes in [Import modes section](#import-modes).  
3. Confirm by clicking **Apply**.  
    
   <div class="admonition admonition-important"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /></svg></div><div class="admonition-body"><div class="admonition-content">

   Importing data to the catalog is an asynchronous process, which means your data is added to a queue and will become available after processing.

   </div></div></div>


## Example of use
---
You can initiate a single import of a file with the list of stores.  

<figure>
<img src="/api/docs/image/54176ad07f146575310749eba44b7c2f42c1b327/docs/automation/_gfx/import-to-catalog-workflow.png" alt="The final configuration of the import to a catalog workflow" class="full">
<figcaption>The final configuration of the import to a catalog workflow</figcaption>
</figure>

1. Start the workflow with the **Scheduled Run** node.  
2. In the configuration of the node:  
    1. Set the **Run trigger** to **one time**.  
    2. Select the **Immediately** tab.  
    3. Click **Apply**.  
3. Add the **Local File** node.  
4. In the configuration of the node:  
    1. Upload the file with the list of stores.
    2. Click **Apply**.  
5. Add the **Import to Catalog** node.
6. In the configuration of the node:  
    1. Select the catalog to which the file will be imported.  
    2. As the primary key, enter the name of the column which contains the unique identifiers of the items.
    3. Click **Apply**.
6. Add the **End** node.