Перейти к содержимому

Генерация и отправка коммерческого предложения в PDF через Integromat

Пример настройки шаблона в PDFMonkey

Обновлено: 08.04.2023

Во многих сферах услуг важно отправлять клиенту коммерческое предложение (offer, proposal). Для упрощения далее буду назвывать его просто «оффер».

Обычно это PDF-файл со всей инфой, которая интересует клиента:

  1. Описание услуги.
  2. Что входит в услугу.
  3. Стоимость и сроки выполнения услуги.
  4. Преимущества конкретной компании.
  5. Контакты менеджера.
  6. Детали по работе с комментариями от менеджера.
  7. Другие детали по заявке.

PDF можно составлять как минимум 3 способами:

  1. Вручную: сначала в Word, потом сохранять, как PDF. Или через другое офисное приложение.
  2. С помощью онлайн-сервисов по заполнению PDF, где в шаблоне уже размечены все поля и нужно их просто заполнить. Например https://www.pdffiller.com/. Обычно такие решения достаточно дорогие.
  3. Автоматические генераторы PDF файлов.
  4. Другие способы.

В данной статье я расскажу 3 способ с автоматической генерацией PDF. Данный способ максимально экономный для менеджера по времени, т.к оффер делается буквально за 5 минут. При большом потоке заявок это очень важно, чтобы все клиенты более-менее вовремя получили оффер по своей заявке.

Схема сценария с генерацией и отправкой оффера:

Сценарий с генерацией и отправкой оффера в PDF
Сценарий с генерацией и отправкой оффера в PDF

Создание шаблона PDF в генераторе

Сналача нужно создать шаблон PDF, который мы будем использовать. Шаблон можно спроектировать, отрисовать и сверстать. Или же просто найти готовый шаблон на просторах интернета. Важно иметь HTML-код и CSS, чтобы его можно было загрузить в генератор.

Готовые шаблоны можно взять, например тут https://www.jotform.com/pdf-templates/.

После того, как определились с шаблоном, нужно выбрать сервис, который будет генерировать PDF-ки. Сервис должен иметь интеграцию с Integromat. Я остановился на PDFMonkey. Он бесплатен до 300 генераций в месяц и показался мне наиболее простым для освоения.

Регистрируемся, создаем новый шаблон, заливаем HTML и CSS код в редактор. Делаем пробную генерацию.

Должно получиться что-то типа такого (пример с моим уже настроенным шаблоном):

Пример настройки шаблона в PDFMonkey
Пример настройки шаблона в PDFMonkey

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

Вот эта вкладка:

Тестовый JSON в PDFMonkey
Тестовый JSON в PDFMonkey

На данном этапе в шаблоне мы делаем следующее:

  1. Приводим HTML и CSS к нужному виду, чтобы PDF выглядел как надо.
  2. Продумываем, какие переменные будут использоваться и где. Вставляем в HTML-код нужные переменные. Здесь также нужно продумать, откуда будут браться данные в эти переменные (в моем случае это карточка Trello).
  3. Составляем тестовый JSON с реалистичными данными и убеждаемся, что с тестовыми динамическими данным PDF выглядит нормально.

Если все готово, то переходим к сценарию в Integromat.

Создание сценария в Integromat

Определяем триггер для генерации PDF

Здесь нужно придумать, по какому триггеру сценарий должен начать выполняться. Я работаю в Trello, и триггером является выставление метки (лейбла). У карточки может быть множество меток и каждая из них имеет свой ID.

Также триггером может являться:

  1. Перемещение карточки в определенный столбец.
  2. Отправка комментария.
  3. Выставление значения в выпадающем списке Custom Fields.
  4. Добавление вложения.
  5. И многое другое.

Я опишу процесс с выставлением метки. Назовем её «Send Short Offer».

Создаем модуль Trello — Watch Activities. Выбираем доску, за которой следить. Выбираем тип активности addLabeltoCard. Дальше нужно поставить фильтр на нужный ID метки, т.к. модуль будет срабатывать при выставлении любой метки.

Узнаем ID метки и ставим фильтр:

Фильтр на выставление нужной метки
Фильтр на выставление нужной метки

 

В моем случае в PDF есть переменная «workscheme». Это комментарий менеджера к офферу. Так как сгенерированный оффер сам по себе шаблонный, чтобы его немного разбавить мы используем комментарий менеджера.

Этот комментарий менеджер пишет к карточке в трелло, например:

@myprojectbot Добрый день, по результатам нашего с вами общения высылаю вам коммерческое предложение. В нем вся интересующая вас инфа: цена, срок, гарантии. Заказывайте у нас, жду вашего решения, всего наилучшего.

Пример банальный, но смысл именно такой, чтобы добавить больше личного обращения к клиенту.

Так как в карточке может быть множество других комментариев, этот коммент должен отличаться от других, чтобы для оффера можно было взять именно его. Для этого перед комментарием менеджер должен сделать упоминание бота, в примере выше это @myprojectbot.

Вернемся к нашему сценарию. Следующим модулем будет Trello -> List Comments in a Card. Данный модуль выведет комментарии, которые присутствуют в карточке.

Чтобы сценарий продолжил работать только, если в карточке присутствует нужный комментарий, снова ставим фильтр на присутствие упоминания бота в комментариях:

Проверка упоминания бота в комментариях
Проверка упоминания бота в комментариях

Если коммент есть, сценарий идет дальше.

Задание переменных для формирования JSON

Дальше нужно задать переменные для наших данных. Делаем это модулем Set Multiple Variables.

Это могут быть:

  1. Имя клиента.
  2. Имейл клиента.
  3. Номер телефона клиента.
  4. Контакты менеджера.
  5. Текст карточки.
  6. Комментарий менеджера к карточке.
  7. Стоимость услуги.
  8. Дедлайн.
  9. И так далее.

Ниже скриншоты моих переменных для оффера:

Задание переменных с данными для генерации PDF
Задание переменных с данными для генерации PDF

 

Задание переменных с данными для генерации PDF
Задание переменных с данными для генерации PDF

 

Задание переменных с данными для генерации PDF
Задание переменных с данными для генерации PDF

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

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

Проверка заполненности обязательных полей для PDF
Проверка заполненности обязательных полей для PDF

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

Подсчет стоимости за страницу и комисии на платеж
Подсчет стоимости за страницу и комиссии на платеж

 

Подсчет окончательной стоимости с комиссией
Подсчет окончательной стоимости с комиссией

Генерация PDF файла, прикрепление и отправка

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

Задание JSON для генерации PDF в PDFMonkey
Задание JSON для генерации PDF в PDFMonkey

Подключаемся к API, ключ находится в личном кабинете. Выбираем App, название шаблона, и заполняем динамический JSON.

Удобно скопировать JSON из вкладки Sample data в PDFMonkey, где мы тестировали шаблон. Дальше нужно лишь разметить его переменными, которые мы задали ранее в сценарии.

Результатом работы этого модуля будет сгенерированный PDF. Дальше нам нужно его скачать.

Для этого создаем модуль PDFMonkey -> Get a Document. И вбиваем в него переменную с ID документа из предыдущего модуля.

Получение ссылки на скачивание документа PDF
Получение ссылки на скачивание документа в PDF

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

Скачивание PDF документа с PDFMonkey
Скачивание PDF документа с PDFMonkey

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

Загрузка PDF файла в карточку Trello
Загрузка PDF файла в карточку Trello

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

После срабатывания модуля загрузки файла в карточку, мы получим ссылку вложения в Trello, по которой файл будет доступен всегда, пока его не удалят. При этом не нужно быть зарегистрированным или залогиненным в Трелло. Файлы лежат на серверах Amazon.

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

Отправка письма со ссылкой на оффер
Отправка письма со ссылкой на оффер

Кроме того, ссылку можно просто копировать в карточке и дублировать клиентам в мессенджерах, что тоже удобно.

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

Таким образом, менеджеру, чтобы отправить оффер, нужно сделать следующее:

  1. Заполнить стоимость.
  2. Написать комментарий.
  3. Проверить остальные обязательные поля (часто они уже заполнены клиентом при оформлении заявки).
  4. Поставить лейбл.
  5. Расшарить ссылку на PDF файл в удобных для клиента каналах. А письмо на почту отправится автоматически.

Очень быстро и просто. Вот так примерно может выглядеть весь PDF-файл с оффером:

1 экран
1 экран
2 экран
2 экран
3 экран
3 экран

Загрузка и отправка оффера, сделанного вручную

Иногда бывает, что лучше сделать оффер вручную, со множеством деталей, где все заполнено руками менеджера.

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

Отправка оффера в PDF, созданного вручную
Отправка оффера в PDF, созданного вручную

Для срабатывания сценария, лучше сделать отдельную метку. (если триггер — добавление метки). Как и ранее, ставим фильтр на ID нужной метки.

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

Ставим фильтр, который проверяет присутствие маски в названии файла:

Проверка имени в названиях вложений
Проверка имени в названиях вложений

Если хотя бы одно вложение присутствует, то сценарий пойдет дальше.

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

Проверка маски в имени вложений
Проверка маски в имени вложений

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

В этом сценарии также можно выставлять статусы и оставлять комментарии об успешной отправке оффера.

Таким образом, в данном сценарии менеджеру нужно:

  1. Создать PDF файл, задать ему нужное имя с маской и загрузить в карточку.
  2. Выставить лейбл.
  3. Все, оффер отправится клиенту в письме и останется в карточке как напоминание на случай чего.
  4. Также можно делиться ссылкой в мессенджерах.

В данном сценарии сверху еще есть проверка на ошибку, но об этом уже напишу, если понадобится.


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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *