Update dropdown with values from the same column using Bridge

We have a sheet to track new employees, their roles, locations, etc. When new roles are created and added to the roles column, I want to run a bridge workflow to update the dropdown with the new role to ensure the dropdown list contains all existing roles. I have a bridge workflow setup to test this, but I have only been able to update a different column in the sheet. Is there a way to update the Roles dropdown using the values from the Roles column?

Thanks!

@Brian_Richardson @Genevieve P.

Tags:

Answers

  • Brian_Richardson
    Brian_Richardson Overachievers Alumni

    Sure. Smartsheet API doesn’t care where you get the array from. So, if you have it working already to read the list of choices in the column and update a different column, just update the Role column instead of the other column.

    BRIAN RICHARDSON | PMO TOOLS AND RESOURCES | HE|HIM

    SEATTLE WA, USA

    IRON MOUNTAIN

  • Dylan T
    Dylan T ✭✭✭✭
    edited 10/18/24

    @Brian_Richardson, are you saying to use an API call to update the column after I've sorted and filtered the list? When I try and load the new array into the original column I get the following error message:

    workflow execution failed: Plugin Error INVALID_DATA : failed to execute extension module : Column titles must be unique.

    The error is from the last step in the below.

  • Brian_Richardson
    Brian_Richardson Overachievers Alumni

    In the update column step don’t put a name unless you’re trying to rename the column. Make sure you have the right column ID for the Role column. You can get that from a quick Get Sheet in a temporary workflow or by making the call in Postman.

    I was speaking generally about the APi call. Update column should work great.

    If you google for it, there’s actually instructions on this exact workflow posted in Smartsheets docs as an example.

    BRIAN RICHARDSON | PMO TOOLS AND RESOURCES | HE|HIM

    SEATTLE WA, USA

    IRON MOUNTAIN

  • Dylan T
    Dylan T ✭✭✭✭

    now I'm getting this error after updating the column id to the target column and removing a name in the column name on the update column step.

  • Georgie
    Georgie Employee

    Hi @Dylan T,

    It looks like the error is in the second module (the “Sort Object Array” module). Since the message in the error states “attempt to index a nil value”, I’d recommend double checking that the array in the run that errored had data.

    This help article contains step-by-step instructions, including how to set up the last module: Update your dropdown columns with Bridge workflows

    If you’re still running into issues, could you provide more screenshots showing each module of the workflow clicked on, so that we can see the setup for each module showing in the right panel? 

    Thanks,

    Georgie

  • Dylan T
    Dylan T ✭✭✭✭

    Hi @Georgie,

    I was getting a weird error so I rebuilt the workflow. I haven't set up the trigger yet so I could test faster. Here are the screenshots and the new error message I'm receiving.

    {{states.startstate.smartsheet.get_sheet.sheet.columns.5}}

    Any insight would be much appreciated.

    Thanks!

  • Brian_Richardson
    Brian_Richardson Overachievers Alumni

    What does the output of your script look like? Generally you don’t need JavaScript to do a column dropdown list update unless you’re doing something fancy like duplicate removal.

    BRIAN RICHARDSON | PMO TOOLS AND RESOURCES | HE|HIM

    SEATTLE WA, USA

    IRON MOUNTAIN

  • Dylan T
    Dylan T ✭✭✭✭

    Here is my JS. I'm sorting and removing duplicates. The JS worked fine when loading to a different column.

    Script name: Sort Array and Remove Duplicates
    function getUniqueValues(inputArray) {
    // Remove duplicates by converting the array to a Set
    const uniqueValues = Array.from(new Set(inputArray));

    // Sort the array alphabetically using localeCompare
    uniqueValues.sort(function(a, b) {
    return a.localeCompare(b);
    });

    return uniqueValues;
    }

    // Example usage:
    const originalArray = yourArray;
    const uniqueArray = getUniqueValues(originalArray);
    return uniqueArray;