Расширенная функциональность
18
Июл
0

CRM 2016 или найди 10 отличий… Платформа

Интеграция

Exchange

Server-Side sync

В предыдущих версиях CRM Вы могли интегрироваться с почтой либо посредством Outlook’а, либо E-mail Router’а. Роутер доставлял в CRM только письма, а Outlook мог еще синхронизировать задачи и встречи, но требовал, чтобы пользователи работали через Outlook-клиент.

В 2016 появился еще один способ синхронизации электропочты – Server-Side sync. Он обладает преимуществами обоих предыдущих средств – не требует установки Outlook-клиента и может синхронизировать задачи и встречи из Exchange’а. И все это прямо через интерфейс веб-морды CRM.

Настройка серверной синхронизации практически идентична настройки роутера и состоит из следующих шагов:

  • Откройте системные параметры и на вкладке электропочты выберите способ обработки писем – серверная синхронизация.
  • Настройка профиля почтового сервер. Данный объект аналогичен профилям серверов в E-mail Router’е и выполняет те же функции – описывает параметры подключения к почтовым серверам в целом. Чтобы создать новый профиль перейдите: Параметры – Настройка электронной почты — Профили сервера электронной почты — создайте и настройте один из двух профилей: Exchange или POP3/SMTP.
  • Создайте Пользователей или Очереди и задайте для них адреса электропочты. При этом будут автоматически созданы ящики электронной почты – это новый служебный объект, посредством которого управляется отправка и получении писем для конкретного адреса электронной почты. После этого необходимо открыть созданный ящик и указать в нем следующие параметры:
    • Способ доставки электропочты.
    • Профиль почтового сервер (если доставка осуществляется через серверную синхронизацию).
    • Учетные данные для подключения к ящику.
  • После настройки ящика его необходимо включить и протестировать. Для этого на ленте нажмите Проверить и включить. Система попытается отправить на текущий ящик тестовые письма и, если все хорошо, после этого письма начнут ходить в автоматическом режиме. О результатах тестирования можно посмотреть на вкладке Оповещения (там же будут «складировать» ошибки возникающие в процессе работы ящика). Помимо этого, результат тестирования будет написан в трех полях:
    • Состояние входящих сообщений.
    • Состояние исходящих сообщений.
    • Состояние встреч, контактов и задач.

Примечание: в системных параметрах CRM можно задать дефолтные настройки почтового ящика и они будут присваиваться по умолчанию всем вновь создаваемым ящикам (а также их можно будет быстро присвоить по кнопке с ленты).


Администрирование

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

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

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


Отслеживание на уровне папки

Раньше, чтобы какое-либо стороннее письмо (не удовлетворяющее настроенным правилам автоматической синхронизации) попало из Outlook в CRM пользователю необходимо было выделить его и нажать Отследить в CRM или Установить в отношении. И только после этого клиент Outlook отправлял такие письма в CRM.

Отслеживание на уровне позволяет пользователям определять папку в Outlook или почтовый ящик Exchange, письма в котором будут автоматически синхронизироваться с CRM. Без необходимости чего-то нажимать и вовсе без Outlook. Все это работает на стороне сервера.

Отслеживание на уровне папки чрезвычайно удобно, т.к. оно работает на любом почтовом клиенте и с любых устройств поддерживающих папки Exchenge: Microsoft Outlook, веб-клиент Outlook, и даже сторонние почтовые клиенты (например, Apple Mail), почтовые клиенты для телефонов и планшетов.

Одно важное условие: чтобы отслеживать папки у Вас дожну быть настроена серверная синхронизация электропочты.

Как настроить:

  • Во-первых должна быть включена и настроена Синхронизация на стороне сервера.
  • В Системных параметрах должно быть включено Отслеживание на уровне папки.
  • Настройте и включите почтовый ящик Пользователя CRM. После этого создайте в Outlook новую папку (если таковой еще нет).
  • После этого каждый пользователь должны пойти в свои личные настройки (поскольку папки в Exchange создаются пользователями, то настраивать синхронизацию личных необходимо также им) – вкладка Электронная почта – кнопка Настройка правил отслеживания папки – нажмите New Folder Mapping и выберите папку для отслеживания.
  • Вы можете связать отслеживаемую папку с определенной записью CRM (Организацией или Возможной сделкой, например). Если никакой Относительно записи не будет определен, то собственное отображение будет сделано с адресом электронной почты.

Готово. Теперь любое письмо, которое попадет в эту папку – автоматически или Вы ручками его туда перетащите – будет отправлено в CRM. Это работает даже с отправленными письмами, перемещенными в отслеживаемую папку. И, как Вы можете видеть, каждый пользователь может настроить отслеживание нужных только ему папок в соответствии со своими потребностями.


Отслеживание на уровне папки может заменит Вам кнопку Отследить в CRM (если Вы используете Outlook-клиент) – вместо того чтобы постоянно жмякать на кнопке, просто настройте отслеживание на уровне папки и перемещайте необходимые письма в определенную папку, а CRM сама заберет оттуда все письма.

Также Отслеживание на уровне папке хорошо работает в парке с правилами Outlook – вместо того чтобы перемещать письма ручками настройте правила и Outlook сама расфасует письма по нужным папкам, а CRM их уже оттуда заберет.

Примечания:

  • У одного пользователя может быть несколько папок для отслеживания.
  • Письма в подпапках не отслеживаются.
  • Есть предел в 25 правил/пользователей/почтовых ящиков.
  • Электронные письма уже находящиеся в папке на момент включения для нее отслеживания не будут синхронизированы в CRM. Т.е. правила работают только на событие добавления.

SharePoint: интеграция на уровне сервера

Интеграция на уровне сервера – новый технический способ интеграции CRM и SharePoint. Если ранее Вам необходимо было устанавливать на SharePoint кастомный компонент (т.н. ListComponent), то теперь он в прошлом. Этот ListComponent служил интерфейсом между CRM и SharePoint и по факту являлся приложением SharePoint через которое пользователи CRM смотрели документы на SharePoint. Происходило этот так: пользователь открывал вкладку с документами – система в iFrame подгружала ListComponent (размещенный на шарике), который отображал соответствующие документы и позволял манипулировать ими. Т.о. каждый пользователь со своего компа самостоятельно ломился на шарик и там самостоятельно авторизовался. Теперь все по-другому: никакого дополнительного компонента нет, все взаимодействие с SharePoint осуществляется непосредственно через сервер CRM, который самостоятельно и авторизуется на шарике и отправляет к нему запросы. Пользователь же теперь работает со стандартной вьюхой CRM при просмотре документов ShaerPoint, которая обрасла дополнительными кнопками для взаимодействия с документов SharePoint.

В выжимке мы имеем следующие преимущества:

  • Отсутствие дополнительны компонентов.
  • Нативный интерфейс CRM для просмотра документов.
  • Единственное залогиневание.

Настройка:

  • Параметры – Управление документами – включите интеграцию с SharePoint на уровне сервера.
  • Параметры – Управление документами – Настройка управление документами:
    • Выберите объекты, для которых должна работать интеграция.
    • Введите URL SharePoint.
    • Задайте структуру автоматического создания папок для объектов (если нужно).


Channel Engagement Framework

Channel Engagement Framework – это универсальный мини фреймворк внутри CRM, который предназначен для получения и автоматической обработки входящих сообщений из различных социальных каналов (Twitter, Facebook и т.д.). Channel Engagement Framework обеспечивает некий каркас для будущей интеграции и в него уже заложены некоторые средства автоматизации, которые мы сейчас и рассмотрим.

Концепция Channel Engagement Framework заключается в следующем:

  • Вы создаете кастомное Действие (или используете какое-либо существующее) в которое будут поступать сообщения из социальных сетей.
  • Пишете интеграцию, которая будет создавать записи этих действие и передавать в них поля в формате json.
  • Настраиваете Правила автоматического создания и обновления записей.

Как бы MS ни старалась, но сделать за Вас всю работу она не может. Поэтому пилить интеграцию с социальными каналами придется Вам самим. Единственное, чем Channel Engagement Framework облегчает Вам жизнь это унифицирует обработку на стороне CRM. При этом Вам не нужно в процессе написания кода заботиться о каких-либо уникальных полях для каждого канала. Вы просто передаете в CRM один общий каркас, а все уникальные значения передаете в специальное поле (Дополнительные параметры действия) в json-формате. А уже на стороне CRM Channel Engagement Framework преобразует эти данные в нормально заполненное Действие или какие-либо другие записи.

Настроим простой демонстрационный пример. Предположим, что сообщение из социального канала приходит в кастомное Действие — Social. При этом с каждым сообщением приходит дополнительная информация: имя и фамилия отправителя и его email. Эта информация приходит в формате JSON в специальное (стандартное для всех Действий) поле ActivityAdditionalParams:

{
	FirstName: "<FirstName>",
	LastName: "<LastName>",
	Email: "<Email>"
}

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

Правила автоматического создания и обновления записей эволюционировали из Обращений из входящей электронной почты или сообщений из социальных каналов. Если раньше они были ограничены всего двумя объектами и позволяли выполнять ограниченный набор автоматических действий, то теперь круг объектов расширился до всех стандартных действий + любые кастомные. Помимо этого, правила теперь можно использовать чтобы автоматически создавать или обновлять (связанных с Действием) одну или более записей любого типа.

  • Перейдите Параметры — Управление бизнесом и Создайте новое Правила автоматического создания и обновления записей. Заполните название, а в качестве Типа источника укажите Действие социально сети. Сохраните запись.
  • Создайте новую Группу свойств канала. Для это группы создайте три свойства канала с типом строка:
    • FirstName
    • LastName
    • Email

    Каждая из этих свойств представлено переменной в JSON-формате, которая будет автоматически парситься системой и предоставляться пользователю в БП-подобном редакторе.
    З.Ы. Помните, что названия свойств чувствительны к регистру.

  • Следующий шаг – настройка автоматических правил. Она аналогична автоматическому созданию Обращений, за тем исключением, что Элементы правил обзавелись двумя секциями – Действия и Другие действия – посредством которых Вы можете создавать и обновлять любые записи.
  • Для нашего примера определите создание Контакта. И вот тут начинается самое интересное: в редакторе записи, в динамических свойствах, Вы будете видеть все ранее определенные Свойства канала и, соответственно, можете подставлять их в любые поля. Т.к. мы создаем Контакт то и заполняем поля имени, фамилии и e-mail.
  • Активируйте

З.Ы. Чтобы применить новые правила к старым необходимо написать код и использовать сообщение ApplyRecordCreationAndUpdateRuleRequest.

Далее включается интеграция и создает новые записи Действия социально сети. Но т.к. она у нас понарошку 🙂 то я создам запись кастомного Действия ручками и помимо прочего заполню поле Дополнительные параметры, в которое передам данные о Контакте в формате JSON:

{
	FirstName: "Иван",
	LastName: "Петров",
	Email: "test@t.com"
}

Как результат – мы видим новую запись Контакта!



Новый механизм рендеринга форм

В предыдущий версиях CRM прежде чем выполнять какие-либо операции на форме необходимо было дождаться ее полной загрузки. В CRM 2016 формы обзавелись новым механизмом рендеринга, который обеспечивает лучшую производительность. Формы грузятся значительно быстрее (до 2-3 раз – зависит от наполнения формы) и доступны для ввода сразу в момент открытия. При этом формы не претерпели каких-либо значительных изменений в функционале, но есть некоторые нюансы в поведении, которые Вы должны учитывать при обновлении.


Изменения

За счет чего произошли такие улучшения:

  • С точки зрения процесса загрузки новые формы запараллеливают как можно больше операций, чтобы избежать простоя браузера (ранее загрузка формы была довольно линейным процессом).
  • Увеличено количество кэшируемого контента.
  • Часть процесса рендеринга перемещена на сторону сервера.
  • Оптимизирована инициализация контролов.
  • Раньше формы тратили впустую много ресурсов из-за постоянной перезагрузки ресурсов. Все скрипты были размещены в одном iFrame’е, который полностью сбрасывался и перезагружался при каждом открытии формы. В новом средстве рендеринга общие и кастомные скрипты разнесены по отдельным iFrame’ам. Общие скрипты никогда не перезагружаются и хранятся на постоянной основе. Кастомные же «аннулируются» при закрытии формы и перезагружаются при повторном открытии формы.

Нюансы

А теперь поговорим о том, что нужно учитывать при обновлении до CRM 2016:

  • Новый механизм рендеринга формы вносит изменения в то, как организованы iFrame’ы. Следовательно, некоторый неподдерживаемый код перестанет работать.
  • Т.к. загрузка ресурсов стала параллельной и асинхронной, то CRM не гарантирует загрузку JS Веб-ресурсов в том порядке, которая указана в настройках формы. Поэтому, если у Вас в одном JS Веб-ресурсе происходит вызов кода из другого Веб-ресурса, то Вам необходимо самостоятельно управлять зависимыми библиотеками. В целом подходов тут два:
    • Проверять кодом наличие вызываемого объекта, прежде чем к нему обращаться.
    • Объединить весь код в один JS Веб-ресурс.

Выключение

Новые формы включены по умолчанию. Если есть проблемы с совместимостью, то можно вернуть назад старый механизм рендеринга. Откройте Системные параметры и включите устаревший рендеринг формы (Параметр 1). Но учтите, что в будущем старый механизм будет отключен.

Решения

Сегментация

Сегментация Решений позволяет более точечно экспортировать элементы CRM. Ранее можно было экспортировать из CRM объект целиком, со всем его содержимым (а также зависимые компоненты). Сейчас же можно поместить в Решение отдельные субкомпоненты объекта:

  • Формы
  • Представления
  • Диаграммы
  • Поля
  • Ключи
  • Связи (1:N, N:1, N:N)
  • Сообщения
  • Бизнес-правила
  • Настройки Иерархии
  • Панели мониторинга

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

Выбор субкомпонентов осуществляется очень просто:

  • Добавляете в Решение нужный объект.
  • В открывшемся окне будет представлен ряд вкладок – по одной на каждый тип субкомпонента.
  • Отмечаете галками нужные субкомпоненты и жмете Готово.

Если перейти к полям объекта в Решении, то там будут представлены только поля, добавленные в Решение.

Если нужно дополнить объект другими субкомпонентами, то выделите его в Решении и нажмите на Командной панели кнопку Добавить компоненты. Откроется уже знакомое нам диалоговое окно.

Помимо описанный функций. в диалоговом окне добавления субкомпонентов, есть две галки:

  • Включить метаданные сущности – тогда в выгружаемый файл Решения будут добавлены метаданные объекта, представленные на странице редактирования его свойст (имя объекта, является ли оно действием, включен ли для него поиск дубликатов и т.д.).
  • Добавить все активы – ну тут понятно без комментариев 🙂


Патчи и Клоны

Помимо сегментации, CRM 2016 обзавелся еще парой функций, значительно упрощающих обновление Решений в CRM – это Патчи и Клоны.

Патчи позволяют вносить незначительные изменения (исправления) в целевое Решение, а Клонирование создавать полностью обновленную версию Решения. Каждая из этих функций представлена отдельной кнопкой на Представлении Решений.

Как это работает:

  • Допустим у нас имеется Решение, содержащее два поля. Оно, в виде управляемого Решения, установлено на Проде. Мы хотим изменить длину одного поля и передать это изменение на Прод.
  • Для этого в списке Решение выделяем нужное и жмем Клонировать исправление.
  • В открывшемся диалоговом окне задайте номер Патча.
    Полный номер Решения состоит из <major>.<minor>.<build>.<revision>
    Для патча можно будет указать только <build>.<revision>
  • Создастся новое Решение, у которого буде автоматически сформировано название и которое будет связано с основным Решением на уровне метаданных (посмотреть эту связь можно в XML файле Решения – тег ParentUniqueName). Добавляем в Патч только измененное поле.
  • Далее импортируем в виде управляемого Решения на целевую среду.

И тут у нас появляется первое серьезное отличие Патчей от простых управляемых Решений. Если два простых управляемых Решение меняют одну и ту же настройку, то в системе будет применена настройка того Решения, которое установлена последнем. Патчи же применяются только поверх своего основного Решения (т.е. «предка»). И если после этого основного Решения было установлено другое Решение, меняющее ту же настройку, то действия Патча Вы не увидите.

Если же в систему импортировано несколько Патчей для одного Решения, меняющих какую-либо одну настройку, то верным будет последний установленный Патч.

Кроме того система не позволит отредактировать Решение, к которому создан патч – скажет что нужно редактировать именно этот «патч».

Клонирование решения создает его копию и «свертывает» в новом решении все связанные с ним патчи, а также увеличивает номер основной версии (.). При этом предыдущее основное Решение и все его патчи будут удалены. Инициировать клонирование можно только с основного решения, а не с его патчей.

З.Ы. Так или иначе Вы все еще полностью управляете номером версий Решенияи можете скорректировать его вручную позже, если есть необходимость.



Поля

Дата/время

До сих пор все значения даты/времени (включая формат Только дата) в обязательном порядке использовали часовой пояс локального Пользователя. В БД даты всегда хранились в формате UTC. При извлечении даты/времени они преобразовывались к локальному часовому поясу текущего пользователя.

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

Теперь у полей даты/время появился новый атрибут метаданных – Поведение. С помощью Через него можно определять поля Даты/времени без привязки к часовому поясу. Он имеет три значения:

  • Часовой пояс пользователя – поведение как и раньше.
  • Только дата – хранит только дату и только в том в виде в каком она была введена. Возвращает тоже только дату без всякого преобразования к часовому поясу.
  • Независимо от часового пояса – хранит и отображает пользователю полную дату/время без преобразования к локальному времени.

Атрибут Формат по-прежнему существует и, как и раньше, отвечает только за визуальное отображение компонента «время». Также его нельзя теперь задать для Поведения Только дата.

З.Ы. После сохранения двух последних Поведений изменить его нельзя.


Некоторые факты о новом формате Даты/времени:

  • Если сохранить дату и время на карточке в такое поля, то система автоматически прибавит к нему часовой пояс текущего пользователя и запишет в обычное поле в БД «время + часовой пояс». А в поле UTC запишет то время, которое было введено на форме. Соответственно, на форме выводится как бы поле UTC!
    «Классическое» поле даты/времени ведет себя наоборот: в обычное поле записывает то что введено на формы, а в UTC записывает разность между введенным значением и часовым поясом пользователя.
    Это нужно учитывать. Когда используете подобные поля в отчетах.
  • Если задать значение для такого поля с помощью кода, то никакого часового пояса к этому значению не прибавляется! В обычное поле в БД запишется то значение, которое было передано в коде, а в поле UTC запишется значение минус часовой пояс. А на форме как было уже сказано будет выведено значение UTC, т.е. минус часовой пояс от нужного значения [дальше идет непереводимая ненормативная лексика]

Вычисляемые поля

Вычисляемые поля получили пару улучшений…

Разница дат

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

  • DIFFINDAYS
  • DIFFINHOURS
  • DIFFINMINUTES
  • DIFFINMONTHS
  • DIFFINWEEKS
  • DIFFINYEARS

Now()

Как не трудно догадаться по названию, новая функция Now() подставляет текущую дату/время в поле дата/время или в формулу вычисления разницы дат.
При этом есть два странных ограничения:

  • Функцию Now() можно использовать для заполнения полей Дата/время только с Поведением Часовой пояс пользователя. При этом данное ограничение легко обойти: сначала создаете поле Дата/время с типом Поведения Часовой пояс пользователя и задаете для его вычисления функцию Now(). Затем меняете тип Поведения на любой другой.
  • Вы можете использовать функцию Now() в функции вычисления разницы дат, только если для другого используемого в функции поля Даты/времени установлено Поведение Часовой пояс пользователя.
    И хотя Вы не можете непосредственно использовать Now() в формуле вычисления разницы времени, где у другого поля даты установлено Поведение Только дата или Независимо от часового пояса, есть маленький трюк: Вы можете создаете новое поле Даты/времени с Поведением Только дата и Вычисляемым Типом. Для заполнения этого поля используйте функцию Now(). А уже затем это поле можно использовать в функции вычисления разницы времени.


Поля свертки

Появилась возможность выполнять математические операции (типа AVG) по отношению к Действиям (а не к конкретному его типу).


Бизнес-правила

Очистка значений

Бизнес-правила теперь позволяют очищать значения на стороне клиента и на стороне сервера.


Вызов из потока операций

Появилась возможность задавать действия в зависимости от состояния потока операций:

  • Активный этап
  • Выбранный этап
  • Категория этапа


Actions

Экшены теперь могут быть напрямую вызваны из БП или Диалога.


Комментарии (0)

*

code