---
title: "Table maintenance process guide"
canonical_url: "https://www.nutrient.io/guides/workflow-automation/faq/creating-a-table-maintenance-process/"
md_url: "https://www.nutrient.io/guides/workflow-automation/faq/creating-a-table-maintenance-process.md"
last_updated: "2026-05-30T02:20:01.449Z"
description: "Discover how to implement table maintenance processes in Nutrient Workflow. Download sample files and enhance your workflow with our step-by-step guide."
---

# Master table maintenance with Nutrient Workflow processes

_**Please Note: All of the files referenced in this article are available in the.ZIP file at the bottom of the article. This article is intended for advanced Nutrient Workflow users with some development experience**_

---

This article is a companion to our webinar, "[Managing Tables with a Grid or Process,](https://www.nutrient.io/guides/workflow-automation/training/webinars/table-maintenance-with-a-process-or-grid.md)" where we discussed two different solutions for building your own Nutrient Workflow process to make updates to a data table.

You can download the files referenced below (at the bottom of this article in a.ZIP file) and import them into your Nutrient Workflow instance to see the sample processes in action.

## Installing and using sample table maintenance processes

---

**Note**: By convention, we place the reports that support forms into a separate category named “Form Data Reports.” This is not a requirement but makes locating these reports easier.

---

## Table maintenance with grid process

This process uses an Nutrient Workflow grid question to help display and manage a table of data for use in other parts of your Nutrient Workflow installation. The form holding the grid has custom JavaScript that manages the user’s choices to create, edit or delete records. Unlike the other process, all changes are queued up in the grid object and the changes are only saved to the database when the form is submitted. The table will be empty initially, but you can fill it by using the process itself.

## Installation

Import the process file named Grid_for_Custom_Table_Maintenance.json to create the needed workflow. In the Nutrient Workflow database or (if you have the private database option) in your private database, create the Cust_Part_Tech list table using the Cust_Part_Tech.sql file included in the installation package. You may need the Nutrient Workflow support team to help install this file if you do not have access to a private database.

You will also need to import one custom report via the import file named cust_part_tech_list.irml and name the resulting report cust_part_tech_list as there is code in the process that searches for this particular name. **Changing this name will require changes to the javascript in the form listed below and is beyond the scope of this document.**

### Form Task ‘Accept Changed to Parts Table’

**![table.png](https://help7.integrify.com/hc/article_attachments/1500019206482/table.png)**

The button labeled “EXAMINE GRID OBJECT IN CONSOLE” allows you to use your browser’s debugging tool to examine the structure of the JSON object that the grid creates when it stores its data in the Nutrient Workflow database. It’s not necessary for the full functionality of this example but is useful if you want to know how the grid’s data is packaged for storage.

### DB Push Task ‘Replace Cust_Part_Tech table with Updated Grid’

The SQL statement below takes in a JSON object stored in the Nutrient Workflow database and converts it into a dataset that can be used to

SQL statement in the DB Push task:

--delete previous interim tables

DROP TABLE IF EXISTS [CUST_PART_TECH_NEW];

--copy the data from the just-completed grid

--into a new table named cust_part_tech_new

--this statement also parses the JSON object

--that the grid data is stored in for insertion into the new table

select derived.* into [CUST_PART_TECH_NEW]

from (

SELECT *

FROM OPENJSON (@GRID, N'$.gridCellValues')

WITH (

Appliance varchar(100) N'$.Appliance.Answer', -- Select List

Mechanism varchar(100) N'$.Mechanism', -- Short Text

Technician varchar(100) N'$.Technician'

) ) derived ;

--delete any existing backup tables

DROP TABLE IF EXISTS [CUST_PART_TECH_OLD];

--make the previous data table into the backup copy

EXEC sp_rename [CUST_PART_TECH], [CUST_PART_TECH_OLD];

--make the newly created table the current data table

EXEC sp_rename [CUST_PART_TECH_NEW], [CUST_PART_TECH];

## Vendor maintenance process

This process uses an Nutrient Workflow search box question and a series of matching fields to create new records and edit or delete existing records in the specified table. Each time the save or delete button is pressed, the process performs a database update immediately in the background using a parallel process path. The form task remains active for further updates.

## Installation

Import the process file named Vendor_Maintenance.json to create the needed workflow. In the Nutrient Workflow database or (if you have the private database option) in your private database, create the Cust_Ship_To table using the Cust_Ship_To.sql file included in the installation package. You may need the Nutrient Workflow support team to help install this file if you do not have access to a private database.

You will need to update the “use [70_demo2];” statement in the SQL code that is embedded in the task named Make Backup of Ship_To Table to match your database environment, or the backup step may fail. You will also need to update the javascript code in the form that supports the Edit Ship_To table form task. The beginning part of each insert, update, and delete statement has a reference to a database named [70_demo2] which needs to be removed or updated to match your environment. You will also need to make a similar change in the database query supporting the search box question on the main record editing form.

---

**This process can be downloaded** and imported into your Nutrient Workflow instance. [Directions for importing processes](https://www.nutrient.io/guides/workflow-automation/admin-guide/processes/process-importing.md).

[![Download the Files](@/assets/guides/workflow-automation/files/1165/button_download-the-process.png)](/assets/nutrient-media/guides/workflow-automation/files/1652/table_maintenance.zip)

---

**Note:** Processes are zipped for easier download. Click [here](https://support.microsoft.com/en-us/windows/zip-and-unzip-files-f6dde0a7-0fec-8294-e1d3-703ed85e7ebc#:~:text=Right%2Dclick%20the%20file%20you,%3E%20Compressed%20\(zipped\)%20folder.&text=Open%20File%20Explorer%20and%20find,zipped%20folder%20to%20open%20it.) for more information on using zip files.

---
---

> Part of [Frequently asked questions](/guides/workflow-automation/faq.md)

## Related pages

- [Add tables to email notifications easily](/guides/workflow-automation/faq/adding-tables-to-email-notifications.md)
- [Connect Nutrient Workflow to an external SQL Server database](/guides/workflow-automation/faq/adding-sql-server-db-to-nutrient-workflow.md)
- [Streamline task management with the Form Assigner](/guides/workflow-automation/faq/assign-future-tasks-with-the-form-assigner.md)
- [Customize your login screen with these easy tips](/guides/workflow-automation/faq/can-i-change-the-login-screen.md)
- [Changing milestone task names in project management](/guides/workflow-automation/faq/can-i-change-the-name-of-a-milestone-task-on-a-process-in-production.md)
- [Authenticate HTML forms with SAML securely](/guides/workflow-automation/faq/can-we-authenticate-with-saml-when-hosting-html-forms-outside-the-nutrient-workflow-portal.md)
- [Migrating requests in workflow automation processes](/guides/workflow-automation/faq/can-i-migrate-a-group-of-requests-from-one-version-of-a-process-to-an-updated-version.md)
- [Mastering the coalesce technique for workflows](/guides/workflow-automation/faq/coalescing-data-ai-an-advanced-nutrient-workflow-technique.md)
- [Streamline onboarding with ad-hoc related requests](/guides/workflow-automation/faq/creating-ad-hoc-related-requests.md)
- [Preventing request ID creation until task completion](/guides/workflow-automation/faq/can-we-prevent-a-new-request-id-from-being-created-until-a-task-completed.md)
- [Customize your Nutrient Workflow logo with ease](/guides/workflow-automation/faq/custom-logo.md)
- [Document generation vs. PDF generator in workflow automation](/guides/workflow-automation/faq/document-generation-vs-pdf-generator.md)
- [Maximize task management with Nutrient Workflow's solutions](/guides/workflow-automation/faq/does-nutrient-workflow-support-leap-year-dates.md)
- [Do disabled users receive notifications in Nutrient Workflow?](/guides/workflow-automation/faq/do-notifications-get-sent-out-to-users-that-have-been-disabled.md)
- [Enhance Nutrient Workflow security with two-factor authentication](/guides/workflow-automation/faq/does-nutrient-workflow-support-two-factor-authentication.md)
- [Embed Outlook and Google calendars in your dashboard](/guides/workflow-automation/faq/embedding-calendars-in-dashboards.md)
- [Understanding task resets and user reassignments](/guides/workflow-automation/faq/does-the-user_recent_activity-store-data-when-a-user-resets-or-re-assign-a-task.md)
- [Streamline file uploads to SharePoint with Nutrient Workflow](/guides/workflow-automation/faq/can-nutrient-workflow-pass-files-into-sharepoint.md)
- [Paste spreadsheet rows into a grid](/guides/workflow-automation/faq/how-can-i-paste-spreadsheet-rows-into-line-items.md)
- [Efficiently extract grid data for custom tables](/guides/workflow-automation/faq/how-can-i-extract-grid-data-to-add-it-to-custom-tables.md)
- [Enable AUTH for secure Nutrient Workflow and Redis setup](/guides/workflow-automation/faq/how-do-i-enable-auth-for-nutrient-workflow-to-redis-communication.md)
- [Force users to change passwords on next login](/guides/workflow-automation/faq/how-do-i-force-a-user-to-change-their-password-on-the-next-login.md)
- [Access your private database server easily](/guides/workflow-automation/faq/how-do-i-access-my-private-database-server.md)
- [Enhance local communication in your application](/guides/workflow-automation/faq/how-do-i-force-local-communication-within-the-application.md)
- [How to limit file attachment size in Nutrient Workflow](/guides/workflow-automation/faq/how-do-i-limit-the-allowed-max-file-attachment-size.md)
- [Import active directory users with ADSync easily](/guides/workflow-automation/faq/how-do-i-import-active-directory-users-into-nutrient-workflow-using-adsync.md)
- [Make your process lines straight with grid option](/guides/workflow-automation/faq/how-do-i-make-the-lines-in-a-process-straight.md)
- [Easily prefill contact search fields in forms](/guides/workflow-automation/faq/how-do-i-prefill-in-a-contact-search.md)
- [Understanding user concurrency in Nutrient Workflow](/guides/workflow-automation/faq/how-is-user-concurrency-determined-for-my-installation.md)
- [Schedule a process](/guides/workflow-automation/faq/how-do-i-schedule-a-process.md)
- [Submit a help ticket at the Nutrient Workflow support site](/guides/workflow-automation/faq/how-do-i-submit-a-support-ticket.md)
- [Editing request details in active workflows](/guides/workflow-automation/faq/how-do-you-edit-request-description-and-other-fields-after-the-workflow-has-started.md)
- [Clear browser cache for smooth workflow](/guides/workflow-automation/faq/how-to-clear-your-browser-cache.md)
- [Master dynamic task and request naming effectively](/guides/workflow-automation/faq/how-to-configure-dynamic-task-and-request-names.md)
- [Automate your report from a set starting date](/guides/workflow-automation/faq/i-would-like-to-set-a-report-to-run-from-a-set-date-say-1-1-15-through-the-current-day-today-how-can-i-set-my-report-to-do.md)
- [Edit request names seamlessly with dynamic names](/guides/workflow-automation/faq/is-there-a-way-to-edit-the-name-of-a-request-after-it-has-been-submitted.md)
- [How to reset your Nutrient Workflow password easily](/guides/workflow-automation/faq/i-forgot-my-password.md)
- [Understanding the Nutrient Workflow and PSPDFKit acquisition](/guides/workflow-automation/faq/pspdfkit-acquisition.md)
- [Optimize your workflow with Microsoft Nutrient Workflow integration](/guides/workflow-automation/faq/nutrient-workflow-integrate-microsoft-products.md)
- [Understanding requesters vs. recipients in workflows](/guides/workflow-automation/faq/the-difference-between-a-requester-and-a-recipient.md)
- [Understanding time_out configuration in workflow automation](/guides/workflow-automation/faq/is-there-any-negative-impact-if-we-change-the-time_out-configuration-on-a-task-in-a-process-in-status-production.md)
- [Understanding account lockout rules in Nutrient Workflow](/guides/workflow-automation/faq/is-there-any-way-to-configure-account-lockout-rules.md)
- [Discover Nutrient Workflow's browser compatibility](/guides/workflow-automation/faq/what-browsers-does-nutrient-workflow-support.md)
- [Best practices for testing workflows in Nutrient Workflow](/guides/workflow-automation/faq/what-are-best-practices-for-testing-in-nutrient-workflow.md)
- [Optimize your workflows with Excel integration](/guides/workflow-automation/faq/using-excel-to-enhance-your-automation.md)
- [Streamline task assignments with Assigner tasks](/guides/workflow-automation/faq/using-assigner-tasks.md)
- [Understanding character limits for form inputs](/guides/workflow-automation/faq/what-character-limits-apply-to-the-form-input-fields.md)
- [Upgrade your select list fields for better forms](/guides/workflow-automation/faq/upgrading-select-list-fields.md)
- [What Does 'Create a Copy of this Request' Do?](/guides/workflow-automation/faq/what-does-aucreate-a-copy-of-this-request-au-do.md)
- [Key steps for successful Nutrient Workflow load balancing](/guides/workflow-automation/faq/what-do-i-need-to-change-when-i-load-balance-nutrient-workflow.md)
- [Enhance your subscription with admin coaching support](/guides/workflow-automation/faq/what-is-admin-coaching.md)
- [Expert advanced technical support for Nutrient Workflow](/guides/workflow-automation/faq/what-is-advanced-technical-support-ats.md)
- [Best practices for archiving request data](/guides/workflow-automation/faq/what-is-the-best-practice-for-archiving-request-data-eg-attachments.md)
- [What is 'Submit on Behalf of:' when starting a new request?](/guides/workflow-automation/faq/what-is-submit-on-behalf-of-when-starting-a-new-request.md)
- [Streamline workflows with the PDF Generator Task](/guides/workflow-automation/faq/what-is-the-pdf-generator-task.md)
- [Future logging features for workflow automation](/guides/workflow-automation/faq/when-a-nutrient-workflow-administrator-performs-a-task-resets-or-redo-completion-is-there-a-logging-table-where-this-information-is-st.md)
- [Essential guide to workflow versioning](/guides/workflow-automation/faq/when-to-version-a-production-workflow.md)
- [Understanding the iapprove master root account](/guides/workflow-automation/faq/what-is-the-iapprove-account.md)
- [Fixing missing fields in form data settings](/guides/workflow-automation/faq/why-are-fields-from-my-form-not-showing-up-in-data-configurations.md)
- [What is the difference between Monitor and Manage Requests?](/guides/workflow-automation/faq/what-is-the-difference-between-monitor-and-manage-requests.md)
- [Understanding Nutrient Workflow log files for troubleshooting](/guides/workflow-automation/faq/where-are-the-logs-for-my-onpremise-installation-what-do-they-contain-and-what-should-i-look-out-for.md)

