Meeting templates
A meeting template defines the sections a summary is generated into. These read-only endpoints list templates and their sections, so you can map section items back to them.
Every endpoint below shows its parameters and response fields in the middle and a request sample with an example response on the right.
Lists the meeting templates usable in a directory
/v1.0/directories/{directoryId}/meetingtemplatesReturns the published templates usable in this directory (the tenant’s own templates). Paginated via ?page + ?pageSize (max. 100). Use the detail endpoint (or .../{meetingTemplateId}/sections) to read a template’s sections.
Field overview from the specification
Each item has:
meetingTemplateId(string): id of the template (use it for the detail/sections endpoints).title(string): template title.description(string | null): template description; null if unset.
Path parameters
directoryIdstringrequiredId of the directory (the Sally company account) the resource belongs to. The directories a token can address are listed by
GET /v1.0/me/directories/memberships.
Query parameters
pagenumberoptionalPage number, 1-based. Defaults to 1.
pageSizenumberoptionalItems per page. Defaults to 25, capped at 100.
fieldsstringoptionalComma-separated list of the fields to return. Leave it out and you get every field — including fields added in the future, which is your call to make: name your fields if you want to be shielded from that.
Only first-level fields can be named. A nested list such as
attendees,tagsorsectionItemsis returned whole or not at all;attendees.nameis not supported.On a paged response the selection applies to the entries in
items;page,pageSize,totalandhasMoreare always returned. An unknown name is rejected with 400 rather than ignored.Selectable here:
description,meetingTemplateId,title.Example:description,meetingTemplateId
Response: each entry in items
meetingTemplateIdstringrequiredId of the meeting template.
titlestringrequiredDisplay title of the template.
descriptionstringrequirednullableDescription of the template.
Every page also carries page, pageSize, total, hasMore.
Status codes
- 200Success
- 400
Invalid request (validation error).
- 401
Missing or invalid bearer token.
- 404
Resource not found or not accessible.
- 429
Rate limit exceeded (per token/IP). Transcription uploads may also return
codeFUP_LIMIT_EXCEEDEDorTOO_MANY_CONCURRENT_TRANSCRIPTIONS. - 500
Internal server error.
Views one meeting template including its published sections
/v1.0/directories/{directoryId}/meetingtemplates/{meetingTemplateId}Returns the template and its published sections in sort order. Each section carries its meetingTemplateSectionId — the same id referenced by a summary section item, so a summary section item can be mapped back to its template section. To fetch only the sections, use GET .../meetingtemplates/{meetingTemplateId}/sections.
Field overview from the specification
Response fields:
meetingTemplateId(string): id of the template.title(string): template title.description(string | null): template description; null if unset.scope(string enum): who the template belongs to —global(a built-in Sally template),directory(the organization’s own),teamorpersonal.sections(array): the published sections in sort order. Each section has:meetingTemplateSectionId(string): id of the section; referenced by a summary section item’smeetingTemplateSectionId.title(string): section title.description(string | null): section description; null if unset.sectionType(string enum): the section type (summary,tasks,topics,decisions,customListorfreeText).outputFormat(string enum): the format the section content is generated in (htmlormarkdown).detailLevel(string enum): the requested level of detail for the section (short,mediumorlong).sortOrder(number): order of the section within the template.additionalInstructions(string | null): extra generation instructions for the section; null if none.isTimestampInclusionEnabled(boolean): whether transcript timestamps are included in the section.isResponsibleDetectionEnabled(boolean): whether a responsible person is detected for the section.isDueDateInferenceEnabled(boolean): whether a due date is inferred for the section.
Path parameters
directoryIdstringrequiredId of the directory (the Sally company account) the resource belongs to. The directories a token can address are listed by
GET /v1.0/me/directories/memberships.meetingTemplateIdstringrequiredId of the meeting template.
Query parameters
fieldsstringoptionalComma-separated list of the fields to return. Leave it out and you get every field — including fields added in the future, which is your call to make: name your fields if you want to be shielded from that.
Only first-level fields can be named. A nested list such as
attendees,tagsorsectionItemsis returned whole or not at all;attendees.nameis not supported.On a paged response the selection applies to the entries in
items;page,pageSize,totalandhasMoreare always returned. An unknown name is rejected with 400 rather than ignored.Selectable here:
description,meetingTemplateId,scope,sections,title.Example:description,meetingTemplateId
Response
meetingTemplateIdstringrequiredId of the meeting template.
titlestringrequiredDisplay title of the template.
descriptionstringrequirednullableDescription of the template.
scopestringrequiredVisibility scope.
global= Sally standard template; otherwise tenant-owned.Allowed values:globaldirectoryteampersonalsectionsobject[]requiredThe published sections of the template in sort order.
11 child fields
meetingTemplateSectionIdstringrequiredId of the meeting template section. This is the same id referenced by a summary section item (
meetingTemplateSectionId).titlestringrequiredTitle of the section.
descriptionstringrequirednullableUser-facing description of the section.
sectionTypestringrequiredType of the section.
Allowed values:summarytaskstopicsdecisionscustomListfreeTextunknownoutputFormatstringrequiredOutput format of the generated section content.
Allowed values:htmlmarkdownunknowndetailLevelstringrequiredDesired verbosity of the AI section.
Allowed values:shortmediumlongunknownsortOrdernumberrequiredSort order within the template (ascending).
additionalInstructionsstringrequirednullableAdditional AI instructions (prompt) for this section.
isTimestampInclusionEnabledbooleanrequiredWhether timestamps are included in the section output.
isResponsibleDetectionEnabledbooleanrequiredWhether responsible-person detection is enabled.
isDueDateInferenceEnabledbooleanrequiredWhether due-date inference is enabled.
Status codes
- 200Success
- 400
Invalid request (validation error).
- 401
Missing or invalid bearer token.
- 404
Resource not found or not accessible.
- 429
Rate limit exceeded (per token/IP). Transcription uploads may also return
codeFUP_LIMIT_EXCEEDEDorTOO_MANY_CONCURRENT_TRANSCRIPTIONS. - 500
Internal server error.
Lists only the sections of a meeting template
/v1.0/directories/{directoryId}/meetingtemplates/{meetingTemplateId}/sectionsReturns just the published sections of the template in sort order — the same sections as the detail endpoint returns, but without the template meta. Each section carries its meetingTemplateSectionId, the same id referenced by a summary section item (so a summary section item can be mapped back to its template section).
Field overview from the specification
Section fields:
meetingTemplateSectionId(string): id of the section; referenced by a summary section item’smeetingTemplateSectionId.title(string): section title.description(string | null): section description; null if unset.sectionType(string enum): the section type (summary,tasks,topics,decisions,customListorfreeText).outputFormat(string enum): the format the section content is generated in (htmlormarkdown).detailLevel(string enum): the requested level of detail for the section (short,mediumorlong).sortOrder(number): order of the section within the template.additionalInstructions(string | null): extra generation instructions for the section; null if none.isTimestampInclusionEnabled(boolean): whether transcript timestamps are included in the section.isResponsibleDetectionEnabled(boolean): whether a responsible person is detected for the section.isDueDateInferenceEnabled(boolean): whether a due date is inferred for the section.
Path parameters
directoryIdstringrequiredId of the directory (the Sally company account) the resource belongs to. The directories a token can address are listed by
GET /v1.0/me/directories/memberships.meetingTemplateIdstringrequiredId of the meeting template.
Query parameters
fieldsstringoptionalComma-separated list of the fields to return. Leave it out and you get every field — including fields added in the future, which is your call to make: name your fields if you want to be shielded from that.
Only first-level fields can be named. A nested list such as
attendees,tagsorsectionItemsis returned whole or not at all;attendees.nameis not supported.On a paged response the selection applies to the entries in
items;page,pageSize,totalandhasMoreare always returned. An unknown name is rejected with 400 rather than ignored.Selectable here:
additionalInstructions,description,detailLevel,isDueDateInferenceEnabled,isResponsibleDetectionEnabled,isTimestampInclusionEnabled,meetingTemplateSectionId,outputFormat,sectionType,sortOrder,title.Example:additionalInstructions,description
Response
meetingTemplateSectionIdstringrequiredId of the meeting template section. This is the same id referenced by a summary section item (
meetingTemplateSectionId).titlestringrequiredTitle of the section.
descriptionstringrequirednullableUser-facing description of the section.
sectionTypestringrequiredType of the section.
Allowed values:summarytaskstopicsdecisionscustomListfreeTextunknownoutputFormatstringrequiredOutput format of the generated section content.
Allowed values:htmlmarkdownunknowndetailLevelstringrequiredDesired verbosity of the AI section.
Allowed values:shortmediumlongunknownsortOrdernumberrequiredSort order within the template (ascending).
additionalInstructionsstringrequirednullableAdditional AI instructions (prompt) for this section.
isTimestampInclusionEnabledbooleanrequiredWhether timestamps are included in the section output.
isResponsibleDetectionEnabledbooleanrequiredWhether responsible-person detection is enabled.
isDueDateInferenceEnabledbooleanrequiredWhether due-date inference is enabled.
Status codes
- 200Success
- 400
Invalid request (validation error).
- 401
Missing or invalid bearer token.
- 404
Resource not found or not accessible.
- 429
Rate limit exceeded (per token/IP). Transcription uploads may also return
codeFUP_LIMIT_EXCEEDEDorTOO_MANY_CONCURRENT_TRANSCRIPTIONS. - 500
Internal server error.