Інтеграція SendGrid: транзакційні листи та розсилки

Уявіть: інтернет-магазин з 10 000 замовлень на місяць втрачає до 15% підтверджень через потрапляння до спаму. Кожне втрачене замовлення — це втрачена виручка та незадоволений клієнт. Ми зіткнулися з такою ситуацією на проекті та впровадили [SendGrid](https://en.wikipedia.org/wiki/SendGrid). Інтеграц

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Інтеграція SendGrid: транзакційні листи та розсилки
Простий
~1 день

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

Часті запитання

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

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

Уявіть: інтернет-магазин з 10 000 замовлень на місяць втрачає до 15% підтверджень через потрапляння до спаму. Кожне втрачене замовлення — це втрачена виручка та незадоволений клієнт. Ми зіткнулися з такою ситуацією на проекті та впровадили SendGrid. Інтеграція зайняла 2 дні, доставляльність зросла до 99,5%, а витрати на email-інфраструктуру знизилися на 30% завдяки відмові від власного SMTP-сервера. SendGrid обробляє мільйони листів на день, забезпечуючи uptime 99,9% та вбудовану аналітику. Отримайте консультацію щодо вашого проекту — ми допоможемо з інтеграцією.

Як SendGrid вирішує проблему доставляльності?

Доставляльність напряму залежить від репутації відправника. SendGrid автоматизує управління репутацією: виділені IP-пули, автоматична обробка скарг на спам, suppression list. Згідно з документацією SendGrid, правильне налаштування SPF, DKIM та DMARC знижує ймовірність потрапляння до спаму на 90%. Ми налаштовуємо Event Webhook, щоб у реальному часі відстежувати доставку, відмови та кліки. Це дозволяє оперативно реагувати на проблеми. SendGrid у 2 рази швидше інтегрується, ніж Amazon SES, завдяки готовим SDK та динамічним шаблонам.

Чому варто використовувати динамічні шаблони?

Динамічні шаблони на Handlebars дають гнучкість: ви змінюєте вміст листа без зміни коду. Наприклад, для підтвердження замовлення ми передаємо масив товарів, і шаблон сам рендерить таблицю. Це прискорює розробку та спрощує підтримку. Згідно з документацією SendGrid, динамічні шаблони підтримують вкладені блоки та умовну логіку. Статичні шаблони вимагають правок у коді при кожній зміні дизайну — динамічні вирішують цю проблему, скорочуючи час на внесення змін у 2–3 рази.

Порівняння SendGrid з іншими ESP

Параметр SendGrid Amazon SES Mailgun
API простота 5/5 4/5 4/5
Динамічні шаблони Так (Handlebars) Ні Ні
Event Webhook Детальні події Базові Детальні
Початковий ліміт 100 листів/день (free) 62 000/міс (free) 5 000/міс (free)
Вбудована аналітика Так Частково Так

SendGrid виграє за простотою інтеграції та наявністю динамічних шаблонів — це скорочує час розробки на 30% порівняно з Amazon SES.

Типи відправок та рекомендації
Сценарій Рекомендований тип відправки Частота
Підтвердження замовлення Транзакційне (single send) Одинично
Маркетингова розсилка Маркетингова кампанія Раз на тиждень
Скидання пароля Транзакційне При запиті
Сповіщення про статус Транзакційне (batch) По події

Як проходить інтеграція SendGrid?

  1. Аналітика — аудит поточної схеми відправки, перевірка DNS (SPF, DKIM, DMARC).
  2. Проектування — вибір типу шаблонів, налаштування категорій для статистики.
  3. Реалізація — встановлення пакету @sendgrid/mail, написання коду відправки, налаштування шаблонів.
  4. Тестування — відправка тестових листів, перевірка доставляльності через Email Test.
  5. Деплой — запуск у production, моніторинг через Webhook та Dashboard.

Що входить у роботу

  • Аудит поточної схеми відправки та рекомендації щодо покращення.
  • Створення та налаштування домену для відправки (SPF/DKIM/DMARC).
  • Інтеграція з кодом: одиничні відправки, батчеві розсилки, динамічні шаблони.
  • Налаштування Event Webhook для відстеження подій.
  • Документація по API та навчання вашої команди.
  • Тестування доставляльності на різних поштових клієнтах.

Приклади інтеграції з API

Встановлення та приклад коду

npm install @sendgrid/mail 
import sgMail from '@sendgrid/mail'; sgMail.setApiKey(process.env.SENDGRID_API_KEY!); await sgMail.send({ to: '[email protected]', from: { email: '[email protected]', name: 'Acme' }, subject: 'Підтвердження замовлення #12345', html: '<p>Ваше замовлення прийнято!</p>', categories: ['transactional', 'order-confirmation'], trackingSettings: { clickTracking: { enable: true }, openTracking: { enable: true }, }, }); 

Динамічні шаблони

await sgMail.send({ to: user.email, from: '[email protected]', templateId: 'd-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', dynamicTemplateData: { subject: `Замовлення #${order.id} підтверджено`, customer_name: user.name, order_id: order.id, items: order.items.map(item => ({ name: item.name, quantity: item.quantity, price: formatCurrency(item.price), })), total: formatCurrency(order.total), order_url: `https://app.example.com/orders/${order.id}`, }, }); 

Батчева розсилка через Marketing Campaigns API

import axios from 'axios'; const { data: campaign } = await axios.post( 'https://api.sendgrid.com/v3/marketing/singlesends', { name: 'Квітнева розсилка', email_config: { subject: 'Новини квітня від Acme', html_content: newsletterHtml, sender_id: 123, suppression_group_id: 456, }, send_to: { list_ids: ['list-uuid-1', 'list-uuid-2'], }, }, { headers: { Authorization: `Bearer ${process.env.SENDGRID_API_KEY}` } } ); await axios.post( `https://api.sendgrid.com/v3/marketing/singlesends/${campaign.id}/schedule`, { send_at: 'now' }, { headers: { Authorization: `Bearer ${process.env.SENDGRID_API_KEY}` } } ); 

Webhooks (Event Webhook)

app.post('/api/webhooks/sendgrid', async (req, res) => { const events = req.body as Array<{ event: string; email: string; timestamp: number; sg_message_id: string; }>; for (const event of events) { switch (event.event) { case 'delivered': await updateEmailStatus(event.sg_message_id, 'delivered'); break; case 'bounce': await handleBounce(event.email); break; case 'unsubscribe': await handleUnsubscribe(event.email); break; case 'spamreport': await handleSpamReport(event.email); break; } } res.status(200).end(); }); 

Управління suppression list

SendGrid дозволяє керувати suppression list через API. Приклад додавання адреси до глобального suppression list:

await axios.post( 'https://api.sendgrid.com/v3/asm/suppressions/global', { recipient_emails: [email] }, { headers: { Authorization: `Bearer ${process.env.SENDGRID_API_KEY}` } } ); 

Типові помилки при роботі з SendGrid

  • Не налаштовані SPF/DKIM/DMARC — листи потрапляють у спам (до 90% листів).
  • Ігнорування suppression list — повторні відправки на адреси, що відмовилися, погіршують репутацію.
  • Занадто великі листи > 10 MB — можуть бути відхилені.
  • Відсутність обробки webhook — пропускаєте відмови та скарги.
  • Неправильне налаштування категорій — аналітика стає марною.

Терміни та вартість

Терміни інтеграції: від 2 до 5 днів залежно від складності. Вартість розраховується індивідуально після аудиту. Отримайте консультацію щодо вашого проекту — ми підберемо оптимальну конфігурацію. Замовте інтеграцію під ключ — ми гарантуємо uptime 99,9% та повну підтримку після запуску.

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