Bulk create Sheet from template through smartsheet API
Hello,
I've currently been facing an issue regarding the Smartsheet API, a quick breakdown of what i'm trying to do, I require to create 900+ sheets that will all have the same layout (a template is available for that)
After skimming through the API discovered the feature of creating sheets based on a template, problem is, they are no help/documentation on how to apply bulk process on it (was wondering what would be the best option to bulk it, grab the data from a .txt file and/or .Csv files for the names) since only variable (the name) requires constant name
And also how to prevent ratelimit from the API (From what i've read, we are allowed to 300 operation/min until ratelimit occurs)
Is there any ressource out there, that can talk about bulk processing actions on the smartsheet API ?
Thanks in Advance
Answers
-
Garrett Henke ✭✭✭✭✭✭
You would need to have a dictionary or list of all of the new sheet names you would want to create and you would also need to implement an exponential backoff or a sleep operation so that you do not exceed the rate limit.
If you are unfamiliar on how do do this I would start small and work out one step at a time while you trouble shoot.
0 -
Hello,
The API (with Python) is more flexible than you think for the existing features, I created a script that pick the exiting projects based on the folders and some criteria (filters) under multiple workspaces, then ask you to select the template and finally ask you to type the name of a subfolder if you want to create in a subfolder inside the project, paces the creation to not exceed the restrictions, and create about 50 per min.
0 -
Parker Oxford ✭✭✭✭✭
Are you willing to share the script used to make this? This would make this solution very handy in more ways than simply bulk editing the sheet.
( @ me in the replies or I'll lose your message! )
0 -
@Alex Argumedo, mind sharing some of your source code? I am trying to create a project file for multiple projects with pre-defined templates, sometimes as many as 200 per client. Your structure is exactly what i need.
0
Categories
You best bet is to build your own form and submit data via the API. I have done lots of this type of work, and the API works well<\/p>"}]}},"status":{"statusID":3,"name":"Accepted","state":"closed","recordType":"discussion","recordSubType":"question","log":{"dateUpdated":"2022-09-23 19:17:20","updateUser":{"userID":150538,"name":"Preston P.","title":"","url":"https:\/\/community.smartsheet.com\/profile\/Preston%20P.","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/avatarstock\/nWVKDFTEFOKBN.png","dateLastActive":"2022-09-29T22:27:52+00:00","banned":0,"punished":0,"private":false,"label":"Employee Admin"}}},"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":204,"urlcode":"Forms","name":"Forms"},{"tagID":438,"urlcode":"api-developers","name":"API Developers"}]},{"discussionID":95174,"type":"question","name":"Webhook callback authentication","excerpt":"My colleague and I are trying to create a webhook that triggers off new rows and sends data to Boomi for additional workflow\/integration. How do we include our authentication for Boomi in the callback response from Smartsheet? Thanks Brian","categoryID":320,"dateInserted":"2022-09-08T16:10:00+00:00","dateUpdated":null,"dateLastComment":"2022-09-13T07:39:05+00:00","insertUserID":150887,"insertUser":{"userID":150887,"name":"DR Brian","title":"","url":"https:\/\/community.smartsheet.com\/profile\/DR%20Brian","photoUrl":"https:\/\/lh3.googleusercontent.com\/a\/AItbvmkBuYrYPbdemTi50CFt1xzprFTHWzyp_P53iLS4=s96-c","dateLastActive":"2022-09-13T07:38:19+00:00","banned":0,"punished":0,"private":false,"label":"✭✭✭✭✭"},"updateUserID":null,"lastUserID":150887,"lastUser":{"userID":150887,"name":"DR Brian","title":"","url":"https:\/\/community.smartsheet.com\/profile\/DR%20Brian","photoUrl":"https:\/\/lh3.googleusercontent.com\/a\/AItbvmkBuYrYPbdemTi50CFt1xzprFTHWzyp_P53iLS4=s96-c","dateLastActive":"2022-09-13T07:38:19+00:00","banned":0,"punished":0,"private":false,"label":"✭✭✭✭✭"},"pinned":false,"pinLocation":null,"closed":false,"sink":false,"countComments":2,"countViews":79,"score":null,"hot":3325709345,"url":"https:\/\/community.smartsheet.com\/discussion\/95174\/webhook-callback-authentication","canonicalUrl":"https:\/\/community.smartsheet.com\/discussion\/95174\/webhook-callback-authentication","format":"Rich","lastPost":{"discussionID":95174,"commentID":343265,"name":"Re: Webhook callback authentication","url":"https:\/\/community.smartsheet.com\/discussion\/comment\/343265#Comment_343265","dateInserted":"2022-09-13T07:39:05+00:00","insertUserID":150887,"insertUser":{"userID":150887,"name":"DR Brian","title":"","url":"https:\/\/community.smartsheet.com\/profile\/DR%20Brian","photoUrl":"https:\/\/lh3.googleusercontent.com\/a\/AItbvmkBuYrYPbdemTi50CFt1xzprFTHWzyp_P53iLS4=s96-c","dateLastActive":"2022-09-13T07:38:19+00:00","banned":0,"punished":0,"private":false,"label":"✭✭✭✭✭"}},"breadcrumbs":[{"name":"Home","url":"https:\/\/community.smartsheet.com\/"},{"name":"API & Developers","url":"https:\/\/community.smartsheet.com\/categories\/api-developers"}],"groupID":null,"statusID":3,"attributes":{"question":{"status":"accepted","dateAccepted":"2022-09-13T07:38:57+00:00","dateAnswered":"2022-09-13T07:28:37+00:00","acceptedAnswers":[{"commentID":343264,"body":"
Hi @DR Brian<\/a> <\/p> I haven't worked with Boomi before, but it sounds like you may want to post in their Community for some API guidance. <\/p> I found this other thread that may help: Webhook<\/a><\/p> Here's the Boomi documentation on API security<\/a>.<\/p> Cheers,<\/p> Genevieve<\/p>"}]}},"status":{"statusID":3,"name":"Accepted","state":"closed","recordType":"discussion","recordSubType":"question","log":{"dateUpdated":"2022-09-13 07:38:57","updateUser":{"userID":150887,"name":"DR Brian","title":"","url":"https:\/\/community.smartsheet.com\/profile\/DR%20Brian","photoUrl":"https:\/\/lh3.googleusercontent.com\/a\/AItbvmkBuYrYPbdemTi50CFt1xzprFTHWzyp_P53iLS4=s96-c","dateLastActive":"2022-09-13T07:38:19+00:00","banned":0,"punished":0,"private":false,"label":"✭✭✭✭✭"}}},"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":[]},{"discussionID":95033,"type":"question","name":"Simple row update via API\/Powershell","excerpt":"Just getting started with the API. Just want to show a proof of concept of updating a cell. I'm able to authenticate and get sheet, row and column details. I'm getting the error: Invoke-RestMethod : { \"errorCode\" : 1008, \"message\" : \"Unable to parse request. The following error occurred: Unrecognized token 'value': was…","categoryID":320,"dateInserted":"2022-09-02T20:33:46+00:00","dateUpdated":null,"dateLastComment":"2022-09-06T12:36:36+00:00","insertUserID":152036,"insertUser":{"userID":152036,"name":"DarylVogan","url":"https:\/\/community.smartsheet.com\/profile\/DarylVogan","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2022-09-15T15:55:23+00:00","banned":0,"punished":0,"private":false,"label":"✭"},"updateUserID":null,"lastUserID":91566,"lastUser":{"userID":91566,"name":"Genevieve P.","title":"","url":"https:\/\/community.smartsheet.com\/profile\/Genevieve%20P.","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/userpics\/NDZ9JFCTQ8E3\/n8CCYP0Y12F8V.png","dateLastActive":"2022-09-29T08:40:45+00:00","banned":0,"punished":0,"private":false,"label":"Employee Admin"},"pinned":false,"pinLocation":null,"closed":false,"sink":false,"countComments":3,"countViews":105,"score":null,"hot":3324620422,"url":"https:\/\/community.smartsheet.com\/discussion\/95033\/simple-row-update-via-api-powershell","canonicalUrl":"https:\/\/community.smartsheet.com\/discussion\/95033\/simple-row-update-via-api-powershell","format":"Rich","tagIDs":[438],"lastPost":{"discussionID":95033,"commentID":342458,"name":"Re: Simple row update via API\/Powershell","url":"https:\/\/community.smartsheet.com\/discussion\/comment\/342458#Comment_342458","dateInserted":"2022-09-06T12:36:36+00:00","insertUserID":91566,"insertUser":{"userID":91566,"name":"Genevieve P.","title":"","url":"https:\/\/community.smartsheet.com\/profile\/Genevieve%20P.","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/userpics\/NDZ9JFCTQ8E3\/n8CCYP0Y12F8V.png","dateLastActive":"2022-09-29T08:40:45+00:00","banned":0,"punished":0,"private":false,"label":"Employee Admin"}},"breadcrumbs":[{"name":"Home","url":"https:\/\/community.smartsheet.com\/"},{"name":"API & Developers","url":"https:\/\/community.smartsheet.com\/categories\/api-developers"}],"groupID":null,"statusID":3,"attributes":{"question":{"status":"accepted","dateAccepted":"2022-09-06T12:36:11+00:00","dateAnswered":"2022-09-06T12:35:21+00:00","acceptedAnswers":[{"commentID":342457,"body":" Thanks. Fresh eyes and coffee helped out. Got it working. For those that may run into this:<\/p> $uri=\"https:\/\/api.smartsheet.com\/2.0\/sheets\/aaaaaaaaaaaaaa\/rows\"<\/a><\/p>