Шаблоны почтовых уведомлений — это конструктор, применяемый для типизации писем MS Outlook при созднии различных видов уведомлений в "Первой Форме". |
---|
Список шаблонов почтовых уведомлений
Создание шаблона
Чтобы добавить новый шаблон, нажмите кнопку Добавить. Откроется окно создания нового почтового шаблона. Введите данные и нажмите кнопку Сохранить.
Окно создания шаблона почтового уведомления
Название создаваемого почтового шаблона должно совпадать с именем события, для которого он предназначается (см. ниже "Список событий"). Например, шаблон TaskCreated будет задействован только при создании новой задачи, а StateChanged — только при смене статуса задачи. Изменения в именах недопустимы! Поле "Описание" может содержать любую информацию. |
---|
Ссылки на задачи в почтовых уведомлениях открываются для пользователей с учетом пользовательской настройки "useNewMTF" и атрибута "UseNewTaskCard" в таблице БД "Users" - настройки определяют какой вид карточки задачи (старый или новый) будет открыт. |
---|
Список событий, для которых могут создаваться почтовые шаблоны
Название |
Описание |
---|---|
Absence |
Создано отсутствие |
AcceptantAssigned |
Для подписи назначен акцептант |
AcceptantAssignedEscalate |
Акцептант эскалировал право подписи |
AcceptantAssignedWithEmptyFields |
Назначен акцептант, поля подписи не заполнены |
AcceptantAssignedWithEmptyFieldsEscalate |
Акцептант эскалировал право подписи, поля подписи не заполнены |
AcceptantDelegated |
Акцептант делегировал право подписи |
AcceptantDelegatedEscalate |
Акцептант, которому было делегировано право подписи, эскалировал ее |
AcceptantDelegatedWithEmptyFields |
Акцептант делегировал право подписи, поля запроса акцепта не заполнены |
AcceptantDelegatedWithEmptyFieldsEscalate |
Акцептант, которому было делегировано право подписи, эскалировал его; поля запроса акцепта не заполнены |
AccessDenied |
Отказ в доступе к задаче |
AssistantAdded |
Добавлен заместитель исполнителя |
AssistantAddedwDates |
Добавлен заместитель на определенный срок |
AssistantRemoved |
Заместитель удален |
ChangeGroupSubcatPermission |
Для группы пользователей изменено право доступа к категории |
DefaultTemplate |
Стандартный шаблон по умолчанию |
DueChanged |
Изменен срок выполнения задачи |
DueChangedOverdue |
Изменен срок выполнения просроченной задачи |
DynSignatureAccepted |
Динамическая подпись акцептована |
DynSignatureRejected |
Динамическая подпись отклонена |
EditComment |
Комментарий отредактирован |
EditCommentSimple |
Комментарий отредактирован из ленты |
ExtParamsChanged |
Изменено значение ДП |
FileDescriptionUpdated |
Редактирование описания файла |
HelperNotification |
Уведомление заместителям при назначении замещающего исполнителем |
NewComment |
Получен новый комментарий |
NewCommentSimple |
Получен новый комментарий (для внешних пользователей, ни разу не заходивших в систему) |
NewPassword |
Изменен пароль |
Noacceptant |
У задачи нет исполнителей |
PasswordRecovery |
Отправлено письмо с кодом для восстановления пароля |
PasswordRecoveryForCustomerZone |
Отправлено письмо с кодом для восстановления пароля для личного кабинета |
PerformerAdded |
В список исполнителей под задаче добавлен новый исполнитель |
PerformerAddedToOwner |
В список исполнителей под задаче добавлен новый исполнитель (письмо заказчику) |
PerformerRefused |
Один из исполнителей отказался от выполнения задачи |
PerformerRemoved |
Из списка исполнителей по задаче удален один из исполнителей |
RemindPassword |
Отправлен запрос на восстановление пароля |
ResponsibleAdded |
Назначен ответственный исполнитель по задаче |
ResponsibleRemoved |
Ответственный исполнитель по задаче изменен |
SignatureAccepted |
Подпись акцептована |
SignatureRejected |
Подпись отклонена |
SignatureSnapshot |
Создается "HTML-снимок" всех параметров задачи. Используется для сохранения текущего состояния задачи (например, при акцепте) |
StateChanged |
Смена статуса |
StateChangedForcibly |
Принудительная смена статуса |
StateChangeNotificationToAll |
Всем подписчикам отправлено уведомление об изменении статуса задачи |
SubscriberAdded |
К задаче добавлен подписчик |
TaskAccepted |
По задаче получен акцепт |
TaskCreated |
Задача создана |
TaskCreateNotifySend |
Отправлено уведомление о создании задачи |
TaskCreatePerformerSend |
Отправлено уведомление исполнителю о создании задачи |
TaskCreateSubscriberSend |
Отправлено уведомление подписчику о создании задачи |
TaskFromYourNameCreated |
Отправлено уведомление о создании задачи от имени пользователя (он — заказчик) |
TaskTextChanged |
Изменен текст задачи |
TaskTextChangedWithoutDifferencies |
Текст задачи пересохранен без изменений |
UserInvitation |
Пользователь приглашен в систему |
Редактироваиние шаблона
Чтобы отредактировать описание шаблона почтового уведомления, нажмите на кнопку в начале соответствующей строки. В сможете изменить описание шаблона и флажок включения\отключения шаблона. Чтобы сохранить внесенные изменения, нажмите иконку , а чтобы отменить изменения — иконку в начале строки.
Редактирование описания шаблона почтового уведомления
Чтобы удалить шаблон, нажмите на иконку в конце соответствующей строки.
Редактирование шаблона
Чтобы перейти к редактированию самого шаблона почтового уведомления, щелкните мышью по соответствующей строке таблицы. Откроется окно редактирования шаблона.
Редактирование шаблона почтового уведомления
Параметр |
Описание |
---|---|
Название |
Указание перехода, при осуществлении которого будет применен созданный шаблон. Если ввести имя шаблона, которого еще нет в списке, и нажать Перейти к выбранному шаблону, этот шаблон будет создан и в него будет осуществлен переход |
Описание |
Произвольное описание действий шаблона |
Включен |
Включение\отключения шаблона |
Выбор категории |
Привязка шаблона к определенной категории |
Язык |
Выбор языка интерфейса, для которого будет использоваться шаблон. При отправке письма по умолчанию используется язык интерфейса, выбранный в профиле пользователя, которому отправляется письмо. Если для этого языка шаблона нет, используется шаблон для языка, указанного как международный (Languages.IsInternational = 1). Если и для международного языка нет шаблона, будет использоваться шаблон для языка приложения по умолчанию (Languages.IsDefault = 1) |
Тестовая отправка почты |
Пользователь, которому будет отправлено письмо по нажатию кнопки Отправить тестовое письмо |
Номер задачи |
Номер задачи, данные из которой будут использоваться при отправке тестового письма |
Шаблоны почтовых уведомлений построены на основе html и настраиваются подобно дизайну категории.
В окне дизайнера осуществляется редактирование шаблона письма для события. Все действия производятся на вкладке HTML (меню справа).
Элементы шаблона
Элемент |
Описание |
---|---|
Parameters |
|
taskuser |
Заказчик |
subcatid |
ID категории |
taskid |
Номер задачи |
entity |
Название сущности |
tasktext |
Текст задачи |
tasktextshort |
Краткое содержание текста задачи |
userid |
ID пользователя |
createdtask |
Дата создания задачи |
orderedtime |
Срок задачи |
priorityid |
Приоритет задачи |
state |
Статус задачи |
srokname |
Название срока выполнения |
endtime |
Дата завершения |
ExtUsersMailerFrom |
Почтовая рассылка для внешних пользователей (адрес) |
ExtUsersMailerFromName |
Почтовая рассылка для внешних пользователей (имя) |
username |
Отображаемое имя заказчика задачи |
userphone |
Рабочий телефон заказчика задачи |
userfullname |
Полное имя заказчика задачи |
usernick |
Логин заказчика задачи |
performer |
Исполнитель |
performerid |
ID исполнителя |
performername |
Отображаемое имя исполнителя задачи |
performernick |
Логин исполнителя |
performerfullname |
Полное имя ответственного исполнителя |
nowtime |
Текущее время |
taskstarttime |
Время начала работы над задачей |
commentcreatetime |
Время написания комментария |
custommailtext |
Пользовательский текст письма |
paramechangedtemplate |
Изменение ДП по шаблону |
commentuser |
Пользователь-отправитель комментария |
commentto |
Сообщение |
newText |
Новый текст сообщения |
oldText |
Старый текст сообщения |
login |
Ваш логин |
password |
Ваш пароль |
userName |
Ваше имя |
commentspecid |
ID комментария |
spectaskid |
Префикс + ID задачи |
hrefRecoverPassword |
Текст ссылки на восстановление пароля |
passwordRecoveryLink |
Ссылка на восстановление пароля |
Resources |
|
taskFrom |
От |
performer |
Исполнитель |
taskCat |
Категория, в которой находится задача |
date |
Дата |
taskNum |
Номер задачи |
customer |
Заказчик |
responsible |
Ответственный исполнитель |
taskOrdered |
Срок |
responsibleaddedhead |
Вас назначили ответственным исполнителем по задаче |
performerremovedhead |
С Вас сняли исполнение по задаче |
responsibleremovedhead |
C Вас сняли ответственность за исполнение задачи |
removedyoufromperfs |
Вы больше не являетесь исполнителем задачи |
removedyoufromresponsible |
Вы больше не являетесь ответственным исполнителем задачи |
taskcreatedSubj |
Новая задача в вашей категории |
extparamschanged |
Изменены доп. параметры |
extparamschangedbody |
Изменились значения дополнительных параметров |
changed_comment_text |
Изменил текст своего комментария |
newcommentmessage |
Вы получили новый комментарий |
oldcommentUserLink |
Отправитель старого комментария |
oldcommentResipients |
Адресаты старого комментария |
commentto |
Вы получили новый комментарий→ |
taskTextChangedHeader |
Заказчик изменил текст задачи |
oldText |
Старый текст |
taskcreatefromyourname |
От Вашего имени поставлена задача |
assistantRemoved |
Вы были удалены из списка заместителей пользователя |
assistantAdded |
Вы были добавлены в список заместителей |
login |
Ваш логин |
password |
Ваш пароль |
passwordChange |
Смена пароля |
hello |
Здравствуйте |
betterChangeYourPassword |
Советуем изменить пароль при первом входе в систему |
bestRegards |
С наилучшими пожеланиями |
followTheLinkBelow |
Перейдите по ссылке ниже |
andEnterCode |
И введите код |
passwordRecoveryIsImpossible |
Восстановление пароля невозможно |
Controls |
|
tasklink fullmode |
Открыть (ссылка на задачу) если вышеуказанная ссылка не работает или Вы находитесь в удаленном офисе, попробуйте эту (альтернативная ссылка) |
spectaskid |
Префикс + ID задачи |
SubcatPathLink |
Полный путь к категории |
extparams |
ДП |
unsubscribelink |
Ссылка на прекращение подписки (Отписаться) |
subjectPrefix |
Префикс темы |
subjectPostfix |
Постфикс темы |
commentid |
ID сообщения (1f-system-comment-id) |
parentTaskLink |
Ссылка на родительскую задачу |
gototask |
Перейти в задачу (ссылка) |
mailheader |
Заголовок письма |
customerlink |
Ссылка на заказчика |
responsiblelink |
Ссылка на ответственного исполнителя |
altlink |
Альтернативная ссылка |
assignedyou_user_text |
Добавлен исполнитель |
deletedperformerlink |
Удален исполнитель |
changedtaskstate |
Изменить статус задачи |
commentuserlink |
Отправитель комментария |
oldcommentUserLink |
Отправитель старого комментария |
addressedto |
Получатели комментария |
performersAssignedForYouTaskHead |
Назначенные исполнители задачи, в которой вы являетесь заказчиком |
taskTextChangedUser |
Пользователь, который изменил текст задачи |
addedtoassistantsof_user |
Назначенный заместителем |
taskonyourbehalfcreatedby_user_insubcat |
Задача, созданная пользователем от вашего имени |
addedtoassistantsof_user_wdates |
Период замещения |
removedfromassistantsof_user |
Удален из списка заместителей пользователя |
addedtoassistantsof_user |
Добавлен заместителем пользователя |
performeraddedlink |
Ссылка на назначенного исполнителя |
apptitle |
Имя приложения из общих настроек приложения |
helpers |
Исполнители |
userwhochangedlink |
Пользователь, который изменил ссылку |
internalResolutionLinks |
Кнопки резолюций подписи (Внутренние ссылки) |
externalResolutionLinks |
Кнопки резолюций подписи (Внешние ссылки) |
attachments |
Все вложения. При добавлении элемента в шаблон в письме будут отображаться все вложенные в задачу файлы или ссылки на них, в зависимости от параметра "Получать файлы в виде вложений, а не ссылок" в профиле конкретного пользователя. |
Пример шаблона в html
<email>
<subject>
</subject>
<mailbody>
<style media="all" type="text/css">
</style>
<div class="previewForMailAgents" style="display: none;">
</div>
<table class="maintable" align="left" cellpadding="3" cellspacing="0">
<tbody>
</tbody>
</table>
</mailbody>
</email>
Тема письма будет составлена из параметров, помещенных в тег <subject>. В примере ниже тема будет отображаться как "Новая задача: краткий текст задачи":
<subject>
<input style="" class="resource" value="taskcreatedSubj" id="taskcreatedSubj" type="text"/>
<span style="" class="inlinetext">
:
</span>
<input class="parameter" style="" value="tasktextshort" id="tasktextshort" type="text"/>
</subject>
Тело письма размещается внутри тегов <mailbody> и далее внутри <table>.
Стили в письме размещаются в теге <style>. Например можно задать шрифт для таблицы:
<style media="all" type="text/css">
.maintable{font-family: Lucida Grande, Tahoma;}
</style>
Если потребуется поменять цвет кнопки "перейти в задачу" в css-классе .gototask, то нужно поменять значения background-color и border-color:
.gototask{color:#165082; background-color:#d9d9d9; display:block; width: 200px;
text-align:center; border-style: solid; border-width: 5px; border-color: #d9d9d9; text-decoration: none; font-weight:bolder; font-size: 13px;}
Цвет шапки меняется в классе .header, значение background-color:
.header{background-color:#008000; color:#ffffff; padding-top:0px;padding-bottom:0px;height:40px;}
Стили ссылок на пользователей, такие как "заказчик" или "ответственный", задаются классом
.userlink{text-decoration: none; font-weight:bolder; color:#165082}
Дополнительно возможно назначить класс для требуемого элемента. Например, так:
<tr class="test"> и добавить класс для стилей . test { color:#ffffff; }
Список классов по умолчанию
Описание |
Класс |
---|---|
Основная таблица |
maintable |
Ссылки на пользователей |
.userlink |
Список доп параметров |
.acllextparams |
Ссылка-кнопка "Перейти в задачу" |
.gototask |
Ссылка на категорию |
.subcatlink |
Заголовок письма |
.header |
Текст задачи |
.tasktext |
Ссылка-кнопка "Подписать" |
.acceptsignature |
Ссылка-кнопка "Сохранить" |
.rejectsignature |
Ссылка "Прекратить подписку" |
.unsubscribe |
Альтернативная ссылка на задачу |
.altlink |
Особенности настройки
Если в приложении включена отправка уведомлений на почту, то в системной категории Уведомление о прочтении на вкладке "Почтовые ящики" должен быть настроен ящик, указанный в Общих настройках приложения в параметре Почтовый ящик для ответов. При необходимости можно добавить также ящик. указанный в параметре Внешний почтовый ящик для ответов. |
---|
Комментарии
Если в теме письма присутствует текст [1F][номер_задачи], то при ответе на это письмо тело ответного письма будет опубликовано как комментарий в указанной задаче. Отправитель письма будет указан как отправитель комментария.
В самом почтовом клиенте такие письма будут иметь общую тему и поэтому будут выстраиваться в цепочку (если в почтовом клиенте включено отображение цепочек писем).
Если в теме письма присутствует текст [1F][номер_задачи], а в теле письма — 1f-system-comment-id:номер_комментария, то при ответе на это письмо тело ответного письма будет опубликовано как ответный комментарий к указанному. Отправитель письма будет указан как отправитель комментария.
1f-system-comment-id:номер_комментария — это служебный текст, пользователю он не интересен, и поэтому в шаблоне его лучше скрыть (например, выводить белым цветом на белом фоне). |
---|
Если в теме письма нет номера задачи, а в теле письма нет номера комментария, то на основе письма будет создана задача в категории, к которой подключен почтовый ящик, на который отправлено письмо.
Вынесение резолюций по подписям
Для вынесения резолюций по запрошенной подписи в почтовый шаблон помещаются ссылки вида:
https://ru.1forma.ru/EmailSign.aspx?TaskSignatureID=1234&AcceptState=2&ResolutionID=56
где AcceptState — это ID действия, выполняемого при вынесении резолюции,
TaskSignatureID — ID запрошенной подписи (из таблицы TaskSignatures, не путать с ID самой подписи, настроенной в системе, из таблицы Signatures),
ResolutionID — ID типа резолюции.
Параметры AcceptState и ResolutionID частично пересекаются, т.к. типу резолюции однозначно соответствует выполняемое действие, поэтому можно указывать только один из этих двух параметров. Например, если для подписи доступны две резолюции "Подписать" и "Подписать с замечаниями", то они будут иметь одинаковое значение AcceptState=0, но разные ResolutionID.
Вместо AcceptState можно использовать параметр SignatureAction — в нем указывается мнемоническое описание действия, которое выполняется при вынесении резолюции. Например,
https://ru.1forma.ru/EmailSign.aspx?TaskSignatureID=1234&SignatureAction=Accept
Формат кнопок для вынесения резолюций
Ссылки в кнопках для вынесения резолюций по запрошенным подписям могут иметь формат URL или mailto. Это определяется значением пользовательской настройки UseMailToLinksForSignaturesFromEmails:
•при значении UseMailToLinksForSignaturesFromEmails=1 ссылки будут иметь формат mailto: , и по нажатиюу на ссылку будет отправляться письмо на адрес, указанный в Общих настройках приложения в параметре Почтовый ящик для ответов или Внешний почтовый ящик для ответов. Это письмо будет обработано заданием ServiceMailBoxesJob, и по подписи будет вынесена выбранная акцептантом резолюция. Текст ответного письма будет указан в качестве комментария к резолюции.
В системной категории Уведомления о прочтении будет создаваться задача с текстом вида "TSID=59354|A=Accept", где значение TSID — это ID запрошенной подписи (из таблицы БД TaskSignatures), а значение A — это ID вынесенной резолюции.
•при значении UseMailToLinksForSignaturesFromEmails=0 (или при пустом значении) ссылки будут иметь формат обычной адресной строки (URL), и по нажатию на ссылку будет открываться интерфейс "Первой Формы".
Экспорт почтовых шаблонов
При выполнении экспорта шаблонов будет сгенерирован файл TemplatesExportFile.xml, в котором будут сохранены все настроенные в системе шаблоны.
Если включен флажок Выгружать только дефолтные шаблоны без категорий, то будут выгружаться только те шаблоны, имена которых совпадают с названиями событий (у таких шаблонов категория не указана).
Импорт почтовых шаблонов
При импорте шаблонов из xml-файла весь список новых шаблонов будет добавлен в конец общего списка.
Если включен флажок Включить новые шаблоны, то шаблоны будут загружены сразу с отмеченным флажком Включить (см. общий список).
Если включен флажок Сохранить старые дефолтные шаблоны (без категорий), то импортируемые шаблоны будут добавлены в конец общего списка, не затирая существующих одноименных шаблонов.
Окно импорта/экспорта шаблонов почтового уведомления