Реалізація тригерних email-ланцюжків (Welcome, Abandoned Cart, Reactivation)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація тригерних email-ланцюжків (Welcome, Abandoned Cart, Reactivation)
Середня
~3-5 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Розробка триггерних email-послідовностей (welcome, забутий кошик)

Триггерні послідовності — це ланцюги листів, які запускаються автоматично у відповідь на дію користувача. Welcome-серія, забутий кошик, re-engagement, onboarding-підказки. Кожен лист відправляється у потрібний момент, а не за розписанням.

Архітектура

Типова схема: додаток публікує події → воркер обробляє та ставить задачі в чергу з задержкою → задачі виконують відправлення листів.

Дія користувача → Подія App → Queue (BullMQ) → Email Worker → ESP (Resend/SendGrid)
                   ↓
             Sequence Engine
         (відстежує прогрес,
          перевіряє умови)

Реалізація на BullMQ

npm install bullmq ioredis
import { Queue, Worker, Job } from 'bullmq';
import Redis from 'ioredis';

const connection = new Redis(process.env.REDIS_URL);
const emailQueue = new Queue('email-sequences', { connection });

// Запуск welcome-послідовності
async function startWelcomeSequence(userId: string, email: string, name: string) {
  const baseData = { userId, email, name };

  // Лист 1: одразу після реєстрації
  await emailQueue.add('welcome-step-1', baseData, {
    delay: 0,
    jobId: `welcome-1-${userId}`,  // дедупликація
  });

  // Лист 2: через 1 день — як користуватися продуктом
  await emailQueue.add('welcome-step-2', baseData, {
    delay: 24 * 60 * 60 * 1000,
    jobId: `welcome-2-${userId}`,
  });

  // Лист 3: через 3 дня — приклади use case
  await emailQueue.add('welcome-step-3', baseData, {
    delay: 3 * 24 * 60 * 60 * 1000,
    jobId: `welcome-3-${userId}`,
  });

  // Лист 4: через 7 днів — якщо не активував — нагадування
  await emailQueue.add('welcome-step-4', baseData, {
    delay: 7 * 24 * 60 * 60 * 1000,
    jobId: `welcome-4-${userId}`,
  });
}

Воркер з умовами

const worker = new Worker(
  'email-sequences',
  async (job: Job) => {
    const { userId, email, name } = job.data;

    // Перевірити, що користувач не відписався
    const user = await db.users.findById(userId);
    if (!user || user.unsubscribed) return;

    switch (job.name) {
      case 'welcome-step-1':
        await sendEmail({
          to: email,
          templateId: 'welcome-01-greeting',
          data: { name },
        });
        break;

      case 'welcome-step-2':
        await sendEmail({
          to: email,
          templateId: 'welcome-02-getting-started',
          data: { name, dashboardUrl: `https://app.example.com/dashboard` },
        });
        break;

      case 'welcome-step-4':
        // Відправляти лише якщо користувач не створив ні одного проекту
        const projectCount = await db.projects.countByUser(userId);
        if (projectCount > 0) return;  // пропустити — він уже активний

        await sendEmail({
          to: email,
          templateId: 'welcome-04-reminder',
          data: { name },
        });
        break;

Строки реалізації

Реалізація welcome та забутого кошика послідовностей — 2–3 дня.