Automated way to move "Comments" (Conversations in Smartsheet) from column to Conversations
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
-
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
-
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.
-
Has this been solved, yet? I love using the Conversations feature in Smartsheet, but the inability to automate the transfer of cell contents to the Conversations column, or to retrieve these columns and us the contents anywhere else has severely limited their use.
What I'd like to do is to apply an Automation, for example, that would move the contents of a column, say one titled "Status" or "Comments" to the corresponding Conversation for that row, thereby retaining an historic record of all Status or Comments, and only displaying the most recent entries.
-
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.
-
@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.
-
@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
-
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
Categories
- All Categories
- 14 Welcome to the Community
- Smartsheet Customer Resources
- 64.2K Get Help
- 419 Global Discussions
- 221 Industry Talk
- 461 Announcements
- 4.8K Ideas & Feature Requests
- 143 Brandfolder
- 141 Just for fun
- 58 Community Job Board
- 462 Show & Tell
- 32 Member Spotlight
- 1 SmartStories
- 299 Events
- 38 Webinars
- 7.3K Forum Archives
Check out the Formula Handbook template!