Create Sheet
sheet.createCreate a new sheet with optional initial attributes. intent: 'form' is for public-facing data-collection forms; intent: 'sheet' is for internal data tables. Pass the user's full proposed schema in attributes — this is the first-turn fat call. dataType values must be canonical Atwork names; if the user asks for currency, use Number with description: "USD; whole numbers". Every sheet gets a primary column that is a literal Title: do not add a separate name field in attributes; rename the Title to fit the sheet (Company, Task) with sheet.update_attribute. Returns the new sheetId. Call this exactly once per conversation; refinements use sheet.add_attribute / sheet.update_attribute / sheet.remove_attribute. Pass spaceId and folderId to say where the sheet goes — list them with workspace.structure. Without folderId the sheet goes in the space's root folder. (Panel-invoked calls may omit both; the invocation's placement is then used.) For a Status/Select/Multi-Select field, pass its choices as options.items: [{title, color?, stage?}]; on a Status field stage (Todo / InProgress / Complete) puts the choice in that stage, default Todo — give the done choices Complete. Set isUnique: true on a field whose value identifies a row (an external id, an email): item.create then dedupes on it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | Bootstrap icon name, e.g. 'bi-archive'. | |
| name | Yes | ||
| type | Yes | ||
| intent | Yes | ||
| spaceId | No | Space to create the sheet in. Get it from workspace.structure. | |
| folderId | No | Folder inside that space. Get it from workspace.structure. | |
| attributes | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sheetId | Yes | Id of the new sheet | |
| spaceId | Yes | Space the sheet landed in |