Кейс: автозаполнение CRM из писем и звонков через Heli API

Менеджеры тратят время на перенос данных из писем и звонков в карточки сделок. Ниже — типовая схема автоматизации: backend получает письмо или запись звонка, Heli API извлекает поля в строгом JSON, а код проверяет их и записывает в CRM.

Схема

  • CRM отправляет исходящий вебхук о новом письме или звонке на ваш backend — такие вебхуки есть, например, в amoCRM и Битрикс24.
  • Для звонка backend скачивает запись и расшифровывает её через POST /v1/audio/transcriptions с моделью whisper-1.
  • Текст письма или расшифровка уходит в /v1/chat/completions вместе с JSON Schema нужных полей.
  • Backend проверяет ответ и обновляет сделку или контакт через API CRM.

Схема полей и запрос

Поле stage с enum не даёт модели придумать стадию, которой нет в вашей воронке, а null для пустых полей снижает риск выдуманных значений.

code
schema = {
    "type": "object",
    "properties": {
        "company": {"type": ["string", "null"]},
        "contact_name": {"type": ["string", "null"]},
        "phone": {"type": ["string", "null"]},
        "need": {"type": ["string", "null"], "description": "Что хочет клиент, одним предложением"},
        "stage": {"type": "string", "enum": ["new", "qualified", "proposal", "lost", "unknown"]},
        "next_step": {"type": ["string", "null"]},
    },
    "required": ["company", "contact_name", "phone", "need", "stage", "next_step"],
    "additionalProperties": False,
}
resp = client.chat.completions.create(
    model="openai/gpt-5.4-mini",
    messages=[
        {"role": "system", "content": "Извлеки данные о сделке из текста. "
         "Не придумывай: если данных нет, верни null или unknown."},
        {"role": "user", "content": email_text},
    ],
    response_format={"type": "json_schema",
                     "json_schema": {"name": "crm_lead", "strict": True, "schema": schema}},
    max_tokens=1000,
)
lead = json.loads(resp.choices[0].message.content)

JSON mode и Structured Outputs в Heli API

Модель для извлечения данных

Проверка перед записью

  • Валидируйте формат кодом: телефон по маске, email по шаблону, стадия только из списка.
  • Не перезаписывайте поля, заполненные менеджером вручную: записывайте только пустые или показывайте предложение модели на подтверждение.
  • Ищите дубли по телефону и email до создания нового контакта.
  • Сохраняйте в карточке ссылку на исходное письмо или звонок, чтобы менеджер мог проверить данные.

Модель, расход и данные

Для извлечения по схеме обычно хватает быстрых моделей: openai/gpt-5.4-mini или google/gemini-3.5-flash. Сильную модель стоит подключать только для сложных случаев, например длинных переписок с несколькими участниками. Ограничьте max_tokens и задайте ключу интеграции бюджет во вкладке «Лимиты» кабинета Heli.

Письма и звонки содержат персональные данные. Отправляйте в модель только нужный фрагмент без подписей и цепочки старых писем и проверьте, что такая обработка предусмотрена вашей политикой обработки персональных данных.

Gemini API из России

Лимиты и контроль расходов

Запуск по шагам

Начните с теневого режима: первые недели записывайте предложения модели в отдельное примечание к сделке, а не в поля. Сравните их с тем, что внесли менеджеры, и включайте автозапись только для полей, где модель ошибается редко. Остальные поля оставьте на подтверждение менеджером.

Попробуйте Heli

Ключ sk-heli- появляется после подтверждения почты. Через Google и Яндекс — сразу в кабинете.

Документация API · Модели и цены

Читайте также