Урок 3.2 · Модуль 3 · AI в обычной работе: тексты, почта, встречи, переводы

AI в переписке — умная почта, черновики писем, ответы с помощью AI

Уверенный пользователь50 минОбновлено: октябрь 2026
11 из 53 в основном курсе

Время: ~20 мин теории + 30 мин практики


Суть урока

Профессионалы тратят на почту заметную часть дня (проверь по своему трекеру времени, если ведёшь его). Дело не в том, что писем много: каждое письмо требует думать, что ответить, как сформулировать и как не забыть. Claude берёт на себя черновую работу: разбирает письма и набрасывает ответы. Решения остаются за тобой.

Не «AI вместо тебя», а AI как фильтр и черновик. Ты всё равно нажимаешь «Отправить», но тратишь на это в разы меньше времени.

Урок устроен так. Сначала путь без кода: разбор писем и черновики в обычном чате Claude. Для повседневной почты этого хватает, и практика начинается с него. Разделы и задания с пометкой «для тех, кто строит» содержат код на Python: они нужны только тем, кто собирает собственную автоматизацию, остальные их пропускают.

🎨 Образ: AI-помощник по почте — как пресс-секретарь президента. Президент не пишет каждый ответ сам. Пресс-секретарь знает его позицию, стиль и то, чего он никогда не скажет. Готовит текст. Президент читает, правит пару слов, подписывает. Власть и решения остаются у президента, а время освобождается.


Ключевые концепции

  • Подключение Gmail — Claude читает входящие письма (по-английски inbox), сортирует их и пишет черновики ответов. Подключают почту готовым коннектором или через MCP (так называется стандартный способ подключать к Claude внешние сервисы)
  • Черновик в твоём стиле — Claude пишет ответ, ты правишь и одобряешь, а не пишешь с нуля
  • Пустой ящик (Inbox Zero) — утром Claude разбирает всю почту, ты получаешь список по важности
  • Apollo / Hunter.io — сервисы для поиска рабочих адресов и для «холодных» писем, то есть первых писем незнакомым людям
  • Lemlist — сервис рассылок с автоматическими письмами-напоминаниями
  • Цепочка писем — серия писем от заявки до сделки, пишется один раз

Теория

Зачем AI для email: считаем время (условный пример)

Типичный день:

  • 80 входящих писем
  • Из них 20 требуют ответа
  • Каждый ответ: 5-7 минут на обдумывание и написание
  • Итого: 100-140 минут, то есть примерно 2 часа

С AI:

  • Claude читает всё и делит на группы: срочное / ждёт ответа / к сведению / спам
  • Для 20 писем, требующих ответа, составляет черновики
  • Ты читаешь черновики, часть правишь, остальные одобряешь
  • Итого: 25-30 минут

В этом условном примере экономия примерно 70-115 минут в день. Подставь свои цифры.


Подключение Gmail: Claude читает твою почту

Самый простой способ ничего не подключает: скопируй письмо в чат Claude и попроси черновик ответа. Это работает на любом тарифе и с любой почтой, и для нескольких писем в день этого достаточно.

Если писем много, почту можно подключить. Тогда Claude сам читает письма, ищет их по условиям и пишет черновики ответов. Ты разговариваешь с ним как с помощником.

Способы подключения (на октябрь 2026):

  • Коннектор Gmail в Claude (тарифы Pro, Max, Team и Enterprise): самый простой путь. В Claude открой Customize → Connectors («Настроить» → «Коннекторы»), найди Gmail, нажми Connect и войди в аккаунт Google. Потом включи его в чате: кнопка «+» под полем сообщения → Connectors → Gmail. По справке Claude, коннектор только читает и ищет письма: создавать, отправлять и менять письма он не может. Черновик Claude пишет в чате, а в почту его переносишь ты.
  • Официальный MCP-сервер Gmail от Google (предварительная версия для разработчиков, Google Workspace Developer Preview). По документации Google он ищет письма и цепочки, читает сообщения, создаёт черновики и ставит ярлыки; отправки писем в списке возможностей нет. Нужны проект в Google Cloud, OAuth-клиент (способ входа через Google) и тариф Claude Pro, Max, Team или Enterprise. Это путь для тех, кто строит.
  • Сторонние MCP-серверы и сервисы-посредники (например, Composio): удобно, но доступ к почте получает третья сторона. Проверь права, репутацию и политику хранения данных.

Принцип доступа: давай минимальные права (чтение и черновики), отправку оставь себе. Если ящик рабочий, до подключения узнай правила работодателя об AI-сервисах.

Код
# Для тех, кто строит: официальный сервер Gmail от Google подключается в Claude как свой коннектор:
# Customize → Connectors → Add custom connector
# Remote MCP server URL: https://gmailmcp.googleapis.com/mcp/v1
# OAuth Client ID и Secret создаются в Google Cloud Console
# (инструкция: developers.google.com/workspace/gmail/api/guides/configure-mcp-server)

После подключения — запрос в Claude:

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

Для каждого срочного составь черновик ответа в моём стиле:
краткий, конкретный, без лишних слов.

Claude прочитает письма, выдаст таблицу с группами и готовые черновики для срочных. Ты смотришь черновики, правишь где нужно, копируешь в Gmail и отправляешь.


Черновики в твоём стиле: описание стиля для Claude

Чтобы черновики были похожи на тебя, а не на шаблонный корпоративный текст, опиши свой стиль. В обычном чате вставляй это описание в начало разговора (и держи его в заметках, чтобы было под рукой). В Claude Code то же описание кладут в файл CLAUDE.md проекта: Claude Code читает его как постоянную инструкцию. В коде его передают как системный промпт.

Пример описания стиля (в Claude Code это содержимое файла CLAUDE.md):

Напиши в чат
# Мой стиль писем

## Общие правила
- Максимум 150 слов на ответ (если это не договор и не подробное техническое задание)
- Начинаю сразу с сути, без «Добрый день, надеюсь, письмо застанет вас в добром здравии»
- В конце каждого письма конкретный призыв к действию: чего жду от человека и когда
- Предпочитаю списки вместо длинных абзацев

## Запрещено
- «Как я уже упоминал ранее...» — это пассивная агрессия
- «В целом», «в принципе», «по большому счёту» — размытые слова
- Несколько вопросов в одном письме (только один вопрос)

## Пример хорошего ответа
Запрос о стоимости консультации:
«Первичная консультация — $200 в час.
Ближайшее время: завтра в 15:00 или пятница в 11:00.
Подтверди удобное время, и я вышлю ссылку на Zoom.»

## Пример плохого ответа (так не писать)
«Добрый день! Спасибо за ваш вопрос! Я рад сообщить, что наши
консультации доступны по различным тарифным планам...»

Для тех, кто строит: скрипт на Python для черновика ответа

Этот раздел необязательный. Он для тех, кто пишет код и хочет встроить черновики в свою систему через API (так программы обращаются к Claude напрямую, без чата). Если ты не программируешь, пропусти код и переходи к разделу про цепочку писем.

python
import anthropic
import os

client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

def draft_reply(incoming_email: str, context: str = "") -> str:
    """
    Генерирует черновик ответа на входящее письмо.
    Возвращает черновик — НЕ отправляет автоматически.
    Ты проверяешь и отправляешь сам.
    """
    response = client.messages.create(
        model="claude-sonnet-5-5",  # актуальные идентификаторы моделей: документация Anthropic
        max_tokens=4000,  # с запасом: в этот лимит входит и «размышление» модели
        system="""Ты личный помощник по почте. Пишешь ответы в таком стиле:
        
        - Краткий и по делу: не больше 100-150 слов
        - Начинай сразу с содержания, без светских приветствий
        - В конце всегда конкретный призыв к действию: чего ждёшь от человека и когда
        - Используй списки, если пунктов три и больше
        - Тон: профессиональный, но не казённый
        
        ВАЖНО: ты предлагаешь черновик, не финальный текст.
        Никогда не добавляй подпись — владелец добавит сам.""",
        messages=[{
            "role": "user",
            "content": f"""Входящее письмо:
---
{incoming_email}
---

Дополнительный контекст для ответа: {context if context else 'нет'}

Составь черновик ответа."""
        }]
    )
    # В ответе могут быть блоки «размышления»: берём только текст
    return "".join(block.text for block in response.content if block.type == "text")


def classify_email(email_text: str) -> dict:
    """
    Сортирует письмо: нужен ли ответ, срочность, тип.
    Возвращает dict с результатом.
    """
    response = client.messages.create(
        model="claude-haiku-4-5",  # Haiku — быстро и дёшево для сортировки; Haiku 4.5 может быть выведена из API не раньше 15.10.2026, сверь идентификатор в документации
        max_tokens=150,
        messages=[{
            "role": "user",
            "content": f"""Классифицируй это письмо. Верни только JSON:
{{
  "needs_reply": true/false,
  "urgency": "high"/"medium"/"low",
  "type": "client_inquiry"/"follow_up"/"newsletter"/"spam"/"internal"/"other",
  "summary": "одно предложение о чём письмо"
}}

Письмо:
{email_text}"""
        }]
    )
    import json
    text = "".join(block.text for block in response.content if block.type == "text")
    return json.loads(text)


# Пример использования
if __name__ == "__main__":
    incoming = """
    Привет! Меня интересует консультация по недвижимости в Куэнке.
    Мы с женой думаем о переезде в следующем году, хотим понять
    реальную стоимость жилья и что нужно для покупки иностранцем.
    Сколько стоит ваша консультация и когда можете?
    """
    
    # Шаг 1: сортируем
    classification = classify_email(incoming)
    print(f"Тип: {classification['type']}")
    print(f"Срочность: {classification['urgency']}")
    print(f"Суть: {classification['summary']}")
    print(f"Нужен ответ: {classification['needs_reply']}")
    
    # Шаг 2: если нужен ответ — генерируем черновик
    if classification["needs_reply"]:
        context = "Консультация стоит $200/час. Ближайшее окно: завтра 15:00 или пятница 11:00"
        draft = draft_reply(incoming, context)
        print(f"\nЧерновик ответа:\n{'-'*40}\n{draft}")

Apollo + Hunter.io: AI для холодных писем

Этот раздел для тех, кто ищет клиентов; к нему можно вернуться, когда дойдёшь до модуля о первых клиентах. Apollo и Hunter.io решают задачу «найди рабочий адрес нужного человека». Claude превращает найденные контакты в личные письма. Без кода это делается руками: найди адрес на сайте Apollo или Hunter, вставь в чат Claude то, что знаешь о человеке, и попроси письмо по правилам из запроса ниже. Подключения и скрипт — для тех, кто строит.

🎨 Образ: Apollo + Claude — как рыболовная сеть с умной наживкой. Сеть (Apollo) находит нужных людей. Наживка (Claude) написана лично под каждого, не по шаблону. Рыба (возможный клиент) клюёт охотнее.

Напиши в чат
# Подключение зависит от выбранного сервиса-посредника или сервиса:
# формат команды и способ входа смотри в документации Apollo, Hunter или MCP-посредника.
# Ключи API храни в переменных окружения и передавай в заголовке запроса, а не в адресе.

Важно про холодные письма: рассылка незнакомым людям регулируется законами о спаме и о персональных данных (основание для письма, возможность отписаться, хранение контактов). Правила разные в разных странах; в США, например, коммерческие письма подпадают под федеральный закон CAN-SPAM. Проверь правила своей страны и страны получателя. Claude пишет текст, ответственность за рассылку остаётся на тебе.

После подключения — задача в Claude Code:

Напиши в чат
Используй Apollo. Найди 20 владельцев агентств недвижимости
в Куэнке, Эквадор. Для каждого:
1. Найди адрес почты через Hunter.io
2. Изучи его профиль в LinkedIn (если он есть в Apollo)
3. Напиши личное холодное письмо на испанском:
   - Упомяни что-то конкретное из профиля или бизнеса
   - Объясни в 2 предложениях, чем я могу быть полезен
   - Один конкретный вопрос в конце
   - Не больше 120 слов

Сохрани результат в CSV: имя, email, текст письма.

Версия без MCP, через прямые вызовы API:

python
import anthropic
import requests
import os
import csv

client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
HUNTER_API_KEY = os.environ["HUNTER_API_KEY"]

def find_email(domain: str, first_name: str, last_name: str) -> str:
    """Находит email через Hunter.io по домену и имени"""
    response = requests.get(
        "https://api.hunter.io/v2/email-finder",
        params={
            "domain": domain,
            "first_name": first_name,
            "last_name": last_name,
        },
        # Ключ идёт в заголовке, а не в адресе запроса: так он не попадает в журналы и историю
        headers={"X-API-KEY": HUNTER_API_KEY},
    )
    data = response.json()
    if data.get("data", {}).get("email"):
        return data["data"]["email"]
    return None


def write_cold_email(
    recipient_name: str,
    company: str,
    context_about_them: str,
    language: str = "Spanish"
) -> str:
    """Генерирует личное холодное письмо"""
    
    response = client.messages.create(
        model="claude-sonnet-5-5",
        max_tokens=4000,  # с запасом: в этот лимит входит и «размышление» модели
        system=f"""Ты пишешь личные холодные письма на языке: {language}.
        
        Правила:
        - Максимум 120 слов
        - Упомяни конкретную деталь о человеке или компании
        - Польза в 1-2 предложениях: что конкретно можешь дать
        - В конце один вопрос (не несколько)
        - Без шаблонных фраз «Надеюсь, письмо вас застанет...»
        - Профессиональный тон, без напора продавца""",
        messages=[{
            "role": "user",
            "content": f"""Получатель: {recipient_name}
Компания: {company}
Что я знаю о них: {context_about_them}

Я: агент Acme Realty, помогаю русскоязычным найти недвижимость в Эквадоре.
Могу предлагать совместные сделки агентствам недвижимости.

Напиши холодное письмо."""
        }]
    )
    # В ответе могут быть блоки «размышления»: берём только текст
    return "".join(block.text for block in response.content if block.type == "text")


# Список контактов для первых писем
contacts = [
    {
        "name": "Carlos Rodríguez",
        "company": "InmoCuenca",
        "domain": "example.com",
        "first_name": "Carlos",
        "last_name": "Rodriguez",
        "context": "Специализируются на элитной недвижимости в историческом центре"
    },
    # ... остальные контакты
]

# Генерируем письма и сохраняем в CSV
with open("cold_outreach.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["Имя", "Компания", "Email", "Письмо"])
    
    for contact in contacts:
        email = find_email(
            contact["domain"],
            contact["first_name"],
            contact["last_name"]
        )
        
        if email:
            letter = write_cold_email(
                contact["name"],
                contact["company"],
                contact["context"],
                language="Spanish"
            )
            writer.writerow([contact["name"], contact["company"], email, letter])
            print(f"Готово: {contact['name']} <{email}>")
        else:
            print(f"Email не найден: {contact['name']}")

print("Сохранено в cold_outreach.csv")

Цепочка писем: от заявки до сделки

Цепочка писем (по-английски email sequence) — серия писем, которая уходит автоматически после заявки или другого действия человека. Claude пишет все письма один раз. Без кода: попроси Claude в чате написать четыре письма по схеме ниже и вставь их в сервис рассылок (Lemlist или другой), где настраивается расписание. В каждом письме оставляй возможность отписаться. Скрипт под схемой — для тех, кто строит.

Код
Человек оставил заявку на сайте
          |
          v
Сразу:   Приветственное письмо
         (Claude подставляет данные из формы: имя, откуда человек, чем интересуется)
          |
          v
День 3:  Полезное письмо
         (AI выбирает материал из базы: если интерес «аренда» → статья об аренде)
          |
          v
День 7:  Письмо с историей клиента
         (история реального клиента, похожего на этого человека)
          |
          v
День 14: Письмо с предложением
         (конкретное предложение и призыв записаться на консультацию)
python
import anthropic
import os
from datetime import datetime

client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

def generate_welcome_email(
    name: str,
    interest: str,  # "аренда" / "покупка" / "инвестиции"
    city_of_origin: str
) -> str:
    """Приветственное письмо с данными человека"""
    
    response = client.messages.create(
        model="claude-sonnet-5-5",
        max_tokens=4000,  # с запасом: в этот лимит входит и «размышление» модели
        system="""Пишешь приветственное письмо русскоязычному человеку,
        который заинтересовался недвижимостью в Эквадоре.
        
        Стиль: тёплый, не официальный. Как будто пишет живой человек.
        Длина: 100-120 слов.
        Структура: приветствие → что он получит дальше → один вопрос, чтобы лучше помочь.""",
        messages=[{
            "role": "user",
            "content": f"""Имя: {name}
Интерес: {interest}
Откуда: {city_of_origin}

Напиши приветственное письмо."""
        }]
    )
    # В ответе могут быть блоки «размышления»: берём только текст
    return "".join(block.text for block in response.content if block.type == "text")


def select_value_content(interest: str, knowledge_base: dict) -> str:
    """
    Выбирает подходящий материал из базы знаний для полезного письма.
    knowledge_base — словарь тем → тексты статей/советов
    """
    response = client.messages.create(
        model="claude-haiku-4-5",
        max_tokens=600,
        messages=[{
            "role": "user",
            "content": f"""Человек интересуется: {interest}

Доступные материалы:
{chr(10).join([f"- {topic}: {text[:100]}..." for topic, text in knowledge_base.items()])}

Выбери самый подходящий материал и напиши письмо на 120-150 слов.
Используй конкретные факты из выбранного материала."""
        }]
    )
    return "".join(block.text for block in response.content if block.type == "text")


# База знаний (в реальности — читается из файлов или БД; данные ниже условные, для примера)
KNOWLEDGE_BASE = {
    "аренда": "Средняя стоимость аренды в Куэнке: 1-комнатная $350-500, 2-комнатная $500-800. Лучшие районы: El Centro, Ordóñez Lasso...",
    "покупка": "Процесс покупки для иностранца: RUC → счёт в банке → promesa de compraventa → escritura. Занимает 45-90 дней...",
    "инвестиции": "Доходность аренды зависит от района и объекта; в реальной базе здесь лежат твои проверенные данные и оговорки (не инвестиционная рекомендация)...",
}

# Пример: генерируем приветственное письмо
email = generate_welcome_email(
    name="Михаил",
    interest="покупка",
    city_of_origin="Москва"
)
print("Приветственное письмо:")
print(email)
print()

# Полезное письмо
value_email = select_value_content("покупка", KNOWLEDGE_BASE)
print("Полезное письмо (день 3):")
print(value_email)

Пустой ящик (Inbox Zero): утренний разбор почты за 20 минут

Inbox Zero («ноль входящих») — привычка каждый день разбирать почту до конца. Схема на каждый день:

Напиши в чат
07:00  Claude читает все новые письма за ночь
       Без кода: ты открываешь чат с подключённым Gmail и даёшь запрос из раздела про подключение
       С кодом: скрипт запускается сам
       Делит письма на группы: срочное / обычное / к сведению / спам
       Пишет черновики для всего, что требует ответа

07:10  Ты открываешь сводку (ответ в чате; у скрипта это файл или сообщение в Telegram)
       Видишь: 3 срочных, 8 обычных, 12 к сведению

07:10-07:30  Просматриваешь черновики срочных писем
             Правишь, если нужно (часть черновиков всегда требует правки)
             Отправляешь
             Обычные — ставишь на вечер или завтра
             К сведению — в архив одной кнопкой

07:30  Входящие разобраны. День начат.

Скрипт ниже — для тех, кто строит: он делает ту же сортировку и черновики без чата.

python
import anthropic
import os
from typing import List

client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

def process_inbox(emails: List[dict], your_context: str) -> dict:
    """
    Обрабатывает список писем: сортирует и составляет черновики.
    
    emails: список dict с полями subject, sender, body, date
    your_context: описание твоей работы, чтобы Claude писал в твоём стиле
    """
    
    results = {
        "urgent": [],
        "normal": [],
        "fyi": [],
        "spam": [],
    }
    
    for email in emails:
        # Сортировка
        classification_response = client.messages.create(
            model="claude-haiku-4-5",
            max_tokens=200,
            messages=[{
                "role": "user",
                "content": f"""Классифицируй письмо. Верни JSON:
{{
  "category": "urgent"/"normal"/"fyi"/"spam",
  "needs_reply": true/false,
  "summary": "одно предложение"
}}

От: {email['sender']}
Тема: {email['subject']}
Текст: {email['body'][:500]}"""
            }]
        )
        
        import json
        classification = json.loads(
            "".join(block.text for block in classification_response.content if block.type == "text")
        )
        category = classification["category"]
        
        email_data = {
            **email,
            "summary": classification["summary"],
            "draft": None
        }
        
        # Черновик только если нужен ответ
        if classification["needs_reply"] and category in ["urgent", "normal"]:
            draft_response = client.messages.create(
                model="claude-sonnet-5-5",
                max_tokens=4000,  # с запасом: в этот лимит входит и «размышление» модели
                system=f"""Ты помощник по почте. Контекст о владельце:
{your_context}

Стиль ответов: краткий, по делу, конкретный призыв к действию в конце.""",
                messages=[{
                    "role": "user",
                    "content": f"""Составь черновик ответа на это письмо:

От: {email['sender']}
Тема: {email['subject']}
Текст: {email['body']}"""
                }]
            )
            # В ответе могут быть блоки «размышления»: берём только текст
            email_data["draft"] = "".join(
                block.text for block in draft_response.content if block.type == "text"
            )
        
        results[category].append(email_data)
    
    return results


def format_daily_brief(processed: dict) -> str:
    """Собирает сводку для утреннего чтения"""
    
    lines = [
        f"Сводка по почте — {__import__('datetime').date.today()}",
        f"Срочных: {len(processed['urgent'])} | "
        f"Обычных: {len(processed['normal'])} | "
        f"К сведению: {len(processed['fyi'])} | "
        f"Спам: {len(processed['spam'])}",
        "",
    ]
    
    if processed["urgent"]:
        lines.append("СРОЧНЫЕ (ответить сегодня):")
        for email in processed["urgent"]:
            lines.append(f"  От: {email['sender']}")
            lines.append(f"  Суть: {email['summary']}")
            if email["draft"]:
                lines.append(f"  Черновик:\n  {email['draft'][:200]}...")
            lines.append("")
    
    if processed["normal"]:
        lines.append("ОБЫЧНЫЕ:")
        for email in processed["normal"]:
            lines.append(f"  - {email['sender']}: {email['summary']}")
    
    return "\n".join(lines)


# Пример использования (в реальности письма приходят через Gmail API)
sample_emails = [
    {
        "sender": "[email protected]",
        "subject": "Совместная сделка",
        "body": "Добрый день! У меня есть клиент из России, который ищет квартиру за $150 тысяч. Можем ли мы поработать вместе?",
        "date": "2026-10-05"
    },
    {
        "sender": "[email protected]",
        "subject": "Еженедельный обзор рынка",
        "body": "Отчёт о рынке недвижимости Эквадора за прошлую неделю...",
        "date": "2026-10-05"
    },
]

YOUR_CONTEXT = """
Acme Realty — помогает русскоязычным купить или арендовать недвижимость в Эквадоре.
Работаю с клиентами напрямую и через местные агентства-партнёры.
Стиль общения: дружелюбный, конкретный, без лишних слов.
"""

processed = process_inbox(sample_emails, YOUR_CONTEXT)
brief = format_daily_brief(processed)
print(brief)

Письма на двух языках: одна система

Если тебе пишут на двух языках (например, русскоязычные клиенты и местные испаноязычные партнёры), Claude сам определяет язык письма и отвечает на нём. Без кода: вставь письмо в чат и попроси «ответь на языке письма и одной строкой перескажи мне по-русски, о чём оно». Каждый черновик всё равно читаешь ты; если языка не знаешь, важные письма покажи человеку, который им владеет. Код ниже — для тех, кто строит (он продолжает скрипт из предыдущего раздела).

python
def multilingual_reply(incoming_email: str, your_context: str) -> dict:
    """
    Определяет язык письма и составляет ответ на том же языке.
    Возвращает: {detected_language, draft, summary_in_russian}
    """
    response = client.messages.create(
        model="claude-sonnet-5-5",
        max_tokens=4000,  # с запасом: в этот лимит входит и «размышление» модели
        system=f"""Ты двуязычный помощник по почте (русский + испанский).

Контекст о владельце:
{your_context}

Правила:
1. Определи язык входящего письма
2. Ответь на ТОМ ЖЕ языке (не переключай без причины)
3. Если испанский — сохрани профессиональный латиноамериканский тон
4. Если русский — краткий деловой стиль

Верни JSON:
{{
  "detected_language": "Russian"/"Spanish"/"Other",
  "draft": "черновик ответа на языке письма",
  "summary_in_russian": "одно предложение о чём письмо — всегда на русском"
}}""",
        messages=[{
            "role": "user",
            "content": f"Письмо:\n{incoming_email}"
        }]
    )
    import json
    # В ответе могут быть блоки «размышления»: берём только текст
    text = "".join(block.text for block in response.content if block.type == "text")
    return json.loads(text)


# Проверка
spanish_email = """
Buenos días! Soy agente inmobiliario en Cuenca y tengo clientes 
de Rusia que buscan apartamentos. ¿Podríamos colaborar?
"""

result = multilingual_reply(spanish_email, YOUR_CONTEXT)
print(f"Язык: {result['detected_language']}")
print(f"Суть (по-русски): {result['summary_in_russian']}")
print(f"\nЧерновик ответа:\n{result['draft']}")

Практика

Задания 1–3 делаются в обычном чате, без кода. Задания 4 и 5 — для тех, кто строит.

  1. Возьми 5 настоящих писем, на которые нужно ответить. Вставляй их в чат Claude по одному и проси черновик ответа. Сначала убери из писем чужие персональные данные: не отправляй их в сервисы, на которые у тебя нет права. Готово, когда есть 5 черновиков.

  2. Напиши описание своего стиля по образцу из урока: правила, 3-5 запрещённых фраз, пример хорошего и пример плохого ответа. Вставь его в начало нового чата и попроси черновики на те же 5 писем. Сравни с первым заходом: вторые черновики должны звучать как ты. (Работаешь в Claude Code — сохрани описание как CLAUDE.md.)

  3. Если у тебя платный тариф Claude, подключи Gmail коннектором (Customize → Connectors, см. выше) и сделай утренний разбор: дай запрос из раздела про подключение и проверь, что Claude верно разделил письма на срочные, обычные и «к сведению». Без платного тарифа сделай то же на 10 письмах, вставленных в чат.

  4. Для тех, кто строит: напиши скрипт email_classifier.py с функциями classify_email и draft_reply из урока и проверь его на тех же 5 письмах. Затем настрой process_inbox + format_daily_brief, запусти на своей почте и оцени качество черновиков. Если подключаешь официальный MCP-сервер Gmail от Google, права давай минимальные: чтение и черновики, без отправки.

  5. Для тех, кто строит и ищет клиентов: выбери одну задачу на холодные письма (5-10 контактов) и попробуй write_cold_email на реальных данных. Перед отправкой проверь каждое письмо и правила рассылок в стране получателя.


Инструменты и ресурсы

  • Composio — сервис-посредник для подключения Gmail, Apollo, Hunter и других сервисов к Claude через MCP (доступ к почте получает третья сторона: проверь права)
  • Gmail API — официальная документация, если подключаешь почту напрямую
  • Gmail MCP-сервер Google — предварительная версия для разработчиков: поиск, чтение, черновики, ярлыки
  • Apollo.io — база контактов и поиск адресов (есть бесплатный план; условия и цены на сайте)
  • Hunter.io — поиск рабочих адресов по домену компании (есть бесплатный план; условия на сайте)
  • Lemlist — холодные письма с автоматическими напоминаниями (условия на сайте)
  • Instantly.ai — замена Lemlist для больших рассылок (условия на сайте)
  • anthropic Python SDK — библиотека для скриптов из урока
  • Цены и версии: Актуальное сейчас

Ключевые выводы

Почта — это не про написание текста, а про решения: кому ответить, что сказать, когда. Claude берёт техническую часть (написать текст в твоём стиле). Решения остаются за тобой.

Черновики получаются хорошими, только если Claude знает твой стиль. Потрать 30 минут на описание стиля с примерами хорошего и плохого ответа: оно пригодится каждый день.

Пустой ящик достижим. Сортировка и черновики заметно сокращают время на почту. Главное: не автоматизировать отправку полностью, оставить себе финальный просмотр.

Холодные письма с AI — это личное обращение с меньшим объёмом ручной работы. Apollo находит людей, Hunter.io находит адрес, Claude пишет письмо так, как будто ты изучал человека 20 минут. На самом деле это несколько секунд работы API, поэтому перед отправкой проверь детали, на которые он опирался.


Следующий урок

→ Встречи с AI — транскрипция и автоматические протоколы — записываем встречи и превращаем их в задачи

Отметка хранится только в этом браузере и никуда не отправляется. Мой прогресс