Получаем дату из строки в нужном формате, используя Integromat

Артём Колисниченко: Партнер-интегратор ПланФикса Тахир Биккинин делится решением, как, используя Integromat, можно получить дату из строки в нужном формате. Это простое решение на время, пока реализуется такая возможность в ПланФиксе. Передаю слово Тахиру.

Тахир Биккинин: Одному из моих клиентов понадобилось вычислить дату следующего визита клиента. Из данных есть только даты двух предыдущих посещений и количество километров, которые данный клиент проехал за это время. Необходимо понимать, какая будет дата, когда он проедет 10 000 км.

С помощью вычисляемого поля это сделать просто. В ПланФиксе есть достаточное для этого количество формул. Но дата вычисляется в виде строки. И это нехорошо.

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

Но ПланФикс хорош тем, что если чего-то в нем нет, то это скорее всего можно сделать иными инструментами. Автоматически и бесперебойно.

Так получилось и в этом случае. Мне помог Integromat.

В данной статье я хочу показать, как можно отсылать данные в Integromat, проводить с письмом необходимые действия, возвращать это письмо в ПланФикс и средствами парсера класть нужную нам дату. Но уже в виде даты, а не строки.

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

Получается, что мы обходим данную защиту.

Что потребуется сделать:

  • Подготовить сценарий для отправки шаблона письма на заранее подготовленный ящик gmail. Ниже я расскажу, почему лучше отдельный.
  • Настроить сервис Integromat, чтобы наше письмо правильно обрабатывалось и возвращалось обратно.
  • Настроить правило разбора почты.

Подготавливаем сценарий для отправки письма.

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

Шаблон с исходными данными
Шаблон с исходными данными.

Мы делаем сценарий, который реагирует на изменение поля Дата2 и отправляет письмо на указанный адрес.

Почему нужно сделать отдельный адрес?

Дело в лимитах Интегромата на количество действий. Если связывать какой-то действующий электронный адрес, то Интегромат будет проверять каждое входящее письмо, и тем самым будет уменьшаться данный лимит. Но если вам лень зарегистрировать новый ящик или нужно большее количество действий, то оформляйте платный аккаунт.

Вот так выглядит сам сценарий:

 Сценарий реагирует на изменение поля Дата2 и отправляет письмо на e-mail
1/2
Сценарий реагирует на изменение поля Дата2 и отправляет письмо на e-mail.
1/2
Сценарий реагирует на изменение поля Дата2 и отправляет письмо на e-mail
2/2
Сценарий реагирует на изменение поля Дата2 и отправляет письмо на e-mail.
2/2

А вот так выглядит шаблон: 

Шаблон возврата вычисленной даты в нужном формате
Шаблон возврата вычисленной даты в нужном формате.

На самом деле он может быть абсолютно любым. Самое главное выдержать в нем 3 значения: 

  • Какой-то тригер. В моем случае это фраза “пересчитай дату”.
  • Переменная с нашей датой.
  • Переменная с номером задачи, чтобы парсер знал, в какую именно задачу класть возвращенные данные.

Настраиваем Integromat

После регистрации в сервисе нужно перейти в раздел Шаблоны (Templates) и в фильтре указываем ключевое слово GMAIL.

 Раздел Шаблоны (Templates) в  Integromat
Раздел Шаблоны (Templates) в Integromat.

Нам потребуется шаблон, который называется Automatically forward new Gmail emails containing a specific word to another email address – Автоматическая отправка имейлов, содержащих ключевое слово, на другой адрес.

Выбираете его и нажимаете на первую иконку gmail.

В нем указываем следующие настройки:

  • Связываем Интегромат с gmail.
  • В качестве первичного фильтра указываем отправителя. В нашем случае это адрес ПланФикса, с которого отправляются письма из сценария. 
Настройки шаблона в  Integromat
Настройки шаблона в Integromat.

Далее нужно нажать кнопку фильтра.

И в настройках фильтра необходимо указать, что:

  1. Тело письма содержит фразу
  2. «Пересчитай дату»
 Настройка фильтра шаблона
Настройка фильтра шаблона.

Завершаем настройку сервиса:

  • Указываем виртуальный адрес ПланФикса, в котором будем настраивать правило разбора почты.
  • В письме передаем ту же тему и то же содержание.
Завершаем настройку в Integromat
Завершаем настройку в Integromat.

Вся соль данного шаблона: он удаляет технические заголовки, по которым ПланФикс определяет, что ему пересылают его же письмо. Обычные почтовые сервисы при автоматической пересылке этого не делают.

Не забудьте провести тест связки с помощью кнопку Run once. И если все ок, можете включать шаблон и наслаждаться тем, как работают роботы.

Настраиваем правило разбора почты

В парсере мы первым делом настраиваем инфоблоки Дата и Номер задачи:

Правила разбора почты
1/3
Правила разбора почты.
1/3

В основной операции мы определяем нашу задачу с помощью скрытого комментария:

Правила разбора почты
2/3
Правила разбора почты.
2/3

И затем изменяем ее же, устанавливаем значение поля Дата2:

Правила разбора почты
3/3
Правила разбора почты.
3/3

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

А что ты, {{Задача.Участник.Имя}}, делаешь с помощью интегромата? Поделись в комментариях.


UPDATE 09.02.2021: Добавили возможность вычислять даты прямо в ПланФиксе. Подробности читайте в заметке “Автоматизация работы автосервиса: вычисляем дату следующего ТО”.

Спасибо Тахиру за рассказ. А я напоследок напомню: подписывайтесь на наши социальные сети: Facebook, ВКонтакте, Telegram, Twitter и YouTube-канал, чтобы не пропустить актуальные новости и новинки.

12 комментариев

  1. Отличный кейс, костылики конечно но хоть какое-то решение отсутствия парсинга комментариев или добавления функции например “Установить дату по полю другого типа”

    1. Кирилл Киреев в ютубе стал публиковать свои варианты настроек интегромата в связке с ПланФикс. Например вот это, справочник валют и актуальный курс: https://www.youtube.com/watch?v=K32XtFAz8cE&t=56s
      Я тоже начал свои эксперименты с этим сервисом.
      В течение часа сделал получение из DaData данных юрлица по ИНН.
      Также сделал что-то похожее с вариантом Тахира, но использовал на входе не почту а WebHook (который получает POST-запрос из PlanFix). В этом случае кстати все вычисления из ПФ можно перенести в интегромат, и не тратить ресурсы вычисляемых полей ПФ.
      Также научил интегромат превращать строку вида Mon Aug 31, 2020 12:15 в понятный для ПФ формат для полей типа дата и время 2020-08-31 12:15.
      В общем море новых возможностей, про которые мы раньше только шептались в энтузиастах выходят на свет.

  2. Можно с экономить на поле Дата2 в планфиксе. В интегромат достаточно передать Дата1 и количество дней. В интегромате вычислить Дату2 функцией addDays и вычисленную дату передать в письме.

      1. Вообще легко делается webhook принимает Дата1, email задачи, Кол-во дней. И прямо в теле письма делаются вычисления через функцию AddDays, без дополнительного шага.

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