Если в вашей компании принято поздравлять сотрудников с Днем рождения от имени администрации, то данный кейс для вас.
Подход к организации этого процесса может меняться в зависимости от особенностей каждой организации, однако в большинстве случаев его можно автоматизировать, учитывая все специфические черты корпоративной культуры.
В данном материале речь пойдет о том, как можно настроить автоматическую отправку поздравлений с использованием Битрикс24 и Пинкит.
1. Автоматическая рассылка поздравлений: проблема и решение
Наш заказчик работает в сфере производства оборудования.
В его компании используется портал Битрикс24 с несколькими сотнями сотрудников.
В соответствии с корпоративной культурой, в день рождения каждого работника ему направляется поздравление и подарочный сертификат от имени директора.
Механизм распределения заявок в Битрикс24 по менеджерам с передачей количества лидов в профиль сотрудника: читайте в нашем блоге.
Дата рождения указана в профиле сотрудника в Битрикс24, а поздравление отправляется на его электронную почту и через мессенджер WhatsApp.
Процесс организован следующим образом: ответственный сотрудник вручную отслеживает дни рождения сотрудников и затем отправляет поздравление с сертификатом. То есть, копирует шаблонный текст и отправляет сообщения вручную.
Это может стать проблемой, если в один день празднуют несколько человек. Задача требует внимания и часто накладывается на другие срочные дела, поэтому существует риск, что кого-то из именинников могут случайно пропустить.
Перенос дел в Битрикс24 из сделок в таймлайн компании с удалением дубликатов: подробности в кейсе.
В связи с этим, заказчик поставил перед нами задачу автоматизировать рассылку поздравлений и создать систему формирования списков именинников на ближайший месяц и год.
Такой подход улучшит прозрачность процесса и обеспечит включение всех сотрудников, включая новых, без необходимости ручного ввода данных.
Решить задачу мы предложили с помощью нескольких интеграций на платформе Пинкит, которые будут работать следующим образом:
1.1. Первая интеграция будет запускаться раз в сутки и сравнивать дату из поля «День рождения» профиля сотрудника с текущей датой.
Если даты совпадают, то автоматически будет инициироваться бизнес-процесс из живой ленты, который отправит поздравление на электронную почту сотрудника.
Сообщение также будет продублировано в живой ленте Битрикс24.
Шаблон бизнес-процесса настраивается в Битрикс24, а поздравление отправляется с почты генерального директора.
Искусственный интеллект для переписки в чатах (в том числе групповых) WhatsApp и Telegram в связке с Битрикс24: подробности по ссылке.
1.2. Вторая интеграция будет ежедневно собирать информацию о всех пользователях, у которых день рождения ожидается в ближайшие 30 дней, и добавлять их в список.
В списке будут указаны ФИО, дата рождения и дата добавления в список.
1.3. Третья интеграция будет ежедневно собирать информацию о пользователях, чье день рождения будет через год (в пределах 365 дней), и также добавлять их в список с ФИО, датой рождения и датой добавления.
1.4. Все интеграции будут запускаться по расписанию через технические интеграции с использованием инструмента «Расписание интеграций».
Далее детально расскажем, как настроить этот процесс.
2. Формируем список именинников на месяц
Шаг первый: Откуда
Интеграция будет запущена по расписанию, так что первый шаг можно настроить произвольно.
Шаг второй: Инструменты
- Проверка, что интеграция запущена инструментом
Используем стандартный результат проверки по полю source.startedFromInstrument. Условие - Существует, Действие - продолжить, если проверка пройдена.
- Получаем всех пользователей с днем рождения в ближайшие 30 дней
Используем API-запрос методом POST.
URL: /user.get Тело запроса: { "filter":{ "ACTIVE":"true", "<=UF_USR_1738243286139":"{{now|date('d.m.Y','UTC','+1 month')}}" } } Заголовки: Content-Type: application/json Accept: application/json
- Получаем текущий год
Используем шаг Если-иначе, Условие - существует, Результат при успешной проверке равен результату при неуспешной проверке и равняется {{now|date('Y')}}.
- Для каждого найденного пользователя
Используем инструмент Для каждого по полю step2.result - это список всех именинников в ближайший месяц.
- Получаем год рождения
Преобразуем строку в массив из поля step3.PERSONAL_BIRTHDAY.
- Получаем возраст
Используем Математическое действие с полем step9. Вычитаем результат предыдущего шага {{step8.0}}.
- Сделать запись в табличку месяца
Используем API-запрос методом POST.
URL - /lists.element.add
Тело запроса - {
"IBLOCK_TYPE_ID": "lists",
"IBLOCK_ID": "57",
"ELEMENT_CODE": "element_{{step3.ID}}",
"FIELDS": {
"NAME":"{{step3.LAST_NAME}} {{step3.NAME}} {{step3.SECOND_NAME}}",
"PROPERTY_287": "{{step3.PERSONAL_BIRTHDAY}}",
"PROPERTY_285":"{{step3.UF_USR_1738243286139}}",
"PROPERTY_291":"{{step3.WORK_POSITION}}",
"PROPERTY_293":"{{step3.UF_DEPARTMENT.0}}",
"PROPERTY_295":"{{step3.PERSONAL_MOBILE}}",
"PROPERTY_297":"{{step3.EMAIL}}",
"PROPERTY_299":"{{step10}}"
}
}
Заголовки - Content-Type: application/json
Accept: application/json
- Прерывание
Используем проверку, что поле с датой рождения заполнено. Условие - существует, Действие - Продолжить, если проверка пройдена.
Шаг третий: Куда
На предыдущем шаге интеграция прерывается, поэтому шаги 3 и 4 можно пропустить и перейти к запуску интеграции на пятом шаге.
3. Запуск интеграции по очистке списка на год
Шаг первый: Откуда
Настройка произвольная.
Шаг второй: Инструменты
Проверка что интеграция запущена инструментом
Используем проверку по полю source.startedFromInstrument. Условие - существует, Действие - продолжить, если проверка пройдена.
Шаг третий: Куда
Выбираем Пинкит с авторизацией по логину и паролю, действие Запустить интеграцию.
Шаг четвертый: Сопоставление данных
Указываем ID интеграции и активный статус:
Шаг пятый: Запуск
Запускаем интеграцию.
4. Запуск интеграции по очистке списка на месяц
Шаг первый: Откуда
Настройка произвольная.
Шаг второй: Инструменты
Используем проверку по полю source.startedFromInstrument. Условие - существует, Действие - продолжить, если проверка пройдена.
Шаг третий: Куда
Выбираем Пинкит с авторизацией по логину и паролю, действие Запустить интеграцию.
Шаг четвертый: Сопоставление данных
Указываем ID интеграции и активный статус:
Шаг пятый: Запуск
Запускаем интеграцию.
5. Очищаем список именинников на год
Шаг первый: Откуда
Укажем событие создания элемента списка с именинниками на год в Битрикс24.
Шаг второй: Инструменты
Настройки пропускаем.
Шаг третий: Куда
Удаляем элемент списка.
Шаг четвертый: Сопоставление данных
Добавляем пользовательское сопоставление: { "IBLOCK_TYPE_ID":"lists", "IBLOCK_ID":"59", "ELEMENT_ID":"{{source.ID}}" }
Шаг пятый: Запуск
Запускаем интеграцию.
6. Очищаем список именинников на месяц
Шаг первый: Откуда
Укажем событие создания элемента списка с именинниками на месяц в Битрикс24.
Шаг второй: Инструменты
Пропускаем.
Шаг третий: Куда
Удаляем элемент списка.
Шаг четвертый: Сопоставление данных
Указываем пользовательское сопоставление: { "IBLOCK_TYPE_ID":"lists", "IBLOCK_ID":"57", "ELEMENT_ID":"{{source.ID}}" }
Шаг пятый: Запуск
Запускаем интеграцию.
7. Запустили обновление информации по датам рождения
Шаг первый: Откуда
Настройка произвольная.
Шаг второй: Инструменты
Используем проверку по полю source.startedFromInstrument. Условие - существует, Действие - продолжить, если проверка пройдена.
Шаг третий: Куда
Выбираем Пинкит с авторизацией по логину и паролю, действие Запустить интеграцию.
Шаг четвертый: Сопоставление данных
Указываем ID интеграции и активный статус, также укажем, что поллинг начинается с нуля:
Шаг пятый: Запуск
Запускаем интеграцию.
8. Заполнили пользовательское поле и сделали запись в табличку именинников на год
Шаг первый: Откуда
Указываем Битрикс24, событие создания пользователя, пользователь должен быть активным сотрудником.
Шаг второй: Инструменты
- Получаем последнего пользователя
Используем API-запрос методом POST.
URL - /user.get
Тело запроса - {
"filter":{
"ACTIVE":"true"
},
"SORT": "ID",
"ORDER": "desc"
}
- Убираем время из даты
Преобразуем строку в массив в поле source.PERSONAL_BIRTHDAY.
- Разделяем на день, месяц, год
Преобразуем строку в массив в поле step1.0.
- Формируем дату из профиля сотрудника
Используем инструмент Если-иначе по полю source.ID. Условие - Существует, Результат при успешной проверке = Результат при неуспешной проверке и равняется {{step2.2}}.{{step2.1}}.{{now|date('Y')}}.
- Формируем дату сегодня
Используем инструмент Если-иначе по полю source.ID. Условие - Существует, Результат при успешной проверке = Результат при неуспешной проверке и равняется{{now|date(d.m.Y)}}.
- Формируем нашу дату
Используем инструмент Если-иначе по полю step5. Условие - Дата(Время)До, Сравниваемое значение - step4.
Результат при успешной проверке = {{step2.2}}.{{step2.1}}.{{now|date('Y')}}, Результат при неуспешной проверке = {{step2.2}}.{{step2.1}}.{{now|date('Y','UTC','+1 year')}}.
- Обновляем дату в профиле пользователя
Используем API-запрос методом POST.
URL - /user.update
Тело - {
"ID": {{source.ID}},
"UF_USR_1738243286139": "{{step3}}",
"UF_USR_1738073269196":""
}
Заголовки - Content-Type: application/json
Accept: application/json
- Получаем год рождения
Преобразуем строку в массив в поле source.PERSONAL_BIRTHDAY.
- Получаем текущий год
Используем инструмент если-Иначе по полю source.odifhgoujfdhgjikfdhlg. Условие - Существует, Результат при успешной проверке = Результат при неуспешной проверке = {{now|date('Y')}}.
- Получаем возраст
Используем Математическое действие с полем step11. Вычитаем результат предыдущего шага {{step10.0}}.
- И делаем запись в табличку на год
Используем API-запрос методом POST.
URL - /lists.element.add
Тело запроса - {
"IBLOCK_TYPE_ID": "lists",
"IBLOCK_ID": "59",
"ELEMENT_CODE": "element_{{source.ID}}",
"FIELDS": {
"NAME":"{{source.LAST_NAME}} {{source.NAME}} {{source.SECOND_NAME}}",
"PROPERTY_281": "{{source.PERSONAL_BIRTHDAY}}",
"PROPERTY_283":"{{source.UF_USR_1738243286139}}",
"PROPERTY_301":"{{source.WORK_POSITION}}",
"PROPERTY_303":"{{source.UF_DEPARTMENT.0}}",
"PROPERTY_305":"{{source.PERSONAL_MOBILE}}",
"PROPERTY_307":"{{source.EMAIL}}",
"PROPERTY_309":"{{step12}}"
}
}
Заголовки - Content-Type: application/json Accept: application/json
- Прерывание прогона
Используем проверку по полю source.odifhgoujfdhgjikfdhlg. Условие - существует, действие - продолжить, если проверка пройдена.
Шаг третий: Куда
Выбираем Пинкит с авторизацией по логину и паролю, действие Запустить интеграцию.
Шаг четвертый: Сопоставление данных
Указываем ID интеграции и статус На паузе.
Шаг пятый: Запуск
Запускаем интеграцию.
9. Отправляем поздравление с днем Рождения в 10.00
Шаг первый: Откуда
Настройки произвольные.
Шаг второй: Инструменты
- Проверка что интеграция стартовала с таймера
Используем стандартный результат проверки по полю source.startedFromInstrument. Условие - Существует, Действие - продолжить, если проверка пройдена.
- Получаем сегодняшнюю дату
Используем шаг Если-Иначе по полю source.startedFromInstrument. Условие - существует, Результат при успешной проверке - {{now|date(d.m.Y\T00:00:00)}}, Результат при неуспешной проверке = {{now|date(d.m.Y\T00:00:00)}}.
- Получаем пользователей с Днем Рождения сегодня
Используем API-запрос методом POST.
URL - /user.get
Тело - {
"filter":{
"ACTIVE":"true",
"UF_USR_1738243286139":"{{step3}}"
}
}
Заголовки - Content-Type: application/json Accept: application/json
- Для каждого найденного пользователя
Используем шаг Для каждого по полю step2.result.
- Запускаем бизнес-процесс
Шаблон бизнес-процесса мы настроили ранее.
Используем API-запрос методом POST.
URL - /bizproc.workflow.start
Тело запроса - {
"TEMPLATE_ID":"655",
"DOCUMENT_ID":[
"lists",
"BizprocDocument",
"14083"
],
"PARAMETERS":{
"email":"{{step4.EMAIL}}",
"name":"{{step4.NAME}}",
"sex":"{{step4.PERSONAL_GENDER}}",
"user_id":"user_{{step4.ID}}",
"IntID":"user_{{step4.ID}}"
}
}
Заголовки - Content-Type: application/json Accept: application/json
- Прерываем интеграцию
Добавляем проверку по полю source.startedFromInstrument. Условие - существует, Действие - Прервать, если проверка пройдена.
Остальные шаги можно пропустить и сразу запустить интеграцию на пятом шаге.
Последним шагом настраиваем расписание в разделе Инструменты:
Резюмируем
После настройки автоматизации мы получаем два динамически обновляемых списка именинников: один на ближайший месяц, а другой — на ближайший год.
Это позволяет всегда иметь актуальную информацию о предстоящих днях рождения сотрудников.
Кроме того, благодаря автоматической отправке поздравлений по электронной почте и в живой ленте Битрикс24, процесс стал полностью автономным.
Все поздравления отправляются своевременно без участия ответственного сотрудника, что значительно повышает эффективность и уменьшает вероятность пропуска.
Это решение значительно упрощает процесс и помогает поддерживать корпоративную культуру поздравлений без дополнительных усилий.
![]()
Если у вас есть вопросы, пишите нам в Телеграм или WhatsApp.
Если вам нужна интеграция с сервисом, которого в Пинкит нет, или приватное событие/действие, через Пинкитбилдер вы можете самостоятельно настроить авторизацию, необходимые события и действия без разработки с ограниченным доступом к ним.
Также вы можете самостоятельно протестировать Пинкит, для этого зарегистрируйтесь в личном кабинете по ссылке: https://lk.pinkit.io/register.
Алексей Окара,
продакт-менеджер Пинкит

Время работы специалистов Пн.–Пт.: с 9:30 до 18:30; Сб.-Вс.: выходные.
![]()
Павел Филатов
|
Сервис
Самые востребованные интеграции по API: Google Sheets, Unisender, СберБанк, HH.ru, Контур.Фокус, GetCourse, Банки, iiko. |
![]()
Павел Филатов
|
А вы уже смотрели наш раздел "
|
![]()
Павел Филатов
|
Для тех, кто идет в ногу со временем, мы проводим регулярные
Если у Вас есть вопросы по настройке, по функционалу или вы просто хотите быть в курсе новых трендов, тогда регистрируйтесь и подключайтесь к нашим вебинарам. Для вас всегда интересные спикеры, разбор задач на примере реальных кейсов, а также подарки самым активным. |