Раздел Маркетинг является частью системного решения CRM и используется для отправки рассылок на электронную
почту и управления клиентской базой из интерфейса системы.
С помощью раздела Маркетинг вы можете:
осуществлять массовые рассылки писем отдельным группам клиентов, например, оповещать об изменении цен на продукты
или услуги, акциях, вебинарах и т. д.;
реализовать долгосрочную поддержку клиентов: отправлять новости, сообщать об обновлениях и т. д.;
определить активность клиентов и их заинтересованность в продукте или услуге.
Для отправки писем через раздел Маркетинг необходимо подключить модуль интеграции с сервисом рассылок. Интеграции
можно скачать из магазина готовых решений или создать собственную интеграцию через пользовательский модуль.
В данном разделе описаны сущности раздела Маркетинг и список функций, которые нужно реализовать в пользовательском
модуле для создания собственной интеграции. Перед созданием собственной интеграции рекомендуем ознакомиться с
документацией по разделу Маркетинг и
пользовательским модулям.
Для создания собственной интеграции с сервисом рассылок сначала вам необходимо
создать пользовательский модуль. Далее перейдите
на страницу Методы API > Сценарии и вставьте
в редактор кода следующую заготовку:
// Импортировать шаблоны писем из сервиса рассылок в систему. Вызывается автоматически, например,// по кнопке импорта шаблонов в интерфейсе системы.// - `offset` — смещение, начиная с которого должны браться шаблоны из сервиса рассылок;// - `limit` — максимальное количество шаблонов для получения.// Функция изначально вызывается с `offset = 0`. Если необходимо получить с помощью функции больше шаблонов,// чем указано в `limit`, необходимо вернуть массив из `limit` элементов. После этого в системе обработаются// полученные шаблоны, и данная функция вызовется повторно со значением `offset` равным `offset + limit`.asyncfunctionCRM_Marketing_ImportTemplates(
offset: number,
limit: number,
): Promise<CRM_Marketing_ImportTemplate[]> {
thrownewError('not implemented');
}
// Синхронизировать подписчиков из системы с сервисом рассылок. Вызывается автоматически, например,// перед отправкой рассылки из интерфейса системы в сервис рассылок.// - `contactIds` — массив идентификаторов элементов приложения Контакты из раздела CRM, которые необходимо// синхронизировать с сервисом рассылок.asyncfunctionCRM_Marketing_ExportContacts(contactIds: string[]): Promise<void> {
thrownewError('not implemented');
}
// Подготовить данные для отправки рассылки, например, добавить подписчиков в список рассылок. Вызывается// перед созданием рассылки (перед вызовом функции `CRM_Marketing_CreateCampaign`). Если рассылка отправляется// большому количеству подписчиков, данная функция будет вызвана несколько раз, и в аргументе `contacts` будет// передана часть из всего списка подписчиков.// - `campaignId` — идентификатор элемента приложения Рассылки, который будет создан в системе;// - `campaignType` — тип рассылки;// - `contacts` — массив электронных адресов или телефонных номеров в зависимости от типа рассылки.asyncfunctionCRM_Marketing_PrepareCampaign(
campaignId: string,
type: CRM_Marketing_CampaignType,
contacts: string[],
): Promise<void> {
thrownewError('not implemented');
}
// Создать рассылку на стороне сервиса рассылок. Эта функция вызывается после создания рассылки из интерфейса// системы. Перед вызовом этой функции данные для рассылки передаются в функцию `CRM_Marketing_PrepareCampaign`.// В результате успешного выполнения функции будет создан элемент приложения Рассылки, который используется// для отслеживания состояния рассылки на стороне системы.// - `request` — информация об отправляемой рассылке.asyncfunctionCRM_Marketing_CreateCampaign(
request: CRM_Marketing_CreateCampaignRequest,
): Promise<CRM_Marketing_CreateCampaignResponse> {
thrownewError('not implemented');
}
// Получить статистику по рассылке. Функция вызывается автоматически при просмотре статистики рассылки из// интерфейса системы. Результат функции может быть временно закеширован системой.// - `campaignExternalId` — идентификатор рассылки на стороне сервиса рассылок.asyncfunctionCRM_Marketing_GetCampaignStats(
campaignExternalId: string,
): Promise<CRM_Marketing_CampaignStats> {
thrownewError('not implemented');
}
// Обработать событие от сервиса рассылок. Данная функция вызывается при получении HTTP-запроса на вебхук,// который указан в настройках пользовательского модуля. В теле данной функции необходимо преобразовать события// конкретного сервиса рассылок в список действий, которые выполнятся в системе по окончании выполнения функции// (например, обновление статуса рассылки или состояния отправки письма подписчику).// `request` — данные полученного на вебхук HTTP-запроса.asyncfunctionCRM_Marketing_ParseWebhookRequest(request: FetchRequest): Promise<CRM_Marketing_WebhookResult> {
thrownewError('not implemented');
}
// Получить HTML-код для предпросмотра содержимого шаблона. Вызывается из интерфейса системы виджетом// предпросмотра шаблона. Результат функции может быть временно закеширован системой.// - `templateExternalId` — идентификатор шаблона в сервисе рассылок.asyncfunctionCRM_Marketing_GetTemplateHTML(templateExternalId: string): Promise<string> {
thrownewError('not implemented');
}
// Установить HTML-код содержимого шаблона. Вызывается при публикации шаблона.// Функция должна возвращать идентификатор шаблона в сервисе рассылок.// - `html` — содержимое шаблона.// - `name` — наименование шаблона.// - `templateExternalId` — идентификатор шаблона в сервисе рассылок. Может быть пустым, если шаблон новый.asyncfunctionCRM_Marketing_SetTemplateHTML(html: string, name: string, templateExternalId?: string): Promise<string> {
thrownewError('not implemented');
}
Реализуйте тело функции из заготовки кода выше, сохраните модуль и включите его. Теперь при
создании новой рассылки через интерфейс системы вы сможете выбрать
вашу интеграцию в поле Сервис рассылки.
Интеграция с сервисами рассылок
Раздел Маркетинг является частью системного решения CRM и используется для отправки рассылок на электронную почту и управления клиентской базой из интерфейса системы.
С помощью раздела Маркетинг вы можете:
Для отправки писем через раздел Маркетинг необходимо подключить модуль интеграции с сервисом рассылок. Интеграции можно скачать из магазина готовых решений или создать собственную интеграцию через пользовательский модуль.
В данном разделе описаны сущности раздела Маркетинг и список функций, которые нужно реализовать в пользовательском модуле для создания собственной интеграции. Перед созданием собственной интеграции рекомендуем ознакомиться с документацией по разделу Маркетинг и пользовательским модулям.
Создание модуля интеграции
Для создания собственной интеграции с сервисом рассылок сначала вам необходимо создать пользовательский модуль. Далее перейдите на страницу Методы API > Сценарии и вставьте в редактор кода следующую заготовку:
// Импортировать шаблоны писем из сервиса рассылок в систему. Вызывается автоматически, например, // по кнопке импорта шаблонов в интерфейсе системы. // - `offset` — смещение, начиная с которого должны браться шаблоны из сервиса рассылок; // - `limit` — максимальное количество шаблонов для получения. // Функция изначально вызывается с `offset = 0`. Если необходимо получить с помощью функции больше шаблонов, // чем указано в `limit`, необходимо вернуть массив из `limit` элементов. После этого в системе обработаются // полученные шаблоны, и данная функция вызовется повторно со значением `offset` равным `offset + limit`. async function CRM_Marketing_ImportTemplates( offset: number, limit: number, ): Promise<CRM_Marketing_ImportTemplate[]> { throw new Error('not implemented'); } // Синхронизировать подписчиков из системы с сервисом рассылок. Вызывается автоматически, например, // перед отправкой рассылки из интерфейса системы в сервис рассылок. // - `contactIds` — массив идентификаторов элементов приложения Контакты из раздела CRM, которые необходимо // синхронизировать с сервисом рассылок. async function CRM_Marketing_ExportContacts(contactIds: string[]): Promise<void> { throw new Error('not implemented'); } // Подготовить данные для отправки рассылки, например, добавить подписчиков в список рассылок. Вызывается // перед созданием рассылки (перед вызовом функции `CRM_Marketing_CreateCampaign`). Если рассылка отправляется // большому количеству подписчиков, данная функция будет вызвана несколько раз, и в аргументе `contacts` будет // передана часть из всего списка подписчиков. // - `campaignId` — идентификатор элемента приложения Рассылки, который будет создан в системе; // - `campaignType` — тип рассылки; // - `contacts` — массив электронных адресов или телефонных номеров в зависимости от типа рассылки. async function CRM_Marketing_PrepareCampaign( campaignId: string, type: CRM_Marketing_CampaignType, contacts: string[], ): Promise<void> { throw new Error('not implemented'); } // Создать рассылку на стороне сервиса рассылок. Эта функция вызывается после создания рассылки из интерфейса // системы. Перед вызовом этой функции данные для рассылки передаются в функцию `CRM_Marketing_PrepareCampaign`. // В результате успешного выполнения функции будет создан элемент приложения Рассылки, который используется // для отслеживания состояния рассылки на стороне системы. // - `request` — информация об отправляемой рассылке. async function CRM_Marketing_CreateCampaign( request: CRM_Marketing_CreateCampaignRequest, ): Promise<CRM_Marketing_CreateCampaignResponse> { throw new Error('not implemented'); } // Получить статистику по рассылке. Функция вызывается автоматически при просмотре статистики рассылки из // интерфейса системы. Результат функции может быть временно закеширован системой. // - `campaignExternalId` — идентификатор рассылки на стороне сервиса рассылок. async function CRM_Marketing_GetCampaignStats( campaignExternalId: string, ): Promise<CRM_Marketing_CampaignStats> { throw new Error('not implemented'); } // Обработать событие от сервиса рассылок. Данная функция вызывается при получении HTTP-запроса на вебхук, // который указан в настройках пользовательского модуля. В теле данной функции необходимо преобразовать события // конкретного сервиса рассылок в список действий, которые выполнятся в системе по окончании выполнения функции // (например, обновление статуса рассылки или состояния отправки письма подписчику). // `request` — данные полученного на вебхук HTTP-запроса. async function CRM_Marketing_ParseWebhookRequest(request: FetchRequest): Promise<CRM_Marketing_WebhookResult> { throw new Error('not implemented'); } // Получить HTML-код для предпросмотра содержимого шаблона. Вызывается из интерфейса системы виджетом // предпросмотра шаблона. Результат функции может быть временно закеширован системой. // - `templateExternalId` — идентификатор шаблона в сервисе рассылок. async function CRM_Marketing_GetTemplateHTML(templateExternalId: string): Promise<string> { throw new Error('not implemented'); } // Установить HTML-код содержимого шаблона. Вызывается при публикации шаблона. // Функция должна возвращать идентификатор шаблона в сервисе рассылок. // - `html` — содержимое шаблона. // - `name` — наименование шаблона. // - `templateExternalId` — идентификатор шаблона в сервисе рассылок. Может быть пустым, если шаблон новый. async function CRM_Marketing_SetTemplateHTML(html: string, name: string, templateExternalId?: string): Promise<string> { throw new Error('not implemented'); }
Реализуйте тело функции из заготовки кода выше, сохраните модуль и включите его. Теперь при создании новой рассылки через интерфейс системы вы сможете выбрать вашу интеграцию в поле Сервис рассылки.