Раздел Маркетинг является частью системного решения 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');
}

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

Type aliases

CRM_Marketing_Action

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