Какая деталь в Контакте отвечает за email, отправленные через Terrasoft?

Почему-то email, отправленные через email-рассылки, не добавляеются в Активность email.

Интересно видеть, в каких email-рассылках и кампаниях учавствует Контакт

Нравится

4 комментария
Лучший ответ

На закладке История в карточке контакта найдете обе детали

На закладке История в карточке контакта найдете обе детали

Владимир Соколов, Я удалил деталь Рассылки Email. Подскажите, что у вас стоит в Колонка детали и в Колонка объекта у этой детали?

Александр, там так:

Зверев Александр, Спасибо!

Показать все комментарии

Есть БП, в котором в элементе "Сценарий" получается локализованный шаблон Email c помощью конструкции:

MacrosHelperServiceRequest request = new MacrosHelperServiceRequest();
request.EntityId = activeRowId;
request.TemplateId = emailTemplateId;
request.EntityName = entityName;
 
var macrosHelperService = new MacrosHelperService(new GlobalMacrosHelper(), _uc);
MacrosHelperServiceResponse result = macrosHelperService.GetMultiLanguageTextTemplate(request);

Шаблон формируется.

НО только если не стоит галочка  "Выполнять следующие элементы в фоновом режиме"

Если галочка стоит, то получаем ошибку в журнале БП:

System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
   в Terrasoft.WebApp.Global.<>c.<WorkspaceDependenciesInitializer>b__24_0(IContext context)
   в Ninject.Activation.Provider`1.Create(IContext context)
   в Ninject.Activation.Context.ResolveInternal(Object scope)
   в Ninject.Activation.Context.Resolve()
   в Ninject.KernelBase.Resolve(IRequest request, Boolean handleMissingBindings)
   в Ninject.ResolutionExtensions.Get[T](IResolutionRoot root, IParameter[] parameters)
   в Ninject.Activation.Provider`1.Create(IContext context)
   в Ninject.Activation.Context.ResolveInternal(Object scope)
   в Ninject.Activation.Context.Resolve()
   в Ninject.KernelBase.Resolve(IRequest request, Boolean handleMissingBindings)
   в Ninject.Planning.Targets.Target`1.ResolveWithin(IContext parent)
   в System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   в System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   в Ninject.Activation.Providers.StandardProvider.Create(IContext context)
   в Ninject.Activation.Context.ResolveInternal(Object scope)
   в Ninject.Activation.Context.Resolve()
   в Ninject.KernelBase.Resolve(IRequest request, Boolean handleMissingBindings)
   в Ninject.ResolutionExtensions.Get[T](IResolutionRoot root, String name, IParameter[] parameters)
   в Terrasoft.Core.Factories.ClassFactory.GetInstance[T](Func`1 action)
   в Terrasoft.Configuration.MLangContentFactory.GetDefaultIterator(String schemaName)
   в Terrasoft.Configuration.MLangContentFactory.GetContentKit(String iteratorTagName, String storeTagName)
   в Terrasoft.Configuration.MacrosHelperService.GetMultiLanguageTextTemplate(MacrosHelperServiceRequest request)



Есть подозрение на отсутствие UserConnection при фоновом режиме вызова.

Т.к. при вызове виртуального метода  MLangContentFactory.GetContentKit (в MacrosHelperService.GetMultiLanguageTextTemplate) в конструктор объекта MLangContentFactory не передается UserConnection.



Кто сталкивался с подобной проблемой в фоновых БП и как её можно решить?

Схемы 

Нравится

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

Игорь, привет! Я бы забил на галочку, больше потеряешь времени и нервов на поиски) Проще просто вручную обернуть действие с помощью Task.Factory.StartNew, если нужно без блокировки потока. Правда, отслеживать и логировать, если что-то в helper'e пойдет не так, придется вручную, т.к. всегда будешь получать в процессе "ок"

Не знаю, как сейчас, но когда-то для перевода в фоновый режим достаточно было поставить ожидание по таймеру 1 сек

Сейчас достаточно поставить галочку "Выполнять следующие элементы в фоновом режиме"

Но при этом такое поведение базовой логики

Такое ещё может быть, если вызывается по таймеру БП с генерацией печатной формы.

Часть кода в сервисах генерации печатных форм не умеют так работать.

См. обсуждения: 1, 2, 3 и 4.

В этих темах предлагаются разные доработки и обходные варианты получения UserConnection.

Мотков Илья пишет:

Такое ещё может быть, если вызывается по таймеру БП с генерацией печатной формы.

Часть кода в сервисах генерации печатных форм не умеют так работать.

См. обсуждения: 1, 2, 3 и 4.

В этих темах предлагаются разные доработки и обходные варианты получения UserConnection.

Так в том то и дело, что в рамках своего класса я передаю UserConnection.

А в базовом веб-сервисе MacrosHelperService.GetMultiLanguageTextTemplate при вызове 

MLangContentFactory.GetContentKit в конструктор класса MLangContentFactory оно не передается.

Значит, базовый класс не предусматривает такой передачи UserConnection и нужно делать свой доработанный, как поступали с сервисом печатных форм в примерах по ссылкам.

Лопатин Константин Николаевич пишет:

Игорь, привет! Я бы забил на галочку, больше потеряешь времени и нервов на поиски) Проще просто вручную обернуть действие с помощью Task.Factory.StartNew, если нужно без блокировки потока. Правда, отслеживать и логировать, если что-то в helper'e пойдет не так, придется вручную, т.к. всегда будешь получать в процессе "ок"

 Task.Factory.StartNew не помог.

Показать все комментарии

Добрый день. Возникла проблема с передачей параметров бизнес-процесса в тело письма.

Изображение удалено.

Так сконфигурирована отправка.

В тело письма вставлен параметр через "молнию" на панели. Само тело - обычный текст.

Изображение удалено.

 

Параметр - статичная строка, которая нигде в процессе не меняется.

Изображение удалено.

HTML вставки параметра выглядит так:

Изображение удалено.

Итоговое письмо после получения выглядит так:

Изображение удалено.

Т.е. параметры не вставляются во время отправки.

Пробовал:

1. Смена почтового провайдера (Office 365, Gmail, Yandex). Опробованы были как и почтовые ящики в роли рассылаемого, так и в роли принимаемого. Результат не изменился.

2. Тест с различными параметрами и различными типами параметров (дата-время, целые числа, строки).

3. Всеразличные перегенерации всех исходников для всех элементов, перекомпиляции всего.

4. Смотреть данные через автогенерируемую страницу перед отправкой. Данные имеются и корректны.

5. Тестирование на версии 7.12.3.980 (Marketing) Там параметры корректно вставляются и письмо с теми же почтовыми провайдерами попадает на почту в необходимом виде.

Также в системе есть шаблоны писем с параметрами, но там всё преобразуется в корректное письмо. Однако отправлять письмо по шаблону я не могу - в конечном счёте мне необходимо в тело письма вставить данные не привязанные к конкретной сущности, а генерируемые в рамках БП.

В чем ещё может быть проблема? Заранее спасибо.

 

 

Нравится

1 комментарий

Для начала нужно выяснить, дело в продукте или в версии. Попробуйте проделать на Marketing 7.14. Работает ли там настроенная Вами логика?

Показать все комментарии

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

Используйте приветствия

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

Процесс вовлечения должен начинаться с самого первого контакта с подписчиком, включив ваше предложение в самое первое письмо.

Сегментируйте подписчиков

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

  1. География подписчиков является наиболее универсальным критерием сегментации. Используйте распределение подписчиков по городам/областям/странам для формирования персонализированных предложений.

  2. Количество открытий и переходов по ссылкам — важный показатель для определения позитивно вовлеченных подписчиков. Такие подписчики часто взаимодействуют с вашими письмами и признание их лояльности приведет к большему количеству конверсий. С другой стороны, повторное привлечение подписчиков, которые в последнее время не взаимодействуют с вашими письмами, даст вам возможность возобновить их интерес.

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

Используйте сплит-тестирование

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

Постоянный анализ результатов сплит-тестов и совершенствование контента рассылок — наиболее быстрый и эффективный способ повышения как вовлеченности аудитории, так и конверсий.

Подробнее о том, как настроить и провести сплит-тест, читайте тут: 

https://academy.terrasoft.ru/documents/marketing/7-14/split-testy?document=marketing

Используйте триггерные рассылки

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

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

Подробная информация о триггерных рассылках:

https://academy.terrasoft.ru/documents/marketing/7-14/triggernye-pisma?document=marketing

Идентифицируйте неактивных подписчиков и проводите кампании по их повторному вовлечению

Неактивных подписчиков можно идентифицировать по следующим признакам:

  1. Один и более откликов о проблемах с доставкой (“bounce”).
  2. Подписчик пожаловался на спам.
  3. Подписчик отписался от рассылки.
  4. Подписчик не взаимодействовал с письмами более месяца.

Рекомендуется сегментировать неактивных подписчиков именно по этим четырем признакам. Для первых трех групп необходимо немедленно прекратить все email-рассылки. Для подписчиков четвертой группы (тех, которые не взаимодействовали с рассылками более месяца) необходимо создать отдельную кампанию по повторному привлечению.

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

Адаптируйте верстку писем для мобильных устройств

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

Нравится

Поделиться

0 комментариев
Показать все комментарии

Добрый день. 

Не все оповещения уходят пользователям, активность тип email, остаются в черновиках в состоянии "Не отправлено", приходится отправлять вручную. Как установить причину ? Или как отправить "разом" все оповещения за день, нету возможности выбора всех писем. Сама почта работает стабильно, проверяли. Прошу помочь.

Прикрепленные файлы

Нравится

1 комментарий
Лучший ответ

Начните с просмотра логов вашего почтового сервера (при необходимости включите логирование, привлеките к решению проблемы администратора почтовой системы)  почему письма сразу не отправляются. 

Как происходит отправка уведомлений и проблема касается только уведомлений или и других почтовsых сообщений? Скорее всего есть БПР который отправляет уведомления, проверьте какой тип отправки указан в нем, ручная отправка или автоматическая?

Начните с просмотра логов вашего почтового сервера (при необходимости включите логирование, привлеките к решению проблемы администратора почтовой системы)  почему письма сразу не отправляются. 

Как происходит отправка уведомлений и проблема касается только уведомлений или и других почтовsых сообщений? Скорее всего есть БПР который отправляет уведомления, проверьте какой тип отправки указан в нем, ручная отправка или автоматическая?

Показать все комментарии

Добрый день!

Подскажите, пожалуйста, возможно ли передавать дополнительные параметры в макрос, вызываемый в email-шаблоне через [#@Invoke.MyMacros#] ?

Например, нужно реализовать конвертацию значения поля типа boolean из true/false в "да"/"нет". Или преобразовать дату в специальный формат.

Метод GetMacrosValue(object arguments) интерфейса IMacrosInvokable принимает объект с аргументами, но по умолчанию в нем - только идентификатор текущей записи.

Нравится

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

Стандартно в системе есть макрос EstimateLinksGenerator для голосования за оценку, он находится в одноимённой схеме. Но там тоже получают Id и далее работают с ним. Если дата или логическое значение находятся в полях этой записи, то к ним можно получить доступ по её Id.

Зверев Александр,

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

Может, есть какой-то альтернативный вариант решения проблемы?

Нужно смотреть в MacrosHelper, который это всё обрабатывает, как там устроено и есть ли возможность для расширения.

Добрый день, подскажите, может кто нашел решение данной задачи?

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

Показать все комментарии

Добрый день!

Воспользовались дополнением из MP - Формирование печатной формы счета и отправка клиенту (https://marketplace.terrasoft.ru/template/formirovanie-pechatnoy-formy-…), данный процесс открывает страницу редактирования email, на которой мы и отправляем письмо (через нажатие кнопки Отправить).

Подскажите пожалуйста, как в данном процессе фоном отправлять письмо с вложенным файлом без открытия страницы редактирования?

Нравится

1 комментарий

Ещё есть дополнение «Отправка письма по шаблону с вложением». Там должно отправлять фоном. Можно поставить оба и сравнить, как там реализован именно блок отправки, доработать первый подобно второму.

Показать все комментарии

Проблема подключения к MS Exchange. При подключение используется домен, но настройки для введения домена нет. Пробовал через domen\ADLogin - не работает. Логин не имеет в себе "@mail.com" (в смысле не совпадает с адресом). При подключении пишет "Указан неправильный email или пароль." Проверил настройки на Outlook встроенный в Windows 10 - все работает нормально, просит завести: Сервер, домен, логин, пароль.

Настраивал по инструкции академии

Нравится

14 комментариев
Лучший ответ

Насколько я понимаю в зависимости от настроек сервера в в имени пользователя может быть домен или его не быть е если у вас email VasaPupkin в домен ExtraCompany

попробуйте  установив вводить имя вручную указать установить логин как:

ExtraCompany\VasaPupkin

Или попросить установить для Exchange сервера формат аутентификации без логина

Как то так: https://www.techieshelp.com/exchange-2013-change-owa-log-on-options/

Вот видео по настройке. Насколько понимаю, если логин не совпадает с email, то нужно вводить логин и email в соответствующие поля, а домен отдельно никуда вводить не нужно.

Зверев Александр,

по этом видео делал - не работает

Может, какие-то запреты на стороне сервера. Уточните параметры подключения у админа, вдруг реально нужно прописывать не тот email. Если есть логи на стороне exchange, там тоже при неуспешном подключении может быть более подробная информация о причине.

Зверев Александр,Админ говорит что логин это - domin\Login, и имя сервера. Больше нечего не дает, говорит это все

Пусть ещё email Вам скажет.

И смотрите логи.

Зверев Александр, email я взял. Смотреть логи Exchange'а? Админ говорит что там оооочень много данных и смотреть их отбивается

Сообщение «Указан неправильный email или пароль» намекает на одну из двух возможных причин. Также попробуйте включить настройку «Использовать email как логин».

Если дело не в этом, могут быть запреты на уровне сервера.

Зверев Александр, «Использовать email как логин» тоже ставил, не помогло. В общем нужны логи Exchange'а?

scr_cases_ms_exchange_card.png

Тут есть разные варианты настройки. Если ничего не поможет, анализируйте логи.

Зверев Александр,

все их перепробовал.

Такое ещё может быть, если на сервере Exchange просрочены сертификаты. Если дело в этом, есть два решения:

1) Установить нормальные сертификаты на сервере Exchange (не самоподписанные и не просроченные, а выданные центром сертификации) .

2) Установить значение true системной настройке «Игнорировать некорректные сертификаты сервера Exchange»

Насколько я понимаю в зависимости от настроек сервера в в имени пользователя может быть домен или его не быть е если у вас email VasaPupkin в домен ExtraCompany

попробуйте  установив вводить имя вручную указать установить логин как:

ExtraCompany\VasaPupkin

Или попросить установить для Exchange сервера формат аутентификации без логина

Как то так: https://www.techieshelp.com/exchange-2013-change-owa-log-on-options/

Григорий Чех,пробовал прописывать domen\Name - тоже не работает. Вносить в настройки сервера админ не хочет, потому и думаю как это можно сделать без его участия. Админ считает "у нас все работает, это у вас не правильно настроено или не работает"

Третий вариант найти почтовый сервер который умеет собирать почту с других серверов, настроить в нем импорт почты с вашего Exchange и использовать его для забора почты с Exchange сервера и отправлять (хотя отправлять можно и через этот третий сервер) А в BPM настроить этот третий сервер. Такое вроде умеет mail.ru gmail.com Если это конечно разовая операция если таких пользователей много то нужно надавить на админа через руководство :)

Кстате а какая версия у вас Exchange сервера?

И еще обращатся в поддержку не пробовали?

 

Показать все комментарии

Коллеги, добрый день.

После обновления на 7.12.3.980 возникла ошибка при отправлении писем с панели "Следующий шаг".

Выяснилось, что наряду с  полем Recepient  появилось новое поле Recipient (https://yadi.sk/i/P3g6M4wf3aeEfg). 

И именно заполнение этого поля требуется при отправке письма.



Зачем добавлено это поле? 

Как быть с обращениями клиентов об ошибках при отправке, если схема EmailMessagePublisherPage дорабатывалась на основе поля Recepient?

Нравится

1 комментарий

Правильно пишется «Recipient», лучше привязываться к нему. Видимо, не сразу заметили и исправили. А в объекте оставили старое, чтобы не сломать связь с полем в таблице базы.

Показать все комментарии

Привет всем!

Система не получает сообщения из почтового ящика( MS Exchange) до тех пор пока в систему не войдет Supervisor, только после этого система начинает прием и обработку сообщений.

 

Нравится

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

Здравствуйте!

Для исправления данного кейса необходимо установить для пула приложений IIS, на котором работает приложение, Idle Timeout = 0

1. Настроить автоматический мониторинг Loader'a и приложения, ниже варианты:

  • С помощью бесплатного сервиса мониторинга https://uptimerobot.com/ настроить автоматический мониторинг c периодичностью 5-10 минут - наиболее быстрый путь
  • С помощью автоматического запуска скрипта мониторинга приложения. Шаблон скрипта PowerShell в приложении Ping.ps1, в нем необходимо изменить адрес приложения. После этого, нужно запланировать выполнение этого скрипта через планировщик Windows c периодичностью 5-10 минут. Автоматический запуск можно настроить по инструкции http://windowsnotes.ru/powershell-2/zapusk-powershell-skripta-po-raspisaniyu/.

 

2. Настроить автоматический запуск SQL-скрипта очистки \ перезапуска зависших заданий, скрипт в приложении ResetErrorQuartzTriggers.sql - с периодичностью 30 минут

  • Настроить автоматический запуск задания MSSQL, выполняющего этот скрипт - наиболее простой способ

Скрипты можно скачать по данной ссылке:https://dropmefiles.com/QhuAh

Shevchenko Andrey,

добрый день! скрипты выложите еще раз.

Здравствуйте!

Выше в моем комментарии названия файлов являются кликабельными и вы можете скачать скрипты просто нажав на них.

Shevchenko Andrey,

не скачиваются скрипты. На dropmefiles пишет что файлы удалены, по самому скрипту - web страница недоступна

Ольга Кондратьева,

Добрый день! Можете скачать по ссылке - 

https://www.dropbox.com/sh/re9v0093hflrmuf/AADQ1_2KNUQgLJS2DnkB0Gyia?dl…

Подскажите, в какой версии исправили данную багу? В 7.12.2.935 нужно настраивать скрипт ResetErrorQuartzTrigger?

Показать все комментарии