Артём Колисниченко: Партнер-интегратор ПланФикса Тахир Биккинин делится решением, как, используя Integromat, можно получить дату из строки в нужном формате. Это простое решение на время, пока реализуется такая возможность в ПланФиксе. Передаю слово Тахиру.
Тахир Биккинин: Одному из моих клиентов понадобилось вычислить дату следующего визита клиента. Из данных есть только даты двух предыдущих посещений и количество километров, которые данный клиент проехал за это время. Необходимо понимать, какая будет дата, когда он проедет 10 000 км.
С помощью вычисляемого поля это сделать просто. В ПланФиксе есть достаточное для этого количество формул. Но дата вычисляется в виде строки. И это нехорошо.
Мы видим следующую дату, но система нам никак не сможет напомнить об этом. И любая другая автоматика не будет работать с датой в виде строки. В ближайших планах разработчиков реализовать функцию вычисления даты нет.
Но ПланФикс хорош тем, что если чего-то в нем нет, то это скорее всего можно сделать иными инструментами. Автоматически и бесперебойно.
Так получилось и в этом случае. Мне помог Integromat.
В данной статье я хочу показать, как можно отсылать данные в Integromat, проводить с письмом необходимые действия, возвращать это письмо в ПланФикс и средствами парсера класть нужную нам дату. Но уже в виде даты, а не строки.
Вы спросите, а зачем нам какое-то стороннее средство. Опытные пользователи знают, что в целях защиты от неконтролируемого срабатывания сценариев в ПланФиксе есть защита: если отправить письмо и снова его вернуть, то оно не обработается и ничего не произойдет.
Получается, что мы обходим данную защиту.
Что потребуется сделать:
- Подготовить сценарий для отправки шаблона письма на заранее подготовленный ящик gmail. Ниже я расскажу, почему лучше отдельный.
- Настроить сервис Integromat, чтобы наше письмо правильно обрабатывалось и возвращалось обратно.
- Настроить правило разбора почты.
Подготавливаем сценарий для отправки письма.
Исходим из того, что у нас уже подготовлен шаблон, в котором есть исходная дата, слагаемое и результат в виде вычисленной даты:
Мы делаем сценарий, который реагирует на изменение поля Дата2 и отправляет письмо на указанный адрес.
Почему нужно сделать отдельный адрес?
Дело в лимитах Интегромата на количество действий. Если связывать какой-то действующий электронный адрес, то Интегромат будет проверять каждое входящее письмо, и тем самым будет уменьшаться данный лимит. Но если вам лень зарегистрировать новый ящик или нужно большее количество действий, то оформляйте платный аккаунт.
Вот так выглядит сам сценарий:
А вот так выглядит шаблон:
На самом деле он может быть абсолютно любым. Самое главное выдержать в нем 3 значения:
- Какой-то тригер. В моем случае это фраза “пересчитай дату”.
- Переменная с нашей датой.
- Переменная с номером задачи, чтобы парсер знал, в какую именно задачу класть возвращенные данные.
Настраиваем Integromat
После регистрации в сервисе нужно перейти в раздел Шаблоны (Templates) и в фильтре указываем ключевое слово GMAIL.
Нам потребуется шаблон, который называется Automatically forward new Gmail emails containing a specific word to another email address – Автоматическая отправка имейлов, содержащих ключевое слово, на другой адрес.
Выбираете его и нажимаете на первую иконку gmail.
В нем указываем следующие настройки:
- Связываем Интегромат с gmail.
- В качестве первичного фильтра указываем отправителя. В нашем случае это адрес ПланФикса, с которого отправляются письма из сценария.
Далее нужно нажать кнопку фильтра.
И в настройках фильтра необходимо указать, что:
- Тело письма содержит фразу
- «Пересчитай дату»
Завершаем настройку сервиса:
- Указываем виртуальный адрес ПланФикса, в котором будем настраивать правило разбора почты.
- В письме передаем ту же тему и то же содержание.
Вся соль данного шаблона: он удаляет технические заголовки, по которым ПланФикс определяет, что ему пересылают его же письмо. Обычные почтовые сервисы при автоматической пересылке этого не делают.
Не забудьте провести тест связки с помощью кнопку Run once. И если все ок, можете включать шаблон и наслаждаться тем, как работают роботы.
Настраиваем правило разбора почты
В парсере мы первым делом настраиваем инфоблоки Дата и Номер задачи:
В основной операции мы определяем нашу задачу с помощью скрытого комментария:
И затем изменяем ее же, устанавливаем значение поля Дата2:
Вот и вся магия. В результате у нас есть вычисленная дата в нужном нам формате, в котором можно производить дальнейшие операции.
А что ты, {{Задача.Участник.Имя}}, делаешь с помощью интегромата? Поделись в комментариях.
UPDATE 09.02.2021: Добавили возможность вычислять даты прямо в ПланФиксе. Подробности читайте в заметке “Автоматизация работы автосервиса: вычисляем дату следующего ТО”.
Спасибо Тахиру за рассказ. А я напоследок напомню: подписывайтесь на наши социальные сети: Facebook, ВКонтакте, Telegram, Twitter и YouTube-канал, чтобы не пропустить актуальные новости и новинки.
Отличный кейс, костылики конечно но хоть какое-то решение отсутствия парсинга комментариев или добавления функции например “Установить дату по полю другого типа”
Когда надо, все средства хороши! 🙂
А я еще вот такой запросик оставлял на форуме. Он как раз позволяет решить данный кейс https://forum.planfix.ru/viewtopic.php?f=46&t=5476
“Приращение даты на количество месяцев/дней/минут из кастомного поля”
Да, можно.
Но основной посыл статьи – познакомить незнающих с данным сервисом, а его возможности очень обширны.
Спасибо, интересный кейс,я недавно обнаружил этот сервис, но не успел ещё в него погрузится. Будет интересно узнать, кто как использует вместе с Планфикс.
Кирилл Киреев в ютубе стал публиковать свои варианты настроек интегромата в связке с ПланФикс. Например вот это, справочник валют и актуальный курс: https://www.youtube.com/watch?v=K32XtFAz8cE&t=56s
Я тоже начал свои эксперименты с этим сервисом.
В течение часа сделал получение из DaData данных юрлица по ИНН.
Также сделал что-то похожее с вариантом Тахира, но использовал на входе не почту а WebHook (который получает POST-запрос из PlanFix). В этом случае кстати все вычисления из ПФ можно перенести в интегромат, и не тратить ресурсы вычисляемых полей ПФ.
Также научил интегромат превращать строку вида Mon Aug 31, 2020 12:15 в понятный для ПФ формат для полей типа дата и время 2020-08-31 12:15.
В общем море новых возможностей, про которые мы раньше только шептались в энтузиастах выходят на свет.
Илья, а поделитесь ,как дату преобразуете, пожалуйста.
Вот ссылка на JSON для загрузки в интегромат
https://drive.google.com/file/d/1IMk3KNSQlmuEsAYsvw_nZW8Kg4SCgCaC/view?usp=sharing
Подробнее лучше в телеграмм в курилку партнером или в личку.
Илья, спасибо!
Можно с экономить на поле Дата2 в планфиксе. В интегромат достаточно передать Дата1 и количество дней. В интегромате вычислить Дату2 функцией addDays и вычисленную дату передать в письме.
+1, если addDays это одна итерация в интегромате, то их остается также 3, тогда да, можно сэкономить вычисляемое поле в ПланФиксе
Вообще легко делается webhook принимает Дата1, email задачи, Кол-во дней. И прямо в теле письма делаются вычисления через функцию AddDays, без дополнительного шага.