[FormIt + AjaxForm] Динамическая тема сообщения для Trello CRM

  • Главная
  • Блог
  • [FormIt + AjaxForm] Динамическая тема сообщения для Trello CRM

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

Давайте это исправим.

Задача: сделать из Trello удобную CRM систему

Возьмём для примера следующую задачу:
необходимо сделать из Trello легковесный аналог Bitrix 24 CRM с созданием лидов в отдельной доске и отдельном списке.
Для создания карточек как раз и требуется подставлять в тему сообщения имя пользователя с формы.

С чем мы будем работать: Trello, FormIt, AjaxForm, Fenom, файловые элементы.

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

Для начала создадим доску под приём заявок с сайта по типу CRM и настроим списки.

Структура CRM в Trello

Затем настроим специальный электронный адрес куда мы будем высылать наши заявки. Заходим в Меню — Ещё — Настройки электронной почты — копируем email, сгенерированный для нашей доски. Тут же можно указать в какую колонку будут попадать письма с него.

Получаем Email для отправки писем

Больше информации о добавлении карточек в Trello через Email можете посмотреть в английской документации.

С настройкой Trello мы закончили. Переходим к MODX.

Настройка AjaxForm + FormIt

Нам нужен вызов сниппета, куда мы добавим параметр setSubject для установки переменной темы сообщения и Hook для обработки всего этого.

{'!AjaxForm'|snippet:[
    'snippet' => 'FormIt',
    'emailUseFieldForSubject' => 'subject',
    'emailTo' => 'bazmaster+d6nyalgcrfpoxkrquiq9@boards.trello.com,order@mysite.com',
    'hooks' => 'core_path'|option ~ 'elements/snippets/hook.setSubject.php,email',
    'form' => '@FILE chunks/tpl.AjaxForm.order.tpl',
    'emailTpl' => '@FILE chunks/tpl.email.order.tpl',
    'validate' => 'name:required:minLength=^2^,email:required:email,comments:required:minLength=^5^',
    'validationErrorMessage' => 'В форме содержатся ошибки!',
    'successMessage' => 'Ваша заявка принята!',
]}

Опишу то, что относится непосредственно к нашей задаче.

  1. Устанавливаем переменную, в которую будем вбивать нашу сформированную тему сообщения.
'emailUseFieldForSubject' => 'subject',

 

  1. Устанавливаем емайл для создания карточки в Trello и через запятую емайл для оповещения по Email:
'emailTo' => 'bazmaster+d6nyalgcrfpoxkrquiq9@boards.trello.com,order@mysite.com',

 

  1. Добавляем свой хук для формирования темы сообщения
'hooks' => 'core_path'|option ~ 'elements/snippets/hook.setSubject.php,email',

Что такое хуки (Hooks) и варианты их применения вы можете посмотреть в официальной документации на английском.

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

Создаём файл в папке /core/elements/snippets/hook.setSubject.php и вписываем туда следующий код:

<?php
// выбираем поле name
$name = $hook->getValue('name');
// устанавливаем в переменную Имя клиента и добавляем к нему логин пользователя Trello, чтобы назначить ему карточку
$subject = $name . ' @bazmaster'; 

// выбираем поле order_type (будем использовать в качестве метки)
$order_type = $hook->getValue('order_type');  
// Добавляем к переменной метку, если она выбрана в форме (Нужно создать такие же метки в Trello)
if(!empty($order_type)) {
	// заменяем пробелы на подчёркивание
	$subject .= ' #'. str_replace(' ', '_', $order_type );
}

// устанавливаем нашу новую тему из переменной
$hook->fields['subject'] = $subject;
return true;


Так, в результате несложных операций, мы выбрали нужные нам поля формы и сформировали переменную $subject, которую уже присвоили теме. Теперь тема должна быть правильной.

Проверим это в Trello отправив нашу форму с заявкой:

Новый Лид добавился со всей информацией о нём

Вуаля! Наша заявка добавилась в том виде, в котором мы и хотели её видеть. 

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

Итог статьи

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

Мы увидели как работать с файловыми хуками и сделали всё это на быстром шаблонизаторе Fenom.

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

2018-04-26 19:25:35 0
3245


Администратор в BazMaster Studio. Люблю создовать сайты на MODX и постоянно в нём совершенствуюсь.


СЛЕДУЮЩАЯ СТАТЬЯ
Третья статья