Type aliases
CRM_Marketing_Action
Действие, совершаемое в системе по результатам обработки уведомления от сервиса рассылки.
Действие, совершаемое в системе по результатам обработки уведомления от сервиса рассылки.
Интеграция с сервисами рассылок
Раздел Маркетинг является частью системного решения 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'); }
Реализуйте тело функции из заготовки кода выше, сохраните модуль и включите его. Теперь при создании новой рассылки через интерфейс системы вы сможете выбрать вашу интеграцию в поле Сервис рассылки.