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

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