Переписка с заказчиком это самая большая часть проекта, о которой сам проект ничего не знает. Решения, просьбы и файлы лежат в ящике одного человека, и тот, кого не было в треде, их просто не видел.
Один ящик и выбор по тому, кто пишет
Ящик Gmail подключается обычным разрешением: без паролей и без передачи учётной записи. Дальше выбирается, что именно попадает внутрь: полный адрес или домен целиком. У каждого правила своё направление (только входящие, только исходящие или оба) и дата, ниже которой не спускаются.
Направление считается по владельцу ящика, а не по правилу
Подробность, которая выглядит технической и ею не является. Письмо внешнего человека в общем треде, где владелец ящика стоит лишь в копии, для правила @домен выглядело нашим, и помечалось исходящим. С тех пор направление считается по владельцу: он в отправителях, значит ушло от нас, иначе пришло к нам, и неважно, какое правило принесло письмо.
Это не чистка кода. "Мы написали, не ответили" и "нам написали, мы не ответили" это две разные работы, и вторая стыднее.
Файлы входят вместе с письмами
Вложение чаще всего и есть суть письма, поэтому оно сохраняется и читается. Из PDF, Word, Excel и текста содержимое извлекается; скан без текстового слоя проходит распознавание символов.
И одного имени файла мало. Gmail отдаёт встроенные картинки письма под именем attachment вовсе без расширения (на живом проекте таких 5853, все PNG), и пока тип определялся только расширением, они не читались совсем, молча. Теперь имя спрашивается первым, а если оно молчит, спрашивается заявленный тип.
Исходов три, а не два: либо содержание есть и мы умеем его достать, либо это украшение подписи, либо формат, который мы не читаем. Последние два значат "не обработали", но по разным причинам, и в сверке их складывать нельзя.
Повторная загрузка не плодит дубликаты
Один и тот же ящик загружают не один раз: добавили правило, поправили дату, вернулись за месяцем, который выглядит неполным. У каждого письма есть идентификатор провайдера, и у нас он уникален: письмо, которое уже вошло, просто не входит второй раз.
Без этого любая правка правила удваивала бы целый месяц, и ящик рос бы сам собой всякий раз, когда кто-то трогает настройки.
Загрузка к тому же продолжается с места остановки: хранится курсор, и обрыв посередине не начинает всё заново.
Письмо, привязанное к задаче
Письму не обязательно оставаться в ящике: его можно привязать к задаче, и тогда оно читается рядом с её историей. Так "заказчик просил это письмом" перестаёт быть утверждением и становится ссылкой.
Кто говорил, а не только что написано
Каждый участник треда сохраняется как человек, а не как строка с адресом. Отсюда открывается обратное направление: открыть контакт и увидеть, в каких тредах он был.
Отсев: что вообще стоит читать
Не всякое письмо является работой. Хранится список тем, которые заведомо шум (сейчас 18), а входящим письмам ставится оценка тона: что требуется и с какой срочностью. Порядок величин: 2209 размеченных писем.
Перед любым обращением к модели текст проходит маскирование идентификаторов: номер удостоверения, телефон, адрес. Модель видит письмо без данных, по которым узнают человека.
Что видит заказчик
Ничего. Почтовые экраны принадлежат исполнителю, а в портале заказчика экрана почты нет вовсе. Это не настройка, которую можно забыть переключить: такой страницы там просто нет.
Чем это отличается от общего ящика
Общий ящик просит вас переехать работать в него. Здесь ящик остаётся вашим, а в проект попадает только выбранное, вместе с файлами, людьми и тредами. Писать вы продолжаете оттуда же, откуда писали вчера.
Частые вопросы
Какой почтовый ящик можно подключить?
Вложения читаются или только хранятся?
Что будет, если поменять правило и загрузить ящик заново?
Видит ли почту заказчик? А модель?
Хотите посмотреть это на своих данных? Можно начать с пробного периода, без карты.
Начать бесплатно