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. On the right you find request samples in cURL, JavaScript and Python, an example response and Try it, which sends the request for real with your own token.

Lists the meeting templates the caller can use in a directory​

GET/v1.0/directories/{directoryId}/meetingtemplatesTry it →

Returns the published templates the authenticated user can use in this directory: their own personal templates, the templates of their teams and the directory-wide 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}Try it →

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, freeText, table, appointment or email).
    • 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.

    13 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: summarytaskstopicsdecisionscustomListfreeTexttableappointmentemailunknown
    • 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.

    • tableVariantstringrequirednullable

      Only for sectionType: table. structured means the columns are fixed in tableColumns and a summary carries its result as data; free lets Sally choose the columns per meeting and the result is a Markdown table. Null for every other section type.

      Allowed values: freestructuredunknown
    • tableColumnsobject[]requirednullable

      The columns this section asks for, set only for tableVariant: structured.

      4 child fields
      • namestringrequired

        Column heading.

      • typestringrequired

        Value type of the column.

        Allowed values: booleancurrencydatenumberpercentpersontext
      • currencystringrequirednullable

        ISO-4217 currency code, set only for type: currency.

      • personModestringrequirednullable

        How people without a matching account are handled, set only for type: person. linkOrText keeps them by name, linkedOnly drops them, plain never links.

        Allowed values: linkOrTextlinkedOnlyplain

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}/sectionsTry it →

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, freeText, table, appointment or email).
  • 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, tableColumns, tableVariant, 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: summarytaskstopicsdecisionscustomListfreeTexttableappointmentemailunknown
  • 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.

  • tableVariantstringrequirednullable

    Only for sectionType: table. structured means the columns are fixed in tableColumns and a summary carries its result as data; free lets Sally choose the columns per meeting and the result is a Markdown table. Null for every other section type.

    Allowed values: freestructuredunknown
  • tableColumnsobject[]requirednullable

    The columns this section asks for, set only for tableVariant: structured.

    4 child fields
    • namestringrequired

      Column heading.

    • typestringrequired

      Value type of the column.

      Allowed values: booleancurrencydatenumberpercentpersontext
    • currencystringrequirednullable

      ISO-4217 currency code, set only for type: currency.

    • personModestringrequirednullable

      How people without a matching account are handled, set only for type: person. linkOrText keeps them by name, linkedOnly drops them, plain never links.

      Allowed values: linkOrTextlinkedOnlyplain

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.