How to setup Bridge Junction for Update Row w/ multiple matches

Zeb Loewenstein
edited 01/25/23 inAPI & Developers

I am trying to leverage Bridge to update all cells of a column where there is a matched ID between a source sheet and a destination sheet. In this scenario there would be multiple matches in the destination sheet.

I'm struggling to determine how the Bridge workflow would identify which rows in the destination sheet to update. I've tried using both 'Get Row' (for the source sheet information) and 'Get Sheet' (for the destination sheet information), then pair possible data references for matches against the updated row (source).

  1. Which conditional junction would you use and how would you set up the criteria / states?
  2. Is Bridge limited to only updating the 1st found match, or is it possible for an Update Row to be executed for multiple matches in a single run?

Thanks for the help,

Zeb

Tags:

Answers

  • Genevieve P.
    Genevieve P. 员工管理

    Hey@Zeb Loewenstein

    Can you clarify what your ideal output scenario would be?

    If there are multiple matches in the destination sheet, do you want duplicate data entered into those rows?

    For example, if this is your source sheet:

    A - Apple B - Banana

    And this is your destination:

    A - A - A -

    Do you want it to output:

    A - Apple A - Apple A - Apple


    Side note: as much as I love Bridge and am happy to think through options here, do you have access to Data Mesh? If you do, I would simply set up a workflow inData Meshto achieve your goals. This will map data from one Smartsheet sheet to another based on a key matching value.

    You could also use a formula (INDEX(MATCH combination), which would repeat the output in the destination based on the first matching content in the source sheet.

    Cheers,

    Genevieve

  • @Genevieve P.I hadn't considered DataMesh for this and is a great suggestion; sending Index / Match formulas discretely within the Bridge workflow also fixes.

    Thank you!

    Zeb

  • @Genevieve P.I can clarify with another example, specifically one where DataMesh doesn't work because in my use case I'm trying to update rows in a downstream sheet which meet a couple different conditions.

    When our intake (source) sheet updates a Resource Type's column (e.g. Project Manager) I want to perform an Update Row for the Resource's Name when it finds a row that meets two different pieces of information based on our Status:

    1. Intake ID # (exists in both the source and destination sheet)
    2. Role (exists in only the destination sheet)

    For example: when Status is = "Assignment Needed", and the Role Type column "Project Manager" changes to a different value, I'm trying to code Bridge to update the Resource Name column in the downstream sheet for where it matches both the Intake ID # and where Role contains "PM". I would then have different workflows set up for each of the other roles. Before a project gets started there may be several changes to each different resource type, so having the Update Row function work like this would avoid unnecessary rows from being created.

    Image 2-9-23 at 8.19 AM.jpeg
    Image 2-9-23 at 8.09 AM.jpeg


    Trying to implement the above structure I get stuck on the following Equals junction:

    First Value: {{states.Get Row.smartsheet.get_row.row.cells.Intake ID #.displayValue}}

    • Intended to pull the Intake ID # from the source sheet

    Second Value: {{states.Assignment Needed.smartsheet.get_sheet.sheet.rows.cells.Intake ID #.displayValue}}

    • Intended to pull the Intake ID # from the destination sheet
    Image 2-9-23 at 8.24 AM.jpeg


  • Genevieve P.
    Genevieve P. 员工管理

    Hi@Zeb Loewenstein

    With Bridge, I would potentially suggest going the more programmatic route and try making a HTTP Call to bulk update rows, or create a Javascript module that handles the bulk update of rows.

    I don't have a direct example I can show you at this time for that route, however there is a way you can do this using Smartsheet Formulas directly in the sheet in the meantime.

    An INDEX(MATCH formula can index your source sheet then bring back a value in the correct column based on the ID and what value is in your Role cell.

    For example, if this is my source sheet:

    截图2023-02-10在10.33.07.png

    Then in my Destination Sheet, I would use this formula:

    =IFERROR(INDEX({All Columns}, MATCH([Intake ID #]@row, {Intake ID}, 0), IF([email protected]= "Project Manager", 2, IF([email protected]= "Business Analyst", 3, IF([email protected]= "CSM", 4)))), "")

    截图2023-02-10在10.29.14.png

    The MATCH is finding the Matching Intake ID across sheets. Then the IF statement at the end is finding the correct column number (in my sheet I only have 6 columns in the first {all columns} range). For your sheet, I would suggest adding a helper column right next to your "Project Manager" column to bring the ID closer, so your {all columns} range doesn't reference the columns in between them.

    I hope that helps for now!

    Cheers,

    Genevieve

@Neil Watson<\/a> You should be able to use the LOWER function for evaluation but still output the version that includes caps.<\/p>

=IFERROR(INDEX(DISTINCT(LOWER(<\/strong>COLLECT(.....................))<\/strong>), 1), \"//www.santa-greenland.com/community/discussion/100067/\")<\/p>


<\/p>

I haven't tested it yet, but I feel like it should work.<\/p>"},{"commentID":386435,"body":"

Right. There are already a number of posts here in the community detailing how to pull a distinct or unique list from another sheet via formula. It usually involves the formula above without the LOWER function. The number 1 would output the first distinct value. Changing that to a 2 will output the second distinct value, so on and so forth. I usually use a helper column with the numbers manually entered so I can apply it as a column formula.<\/p>"}]}},"status":{"statusID":3,"name":"Accepted","state":"closed","recordType":"discussion","recordSubType":"question"},"bookmarked":false,"unread":false,"category":{"categoryID":320,"name":"API & Developers","url":"https:\/\/community.smartsheet.com\/categories\/api-developers","allowedDiscussionTypes":[]},"reactions":[{"tagID":3,"urlcode":"Promote","name":"Promote","class":"Positive","hasReacted":false,"reactionValue":5,"count":0},{"tagID":5,"urlcode":"Insightful","name":"Insightful","class":"Positive","hasReacted":false,"reactionValue":1,"count":0},{"tagID":11,"urlcode":"Up","name":"Vote Up","class":"Positive","hasReacted":false,"reactionValue":1,"count":0},{"tagID":13,"urlcode":"Awesome","name":"Awesome","class":"Positive","hasReacted":false,"reactionValue":1,"count":0}],"tags":[{"tagID":369,"urlcode":"bridge-by-smartsheet","name":"Bridge"}]},{"discussionID":107674,"type":"question","name":"API PUT and Body help for Cell link from a cell in sheet \"a\" to sheet \"b\"","excerpt":"I am having trouble linking a cell from sheet a to b. I am new to using API and possibly just getting the call wrong? or the body. Any help would be appreciated. PUT: https:\/\/api.smartsheet.com\/2.0\/sheets\/4098048888098692\/rows\/1370574824361860\/cells\/259016080 Body: { \"cells\": [ { \"linkinFromCell\": {…","snippet":"I am having trouble linking a cell from sheet a to b. I am new to using API and possibly just getting the call wrong? or the body. Any help would be appreciated. PUT:…","categoryID":320,"dateInserted":"2023-07-17T16:23:24+00:00","dateUpdated":"2023-07-18T10:24:44+00:00","dateLastComment":"2023-07-18T16:45:05+00:00","insertUserID":135530,"insertUser":{"userID":135530,"name":"Carlo Rodriguez","url":"https:\/\/community.smartsheet.com\/profile\/Carlo%20Rodriguez","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-07-21T15:50:31+00:00","banned":0,"punished":0,"private":false,"label":"✭✭"},"updateUserID":91566,"lastUserID":135530,"lastUser":{"userID":135530,"name":"Carlo Rodriguez","url":"https:\/\/community.smartsheet.com\/profile\/Carlo%20Rodriguez","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-07-21T15:50:31+00:00","banned":0,"punished":0,"private":false,"label":"✭✭"},"pinned":false,"pinLocation":null,"closed":false,"sink":false,"countComments":2,"countViews":60,"score":null,"hot":3379310909,"url":"https:\/\/community.smartsheet.com\/discussion\/107674\/api-put-and-body-help-for-cell-link-from-a-cell-in-sheet-a-to-sheet-b","canonicalUrl":"https:\/\/community.smartsheet.com\/discussion\/107674\/api-put-and-body-help-for-cell-link-from-a-cell-in-sheet-a-to-sheet-b","format":"Rich","tagIDs":[472,563],"lastPost":{"discussionID":107674,"commentID":385785,"name":"Re: API PUT and Body help for Cell link from a cell in sheet \"a\" to sheet \"b\"","url":"https:\/\/community.smartsheet.com\/discussion\/comment\/385785#Comment_385785","dateInserted":"2023-07-18T16:45:05+00:00","insertUserID":135530,"insertUser":{"userID":135530,"name":"Carlo Rodriguez","url":"https:\/\/community.smartsheet.com\/profile\/Carlo%20Rodriguez","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-07-21T15:50:31+00:00","banned":0,"punished":0,"private":false,"label":"✭✭"}},"breadcrumbs":[{"name":"Home","url":"https:\/\/community.smartsheet.com\/"},{"name":"Get Help","url":"https:\/\/community.smartsheet.com\/categories\/get-help"},{"name":"API & Developers","url":"https:\/\/community.smartsheet.com\/categories\/api-developers"}],"groupID":null,"statusID":3,"attributes":{"question":{"status":"accepted","dateAccepted":"2023-07-18T16:45:08+00:00","dateAnswered":"2023-07-18T11:38:00+00:00","acceptedAnswers":[{"commentID":385713,"body":"

Hey @Carlo Rodriguez<\/a> <\/p>

This is how I've successfully added a cell-link using the API:<\/p>


<\/p>

PUT (with the destination sheet data): <\/p>

https:\/\/api.smartsheet.com\/2.0\/sheets\/XXXX\/rows\/X<\/a>XXX<\/p>


<\/p>

Body (with the source sheet data, but the initial ColumnID from the destination sheet to show where to put the link):<\/p>

{\n  \"cells\": [\n    {\n      \"columnId\": 11111,\n            \"value\": null,\n            \"linkInFromCell\": {\n                \"sheetId\": 22222,\n                \"rowId\": 33333,\n                \"columnId\": 44444\n            }\n    }\n     ]\n}\n<\/pre>


<\/p>

Let me know if this works for you!<\/p>

Cheers,<\/p>

Genevieve<\/p>"}]}},"status":{"statusID":3,"name":"Accepted","state":"closed","recordType":"discussion","recordSubType":"question"},"bookmarked":false,"unread":false,"category":{"categoryID":320,"name":"API & Developers","url":"https:\/\/community.smartsheet.com\/categories\/api-developers","allowedDiscussionTypes":[]},"reactions":[{"tagID":3,"urlcode":"Promote","name":"Promote","class":"Positive","hasReacted":false,"reactionValue":5,"count":0},{"tagID":5,"urlcode":"Insightful","name":"Insightful","class":"Positive","hasReacted":false,"reactionValue":1,"count":0},{"tagID":11,"urlcode":"Up","name":"Vote Up","class":"Positive","hasReacted":false,"reactionValue":1,"count":0},{"tagID":13,"urlcode":"Awesome","name":"Awesome","class":"Positive","hasReacted":false,"reactionValue":1,"count":0}],"tags":[{"tagID":472,"urlcode":"cell-linking","name":"Cell linking"},{"tagID":563,"urlcode":"api","name":"API"}]},{"discussionID":107600,"type":"question","name":"Drop Downs - Can a Response Trigger the Cell to Change Color?","excerpt":"Hello, Is there a functionality whereby a cell changes color when someone chooses a drop-down choice? For example, my drop-down choices are: Paid Overdue Sent Is there a way to trigger the cell to change to Green if 'Paid' is chosen, Red if 'overdue' is chosen, and Blue if 'Sent' is chosen? I know there are rules I can…","snippet":"Hello, Is there a functionality whereby a cell changes color when someone chooses a drop-down choice? For example, my drop-down choices are: Paid Overdue Sent Is there a way to…","categoryID":320,"dateInserted":"2023-07-13T22:02:54+00:00","dateUpdated":"2023-07-13T22:14:14+00:00","dateLastComment":"2023-07-13T22:25:34+00:00","insertUserID":163335,"insertUser":{"userID":163335,"name":"Stef Seaker","title":"Director of Operations","url":"https:\/\/community.smartsheet.com\/profile\/Stef%20Seaker","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-07-28T19:36:08+00:00","banned":0,"punished":0,"private":false,"label":"✭"},"updateUserID":163335,"lastUserID":161714,"lastUser":{"userID":161714,"name":"Carson Penticuff","url":"https:\/\/community.smartsheet.com\/profile\/Carson%20Penticuff","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/userpics\/B0Q390EZX8XK\/nBGT0U1689CN6.jpg","dateLastActive":"2023-08-01T02:27:55+00:00","banned":0,"punished":0,"private":false,"label":"✭✭✭✭✭"},"pinned":false,"pinLocation":null,"closed":false,"sink":false,"countComments":1,"countViews":65,"score":null,"hot":3378573508,"url":"https:\/\/community.smartsheet.com\/discussion\/107600\/drop-downs-can-a-response-trigger-the-cell-to-change-color","canonicalUrl":"https:\/\/community.smartsheet.com\/discussion\/107600\/drop-downs-can-a-response-trigger-the-cell-to-change-color","format":"Rich","lastPost":{"discussionID":107600,"commentID":385173,"name":"Re: Drop Downs - Can a Response Trigger the Cell to Change Color?","url":"https:\/\/community.smartsheet.com\/discussion\/comment\/385173#Comment_385173","dateInserted":"2023-07-13T22:25:34+00:00","insertUserID":161714,"insertUser":{"userID":161714,"name":"Carson Penticuff","url":"https:\/\/community.smartsheet.com\/profile\/Carson%20Penticuff","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/userpics\/B0Q390EZX8XK\/nBGT0U1689CN6.jpg","dateLastActive":"2023-08-01T02:27:55+00:00","banned":0,"punished":0,"private":false,"label":"✭✭✭✭✭"}},"breadcrumbs":[{"name":"Home","url":"https:\/\/community.smartsheet.com\/"},{"name":"Get Help","url":"https:\/\/community.smartsheet.com\/categories\/get-help"},{"name":"API & Developers","url":"https:\/\/community.smartsheet.com\/categories\/api-developers"}],"groupID":null,"statusID":3,"attributes":{"question":{"status":"accepted","dateAccepted":"2023-07-26T22:11:46+00:00","dateAnswered":"2023-07-13T22:25:34+00:00","acceptedAnswers":[{"commentID":385173,"body":"

Here is the basic process to conditionally format the background of a cell based on its contents. In this scenario, you would need to setup three format options, one for each color\/selection.<\/p>

\n
\n \n \"CF<\/img><\/a>\n <\/div>\n<\/div>\n
\n
\n \n \"CF<\/img><\/a>\n <\/div>\n<\/div>\n
\n
\n \n \"CF<\/img><\/a>\n <\/div>\n<\/div>\n
\n
\n \n \"CF<\/img><\/a>\n <\/div>\n<\/div>\n
\n
\n \n \"CF<\/img><\/a>\n <\/div>\n<\/div>\n


<\/p>"}]}},"status":{"statusID":3,"name":"Accepted","state":"closed","recordType":"discussion","recordSubType":"question"},"bookmarked":false,"unread":false,"category":{"categoryID":320,"name":"API & Developers","url":"https:\/\/community.smartsheet.com\/categories\/api-developers","allowedDiscussionTypes":[]},"reactions":[{"tagID":3,"urlcode":"Promote","name":"Promote","class":"Positive","hasReacted":false,"reactionValue":5,"count":0},{"tagID":5,"urlcode":"Insightful","name":"Insightful","class":"Positive","hasReacted":false,"reactionValue":1,"count":0},{"tagID":11,"urlcode":"Up","name":"Vote Up","class":"Positive","hasReacted":false,"reactionValue":1,"count":0},{"tagID":13,"urlcode":"Awesome","name":"Awesome","class":"Positive","hasReacted":false,"reactionValue":1,"count":0}],"tags":[]}],"initialPaging":{"nextURL":"https:\/\/community.smartsheet.com\/api\/v2\/discussions?page=2&categoryID=320&includeChildCategories=1&type%5B0%5D=Question&excludeHiddenCategories=1&sort=-hot&limit=3&expand%5B0%5D=all&expand%5B1%5D=-body&expand%5B2%5D=insertUser&expand%5B3%5D=lastUser&status=accepted","prevURL":null,"currentPage":1,"total":207,"limit":3},"title":"Trending in API & Developers","subtitle":null,"description":null,"noCheckboxes":true,"containerOptions":[],"discussionOptions":[]}">

Trending in API & Developers