Update Form Template
Update an existing form template. All fields are optional — only provided fields are updated. formLayouts is optional — omit it to leave the existing layout untouched.
formLayouts replacement: When provided, the formLayouts array fully replaces all layout groups and their fields on the template. Position is determined by array order.
IDs are not stable across updates. Every update internally deletes all existing layout rows and inserts new ones, so every group and field receives a new auto-generated ID after each PATCH. The IDs returned in a GET response are only valid until the next PATCH. Do not store or rely on layout IDs across updates.
Using id in the request: You can pass { "id": <id from a recent GET> } for a group or field to reference its current data without repeating all attributes — the API will look up the existing name, type, isRequired, etc. and carry them forward. This is a convenience shortcut for the current request only; the ID will be different in the response.
Assignee (mutually exclusive — use at most one):
assigneeId— assign a specific user by ID.assigneeProperty— assign by project property key:OWNER,SALES_REP,PROJECT_MANAGER,CREATED_BY, or a custom PERSON propertykeyName.assigneeTeamId— assign a team: the team lead becomes the assignee and all other team members are added as collaborators.
Collaborators:
collaborators— replaces the list of direct user collaborator IDs.collaboratorProperties— replaces the list of property-based collaborators. Each value is a standard key (OWNER,SALES_REP,PROJECT_MANAGER,CREATED_BY) or a custom PERSON propertykeyName.collaboratorTeamIds— team IDs whose members are resolved to user IDs and merged (deduplicated) into collaborators alongside any directcollaboratorsand members fromassigneeTeamId.
Authentication
Path parameters
Request
Template name. Optional — omit to leave the existing name untouched.
Optional. When provided, fully replaces all layout groups and their fields. Include existing groups with their id to keep/update them; omit the id for new groups. Groups not included are removed. Array order determines position.
If omitted, the existing layout is left untouched.
Direct user ID to assign. Mutually exclusive with assigneeProperty and assigneeTeamId.
Property-based assignee. Use a standard key (OWNER, SALES_REP, PROJECT_MANAGER, CREATED_BY) or a custom PERSON property keyName. Mutually exclusive with assigneeId and assigneeTeamId.
Assign a team: the team lead becomes the assignee and all other team members are added as collaborators. Mutually exclusive with assigneeId and assigneeProperty.
Property-based collaborators. Each value is a standard key (OWNER, SALES_REP, PROJECT_MANAGER, CREATED_BY) or a custom PERSON property keyName.
Team IDs whose members are added as collaborators. Resolved to individual user IDs and merged (deduplicated) with any direct collaborators and members from assigneeTeamId.
Response
Property-based assignee key. Returns a standard key (OWNER, SALES_REP, PROJECT_MANAGER, CREATED_BY) or the keyName of a custom PERSON property. Null if a direct user assignee is set.
Property-based collaborator keys. Each value is a standard key (OWNER, SALES_REP, PROJECT_MANAGER, CREATED_BY) or the keyName of a custom PERSON property.
Top-level layout items (GROUP sections and standalone COLUMN fields). Only root-level items are returned; child items are nested inside each GROUP’s properties array.
