--- title: "Updating Slate Data with an Export/Import Process" slug: "updating-slate-data-with-an-exportimport-process" status: "new" updated: 2026-08-07T14:41:18Z published: 2026-08-07T14:41:18Z canonical: "knowledge.technolutions.net/updating-slate-data-with-an-exportimport-process" --- > ## Documentation Index > Fetch the complete documentation index at: https://knowledge.technolutions.net/llms.txt > Use this file to discover all available pages before exploring further. # Updating Slate Data with an Export/Import Process [Rules](/v1/docs/rules-automation) are the preferred method for automating data updates in Slate. However, when you need to transform data using complex query logic that exceeds rule capabilities, you can use **an export/import process**. An export/import process uses two components to update data: - **Export query:** Transforms your data using query elements such as subquery exports. This query outputs its results to the `incoming` folder on the Technolutions SFTP server so that it can be processed by regular SFTP import processes. - **Source format:** Imports the file created by the export query. Because the query has already transformed the data, you can map the source format like any standard import. > [!WARNING] > 📝 Note > > This process should run **only once per day** to help maintain system performance. If the workflow requires multiple updates per day and is too complex for rules, simplify the process before using this method. ## Step 1: Create and configure the export query **Before you begin:** Do not change the query execution mode. It must remain set to "Retrieve all records each time query is run" (the default setting). 1. Create a query on a relevant base. *Note: The base of your query does not need to match the base of the object you’re trying to update.* 2. Build a query to find relevant objects: - Add **filters** so the query exports only relevant data. Limit the number of matching rows by filtering out old or inactive records. - Use **exports**, including subquery exports, to transform the data in the desired way. - Include at least one export that is a **unique identifier** (for example, the GUID of the relevant object). - During initial setup, limit results to test records. 3. Select **Schedule Export** and configure the following settings: | Setting | Value | Notes | | --- | --- | --- | | **Status** | Inactive | Leave inactive until testing is complete. | | **Destination** | Technolutions SFTP | | | **Path** | `../incoming/[folder]/[filename]_%FT%T.xlsx` | Start with `../incoming` to access the incoming folder. Include time variables to prevent overwrites. | | **Encryption** | Secure Transfer | | | **Format** | Excel Spreadsheet | Use other formats only for specific use cases. | | **Suppress Empty** | Suppress empty files | Prevents unnecessary automation runs. | | **Requested Delivery Window** | Once daily during off-hours | Schedule when your team is not actively using the system to prevent performance issues. | | **Requested Weekdays** | All days | | | **Requested Priority** | Normal Priority | | | **Notification** | (Optional) | Enable if you need outcome notifications. | ![](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/schedule_export.png) 4. Save the settings. Return to the query landing page and select **Run to SFTP**. This generates a file on the SFTP server for the source format to process. ![](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Screenshot 2025-08-21 at 1.40.39 PM.png) ## Step 2: Create the source format 1. Go to **Database** → **Source Formats**. 2. Select **New Source Format**. 3. On the **General** tab, configure the following settings: | Setting | Value | Notes | | --- | --- | --- | | **Status** | Active | When set to Active, Slate will begin detecting relevant files in `incoming`. The system will process your file format but does not import data until 'Remap Active' is turned on. | | **Name** | *My Import/Export Process* | Choose a descriptive name that matches the query name. | | **Format** | *Excel* | Enter the format type, such as Excel. | | **Type** | Cumulative/Replaceable | Select **One-Time / Differential** to retain each source during testing. | | **Remap As Of Date** | *01/01/2026* | Enter the current date. | | **Remap Active** | Inactive | Leave **Inactive** until mapping is complete. | | **Scope** | *Person/Dataset Record* | Select the appropriate record type. If targeting another object, choose the parent record type. | | **Dataset** | *Person/Application Records* | Select the appropriate record type. If targeting another object, choose the parent record type. | | **Unsafe** | *Safe* | See [Safe / Unsafe](/v1/docs/safe-unsafe). If you are unsure, select **Safe**. | | **Hide** | Hide source interactions | **Hide source interactions** prevents an interaction from being created every time the automation runs. | | **Disable Update Queue** | Prevent records from entering update queue upon import (disable rules from firing) | | | **Update only** | Update only | | | **Notification** | *No notifications* | If needed, set up notifications for this source format. | ![](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Screenshot 2025-08-20 at 4.20.36 PM.png) 4. On the **Format Definition** tab, paste the following code for Excel Spreadsheet imports: ```xml ``` If you chose an export format other than Excel Spreadsheet, use the [Format Definition XML](/v1/docs/format-definition-xml#flat-file-examples) that applies to your query export settings. 5. On the **Import Automation** tab, enter the import path in the **Import Path/Mask** field by adapting the export path from the query: remove the `../incoming/` prefix and replace the timestamp variables with a single wildcard (`*`). Example: `inquiry_updates/entities_*.xlsx` will match any file that starts with `entities_` in the `inquiry_updates` folder. ![](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Screenshot 2025-08-20 at 4.21.30 PM.png) 6. Save the source format. 7. Wait 10-15 minutes for the background pickup process to run. 8. Select the source format name to return to it. **Edit Mappings** should now be available. If the mappings are blank, allow more time for the files to process. 9. Map your fields and any prompt value mappings as you would for any other source format. ## Step 3: Test 1. Go to **Database** -> **Test & Other Environments** and request a refresh of your test environment. Wait for the environment to provision. 2. In Test, find your query and inactivate the test record filter, then use **Run to SFTP**. This generates a file in the Test incoming folder, but the data represents actual record data. 3. Open the source format and select **Edit**. Change the **Remap Active** setting to **Active** and save. ![](https://cdn.us.document360.io/cd8ea7a6-07f3-4846-a554-627ac016d3e3/Images/Documentation/Screenshot 2025-08-28 at 2.03.27 PM.png) 4. Go to **Database** and select **Force Process Pickup** to pick up the new file. 5. After pickup runs, select **Force Process Import** to process the queued files. 6. Confirm that the imports completed successfully. Find the records you used and confirm that their data was updated as expected. If you need to make changes, make them in Production and then re-provision your Test environment. 7. Once you’ve confirmed the behavior in Test, return to Production for a final test. 8. In Production, set **Remap Active** to **Active** on the source format. 9. Wait for the import process to run. If you are certain it will not disrupt any other processes, select **Force Process Import**. 10. Check the test records to confirm that their data was updated as expected. ## Step 4: Activate 1. In the query, inactivate or remove the test data filter. Confirm that the matching row count looks correct. 2. Run the query normally with **Run Query**. Review the results as a final data check. 3. Return to the query editor, select **Schedule Export**, and set it to **Active**.