Доброго времени суток!

 

Задача:  Создать кейс: Новый лид -> Квалификация. Стадия "Новый лид" когда статус лида "Новый лид" и стадия "Квалификация" когда статус лида "Квалификация".



Вопрос вот в чем. Как изменить статус дефолтный статус лида. То есть сейчас присваивается статус "Квалификация" при создании нового лида, а мне нужно "Новый лид". Где находится эта логика?

Нравится

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

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

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

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

Мне необходимо переименовать AccountProfile поле "добавить" на "создать", как это можно сделать?

 

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

Нравится

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

Кроме значения локализируемой строки, обратите внимание на функцию initAddRecordButtonCaption в BaseProfileSchema:

/**
 * Initializes add record button caption.
 * @protected
 */
initAddRecordButtonCaption: function() {
	var caption = this.get("Resources.Strings.AddRecordButtonCaption");
	var editPages = this.getEditPages();
	if (editPages && editPages.getCount() === 1) {
		var editPage = editPages.getByIndex(0);
		caption = editPage.get("Caption");
	}
	this.set("AddRecordButtonCaption", caption);
},

То есть значение не всегда берётся из строки.

Чтобы отключить эту логику получить нужное Вам поведение, можно в Custom создать переопределённую AccountProfileSchema с кодом:

/**
 * Account profile class.
 * @class Terrasoft.AccountProfileSchema
 */
define("AccountProfileSchema", ["CommunicationOptionsMixin"],
		function() {
			return {
				entitySchemaName: "Account",
			methods: {              
              				/**
				 * Initializes add record button caption.
				 * @protected
				 */
				initAddRecordButtonCaption: function() {
					var caption = this.get("Resources.Strings.AddRecordButtonCaption");
					this.set("AddRecordButtonCaption", caption);
				}
            }
			};
		}
);

И в этой же схеме поменять слева значение строки AddRecordButtonCaption на «Создать контрагента».

Это тянется из ActionKindCaption таблицы SysModuleEdit (SysModuleEditLcz). Не придумал способа изящней, как сделать прямое обновление в БД. 

Update SysModuleEditLcz set ActionKindCaption=N'Создать контрагента' where id = '77FAE75C-861E-4D76-8A47-A9CE8F843D4C' -- id записи на русском языке для раздела контрагент

Поменяется и здесь и в разделе контрагенты

Алексей Следь,

А можете подсказать, где можно посмотреть id записи? У меня получается найти нужный фрагмент в базе локализации, хотя вроде как все правильно вбил в поиск базы. При попытке найти необходимое предложение ничего не выходит.

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

Кроме значения локализируемой строки, обратите внимание на функцию initAddRecordButtonCaption в BaseProfileSchema:

/**
 * Initializes add record button caption.
 * @protected
 */
initAddRecordButtonCaption: function() {
	var caption = this.get("Resources.Strings.AddRecordButtonCaption");
	var editPages = this.getEditPages();
	if (editPages && editPages.getCount() === 1) {
		var editPage = editPages.getByIndex(0);
		caption = editPage.get("Caption");
	}
	this.set("AddRecordButtonCaption", caption);
},

То есть значение не всегда берётся из строки.

Чтобы отключить эту логику получить нужное Вам поведение, можно в Custom создать переопределённую AccountProfileSchema с кодом:

/**
 * Account profile class.
 * @class Terrasoft.AccountProfileSchema
 */
define("AccountProfileSchema", ["CommunicationOptionsMixin"],
		function() {
			return {
				entitySchemaName: "Account",
			methods: {              
              				/**
				 * Initializes add record button caption.
				 * @protected
				 */
				initAddRecordButtonCaption: function() {
					var caption = this.get("Resources.Strings.AddRecordButtonCaption");
					this.set("AddRecordButtonCaption", caption);
				}
            }
			};
		}
);

И в этой же схеме поменять слева значение строки AddRecordButtonCaption на «Создать контрагента».

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

Добрый день!

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

Нравится

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

Добрый день!

У нас это реализовано следующим образом:

Забираем у всех права на просмотр лидов. Если необходимо чтобы какая то роль или оргединица имела права на просмотр/редактирование/удаление лидов настраиваем штатно. Создали 2 бизнес-процесса, первый срабатывает при создании лида, второй при смене ответственного в лиде. В этих БП регулируются права на лид.

Добрый день!

У нас это реализовано следующим образом:

Забираем у всех права на просмотр лидов. Если необходимо чтобы какая то роль или оргединица имела права на просмотр/редактирование/удаление лидов настраиваем штатно. Создали 2 бизнес-процесса, первый срабатывает при создании лида, второй при смене ответственного в лиде. В этих БП регулируются права на лид.

К тому же, надо помнить, что не только ответственные должны видеть все лиды, но и, например, ещё отдел маркетинга.



В Operation permissions создаём операцию CanReadLead и добавляем в неё роли. Затем в том же БП выдаём этим ролям права на чтение лидов.



И не забываем про права на редактирование.

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

gif_section_object_permissions_select_groups.gif

Зверев Александр пишет:

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

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

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

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

Как добавить некий код ( ссылку в простейшем случае ) в заголовок раздела ( лидов ) ?

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

Нравится

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

Можно добавить в схеме раздела кнопку с нужным стилем, а логику сделать подобную ссылкам на Community, Академию и прочее на стартовой странице системы. Кнопку добавлять в SeparateModeActionButtonsLeftContainer или в SeparateModeActionButtonsRightContainer, где добавляются другие кнопки.

Вот пример добавления новой кнопки туда:

{
    "operation": "insert",
    "name": "ToggleCalendarButton",
    "parentName": "SeparateModeActionButtonsRightContainer",
    "propertyName": "items",
    "index": 0,
    "values": {
        "itemType": Terrasoft.ViewItemType.BUTTON,
        "click": {
            bindTo: "toggleCalendar"
        },
        "markerValue": {
            bindTo: "getToggleCalendarButtonMarkerValue"
        },
        "controlConfig": {
            "imageConfig": {
                "bindTo": "Resources.Images.ToggleCalendarIcon"
            }
        },
        "classes": {
            "wrapperClass": ["toggle-calendar-wrapper"],
            "imageClass": ["toggle-calendar-image"]
        },
        "style": Terrasoft.controls.ButtonEnums.style.TRANSPARENT
    }
},

А вот пример логики клика с переходом по ссылке:

/**
 * Navigates to community site.
 * @protected
 */
CommunityClick: function() {
    var communityLink = this.get("Resources.Strings.CommunityUrl");
    window.open(communityLink);
}

 

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

Добрый день, коллеги!



После прочтения документации вижу так:

  1. настроить необходимое в разделе [Лиды] в CRM
  2. сформировать ссылку в письме с нужными параметрами
  3. на сайте проверять параметры в ссылке

  4. при необходимости ставить куку - флаг первого посещения
  5. если посещение первое, то динамически создавать и программно сабмитить форму

Если кто то уже решал такую задачу более просто, опишите процесс концептуально (или подтвердите верность моего видения :), расскажите, какие подводные камни могут быть?

Нравится

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

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

http://адрес_сайта.com/0/ServiceModel/GeneratedObjectWebFormService.svc/SaveWebFormObjectData

Клиентская логика — в общедоступных скриптах:

https://webtracking-v01.bpmonline.com/JS/track-cookies.js
https://webtracking-v01.bpmonline.com/JS/create-object.js

Серверная — в схеме GeneratedObjectWebFormService.

Другой вариант — писать полностью свой сервис с нужной функциональностью, доступный извне без авторизации.

Спрашивали - отвечаем.

Если в ссылке будет передан параметр bpmContactEmail="email@email.email", этот код зарегистрирует лида и привяжет к контакту с почтовым ящиком email@email.email. Ловушка для лида должна быть настроена в разделе [Лендинги].

/*Форма авторегистрации по ссылке из Email*/
					var configAutoReg = {
						fields: {
							"Email": ".bpm-contact-email" // Email посетителя
						},
					    landingId: "00000000-0000-0000-0000-000000000000", // ID лендинга, смотреть в шаге 2 настройки лендинга
					    serviceUrl: "http://CRM_SITE_DNS_NAME/0/ServiceModel/GeneratedWebFormService.svc/SaveWebFormLeadData",
						redirectUrl: ""
					};
					function createLeadFromAutoReg() {
						landing.createObjectFromLanding(configAutoReg)
					};
 
					//функция позволяет выполнять действие (регистрацию лида) один раз
					//взята тут https://developer.mozilla.org/ru/docs/Web/API/Document/cookie#Example_5_Do_something_only_once_%E2%80%93_a_general_library
					function executeOnce () {
						var argc = arguments.length, bImplGlob = typeof arguments[argc - 1] === "string";
						if (bImplGlob) { argc++; }
						if (argc < 3) { throw new TypeError("executeOnce - not enough arguments"); }
						var fExec = arguments[0], sKey = arguments[argc - 2];
						if (typeof fExec !== "function") { throw new TypeError("executeOnce - first argument must be a function"); }
						if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) { throw new TypeError("executeOnce - invalid identifier"); }
						if (decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) === "1") { return false; }
						fExec.apply(argc > 3 ? arguments[1] : null, argc > 4 ? Array.prototype.slice.call(arguments, 2, argc - 2) : []);
						document.cookie = encodeURIComponent(sKey) + "=1; expires=Fri, 31 Dec 9999 23:59:59 GMT" + (bImplGlob || !arguments[argc - 1] ? "; path=/" : "");
						return true;
					};
 
					// функция возвращает значение указанного парметра из ссылки
					function getSearchParams(k){
						var p={};
						location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){p[k]=v})
						return k?p[k]:p;
					};
 
					jQuery(document).ready(function() {
						var bpmContactEmail = getSearchParams("bpmContactEmail");
						if (bpmContactEmail && bpmContactEmail !== "[") {
 
							executeOnce(function() {
								landing.initLanding(configAutoReg);								
								var $form = $("<form />", { style: "display: none;", onSubmit: "createLeadFromAutoReg(); return false" });
								$form.append($("<input />", { class: "bpm-contact-email" , name: "bpmContactEmail", value: bpmContactEmail}));
								$form.appendTo("body").submit().remove();
							},
							"bpmLeadFromEmail");
 
						}
					});

 

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

да не, все проще оказалось, в bpm все настройки только стандартные, а на сайте легкая доработка :)

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

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

Добрый день!

 

Специфика работы заказчика находить инвесторов для Инвестпроектов . Инвестпроекты регистрируется в качестве лида. 

Задача состоит в том чтобы после регистрации Лида система сама отфильтровала необходимых инвесторов из раздела контрагента и предоставила выбор для предложения  им инветспроекта.

Напр.  Зарегистрирован Лид, где необходимо найти инвестора для инвестиции в сельское хозяйства.  Система должна найти необходимого инвестора из списка и предоставить для пользователя для дальнейшей обработки.

Я добавил вклаку в лидах, и в этой вкладке добавил 5-6 полей выбора инвесторов (контрагентов). Необходимо сделать так чтобы в момент выбора контрагента система отфильтровала необходимы лиду контрагента.

Заранее благодарю.

Нравится

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

Видимо, нужно разрабатывать что-то подобное механизму подбора продуктов в заказе. Или, ещё боле похоже по смыслу, подбор листингов по лиду в bpm’online real estate (см. стр. 27). И то, и другое — сложная логика, нужно разбираться, как она реализована.

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

Собственно вопрос в заголовке.
Дело в том, что в лиде это отдельные схемы контейнеров LeadAccountProfileSchema и LeadContactProfileSchema.
А мне нужно вывести список контактов выбранного контрагента.
Как организовать данный фильтр? Пробовал замещать карточку лида и в ней указывать но не работает.
Да и не понятно какие колонки они используют? Такие: Account и Contact? Или что-то другое?

Можете дать готовое решение или хотя-бы объяснить всё понятно.

Нравится

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

Добрый день, Максим!

Думаю, самый простой вариант - добавить бизнес-правило. Если у Вас 7.10 - можно через мастер, если нет - то в карточке. Поля, которые Вам нужно - QualifiedContact и QualifiedAccount, это можно подсмотреть в объекте. Просто Contact и Account - это текстовые поля, а не справочные. Насколько я понимаю, потому что в момент создания лида не всегда они известны, да и можно написать название с ошибками.

"Мотков Илья" написал:

Добрый день, Максим!

Думаю, самый простой вариант - добавить бизнес-правило. Если у Вас 7.10 - можно через мастер, если нет - то в карточке. Поля, которые Вам нужно - QualifiedContact и QualifiedAccount, это можно подсмотреть в объекте. Просто Contact и Account - это текстовые поля, а не справочные. Насколько я понимаю, потому что в момент создания лида не всегда они известны, да и можно написать название с ошибками.

Спасибо. Помогло с этими полями - QualifiedContact и QualifiedAccount!

"Сазонов Максим" написал:А мне нужно вывести список контактов выбранного контрагента.

Вывести где ?
по нажатию кнопки, по наступлению какого-то события или состояния, при открытии карточки ?
В общем и в целом ничего сложного в Вашем кейсе нет.
Необходимо задать себе несколько вопросов:
1) Как связаны целевые Контрагент и Контакты (я подразумеваю что речь идет о детали "Контакты Контрагента") ?
2) Что мне необходимо сделать концептуально, н/п "У меня есть справочное поле контакт, и мне необходимо чтобы пользователь выбрал там значение из "открывающегося окна выбора"/"из выпадающего списка"(нужное подчеркнуть), при этом доступный список контактов должен быть отфильтрован по принципу присутствия в детали "Контакты Контрагента", для контрагента который в данный момент у казан в справочном поле контрагента текущей карточки".

Ответьте мне на эти вопросы, и я помогу Вам реализовать Ваш кейс.

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

подскажите, как повторить функционал поиска дублей, но для Лидов. Версия 7.5

Нравится

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

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

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

предусмотрено ведение различных задач по различным продуктам для одного лида. поиск дублей должен производится по детали «Средства связи» (по полям, содержащим телефон, а также по полю «E-mail»).

Валентин, добрый день!

Функциональность поиска дублей по лидам уже присутствует в версии 7.7
В данном случае оптимальным решением является обновление до последней версии.

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

Наталья, спасибо за информацию. Но пока обновления до 7.7 не планируется. Хотелось бы все таки получить рекомендации для решения задачи

Здравствуйте, Валентин!

Для того, чтобы объединить дубли лидов необходимо выполнить следующие действия:
1) Создать процесс для поиска лидов (аналогично процессу StartGlobalContactDuplicatesSearch). Для поиска необходимо создать процедуру в базе данных, аналогичную tsp_GloballySearchForDuplicates. Код процедуры tsp_GloballySearchForDuplicates можно найти в конфигурации, перейдя на вкладку "SQL сценарии". Процедура будет записывать данные в созданный Вами объект LeadDuplicates (создайте объект по аналогии с объектом ContactDuplicate)

2) Необходимо создать новую страницу редактирования, которая будет отображать данные из созданного объекта LeadDuplicates по аналогии со страницей DuplicatesPageV2 (либо заместите DuplicatesPageV2, добавив в нее нужную логику).

А теперь самое интересное - слияние лидов и удаление лишних. Так как удалить лид средствами системы не получится (связи, запущенный процесс...), то придется придумывать что-то новое.
Я бы в этот момент создавал бы новую запись лида и изменял данной записи значение в поле "Стадия" на нужное. Остальным дублям изменял бы стадию на "Дисквалифицирован" и указывал причину дисквалификации "Дубль".

Но лучше, наверное, обновиться до 7.7.0.:smile:

Спасибо.
Процесс StartGlobalContactDuplicatesSearch запускается в действии процесса StartGlobalDuplicatesSearch. Как теперь правильно заместить StartGlobalDuplicatesSearch, чтобы добавить в него запуск процесса StartGlobalLeadDuplicatesSearch? или если создать подобное действие процесса со своей логикой, где оно должно запускаться?

"Медведев Валентин Николаевич" написал:

Как теперь правильно заместить StartGlobalDuplicatesSearch, чтобы добавить в него запуск процесса StartGlobalLeadDuplicatesSearch?

Замещение процессов в системе не предусмотрено. Вам необходимо создать новый процесс и запускать его.

"Медведев Валентин Николаевич" написал:

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

Запускать новый процесс Вы можете, например, из библиотеки процессов (самая простая реализация). Также Вы можете добавить соответствующее действие в раздел "Лиды". Более подробно о создании действий, Вы можете прочитать в Академии.

имелось в виду
что собой и представляет StartGlobalDuplicatesSearch.

Добрый день!

Добавить соответствующее действие в раздел "Лиды" – подразумевается в замещающей странице редактирования лидов добавить новую кнопку в меню “Дейсвтия”. Также добавить обработчик, который будет запускать процесс по нажатию на эту кнопку.

StartGlobalDuplicatesSearch(Действие процесса) содержит сценарий:

string jobProcessName = (SchemaName == "Account") ? "StartGlobalAccountDuplicatesSearch" : "StartGlobalContactDuplicatesSearch";
AppScheduler.ScheduleImmediateProcessJob("DuplicatesSearchJob", "DuplicatesSearchGroup",
jobProcessName, UserConnection.Workspace.Name, UserConnection.CurrentUser.Name);
return true;

если я создам подобное, в котором переменная jobProcessName будет получать "StartGlobalLeadDuplicatesSearch", то где оно должно вызываться?

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

Этот код добавляет в планировщик Quartz процесс StartGlobalAccountDuplicatesSearch, если поиск осуществляется со схемы Account, StartGlobalContactDuplicatesSearch - при поиске с другой схемы.

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

string jobProcessName = "StartGlobalLeadDuplicatesSearch";
AppScheduler.ScheduleImmediateProcessJob("DuplicatesSearchJob", "DuplicatesSearchGroup",
jobProcessName, UserConnection.Workspace.Name, UserConnection.CurrentUser.Name);
return true;

спасибо всем за помощь! разобрался.
теперь такой вопрос... можно ли изменить логику поиска дублей Лидов при импорте данных из Exel? например, чтобы телефоны "+7 (978) 123 12 31" и "+79781231231" считались совпадением. в каких модулях реализована стандартная логика?

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

При импорте из Excel записи +7 (978) 123 12 31 и +79781231231 действительно будут считаться разными записями. Проверка на тождественность этих записей не осуществляется.

При импорте из Excel Вы можете проверять уникальность по другим полям/признакам. Также непосредственно перед импортом Вы можете в файле Excel автозаменой символов "(", ")", " " на "".

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

В нашу компанию была куплена BPMonline CRM. Поставили задачу записывать все заявки с сайта в лиды, но после изучения всей документации я запутался что и как. Ткните пожалуйста в правильную сторону. Разработка ведется на PHP.

Нравится

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

"Толмачев Дмитрий Юрьевич" написал:

http://www.community.terrasoft.ru/forum/topic/9613

http://www.community.terrasoft.ru/forum/topic/10573

+ SDK (но там для C#)


спасибо за ссылки. особенно за вторую. SDK мне не особо смогло помочь, т.к. мне оно показалось малоинформативным и с шарпом я знаком очень мало

Как осуществляется связь разобрался, но так и не понял как использоватьвсе доступное sdk и api для добавления лидов

Здравствуйте, Владимир!
Собственно, та часть API bpm'online, которая отвечает за работу с данными, то есть чтение, изменение, добавление и удаление записей в таблицу реализует протокол OData, и представляется веб-сервисом, доступным "снаружи" - EntityDataService.svc. Обращаться к нему можно с помощью авторизованных http-запросов.
OData - стандартизированный протокол, и в bpm'online работа с ним практически не отличается от стандарта, поэтому документацию Вы также можете получить и из других источников, например:
http://wiki.sensenet.com/index.php?title=OData_REST_API
http://blogs.msdn.com/b/brian_swan/archive/2010/03/18/using-the-odata-s…
https://odataphp.codeplex.com/

Единственное, я не могу Вам точно сказать, будет ли прокси-класс для PHP будет корректно генерироваться. Но можете попробовать.
Примеры работы также есть, опять таки на нашем sdk, а также на community, и даже не зная ничего о c# можно примерно разобрать, какие запросы нужно отправить для получения необходимых результатов.

Но для регистрации лидов извне уже есть готовый функционал - Формы для внешних ресурсов. Настройки этих форм доступны из раздела "Лиды". В документации по разделу "Лиды" также есть описание, как работать с ними, более подробно описано в блоке "Синхронизация и импорт из других систем".
Наиболее часто встречающиеся проблемы при настройке формы для внешнего ресурса описаны здесь:
http://www.community.terrasoft.ru/blogs/10378

"Андрей Каспаревич" написал:

Но для регистрации лидов извне уже есть готовый функционал - Формы для внешних ресурсов. Настройки этих форм доступны из раздела "Лиды". В документации по разделу "Лиды" также есть описание, как работать с ними, более подробно описано в блоке "Синхронизация и импорт из других систем".

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

http://www.community.terrasoft.ru/blogs/10378

С уважением,

Каспаревич Андрей

Эксперт 3-й линии поддержки

При попытке сачать код для внешней формы получаю ошибку
ошибка при попытке скачивания кода формы для сайта

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

"Андрей Каспаревич" написал:

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

С уважением,

Каспаревич Андрей

Эксперт 3-й линии поддержки


помогло. спасибо. скачать смог. данные отправляются, но в лиды ничего не записывается. предполагаю что данные не записываются, т.к. в CRM есть обязательные поля "Тип потребности" и "Зрелось потребности". При настройке формы таких не было. Влияет ли это?

Здравствуйте, Владимир!
Действительно, это влияет на возможность добавления записей. Обязательность этих полей установлена на уровне объекта, поэтому при создании экземпляра класса объекта, то есть записи, возникнет ошибка.
Необходимо установить значения по умолчанию для этих полей с помощью настроек веб-формы:

"Андрей Каспаревич" написал:

Здравствуйте, Владимир!

Действительно, это влияет на возможность добавления записей. Обязательность этих полей установлена на уровне объекта, поэтому при создании экземпляра класса объекта, то есть записи, возникнет ошибка.

Необходимо установить значения по умолчанию для этих полей с помощью настроек веб-формы:

Добрый день!

Возникла такая же проблема.

У одного из клиентов для сущностей: Лид, Контакт, Аккаунт имеются обязательные поля.

Соответственно при попытке добавить сущность получаем ошибку: такое то поле является обязательным.

Вопрос: как через OData получить список обязательных полей для сущностей Lead, Contact, Account ?

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

Обратите внимание на статью Queryable OData Metadata

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

Здравствуйте! Подскажите, каким образом осуществить получения лидов со стороннего сервиса (lpgenerator) в BPMOnline по средствам мэппинга?

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

Нравится

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

Здравствуйте, Александр.

Данный функционал уже реализован в bpm'online в виде формы генерации лидов.
Вы можете ознакомиться с настройкой формы генерации лидов в руководстве по настройке на с.145:
http://www.training.terrasoft.ru/sites/default/files/BPMonline_CRM_CG_7…
Все схемы уже присутствуют в системе в пакете WebLeadForm

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