Головна » Blog » Система холодних розсилок — доставність як механізм
CRM Email-розсилки / Власний продукт

Система холодних розсилок — доставність як механізм

Seganiko
Клієнт Seganiko
Галузь Email-розсилки / Власний продукт
Тип CRM
Використані технології PHP без фреймворків, MySQL, черга відправки з паузами, прогрів скриньок, перевірка MX, трекінг відкриттів і кліків, повідомлення в Telegram
Контекст

Завдання

Вести холодні розсилки, не спалюючи домен: відсіяти мертві адреси до відправки, нарощувати обсяг, не зачіпаючи фільтри, і тримати відповіді там само, де відправку.
Наш підхід

Що ми зробили

Три механізми працюють до листа: прогрів скриньок за розкладом, перевірка MX і доменів, що приймають усе підряд, запобіжник за відсотком відмов. Поверх — черга з паузами замість залпу, шаблони зі змінними й передпереглядом на реальному контакті, вхідні поруч із контактом.
Деталі проєкту

Розсилка, у якій головне — не згоріти

Відправити лист уміє будь-хто. Складність холодної розсилки в іншому: зробити так, щоб поштові служби й далі пускали ваші листи у вхідні, а не в спам.

Ми зібрали власну систему, у якій доставність — не звіт наприкінці, а запобіжник, що спрацьовує до того, як домен зіпсовано.

Дашборд розсилок: стан системи, відсоток відмов, черга, розмір бази й графік за 30 днів

Верхній рядок — не прикраса: це вимикачі. Прогрів, автовідправка, запобіжник і фоллоу-апи видно одразу, разом із їхнім станом.

Що це

  • Продукт: власна розробка Seganiko
  • Призначення: холодні розсилки й follow-up
  • База: понад 55 тисяч контактів
  • Стек: чистий PHP, без фреймворків

Завдання

  • Не втратити домен через різку відправку по холодній базі.
  • Відсіяти неіснуючі адреси до відправки, а не після.
  • Тримати переписку в одному місці, а не в п’яти поштових скриньках.
  • Зробити так, щоб систему міг вести один чоловік.

Що всередині

  • Прогрів скриньок і запобіжник за відсотком відмов.
  • Перевірка поштових серверів домену до відправки.
  • Черга відправки з паузами, трекінг відкриттів і кліків.
  • Шаблони зі змінними й відповіді в тій самій системі.

Доставність як механізм, а не як звіт

Холодна база вбиває домен за два дні, якщо відправляти по ній так, ніби це підписники. Тому в системі є три речі, які працюють до листа, а не після.

Прогрів. Нова скринька починає з десятків листів на добу й нарощує обсяг за розкладом. Поки прогрів не дійшов до потрібного темпу, велика розсилка з неї просто не піде.

Перевірка адрес. Перш ніж адреса потрапить у чергу, система дивиться, чи існує в домену поштовий сервер і чи не приймає він усе підряд. Домени, які відповідають «так» на будь-яку адресу, позначаються окремо — по них статистика відмов бреше.

Запобіжник. Якщо частка відмов у розсилці переходить поріг, відправка зупиняється сама. Поштові служби починають рахувати домен підозрілим приблизно з двох-трьох відсотків — запобіжник спрацьовує раніше, ніж це помітять вони.

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

База, у якій видно стан кожного

Контакт — це не рядок з адресою. У нього є статус, категорія, мова, пріоритет і групи, і за кожним із цих полів список фільтрується. Імпорт із CSV сам визначає кодування й роздільник, показує зіставлення колонок і питає, що робити з дублями — пропустити чи оновити.

Список контактів із фільтрами за статусом, категорією, мовою і пріоритетом

Кампанія як черга, а не як кнопка

Розсилка не йде одним пострілом. Вона лягає в чергу з паузою між листами, і черга видно в панелі: скільки написано, скільки чекає, скільки пішло сьогодні. Це нудно виглядає й рятує домен.

Відкриття й кліки рахуються, відписка працює одним переходом, а на кожну подію можна отримати повідомлення в Telegram — щоб не тримати панель відкритою цілий день.

Розділ кампаній: список розсилок зі статусами й статистикою

Шаблони зі змінними

Лист пишеться один раз, а підставляються ім’я, компанія, сайт і те, що знайшлося при підготовці. Передперегляд показує результат одразу на конкретному контакті — так помилка в змінній видно до відправки, а не після тисячі листів.

Шаблони листів зі змінними підстановками

Відповіді там само

Найгірше в холодній розсилці — коли відповіді падають у загальну скриньку й губляться між рахунками. Тому вхідні підтягуються в систему й лягають поруч із контактом: видно, кому писали, що відповіли й на якому кроці зупинилися.

Як це робилося

1
Етап 1
База й імпорт
Контакти зі статусами, категоріями, мовами й групами. Імпорт CSV із визначенням кодування, зіставленням колонок і обробкою дублів.
2
Етап 2
Відправка
Черга з паузами замість залпу, шаблони зі змінними, трекінг відкриттів і кліків, відписка, повідомлення в Telegram.
3
Етап 3
Доставність
Прогрів скриньок за розкладом, перевірка поштових серверів домену до відправки, запобіжник за відсотком відмов.
4
Етап 4
Переписка
Вхідні поруч із контактом, фоллоу-апи за сценарієм, історія кроків на кожному адресаті.

Що під капотом

Платформа

PHP без фреймворків, MySQL, свій маршрутизатор і шар доступу до даних. Ставиться на звичайний хостинг, оновлюється копіюванням файлів.

Відправка

Зовнішній поштовий сервіс як транспорт, своя черга з паузами поверх нього, трекінг відкриттів і кліків, сторінка відписки.

Доставність

Прогрів скриньок, перевірка MX і «приймає все підряд», окремий облік мертвих адрес і запобіжник, що зупиняє розсилку при зростанні відмов.

Що вийшло

Система, у якій холодна розсилка — це не «натиснув і чекаєш», а керований процес: адреса перевіряється до черги, скринька прогрівається за розкладом, а відправка зупиняється сама, якщо щось пішло не так.

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


Схожий проєкт?

Обговорімо ваші цілі й подивімося, чим ми можемо допомогти.

Замовити безкоштовний кошторис →
Є питання?

Поговорімо про
ваш проєкт.

Перша розмова безкоштовна, без зобов’язань.