I’m setting up an AppSheet automation to automatically add rows to a child table when specific conditions are met in a parent table. The goal is to insert a record into the child table whenever a part’s status in the parent table is changed to “replaced,” while preventing duplicates. However, the current AppSheet automation UI makes it difficult to dynamically handle multiple columns for this purpose.
The parent table, Service Saws Checklist, contains service reports identified by a key column like [Report Identifier]. It has over 100 individual Enum columns representing the status of different parts (e.g., [Blade Status], [Motor Status], etc.), with possible values like “good”, “fair”, “replaced”, “damaged”, and “not equipped.” A virtual column [Parts Used] links to the child table via REF_ROWS(“Parts Used”, “Report Identifier”).
The child table, Parts Used, stores details of replaced parts. It has a key column like [Unique ID of Parts Used], a [Report Identifier] Ref column, a [Part] column (Enum), a [Quantity] column, and optional fields like [From] and [Notes].
What I need is an automation bot that triggers when a row in the Service Saws Checklist is updated. If any part’s status changes to “replaced” (and wasn’t already marked that way), a new row should be added to Parts Used. Each added row must include a unique ID, the parent [Report Identifier], the part name (matching the Enum), and a quantity of 1. Crucially, the automation must not add duplicate part entries—if a part has already been logged as “replaced” in the child table for that report, it should not be added again.
Due to the wide format of the parent table (each part as a separate column), I need an efficient way to dynamically detect which parts were changed to “replaced” and add only those whose [Report Identifier] isn’t already present in the child table. Restructuring the schema isn’t an option, so the solution must work within this column-based setup.
I know its a lot to read I just wanted to list out the situation thoroughly. Thank you in advance!
