Обновлено: 08.04.2023
Во многих сферах услуг важно отправлять клиенту коммерческое предложение (offer, proposal). Для упрощения далее буду назвывать его просто «оффер».
Обычно это PDF-файл со всей инфой, которая интересует клиента:
- Описание услуги.
- Что входит в услугу.
- Стоимость и сроки выполнения услуги.
- Преимущества конкретной компании.
- Контакты менеджера.
- Детали по работе с комментариями от менеджера.
- Другие детали по заявке.
PDF можно составлять как минимум 3 способами:
- Вручную: сначала в Word, потом сохранять, как PDF. Или через другое офисное приложение.
- С помощью онлайн-сервисов по заполнению PDF, где в шаблоне уже размечены все поля и нужно их просто заполнить. Например https://www.pdffiller.com/. Обычно такие решения достаточно дорогие.
- Автоматические генераторы PDF файлов.
- Другие способы.
В данной статье я расскажу 3 способ с автоматической генерацией PDF. Данный способ максимально экономный для менеджера по времени, т.к оффер делается буквально за 5 минут. При большом потоке заявок это очень важно, чтобы все клиенты более-менее вовремя получили оффер по своей заявке.
Схема сценария с генерацией и отправкой оффера:

Создание шаблона PDF в генераторе
Сналача нужно создать шаблон PDF, который мы будем использовать. Шаблон можно спроектировать, отрисовать и сверстать. Или же просто найти готовый шаблон на просторах интернета. Важно иметь HTML-код и CSS, чтобы его можно было загрузить в генератор.
Готовые шаблоны можно взять, например тут https://www.jotform.com/pdf-templates/.
После того, как определились с шаблоном, нужно выбрать сервис, который будет генерировать PDF-ки. Сервис должен иметь интеграцию с Integromat. Я остановился на PDFMonkey. Он бесплатен до 300 генераций в месяц и показался мне наиболее простым для освоения.
Регистрируемся, создаем новый шаблон, заливаем HTML и CSS код в редактор. Делаем пробную генерацию.
Должно получиться что-то типа такого (пример с моим уже настроенным шаблоном):

Сверху есть вкладка Sample data, там мы будем составлять JSON с данными и тестировать на них наш шаблон.
Вот эта вкладка:

На данном этапе в шаблоне мы делаем следующее:
- Приводим HTML и CSS к нужному виду, чтобы PDF выглядел как надо.
- Продумываем, какие переменные будут использоваться и где. Вставляем в HTML-код нужные переменные. Здесь также нужно продумать, откуда будут браться данные в эти переменные (в моем случае это карточка Trello).
- Составляем тестовый JSON с реалистичными данными и убеждаемся, что с тестовыми динамическими данным PDF выглядит нормально.
Если все готово, то переходим к сценарию в Integromat.
Создание сценария в Integromat
Определяем триггер для генерации PDF
Здесь нужно придумать, по какому триггеру сценарий должен начать выполняться. Я работаю в Trello, и триггером является выставление метки (лейбла). У карточки может быть множество меток и каждая из них имеет свой ID.
Также триггером может являться:
- Перемещение карточки в определенный столбец.
- Отправка комментария.
- Выставление значения в выпадающем списке Custom Fields.
- Добавление вложения.
- И многое другое.
Я опишу процесс с выставлением метки. Назовем её «Send Short Offer».
Создаем модуль Trello — Watch Activities. Выбираем доску, за которой следить. Выбираем тип активности addLabeltoCard. Дальше нужно поставить фильтр на нужный ID метки, т.к. модуль будет срабатывать при выставлении любой метки.
Узнаем ID метки и ставим фильтр:

В моем случае в PDF есть переменная «workscheme». Это комментарий менеджера к офферу. Так как сгенерированный оффер сам по себе шаблонный, чтобы его немного разбавить мы используем комментарий менеджера.
Этот комментарий менеджер пишет к карточке в трелло, например:
@myprojectbot Добрый день, по результатам нашего с вами общения высылаю вам коммерческое предложение. В нем вся интересующая вас инфа: цена, срок, гарантии. Заказывайте у нас, жду вашего решения, всего наилучшего.
Пример банальный, но смысл именно такой, чтобы добавить больше личного обращения к клиенту.
Так как в карточке может быть множество других комментариев, этот коммент должен отличаться от других, чтобы для оффера можно было взять именно его. Для этого перед комментарием менеджер должен сделать упоминание бота, в примере выше это @myprojectbot.
Вернемся к нашему сценарию. Следующим модулем будет Trello -> List Comments in a Card. Данный модуль выведет комментарии, которые присутствуют в карточке.
Чтобы сценарий продолжил работать только, если в карточке присутствует нужный комментарий, снова ставим фильтр на присутствие упоминания бота в комментариях:

Если коммент есть, сценарий идет дальше.
Задание переменных для формирования JSON
Дальше нужно задать переменные для наших данных. Делаем это модулем Set Multiple Variables.
Это могут быть:
- Имя клиента.
- Имейл клиента.
- Номер телефона клиента.
- Контакты менеджера.
- Текст карточки.
- Комментарий менеджера к карточке.
- Стоимость услуги.
- Дедлайн.
- И так далее.
Ниже скриншоты моих переменных для оффера:



Дальше важно уберечь менеджеров от фейлов, сделав проверку на заполненность обязательных полей, т.к. если не будет заполнено поле стоимости или имени клиента, такой оффер врядли сконвертит. А фейлы будут обязательно, т.к. в Трелло нет подтверждения никаким действиям. Все срабатывает по единственному клику.
Делаем роутер и в одной из веток ставим фильтр с проверкой полей на наличие данных. Если хотя бы одно поле будет пустое, то фильтр пропустит пакет и отправит его по этой ветке (в моем случае — уведомление в телеграм и завершение сценария). Если же все заполнено, то пакет пройдет по запасной ветке (fallback) и сценарий продолжит выполняться.

Следующие 2 моих модуля: это снова задание переменных. В одном из них я считаю стоимость услуги «за страницу» и комиссию платежной системы. В другом — суммирую стоимость с комиссией, получая окончательную стоимость. Эти данные будут выведены в шаблоне оффера.


Генерация PDF файла, прикрепление и отправка
Вот мы и подобрались к генерации. Создаем модуль PDFMonkey -> Generate a Document и производим его настройки.

Подключаемся к API, ключ находится в личном кабинете. Выбираем App, название шаблона, и заполняем динамический JSON.
Удобно скопировать JSON из вкладки Sample data в PDFMonkey, где мы тестировали шаблон. Дальше нужно лишь разметить его переменными, которые мы задали ранее в сценарии.
Результатом работы этого модуля будет сгенерированный PDF. Дальше нам нужно его скачать.
Для этого создаем модуль PDFMonkey -> Get a Document. И вбиваем в него переменную с ID документа из предыдущего модуля.

После срабатывания этот модуль даст нам ссылку на скачивание файла. Файл скачиваем модулем HTTP -> Get a File.

Дальше, нам нужно сделать, чтобы этот документ был доступен по ссылке. Для этого загружаем документ в нашу карточку Trello как вложение с помощью модуля Trello -> Add an Attachment.

В данном модуле можно задать название файла, например оно может содержать имя или имейл клиента, чтобы легче было ориентироватся.
После срабатывания модуля загрузки файла в карточку, мы получим ссылку вложения в Trello, по которой файл будет доступен всегда, пока его не удалят. При этом не нужно быть зарегистрированным или залогиненным в Трелло. Файлы лежат на серверах Amazon.
Данную ссылку удобно отправлять в имейле. Например сделав соответствующую кнопку в письме и динамически подгружая в неё URL. Также можно крепить файл аттачем в имейл, но здесь риск попасть в папку «спам» возрастает.

Кроме того, ссылку можно просто копировать в карточке и дублировать клиентам в мессенджерах, что тоже удобно.
Еще можно выставлять нужный статус в карточке и/или оставлять комментарий, что оффер успешно сформирован и отправлен, тогда менеджеру будет понятнее весь процесс.
Таким образом, менеджеру, чтобы отправить оффер, нужно сделать следующее:
- Заполнить стоимость.
- Написать комментарий.
- Проверить остальные обязательные поля (часто они уже заполнены клиентом при оформлении заявки).
- Поставить лейбл.
- Расшарить ссылку на PDF файл в удобных для клиента каналах. А письмо на почту отправится автоматически.
Очень быстро и просто. Вот так примерно может выглядеть весь PDF-файл с оффером:



Загрузка и отправка оффера, сделанного вручную
Иногда бывает, что лучше сделать оффер вручную, со множеством деталей, где все заполнено руками менеджера.
Чтобы такой PDF-файл сохранялся в конкретной карточке и отправлялся в письме, можно реализовать сценарий. Он проще, чем для автоматического оффера.

Для срабатывания сценария, лучше сделать отдельную метку. (если триггер — добавление метки). Как и ранее, ставим фильтр на ID нужной метки.
Дальше получем всю инфу по карточке модулем Trello -> Get a Card. А дальше нам снова понадобится фильтр. Чтобы выделить именно нужный файл для отправки в письме (файлов в карточке может быть много), нужно, чтобы в названии файла содержался определенный маркер, например в названии файла Offer_Laura_2021.pdf, Offer_будет как бы маской.
Ставим фильтр, который проверяет присутствие маски в названии файла:

Если хотя бы одно вложение присутствует, то сценарий пойдет дальше.
Чтобы получить нужный URL для вставки в письмо, нужно воспользоваться модулем Trello -> List Attachments и снова поставить фильтр после него, который проверяет на присутствие в именах нужной маски:

Лучше, чтобы менеджер всегда делал только 1 оффер, тогда результатом всегда будет 1 нужный URL, который можно вставлять в письмо.
В этом сценарии также можно выставлять статусы и оставлять комментарии об успешной отправке оффера.
Таким образом, в данном сценарии менеджеру нужно:
- Создать PDF файл, задать ему нужное имя с маской и загрузить в карточку.
- Выставить лейбл.
- Все, оффер отправится клиенту в письме и останется в карточке как напоминание на случай чего.
- Также можно делиться ссылкой в мессенджерах.
В данном сценарии сверху еще есть проверка на ошибку, но об этом уже напишу, если понадобится.
Вот такие сценарии с коммерческими предложениями для клиентов. Такое можно сделать за пару дней или даже быстрее, а времени, которое тратят менеджеры, будет сэкономлено намного больше.

SEO-менеджер.
Люблю SEO, маркетинг, увлекаюсь автоматизацией и терпеть не могу ручную работу, которую можно делегировать роботу.