Вопрос

Коллеги, а как настроить Lead source URL, чтобы определялся source=google при переходе с любого google.com, google.ru и других сайтов (которые, по идее не являются поддоменами)?

У меня такой же вопрос

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Новинки релиза 7.14.0
Лидеры разработки Террасофт презентовали улучшения в маркетинге

 

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

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

При использование триггерных писем есть возможность добавлять в письмо только колонки, которые находятся на карточке контакта. Возможно ли добавлять в триггерные письма колонки из других объектов системы?

Спасибо!

У меня такой же вопрос

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

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

img_section_email_macro_subject.gif

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Дорогие, сертифицированные коллеги!

Вопрос по вопросам сертификации:

В чем разница между массовыми и триггерными рассылками?

  1. Массовая рассылка отправляется всем получателям без исключения, триггерная рассылка отправляется только получателям, ответившим на письма массовой рассылки.
  2. Массовые рассылки могут рассылаться в bpm’online независимо от кампаний, тогда как триггерные письма - только в рамках кампаний.
  3. Массовая рассылка генерируется автоматически, триггерная рассылка может отправляться получателям индивидуально.

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

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

А какие галки ставили вы, отвечая на данный вопрос?

 

У меня такой же вопрос

2 комментария

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

В чем суть вопроса?

На Community не представляются ответы по сертификации и подобным тестам, которые проходят в компании. Рекомендуем рассчитывать на свои знания и внимательно читать инструкцию на Академии. Также можете для тестов использовать trial сайты.

Вильшанский Дмитрий пишет: В чем суть вопроса?

Дмитрий, спасибо за ответ!

Я всегда рассчитываю только на свои знания, но не всегда есть возможность много времени уделять самообучению.

Поэтому хочется так же немного рассчитывать и на сертифицированное сообщество знатоков!

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

О компании

Компания «Ирбис Моторс» является производителем мототехники. 
Компания ведет разработку собственных снегоходов, внедорожных мотоциклов и квадроциклов.

Предпосылки внедрения

Ранее сотрудники компании «Ирбис Моторс» фиксировали всю полезную информацию о взаимодействии с клиентом в индивидуальных таблицах, которая находилась в учетной системе 1С и личном кабинете клиента (web-площадка b2b для дилеров). Такая ситуация значительно усложняла возможность оперативно проанализировать работу как отдельного сотрудника, так и отдела в целом. Более того, при увольнении сотрудника продолжать работу в его «файле» очень сложно, так как каждый менеджер работал со своими клиентами в удобном для него формате. Важная информация о клиенте могла потеряться.

Для объединения информации в единой системе и автоматизации процессов была выбрана bpmonline.  

 

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

 

Выполненные настройки

Первым шагом в адаптации системы стало определение требований к карточкам основных разделов. Далее на страницы разделов [Лиды], [Контакты], [Контрагенты], [Заказы] и [Продукты] через мастер раздела добавлены необходимые поля и справочники. Так, например, на страницу продукта добавлены такие поля: Марка и Тип транспортного средства, Технические характеристики и др.

 

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

 

Далее рассмотрим сам процесс работы и выполненные настройки. Так как в системе уже есть контакты и контрагенты, дополнительно был установлен темплейт Авоматического создания активностей по неактивным контрагентам. Это ускорило выполнение настроек, так как решение содержит готовый для работы бизнес-процесс.

 

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

 

После стандартных коммуникаций с клиентом, в рамках лида, менеджер принимает решение о создании заказа или оставляет клиента на этапе «Взращивание», в крайних случаях — дисквалифицирует лид. Под взращиванием клиента подразумеваются периодические коммуникации с клиентом (телефонные звонки, личные встречи) с целью расположить его к продуктам компании. Кроме этого, контакты, у которых есть лиды на стадии «Взращивание», попадают в аудиторию e-mail рассылок, где происходит оповещение клиентов о специальных предложениях.

 

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

 

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

 

Результат

В результате внедрения bpm’online компания «Ирбис Моторс» получила систему автоматизации процессов взаимодействия с клиентом, в которой можно вести прозрачную работу с клиентом, следить за историей взаимодействия, автоматизировать процессы выполнения заказов и составлять аналитику по ключевым показателям работы менеджеров и отдела в целом. Наличие единого центр коммуникации с клиентами (телефон, электронная почта, чат с площадкой b2b, социальные сети) позволяет сократить время на активности в других системах и уделять это время клиентам. Работа в bpmonline позволила повысить лояльность существующих клиентов к компании и улучшить процессы взаимодействия с новыми клиентами.

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

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

define("BSDeliveryElementSchema", ["BSDeliveryElementSchemaResources", "CampaignBaseCommunicationSchema"],
    function(resources) {
        Ext.define("Terrasoft.manager.BSDeliveryElementSchema", {
            // Родительская схема.
            extend: "Terrasoft.CampaignBaseCommunicationSchema",
            alternateClassName: "Terrasoft.BSDeliveryElementSchema",
            // Идентификатор менеджера. Должен быть уникальным.
            managerItemUId: "a1226f93-f3e3-4baa-89a6-11f2a9ab2d71",
            // Подключаемые миксины.
            mixins: {
                campaignElementMixin: "Terrasoft.CampaignElementMixin"
            },
            // Название элемента.
            name: "BSDelivery",
            // Привязка ресурсов.
            caption: resources.localizableStrings.Caption,
            titleImage: resources.localizableImages.TitleImage,
            largeImage: resources.localizableImages.LargeImage,
            smallImage: resources.localizableImages.SmallImage,
            // Имя схемы карточки редактирования.
            editPageSchemaName: "BSDeliveryElementPropertiesPage",
            // Тип элемента.
            elementType: "BSDelivery",
            // Полное имя класса, соответствующего данной схеме.
            typeName: "Terrasoft.Configuration.BSDeliveryElement, Terrasoft.Configuration",
            // Переопределение свойств стилей для отображения.
            color: "rgba(55, 119, 188, 1)",
            width: 69,
            height: 55,
            // Настройка специфических свойств элемента.
            deliveryId: null,
            // Определение типов связей, исходящих из элемента.
            getConnectionUserHandles: function() {
                return ["CampaignSequenceFlow", "CampaignConditionalSequenceFlow"];
            },
            // Расширение свойств для сериализации.
            getSerializableProperties: function() {
                var baseSerializableProperties = this.callParent(arguments);
                return Ext.Array.push(baseSerializableProperties, ["DeliveryId"]);
            },
            // Настройка отображения иконок на диаграмме кампании.
            getSmallImage: function() {
                return this.mixins.campaignElementMixin.getImage(this.smallImage);
            },
            getLargeImage: function() {
                return this.mixins.campaignElementMixin.getImage(this.largeImage);
            },
            getTitleImage: function() {
                return this.mixins.campaignElementMixin.getImage(this.titleImage);
            }
        });
        return Terrasoft.BSDeliveryElementSchema;
    });

Потом файл BSDeliveryElementPropertiesPage

define("BSDeliveryElementPropertiesPage", ["LookupUtilities"],
    function(LookupUtilities) {
        return {
            attributes: {
 
                "DeliveryId":{
                	"dataValueType": this.Terrasoft.DataValueType.LOOKUP,
                	"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                	"referenceSchemaName": "BeesenderDelivery",
					"isRequired": true,
					"isLookup": true
                },
 
                "DeliveryCollection": {
					"dataValueType": this.Terrasoft.DataValueType.COLLECTION,
					"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
				},
            },
            methods: {
                init: function() {
                    this.callParent(arguments);
                    this.initAcademyUrl(this.onAcademyUrlInitialized, this);
                },
 
                getContextHelpCode: function() {
                    return "CampaignBSDeliveryElement";
                },
 
                initParameters: function(element) {
                    this.callParent(arguments);
                    this.set("DeliveryId", element.deliveryId);
                },
 
                saveValues: function() {
                    this.callParent(arguments);
                    var element = this.get("ProcessElement");
                    element.deliveryId = this.getDelivery();
 
                },
 
                getDelivery: function(){
                	var delivery = this.get("DeliveryId");
                	return delivery ? delivery : "";
                },
 
 
                loadDeliverySchemaLookup: function() {
					var self = this;
					var config = this.getDeliveryLookupConfig();
					LookupUtilities.Open(this.sandbox, config, function(args) {
						var collection = args.selectedRows;
						if (collection.getCount() > 0) {
							var selectedItem = collection.getItems()[0];
							self.set("DeliveryId", selectedItem);
						}
					}, this, null, false, false);
				},
 
				/**
				 * Gets email lookup config
				 * @protected
				 * @return {object}
				 */
				getDeliveryLookupConfig: function() {
					var config = {
						entitySchemaName: "BeesenderDelivery",
						multiSelect: false,
						hideActions: true
					};
					return config;
				},
 
				prepareDeliveryList: function(filterParameter, list) {
					if (list && list instanceof Terrasoft.Collection) {
						list.clear();
					}
					var filters = null;
					this.prepareLookupList(filters, filterParameter, "BeesenderDelivery",
						"DeliveryCollection", this);
				},
 
 
            },
            diff: [
 
                {
                    "operation": "insert",
                    "name": "ContentContainer",
                    "propertyName": "items",
                    "parentName": "EditorsContainer",
                    "className": "Terrasoft.GridLayoutEdit",
                    "values": {
                        "itemType": Terrasoft.ViewItemType.GRID_LAYOUT,
                        "items": []
                    }
                },
 
                {
                    "operation": "insert",
                    "name": "BSDeliveryLabel",
                    "parentName": "ContentContainer",
                    "propertyName": "items",
                    "values": {
                        "layout": {
                            "column": 0,
                            "row": 0,
                            "colSpan": 24
                        },
                        "itemType": this.Terrasoft.ViewItemType.LABEL,
                        "caption": {
                            "bindTo": "Resources.Strings.BSDeliveryText"
                        },
                        "classes": {
                            "labelClass": ["t-title-label-proc"]
                        }
                    }
                },
 
                {
                    "operation": "insert",
                    "name": "DeliveryLabel",
                    "parentName": "ContentContainer",
                    "propertyName": "items",
                    "values": {
                        "layout": {
                            "column": 0,
                            "row": 3,
                            "colSpan": 24
                        },
                        "classes": {
                            "labelClass": ["t-title-label-proc"]
                        },
                        "itemType": this.Terrasoft.ViewItemType.LABEL,
                        "caption": {
                            "bindTo": "Resources.Strings.DeliveryCaption"
                        }
                    }
                },
 
                {
                    "operation": "insert",
                    "name": "DeliveryId",
                    "parentName": "ContentContainer",
                    "propertyName": "items",
                    "values": {
                    	"bindTo": "DeliveryId",
                        "labelConfig": {
                            "visible": false
                        },
                        "layout": {
                            "column": 0,
                            "row": 4,
                            "colSpan": 24
                        },
                        "itemType": this.Terrasoft.ViewItemType.LOOKUP,
                        "classes": {
                            "labelClass": ["feature-item-label"]
                        },
                        "controlConfig": { 
                        	"tag": "DeliveryId",
                        	"loadVocabulary": {
								"bindTo": "loadDeliverySchemaLookup"
							},
							"prepareList": {
								"bindTo": "prepareDeliveryList"
							},
							"list": {
								"bindTo": "DeliveryCollection"
							},
                        }
                    }
                }
            ]
        };
    }
);

Файл BSDeliveryElement. Код файла BSDeliveryCampaignProcessElement  приводить не стал, так как я понимаю, что он не относится к формированию метаданных. 

namespace Terrasoft.Configuration
{
    using System;
    using Terrasoft.Common;
    using Terrasoft.Core;
    using Terrasoft.Core.Campaign;
    using Terrasoft.Core.Process;
 
    [DesignModeProperty(Name = "DeliveryId",
        UsageType = DesignModeUsageType.NotVisible, MetaPropertyName = DeliveryPropertyName)]
    public class BSDeliveryElement : CampaignSchemaElement
    {
 
        private const string DeliveryPropertyName = "DeliveryId";
 
        public BSDeliveryElement() {
            ElementType = CampaignSchemaElementType.AsyncTask;
        }
 
        public BSDeliveryElement(BSDeliveryElement source)
                : base(source) {
            ElementType = CampaignSchemaElementType.AsyncTask;
            DeliveryId = source.DeliveryId;
        }
 
        // Идентификатор действия элемента.
        protected override Guid Action {
            get {
                return CampaignConsts.CampaignLogTypeMailing;
            }
        }
 
        //откуда это взять?
        [MetaTypeProperty("{D12151EF-672A-4F5F-BE2B-76F2501444D0}")]
        public Guid DeliveryId{
        	get;
        	set;
        }
 
        protected override void ApplyMetaDataValue(DataReader reader) {
            base.ApplyMetaDataValue(reader);
            switch (reader.CurrentName) {
                case DeliveryPropertyName:
                	DeliveryId = reader.GetGuidValue();
                	break;
                default:
                	break;
            }
        }
 
        public override void WriteMetaData(DataWriter writer) {
            base.WriteMetaData(writer);
            writer.WriteValue(DeliveryPropertyName, DeliveryId, Guid.Empty);
        }
        public override object Clone() {
            return new BSDeliveryElement(this);
        }
 
        public override ProcessFlowElement CreateProcessFlowElement(UserConnection userConnection) {
            var executableElement = new BSDeliveryCampaignProcessElement {
                UserConnection = userConnection,
                DeliveryId = DeliveryId
            };
            InitializeCampaignProcessFlowElement(executableElement);
            return executableElement;
        }
    }
}

После сохранения/публикации схем мой элемент успешно появился в списке элементов кампании и без проблем добавляется/сохраняется в кампании. Но после обновления страницы я вижу, что поле Delivery остается не заполненным и его надо заново заполнять. Решил проверить метаданные этой кампании. Заметил, что в сравнении с элементом кампании Email-рассылка в метаданных моего элемента отсутствует DeliveryId, хотя все сделано по инструкции и по аналогии с Email-рассылкой. Также интересно, откуда в примере берется заполнение MetaTypeProperty для SmsText и PhoneNumber?

{
  "MetaData": {
    "Schema": {
      "ManagerName": "CampaignSchemaManager",
      "UId": "68e7407a-2b0c-4d74-a64d-d9538cfdac09",
      "Name": "Campaign1",
      "CreatedInPackageId": "ecf839d6-c220-43d4-8eaf-f342565ddec6",
      "Methods": [],
      "LocalizableStrings": [],
      "Usings": [],
      "PackageUId": "b9e0a92c-eb1e-4b05-ae29-0d4845242e29",
      "CreatedInVersion": "7.13.0.284",
      "Parameters": [],
      "IsLogging": false,
      "ParentSchemaUId": "371c5d61-06ed-4bda-a905-c00ea6d19551",
      "EntitySchemaUId": "1f9bb71a-eb9c-4220-a40e-9b623eacfec8",
      "Mappings": [],
      "NotificationCaption": {
        "TypeName": "Terrasoft.Core.Process.ProcessSchemaParameter",
        "UId": "cdd58be7-2dba-4a5e-869b-1ad5d6d7513a",
        "Name": "NotificationCaption",
        "CreatedInSchemaUId": "68e7407a-2b0c-4d74-a64d-d9538cfdac09",
        "ModifiedInSchemaUId": "68e7407a-2b0c-4d74-a64d-d9538cfdac09",
        "DataValueType": "8b3f29bb-ea14-4ce5-a5c5-293a929b6ba2",
        "SourceValue": {
          "Source": 3,
          "Value": "[#[PropertyValue:Caption]#]"
        }
      },
      "FlowElements": [
        {
          "TypeName": "Terrasoft.Configuration.MarketingEmailElement, Terrasoft.Configuration",
          "UId": "2fc1fc81-629d-4c83-9932-0fa0609d7754",
          "Name": "MarketingEmail1",
          "CreatedInSchemaUId": "68e7407a-2b0c-4d74-a64d-d9538cfdac09",
          "ModifiedInSchemaUId": "68e7407a-2b0c-4d74-a64d-d9538cfdac09",
          "CreatedInPackageId": "b9e0a92c-eb1e-4b05-ae29-0d4845242e29",
          "ContainerUId": "bd0ac34a-1036-48d7-b196-79707e0ad01a",
          "Position": "240;225",
          "Size": "69;55",
          "MarketingEmailId": "2371319a-ceb4-420a-82a1-a1a64fa8f342"
        },
        {
          "TypeName": "Terrasoft.Configuration.BSDeliveryElement, Terrasoft.Configuration",
          "UId": "c3cc6526-de41-474f-a6fc-bc89ec4159a6",
          "Name": "BSDelivery1",
          "CreatedInSchemaUId": "68e7407a-2b0c-4d74-a64d-d9538cfdac09",
          "ModifiedInSchemaUId": "68e7407a-2b0c-4d74-a64d-d9538cfdac09",
          "CreatedInPackageId": "b9e0a92c-eb1e-4b05-ae29-0d4845242e29",
          "ContainerUId": "bd0ac34a-1036-48d7-b196-79707e0ad01a",
          "Position": "462;241",
          "Size": "69;55"
        }
      ],
      "EntityId": "65e2191f-6ad3-412b-96d6-e89202afaca7"
    }
  }
}

 

У меня такой же вопрос

2 комментария

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

Значение поля может не сохранятся если:

1. Неправильно реализованы методы ApplyMetaDataValue или WriteMetaData 

2. Обязательно наличие атрибута для поля

3. Неправильно указан тип поля

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

Demchenko Olha пишет:

Добрый день, а уникальный идентификатор в атрибуте его генерировать случайным образом или его надо брать какой-то конкретный? 

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Есть такой метод:

addRecords: function(detailColumnName, segmentName, isEditableSegment) {
            var masterId = this.get("MasterRecordId");
            var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
                rootSchemaName: this.entitySchemaName
            });
            esq.addColumn(segmentName);
            esq.filters.add("masterFilter", Terrasoft.createColumnFilterWithParameter(
                this.Terrasoft.ComparisonType.EQUAL, detailColumnName, masterId));
            esq.filters.add("isDeletedFilter", Terrasoft.createColumnFilterWithParameter(
                this.Terrasoft.ComparisonType.EQUAL, "IsDeleted", false));
            esq.getEntityCollection(function(result) {
                var existsContactsCollection = [];
                if (result.success) {
                    result.collection.each(function(item) {
                        existsContactsCollection.push(item.get(segmentName).value);
                    });
                }
                var config = {
                    entitySchemaName: segmentName,
                    multiSelect: true,
                    columns: ["Type"]
                };
                
                var isAccount;
                if (segmentName === "Account") {
                    config.filters = Ext.create("Terrasoft.FilterGroup");
                    config.filters.add("first", Terrasoft.createColumnFilterWithParameter(
                        Terrasoft.ComparisonType.EQUAL, "Type", "b32e9350-aac5-47ca-89c5-b987205a510f"));
                    isAccount = true;
                }
                if (existsContactsCollection.length > 0) {

                    var existsFilter = Terrasoft.createColumnInFilterWithParameters("Id", existsContactsCollection);
                    existsFilter.comparisonType = Terrasoft.ComparisonType.NOT_EQUAL;

                    existsFilter.Name = "existsFilter";
                    if (isAccount) {
                        config.filters.add("second", existsFilter);
                    } else {
                        config.filters = existsFilter;
                    }
                }
                this.openLookup(config, function(config) {
                    methods.addRecordsCallback.call(this, config, detailColumnName, segmentName);
                }, this);
            }, this);
        },
где detailColumnName = "Campaing",
segmentName = "Product",
entitySchemaName = "ProductUsage"

В ProductUsage есть идентификатор родительского объекта (Campaing) и идентификатор продукта (Product)

Он нужен для того, чтобы лукап выводил только те записи, которых нет в детали для этого объекта и отрабатывает корректно, но вот когда на детали больше записей, чем 2100, БД SQL выдает ошибку, что конструкция IN принимает максимум 2100 параметров, поэтому я решил переделать запрос под конструкцию NotExists.

Изменил этот метод с фильтрами на следующий:

addNotExistsRecords: function(detailColumnName, segmentName, isEditableSegment) {
            var masterId = this.get("MasterRecordId");
            var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
                rootSchemaName: this.entitySchemaName
            });
            esq.addColumn(segmentName);
            esq.filters.add("masterFilter", Terrasoft.createColumnFilterWithParameter(
                this.Terrasoft.ComparisonType.EQUAL, detailColumnName, masterId));
            esq.filters.add("isDeletedFilter", Terrasoft.createColumnFilterWithParameter(
                this.Terrasoft.ComparisonType.EQUAL, "IsDeleted", false));
            esq.filters.add("isEqualsTo", Terrasoft.createColumnFilterWithParameter(
                this.Terrasoft.ComparisonType.EQUAL, "Product.Id", "ProductId"));
                
            var config = {
                entitySchemaName: segmentName,
                multiSelect: true,
                columns: ["Type"]
            };
            
            var isAccount;
            if (segmentName === "Account") {
                config.filters = Ext.create("Terrasoft.FilterGroup");
                config.filters.add("first", Terrasoft.createColumnFilterWithParameter(
                    Terrasoft.ComparisonType.EQUAL, "Type", "b32e9350-aac5-47ca-89c5-b987205a510f"));
                isAccount = true;
            }
            
            var existsFilter = Terrasoft.createNotExistsFilter("Id", esq);
            existsFilter.Name = "existsFilter";
            if (isAccount) {
                config.filters.add("second", existsFilter);
            } else {
                config.filters = existsFilter;
            }
            
            this.openLookup(config, function(config) {
                methods.addRecordsCallback.call(this, config, detailColumnName, segmentName);
            }, this);
        },

 

Однако при выполнении происходит ошибка errorCode: "NotSupportedException", message: "None", stackTrace: undefined, errors: Array(0)
Где я ошибся при построении фильтров?

По сути нужно повторить такой запрос:

select Id from Product where NOT EXISTS(select Id from ProductUsage where CampaignId = 'f39db115-d2f4-4936-b415-bf6543187463' AND IsDeleted = 'false' AND Product.Id = ProductId)
 

У меня такой же вопрос

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

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

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

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

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

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Коллеги, доброго дня!

На странице лендинга клиент может вложить файл. Нужно передать этот файл в лид как вложение на деталь Файлы и Ссылки.

Что то никак не можем записать его в облачную систему.

Подскажите,  какие варианты есть. Спасибо!

У меня такой же вопрос

3 комментария

По идее, если на сайте перед отправкой, преобразовать файл в BLOB, то никаких проблем со вставкой в BPM возникнуть уже не должно

Как вариант, можно не использовать механизм лендингов, а по веб-форме, не связанной с bpm'online, генерировать и отправлять письмо со вложениями.

Затем в bpm'online его разбирать как обычное письмо со вложениями. Подробнее см. обсуждение похожего вопроса.

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

Коллеги, спасибо!  Таки уже реализовали через лендинг). Проблема была, что лендинг только с одной табл.работает. Только преобразование файла в BLOB результата не дает. Нужно  положить файл в другую табл. Трудоемко конечно получилось, но работает).

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

В bpm'online marketing реализовать раздел 'Опросы', в котором была бы возможность преднастраивать анкету опроса (вопросы анкеты могут быть разных типов - дата, строка, справочник) и потом по этой анкете проводить опрос для указанной целевой аудитории.

Подобная функциональность когда-то была реализована в Terrasoft 3.X. 

Обсуждение
3 комментария

Алла, недавно же обсуждали и нашли в маркете несколько реализаций.

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

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

Можешь сделать своё дополнение (например, не коннектор к сторонним сервисам, а чисто ввод опросов в системе) и тоже выложить в маркет.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

В Terrasoft CRM 3.X был раздел опросы, в котором можно было вносить информацию по опросам целевой аудитории.

Хотелось бы уточнить есть ли в bpm'online marketing возможность вносить информацию по опросам целевой аудитории, по заранее преднастроенной анкете, потому что в документации такую информацию не нашла.

Если нет, то, возможно, есть расширение на marketplace или у кого-то был опыт подобного решения?

У меня такой же вопрос

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

Привет, думаю что тебе подойдет  решение Google Forms connector for bpm'online

 

решение Inbook Connector for bpm'online

решение SurveyMonkey Connector for bpm'online

или дополнение для управления анкетами и опросами в bpm'online Questionnaire management for bpm'online

 

 

Привет, думаю что тебе подойдет  решение Google Forms connector for bpm'online

 

решение Inbook Connector for bpm'online

решение SurveyMonkey Connector for bpm'online

или дополнение для управления анкетами и опросами в bpm'online Questionnaire management for bpm'online

 

 

Очень странно, что в базовой версии bpm'online marketing, нет такой нужной для маркетологов функциональной возможности.

Более того, даже ПО для программ лояльности, каковым было bpm'online Loyalty 5.3, сейчас представлено сторонними Loyalty on bpm'online от ПТ и TSI Loyalty on bpm'online от TSI.

Алла Савельева,

Выше представлены коннекторы к готовым платформа, однако имеется опыт разработки локального решения. 
Все сводилось к restAPI (получение информации от сервиса о совершенных опросах), json ответ парсился вставлялся в подготовленный раздел (простая карточка, правда с кучей деталей а-ля: Вопросы, Ответы. В записях с вопросами/ответами - тип вопроса, варианты, вес и т.п) Выглядело Громоздко и непонятно для пользователя. Однако если натянуть данные на view и на её основании строить график, то в принципе читаемо

Варфоломеев Данила,

А мне как раз такой раздел нужен не для аналитики, а для внесения информации.

То есть меня интересует инструмент для удобного ведения и внесения данных.

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

Войдите или зарегистрируйтесь, чтобы комментировать