Skip to main content

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.

Base URL https://api.sally.ioVersion v1.0 current, not frozen yetHow versioning works

Lists the meeting templates usable in a directory​

GET/v1.0/directories/{directoryId}/meetingtemplates

Returns 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

  • directoryIdstringrequired

    Id 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

  • pagenumberoptional

    Page number, 1-based. Defaults to 1.

  • pageSizenumberoptional

    Items per page. Defaults to 25, capped at 100.

  • fieldsstringoptional

    Comma-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, tags or sectionItems is returned whole or not at all; attendees.name is not supported.

    On a paged response the selection applies to the entries in items; page, pageSize, total and hasMore are 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

  • meetingTemplateIdstringrequired

    Id of the meeting template.

  • titlestringrequired

    Display title of the template.

  • descriptionstringrequirednullable

    Description 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 code FUP_LIMIT_EXCEEDED or TOO_MANY_CONCURRENT_TRANSCRIPTIONS.

  • 500

    Internal server error.

Views one meeting template including its published sections​

GET/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), team or personal.
  • sections (array): the published sections in sort order. Each section has:
    • meetingTemplateSectionId (string): id of the section; referenced by a summary section item’s meetingTemplateSectionId.
    • title (string): section title.
    • description (string | null): section description; null if unset.
    • sectionType (string enum): the section type (summary, tasks, topics, decisions, customList or freeText).
    • outputFormat (string enum): the format the section content is generated in (html or markdown).
    • detailLevel (string enum): the requested level of detail for the section (short, medium or long).
    • 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

  • directoryIdstringrequired

    Id 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.

  • meetingTemplateIdstringrequired

    Id of the meeting template.

Query parameters

  • fieldsstringoptional

    Comma-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, tags or sectionItems is returned whole or not at all; attendees.name is not supported.

    On a paged response the selection applies to the entries in items; page, pageSize, total and hasMore are always returned. An unknown name is rejected with 400 rather than ignored.

    Selectable here: description, meetingTemplateId, scope, sections, title.

    Example: description,meetingTemplateId

Response

  • meetingTemplateIdstringrequired

    Id of the meeting template.

  • titlestringrequired

    Display title of the template.

  • descriptionstringrequirednullable

    Description of the template.

  • scopestringrequired

    Visibility scope. global = Sally standard template; otherwise tenant-owned.

    Allowed values: globaldirectoryteampersonal
  • sectionsobject[]required

    The published sections of the template in sort order.

    11 child fields
    • meetingTemplateSectionIdstringrequired

      Id of the meeting template section. This is the same id referenced by a summary section item (meetingTemplateSectionId).

    • titlestringrequired

      Title of the section.

    • descriptionstringrequirednullable

      User-facing description of the section.

    • sectionTypestringrequired

      Type of the section.

      Allowed values: summarytaskstopicsdecisionscustomListfreeTextunknown
    • outputFormatstringrequired

      Output format of the generated section content.

      Allowed values: htmlmarkdownunknown
    • detailLevelstringrequired

      Desired verbosity of the AI section.

      Allowed values: shortmediumlongunknown
    • sortOrdernumberrequired

      Sort order within the template (ascending).

    • additionalInstructionsstringrequirednullable

      Additional AI instructions (prompt) for this section.

    • isTimestampInclusionEnabledbooleanrequired

      Whether timestamps are included in the section output.

    • isResponsibleDetectionEnabledbooleanrequired

      Whether responsible-person detection is enabled.

    • isDueDateInferenceEnabledbooleanrequired

      Whether 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 code FUP_LIMIT_EXCEEDED or TOO_MANY_CONCURRENT_TRANSCRIPTIONS.

  • 500

    Internal server error.

Lists only the sections of a meeting template​

GET/v1.0/directories/{directoryId}/meetingtemplates/{meetingTemplateId}/sections

Returns 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’s meetingTemplateSectionId.
  • title (string): section title.
  • description (string | null): section description; null if unset.
  • sectionType (string enum): the section type (summary, tasks, topics, decisions, customList or freeText).
  • outputFormat (string enum): the format the section content is generated in (html or markdown).
  • detailLevel (string enum): the requested level of detail for the section (short, medium or long).
  • 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

  • directoryIdstringrequired

    Id 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.

  • meetingTemplateIdstringrequired

    Id of the meeting template.

Query parameters

  • fieldsstringoptional

    Comma-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, tags or sectionItems is returned whole or not at all; attendees.name is not supported.

    On a paged response the selection applies to the entries in items; page, pageSize, total and hasMore are 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

  • meetingTemplateSectionIdstringrequired

    Id of the meeting template section. This is the same id referenced by a summary section item (meetingTemplateSectionId).

  • titlestringrequired

    Title of the section.

  • descriptionstringrequirednullable

    User-facing description of the section.

  • sectionTypestringrequired

    Type of the section.

    Allowed values: summarytaskstopicsdecisionscustomListfreeTextunknown
  • outputFormatstringrequired

    Output format of the generated section content.

    Allowed values: htmlmarkdownunknown
  • detailLevelstringrequired

    Desired verbosity of the AI section.

    Allowed values: shortmediumlongunknown
  • sortOrdernumberrequired

    Sort order within the template (ascending).

  • additionalInstructionsstringrequirednullable

    Additional AI instructions (prompt) for this section.

  • isTimestampInclusionEnabledbooleanrequired

    Whether timestamps are included in the section output.

  • isResponsibleDetectionEnabledbooleanrequired

    Whether responsible-person detection is enabled.

  • isDueDateInferenceEnabledbooleanrequired

    Whether 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 code FUP_LIMIT_EXCEEDED or TOO_MANY_CONCURRENT_TRANSCRIPTIONS.

  • 500

    Internal server error.