Creating a new smartsheet Project-type-sheet from scratch with the API

Hello.

Trying to create a new Project-type-sheet with the API, and would like to designate everything about it the way I want in code, so NOT from a template.

It appears there is no way to do this with the API, that it simply has no syntax for creating a gantt-enabled project sheet.

Is this true?

But next question - if you DO need to use a template, is there any way to create the template with the API?

It appears not.

So, next question, is there a way to export a template that would be made manually one time to meet the needs of my integration, but be able to share it with different smartsheet users, possibly in different smartsheet instances, on different teams and even different companies?

Again, it appears not.

So my current approach is to list all the global templates when I want to create a new project sheet, and iterate through them to find the one with the global tag "PROJECT_SHEET" and use the id of that one to create a sheet.

This seems really cumbersome and quite fragile. I have it working, but isn't there a better way?

Best Answer

  • Genevieve P.
    Genevieve P. Employee
    Answer ✓

    Hi @Stephan G

    Sheet and Template IDs are immutable and specific to each individual sheet/template across all domains and Smartsheet customers.

    There isn't a way to "update" a Template item - you would need to create a sheet from the Template, update the sheet, then turn this new, updated sheet into another Template. This means the new Template will have a different ID. (See: Create Your Own Template)

    However if you're using a sheet type of item and not a Template, then yes, as you update that specific sheet it will always keep the same ID. Even if you delete out all rows and columns and start from scratch, if you're working within the same sheet it will keep the original ID.

    In the UI, you can find the ID of either a Sheet or Template by right-clicking on it and selecting Properties from the dropdown menu:

    In regards to sharing, you could either house the Template or Sheet within a Workspace that has a Group shared to the Workspace (see: Admin Center: Manage and Use Smartsheet Contact Groups). Then as new people are added to your company, you can add them to that Group, which means they would have access to this Workspace and of its items (see: Share a workspace).

    However if you mean globally as in anyone at all, regardless of Smartsheet plan or type, then in this instance you can Publish your sheet and provide users with this Published link instead. Publish a Sheet, Report, or Dashboard

    Note that you cannot Publish a Template, this would need to be done from the created Sheet. Additionally, users won't be able to create copies or make new items from this Published link. It's a window into the underlying source data, but not access to the actual item, if that makes sense.

    Cheers,

    Genevieve

    Need more help? 👀 | Help and Learning Center

    こんにちは (Konnichiwa), Hallo, Hola, Bonjour, Olá, Ciao! 👋 | Global Discussions

Answers

  • Hi @Stephan G

    • You cannot enable dependencies via the API, you're correct.
    • There is no way to create a template via the API, you're correct.
    • You can share a sheet/template to anyone, across domains, depending on the org's system settings.

    For your current approach, you could store the ID of the particular template sheet you care about, versus iterating to find it. Since you're already storing the "global tag", this would cut out the middleman.

    I hope that helps!

    Genevieve

    Need more help? 👀 | Help and Learning Center

    こんにちは (Konnichiwa), Hallo, Hola, Bonjour, Olá, Ciao! 👋 | Global Discussions

  • Thanks @Genevieve P. - I had had your idea, but rejected it because I didn't know if the id was immutable across all SmartSheet instances and domains for all SmartSheet customers. Is that id the same? And if that template is upgraded in the future, will the current template (with that id) be guaranteed to be the same, or will the upgraded template have the same id? Finally it doesn't seem to be the case that in SmartSheet UI, you can discover the id of a template. Is that true?

    And finally, I can see that a template can be proactively shared with any individual if I happen to know their email address, but how can I make a template that is globally available to anyone?

    Thanks again!

  • Genevieve P.
    Genevieve P. Employee
    Answer ✓

    Hi @Stephan G

    Sheet and Template IDs are immutable and specific to each individual sheet/template across all domains and Smartsheet customers.

    There isn't a way to "update" a Template item - you would need to create a sheet from the Template, update the sheet, then turn this new, updated sheet into another Template. This means the new Template will have a different ID. (See: Create Your Own Template)

    However if you're using a sheet type of item and not a Template, then yes, as you update that specific sheet it will always keep the same ID. Even if you delete out all rows and columns and start from scratch, if you're working within the same sheet it will keep the original ID.

    In the UI, you can find the ID of either a Sheet or Template by right-clicking on it and selecting Properties from the dropdown menu:

    In regards to sharing, you could either house the Template or Sheet within a Workspace that has a Group shared to the Workspace (see: Admin Center: Manage and Use Smartsheet Contact Groups). Then as new people are added to your company, you can add them to that Group, which means they would have access to this Workspace and of its items (see: Share a workspace).

    However if you mean globally as in anyone at all, regardless of Smartsheet plan or type, then in this instance you can Publish your sheet and provide users with this Published link instead. Publish a Sheet, Report, or Dashboard

    Note that you cannot Publish a Template, this would need to be done from the created Sheet. Additionally, users won't be able to create copies or make new items from this Published link. It's a window into the underlying source data, but not access to the actual item, if that makes sense.

    Cheers,

    Genevieve

    Need more help? 👀 | Help and Learning Center

    こんにちは (Konnichiwa), Hallo, Hola, Bonjour, Olá, Ciao! 👋 | Global Discussions

  • Thanks so much @Genevieve P. for this comprehensive answer. Very helpful!

  • @Genevieve P. wrote:

    There is no way to create a template via the API, you're correct.

    Glad I found this answer, because I've been trying to figure out (without luck) how to create a new Template from a Sheet using the API, and thought I must be missing something because I couldn't find a way.

    My two big wishlist items now are:

    1) Folder-level and Workspace-level scope for webhooks.

    2) API method to create a Template from a Sheet.

    Thanks,

    Dossy