Skip to content

Семейство: meetings

norm_meeting_get

Сводка одной встречи по id: резюме, поручения, темы, ключевые вопросы, участники и повестка — этого достаточно для протокола и задач. Участников сопоставляйте с людьми из norm_people_list по почте: имя из конференции бывает логином или названием устройства. В attendees есть и приглашённые, которые не пришли (attended: false) — в состав встречи их не включайте. Сырой расшифровки ответ не несёт (она велика), только её размер и говоривших; сам текст — в norm_meeting_transcript. Контента нет — это не сбой: content_status говорит, что сообщил источник, retryable — есть ли смысл повторять.

Доступ: чтение · Списковый: нет · Версии: 1

Вход

ПолеОбязательноТипЗначение
idдаstring

Данные ответа

ПолеПри успехеТипЗначение
action_itemsдасписок string
agendaнетstring
agenda_sourcesнетсписок string
attendeesнетсписок Attendee
content_statusдаContentStatusСостояние контента
dateдаstring (date)
ended_atнетstring (date-time)
idдаstring
key_questionsдасписок string
noteнетstring
organizer_emailнетstring
participant_emailsнетсписок string
participantsнетсписок string
platformнетstring
platform_meeting_idнетstring
retryableдаboolean
started_atнетstring (date-time)
summaryнетstring
titleдаstring
topicsдасписок string
transcriptнетTranscriptMetaСведения о расшифровке
urlнетstring (uri)
Пример: успешный ответ
json
{
  "source_refs": [
    {
      "source": "company-data",
      "ref": "meeting:01K9F2QH7T8ZRC4M0X5B2VNJ3D",
      "label": "Планёрка отдела продаж"
    }
  ],
  "freshness": {
    "as_of": "2026-09-21T06:00:00.000Z",
    "ttl_sec": 604800,
    "stale": false
  },
  "data": {
    "id": "01K9F2QH7T8ZRC4M0X5B2VNJ3D",
    "title": "Планёрка отдела продаж",
    "date": "2026-09-21",
    "started_at": "2026-09-21T09:00:00+03:00",
    "ended_at": "2026-09-21T09:47:00+03:00",
    "url": "https://meetings.example.com/01K9F2QH7T8ZRC4M0X5B2VNJ3D",
    "content_status": "ready",
    "retryable": false,
    "summary": "Разобрали воронку за неделю, договорились о новом правиле квалификации лида.",
    "action_items": [
      "Анна: до пятницы описать правило квалификации",
      "Михаил: выгрузить сделки без ответственного"
    ],
    "topics": [
      "Воронка за неделю",
      "Квалификация лида",
      "Сделки без ответственного"
    ],
    "key_questions": [
      "Кто отвечает за лиды из чата?"
    ],
    "participants": [
      "Анна Новикова",
      "Михаил Петров"
    ],
    "attendees": [
      {
        "name": "Анна Новикова",
        "email": "a.novikova@example.com",
        "invited": true,
        "attended": true
      },
      {
        "name": "Михаил Петров",
        "email": "m.petrov@example.com",
        "invited": true,
        "attended": true
      },
      {
        "name": "Сергей Ильин",
        "email": "s.ilin@example.com",
        "invited": true,
        "attended": false
      }
    ],
    "participant_emails": [
      "a.novikova@example.com",
      "m.petrov@example.com"
    ],
    "organizer_email": "a.novikova@example.com",
    "agenda": "1. Воронка за неделю. 2. Правило квалификации лида. 3. Разное.",
    "agenda_sources": [
      "calendar",
      "conference"
    ],
    "platform": "conference",
    "platform_meeting_id": "884 2210 9931",
    "transcript": {
      "speakers": [
        "Анна Новикова",
        "Михаил Петров"
      ],
      "total_chars": 48213
    }
  }
}
Пример: случай «no_content»
json
{
  "source_refs": [
    {
      "source": "company-data",
      "ref": "meeting:01K9F0YB3M6QA8T2WD7E4RSKPN"
    }
  ],
  "freshness": {
    "as_of": "2026-09-21T06:00:00.000Z",
    "ttl_sec": 604800,
    "stale": false
  },
  "data": {
    "id": "01K9F0YB3M6QA8T2WD7E4RSKPN",
    "title": "Разбор рекламации",
    "date": "2026-09-20",
    "started_at": "2026-09-20T14:30:00+03:00",
    "content_status": "no_content",
    "retryable": true,
    "action_items": [],
    "topics": [],
    "key_questions": [],
    "note": "Источник не отдал контент этой встречи и причину не называет. Встреча прошла недавно, отчёт, скорее всего, ещё готовится."
  }
}

norm_meeting_transcript

Сырая расшифровка встречи окном — дорогой вызов, берите только если сводки не хватило. max_chars — размер окна в символах (умолчание 12000, максимум 24000; значения в разделе limits слепка). Для следующего окна передайте page.next_cursor как cursor. Повторный вызов с тем же курсором вернёт тот же текст. У встречи без расшифровки вызов успешен и возвращает пустой text: это не сбой, менять аргументы бесполезно.

Доступ: чтение · Списковый: нет · Версии: 1

Вход

ПолеОбязательноТипЗначение
cursorнетstring
idдаstring
max_charsнетinteger

Данные ответа

ПолеПри успехеТипЗначение
content_statusдаContentStatusСостояние контента
dateдаstring (date)
idдаstring
noteнетstring
retryableдаboolean
speakersдасписок string
textдаstring
titleдаstring
total_charsдаinteger
Пример: успешный ответ
json
{
  "source_refs": [
    {
      "source": "company-data",
      "ref": "meeting:01K9F2QH7T8ZRC4M0X5B2VNJ3D:0..12000"
    }
  ],
  "freshness": {
    "as_of": "2026-09-21T06:00:00.000Z",
    "ttl_sec": 604800,
    "stale": false
  },
  "page": {
    "has_more": true,
    "next_cursor": "eyJvIjoxMjAwMH0"
  },
  "data": {
    "id": "01K9F2QH7T8ZRC4M0X5B2VNJ3D",
    "title": "Планёрка отдела продаж",
    "date": "2026-09-21",
    "speakers": [
      "Анна Новикова",
      "Михаил Петров"
    ],
    "total_chars": 48213,
    "text": "Анна Новикова: Начнём с воронки. За неделю сорок два лида, квалифицировано двадцать девять…",
    "content_status": "ready",
    "retryable": false,
    "note": "Это первое окно из четырёх. Не делайте выводов обо всей встрече по одному окну."
  }
}

norm_meetings_list

Встречи компании за интервал дат. Фильтры from и to — дни включительно, за один день from = to. Порядок от свежих к старым; фильтр действует на всех страницах одного обхода. Поле range — окно, за которое у реализации вообще есть встречи: за его пределами встреч нет независимо от фильтра. total — сколько встреч подошло под фильтр до применения страницы. Идентификатор встречи из поля id идёт в norm_meeting_get и norm_meeting_transcript.

Доступ: чтение · Списковый: да · Версии: 1

Вход

ПолеОбязательноТипЗначение
cursorнетstring
fromнетstring (date)
limitнетinteger
toнетstring (date)

Данные ответа

ПолеПри успехеТипЗначение
meetingsдасписок MeetingItem
rangeдаDateRangeОкно дат
totalдаinteger
Пример: успешный ответ
json
{
  "source_refs": [
    {
      "source": "company-data",
      "ref": "meetings:2026-09-15..2026-09-21",
      "label": "Встречи недели"
    }
  ],
  "freshness": {
    "as_of": "2026-09-21T06:00:00.000Z",
    "ttl_sec": 604800,
    "stale": false
  },
  "page": {
    "has_more": true,
    "next_cursor": "eyJvIjoyfQ"
  },
  "data": {
    "range": {
      "from": "2026-08-22",
      "to": "2026-09-21"
    },
    "total": 37,
    "meetings": [
      {
        "id": "01K9F2QH7T8ZRC4M0X5B2VNJ3D",
        "title": "Планёрка отдела продаж",
        "date": "2026-09-21",
        "started_at": "2026-09-21T09:00:00+03:00",
        "ended_at": "2026-09-21T09:47:00+03:00",
        "recorded": true,
        "content_status": "ready",
        "tasks_created": 4,
        "chain_complete": true,
        "participant_emails": [
          "a.novikova@example.com",
          "m.petrov@example.com"
        ]
      },
      {
        "id": "01K9F0YB3M6QA8T2WD7E4RSKPN",
        "title": "Разбор рекламации",
        "date": "2026-09-20",
        "started_at": "2026-09-20T14:30:00+03:00",
        "ended_at": "2026-09-20T15:05:00+03:00",
        "recorded": true,
        "content_status": "no_content",
        "tasks_created": 0,
        "chain_complete": false,
        "participant_emails": [
          "m.petrov@example.com"
        ]
      }
    ]
  }
}