Automated way to move "Comments" (Conversations in Smartsheet) from column to Conversations

Jennifer McNeely
Jennifer McNeely ✭✭✭
edited 03/29/21 in Formulas and Functions

Hi, I have a team maintaining an Action Tracker. All are relatively new to Smartsheet from Excel and most are at a higher pay grade than me. As such, they asked for a "Comments" column in the Action Item grid to track DAILY actions and updates. As you can imagine the row sizes are quickly becoming unmanageable.

Is there any way to write a formula or create an automatic workflow to transfer those items to the real Conversations area where they belong? If not, how do I request this be considered for future development? It is a real headache for those of us administering Smartsheet in an Excel-addicted world.

Best Answer

  • austinbaker96
    Answer ✓

    Here is a work around using the smartsheet API to move a column contents to the conversation for the respective row.

    install dependency.

    pip install smartsheet-python-sdk

    import smartsheet

    # Initialize the Smartsheet client
    #Can get an API Token by going to your account in smartsheet and generating an API Key
    smartsheet_client = smartsheet.Smartsheet('Your API KEY HERE')

    # Specify the sheet ID
    #Can get Sheet ID by going to file>sheet properties
    sheet_id = SHEET ID HERE

    # Fetch the entire sheet
    try:
    sheet = smartsheet_client.Sheets.get_sheet(sheet_id)
    except Exception as e:
    print(f"Error fetching the sheet: {e}")
    exit(1)

    # Find the column ID for 'STATUS (Legacy)'
    status_column_id = None
    for column in sheet.columns:
    if column.title == 'STATUS (Legacy)':
    status_column_id = column.id
    break

    if status_column_id is None:
    #Replace with your column name
    print("Column 'Column Name HERE' not found.")
    else:
    # Iterate through all rows in the sheet
    for row in sheet.rows:
    # Retrieve the comment text from the 'STATUS (Legacy)' column
    comment_text = None
    for cell in row.cells:
    if cell.column_id == status_column_id:
    comment_text = cell.value
    break

    if comment_text is not None:
    # Convert comment to string to ensure compatibility
    comment_text = str(comment_text)

    # Create a Comment object with the full text
    comment = smartsheet.models.Comment({
    'text': comment_text
    })

    # Create a discussion object with the Comment
    discussion = smartsheet.models.Discussion({
    'comment': comment
    })

    # Try to add the discussion to the row
    try:
    new_discussion = smartsheet_client.Discussions.create_discussion_on_row(sheet_id, row.id, discussion)
    print(f"Added discussion to row {row.id}: {comment_text}")
    except Exception as e:
    print(f"Error adding discussion to row {row.id}: {e}")

    print("Finished adding comments to all rows.")

    Hope this helps

Answers

  • Andrée Starå
    Andrée Starå ✭✭✭✭✭✭

    Hi @Jennifer McNeely

    I hope you're well and safe!

    Unfortunately, it's not possible now, but it's an excellent idea!

    Please submit an Enhancement Request when you have a moment.

    Here's a possible workaround or workarounds

    • It might be possible to structure a solution with the 3rd party service, Zapier.
    • It might also be possible with the Smartsheet API.

    Would any of those options work/help?

    I hope that helps!

    Be safe and have a fantastic week!

    Best,

    Andrée Starå | Workflow Consultant / CEO @ WORK BOLD

    Did my post(s) help or answer your question or solve your problem? Please help the Community by marking it as the accepted answer/helpful. It will make it easier for others to find a solution or help to answer!

    SMARTSHEET EXPERT CONSULTANT & PARTNER

    Andrée Starå | Workflow Consultant / CEO @ WORK BOLD

    W: www.workbold.com | E:andree@workbold.com | P: +46 (0) - 72 - 510 99 35

    Feel free to contact me for help with Smartsheet, integrations, general workflow advice, or anything else.

  • Hi Jennifer!

    Thanks for writing in! I am the PM for Conversations and would love to chat with you about your use case and some solutions we are currently considering. I would be grateful if you can set time for us to chat using this link: https://calendly.com/urmila-kukreja/30min. I look forward to hearing from you!

    Thanks,

    Urmila

  • Hi Urmila,

    Is there a resolution to this yet. I have a similar situation. Our team members have varying degrees of familiarity with Smartsheets. As a result redundant rows on the same topic are created s.t. relevant information is distributed across the redundant row. As a manager of a highly distributed team, I would like the ability to merge the information (including comments and attached files) in multiple rows. I will submit a enhancement request as well.

  • @urmila.kukreja - I'm interested in this thread as well. I have a scenario where we are collecting comments through a form and then want to push those comments to the conversation section. I'm pretty sure that I have submitted this as an enhancement request previously.

  • Jake Gustafson
    Jake Gustafson ✭✭✭✭✭✭

    I am also interested in this. My use case doesn't seem as frequent, more of a weekly or every other week update, but the notes get to be pretty lengthy and there are space concerns (character limits).

    Is there a cell limitation for how many characters are allowed?

    Is there a Conversations limitation in how many threads can exist? Our row items are long lasting projects that will have 50+ entries at least.

    I have toyed with the Last Comment Column, but even that has a limitation in how many characters it will display, so I haven't found great success with that functionality.

  • Danielle Arteaga
    Danielle Arteaga ✭✭✭✭✭✭

    @urmila.kukreja - Any update on this? I have about 2.5K rows of "comments" in cells that should be in conversations, and manually cutting-pasting them makes me want to cry. 😂 Would appreciate your insights. Thanks.

  • Hi Danielle,

    Yes that kind of manual repetitive work would also make me cry! Have you considered setting up a Latest Comment Column? https://help.smartsheet.com/articles/2482475-latest-comment-column

    This would let you see the latest update at-a-glance in the sheet but also get all the benefits such as tagging someone and having threaded conversations in the context of work. The column easily links to the conversation panel so you can scroll to see past comments if you need the history.

  • JCardinal
    JCardinal ✭✭✭✭

    @urmila.kukreja I am also interested in a solution for this. My use case is to take a form notes column and automatically move it to a row comment.

    Or, being able to add a comments field/column to a form would also work. If any one is interested in that feature, you can upvote it here: https://community.smartsheet.com/discussion/100259/form-fields-to-include-comments

    Joanna Cardinal (she, her, hers)

  • I am still watching and waiting on this request. We make liberal use of forms in our organization and I am basically militant about not allowing Comments columns in data sheets. Please advise and thank you!

  • Hello,

    I'm interested in this as well! My use case is I currently add latest update in custom field on Summary Page. I then copy that latest update to the conversation space so I can maintain the history of updates. I don't want to link these updates to specific rows. I would love for that Summary Page Status Update field to automatically append the conversation history. I'm open to other options as well that don't involve copy/paste.

    Thanks!

    Chris

  • austinbaker96
    Answer ✓

    Here is a work around using the smartsheet API to move a column contents to the conversation for the respective row.

    install dependency.

    pip install smartsheet-python-sdk

    import smartsheet

    # Initialize the Smartsheet client
    #Can get an API Token by going to your account in smartsheet and generating an API Key
    smartsheet_client = smartsheet.Smartsheet('Your API KEY HERE')

    # Specify the sheet ID
    #Can get Sheet ID by going to file>sheet properties
    sheet_id = SHEET ID HERE

    # Fetch the entire sheet
    try:
    sheet = smartsheet_client.Sheets.get_sheet(sheet_id)
    except Exception as e:
    print(f"Error fetching the sheet: {e}")
    exit(1)

    # Find the column ID for 'STATUS (Legacy)'
    status_column_id = None
    for column in sheet.columns:
    if column.title == 'STATUS (Legacy)':
    status_column_id = column.id
    break

    if status_column_id is None:
    #Replace with your column name
    print("Column 'Column Name HERE' not found.")
    else:
    # Iterate through all rows in the sheet
    for row in sheet.rows:
    # Retrieve the comment text from the 'STATUS (Legacy)' column
    comment_text = None
    for cell in row.cells:
    if cell.column_id == status_column_id:
    comment_text = cell.value
    break

    if comment_text is not None:
    # Convert comment to string to ensure compatibility
    comment_text = str(comment_text)

    # Create a Comment object with the full text
    comment = smartsheet.models.Comment({
    'text': comment_text
    })

    # Create a discussion object with the Comment
    discussion = smartsheet.models.Discussion({
    'comment': comment
    })

    # Try to add the discussion to the row
    try:
    new_discussion = smartsheet_client.Discussions.create_discussion_on_row(sheet_id, row.id, discussion)
    print(f"Added discussion to row {row.id}: {comment_text}")
    except Exception as e:
    print(f"Error adding discussion to row {row.id}: {e}")

    print("Finished adding comments to all rows.")

    Hope this helps

Help Article Resources

Want to practice working with formulas directly in Smartsheet?

Check out the Formula Handbook template!