Dynamically reference data table rows in webform fields for edits by a user
Seeking guidance on a request to take a variable amount of data in a column and split each cell into its own field on a webform that could be updated in Email: Send a Form action. The starting file is fairly simple - email address, and then a column that has elements aligned to that email address that could have between 1-10 unique rows. I'm looking for a way to reference each individual cell in a webform field to eventually be updated by a user.
This is where I landed and am wondering if there is a way for this to be more streamlined:
- parent process- get unique rows by email address > start a pushbot for each row
- subprocess- tables: apply filters to find all unique data elements for the single email address (between 1-10 possibilities) > convert column with unique data elements to text > convert text to data table (to get the unique data elements from rows to columns to dynamically reference in handlebars in form fields)
- I can figure out the conditions to only conditionally show fields depending on the number of row matches for an email address. I'm mainly just struggling if there is an easier way to go about this.
Long question but thanks in advance if you've made it this far!
Best Answers
-
Hey @Meghan_catalytic,
I would do Tables: Get unique rows using the email address (as key). Once you have that, you can start a subprocess for each individual.
In your subprocess, use Tables: Apply filters on the email address to get the list corresponding to that individual. That will output a number of matching rows field (an integer). Then you can use Tables: Add a row and Tables: Apply formulas to columns to insert the rowIndex.
You'll then need 10 Tables: Look up data in a column steps to look up the value corresponding to that number (using the row index as the look up column). These should have a condition to only start if that field's number (1-10) >= number of matching rows from your filter step; dependency relationship is completed/skipped.
You can then use Email: Send a form with your fields, and set the values returned from your look up as the defaults. Once returned, you'll have the same number of Tables: Update a row steps, with similar conditions and dependencies.
Of course if the contacts who should receive the form are part of the Catalytic team, the simplest solution would be to use a table-type field.
Thomas
5 -
I connected with @Thomas_catalytic and there are a few ways to do this:
- If the recipients of the form have Catalytic accounts, data table after filters applied can be embedded directly into the form as a field with type of Table
- If the recipients of the form do not have Catalytic accounts:
a. in subprocess, apply filters > convert data table to text > convert text to data table (ensuring the values are in unique columns) > add Row Index column > look up step to return all possible columns for that record (unique row per each response) > embed the {{lookup--column-1}}, {{lookup--column-2}}, etc in 'default' field on the web form. > add conditions on each field based on number of matching rows
b. in subprocess, apply filters > add row index column > look up step (added 10 times to return each row and it's corresponding value) > conditions on each look up step based on number of matching rows > embed the output names from all lookup steps into 'default' field on web form
0