---
title: "SendGrid конектор"
description: "Пълно ръководство за интеграция със SendGrid за синхронизация на контакти, транзакционни имейли, маркетингови кампании и събития за ангажираност с Brevo чрез Tajo."
url: https://tajo.io/bg/docs/connectors/marketing/sendgrid/
markdown: https://tajo.io/bg/docs/connectors/marketing/sendgrid.md
lang: bg-BG
robots: noindex
---

Заявете ранен достъп

Въведете собственото си име и служебен имейл адрес. Ще ви изпратим връзка за потвърждение на заявката за достъп до Tajo.

# SendGrid конектор

Статус на конектора: В разработка В процес на изграждане. Все още не е проверен.

| Поле източник | Целево поле | Примерна стойност |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Свържи своя акаунт в SendGrid с Brevo чрез Tajo за миграция на имейл инфраструктура, синхронизация на контакти, прехвърляне на данни за кампании и унифицирана аналитика за ангажираност в двете платформи.

## Преглед

| Свойство | Стойност |
| --- | --- |
| **Платформа** | SendGrid (Twilio) |
| **Категория** | Маркетинг |
| **Сложност на настройка** | Лесна |
| **Официална интеграция** | Не |
| **Синхронизирани данни** | Контакти, кампании, транзакционни имейли, събития |
| **Base URL на API** | `https://api.sendgrid.com/v3` |

## Функции

- **Миграция на контакти** – Мигрирай SendGrid Marketing контакти към Brevo с персонализирани полета
- **Синхронизация на транзакционни имейли** – Проследявай събития от транзакционни имейли за унифицирано отчитане
- **Данни за кампании** – Синхронизирай данни за performance на Single Send и Automation кампании
- **Event webhooks** – Препращай имейл събития (delivered, opened, clicked, bounced) към Brevo
- **Синхронизация на suppressions** – Мигрирай bounce, block и unsubscribe списъци за съвместимост
- **Миграция на шаблони** – Експортирай Dynamic Transactional Templates за използване в Brevo
- **Sender верификация** – Синхронизирай верифицирани sender идентичности и автентикация на домейн
- **Синхронизация на статистики** – Импортирай исторически статистики за ангажираност към атрибути в Brevo

## Предварителни условия

Преди да започнеш, увери се, че имаш:

1. Акаунт в SendGrid (Free, Essentials, Pro или Premier)
2. SendGrid API ключ с необходимите разрешения
3. Акаунт в Brevo с API достъп
4. Акаунт в Tajo

## Автентикация

### Автентикация с API ключ

SendGrid използва bearer token автентикация.

```bash
curl https://api.sendgrid.com/v3/marketing/contacts \
  -H "Authorization: Bearer SG.YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

Създавай API ключове в SendGrid Settings > API Keys със специфични нива на разрешения:

- **Full Access** – Пълен API достъп
- **Restricted Access** – Гранулиран контрол на разрешенията
- **Billing Access** – Само billing операции

#### Необходими разрешения

```
Marketing: Full Access
  - Contacts (read)
  - Single Sends (read)
  - Automations (read)
Mail Send: Full Access
  - Mail Send (read)
Stats: Read Access
Suppressions: Read Access
Tracking: Read Access
```

Сигурност на API ключ

SendGrid API ключовете се показват само веднъж при създаване. Съхранявай ги сигурно. Ако бъдат загубени, трябва да създадеш нов ключ.

## Конфигурация

### Основна настройка

```yaml
connectors:
  sendgrid:
    enabled: true
    api_key: "${SENDGRID_API_KEY}"

    # Data sync options
    sync:
      contacts: true
      campaigns: true
      transactional: true
      suppressions: true
      statistics: true

    # List mapping to Brevo
    list_mapping:
      "All Contacts": 60
      "Newsletter": 61
      "Transactional": 62
```

### Мапване на полета

Мапвай SendGrid полета на контакти към атрибути на контактите в Brevo:

#### Мапвания по подразбиране

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Имейл адрес на контакта (уникален идентификатор) |
| `first_name` optional | string | Мапва към атрибут FIRSTNAME |
| `last_name` optional | string | Мапва към атрибут LASTNAME |
| `phone_number` optional | string | Мапва към атрибут SMS |
| `city` optional | string | Град на контакта |
| `country` optional | string | Държава на контакта |
| `custom_fields` optional | object | Персонализирани ключ-стойност двойки |
| `list_ids` optional | array | Членства в SendGrid списъци |

#### Мапване на персонализирани полета

```yaml
field_mapping:
  # Standard fields
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  phone_number: SMS

  # Location fields
  city: CITY
  state_province_region: STATE
  country: COUNTRY
  postal_code: POSTAL_CODE

  # Engagement metrics
  avg_open_rate: AVG_OPEN_RATE
  avg_click_rate: AVG_CLICK_RATE

  # Custom fields
  custom_fields.company: COMPANY_NAME
  custom_fields.plan: PLAN_TYPE
```

## API крайни точки

### Marketing Contacts

| Метод | Крайна точка | Описание |
| --- | --- | --- |
| `PUT` | `/v3/marketing/contacts` | Добавяне или обновяване на контакти |
| `POST` | `/v3/marketing/contacts/search` | Търсене на контакти |
| `GET` | `/v3/marketing/contacts/count` | Получаване на брой контакти |
| `POST` | `/v3/marketing/contacts/exports` | Експорт на контакти |
| `DELETE` | `/v3/marketing/contacts` | Изтриване на контакти |
| `GET` | `/v3/marketing/lists` | Списък с всички списъци с контакти |

### Транзакционен имейл (Mail Send)

| Метод | Крайна точка | Описание |
| --- | --- | --- |
| `POST` | `/v3/mail/send` | Изпращане на имейл |
| `GET` | `/v3/templates` | Списък с Dynamic Templates |
| `GET` | `/v3/templates/{id}` | Получаване на детайли за шаблон |

### Кампании (Single Sends)

| Метод | Крайна точка | Описание |
| --- | --- | --- |
| `GET` | `/v3/marketing/singlesends` | Списък със Single Sends |
| `GET` | `/v3/marketing/singlesends/{id}` | Получаване на детайли за Single Send |
| `GET` | `/v3/marketing/automations` | Списък с автоматизации |

### Статистики

| Метод | Крайна точка | Описание |
| --- | --- | --- |
| `GET` | `/v3/stats` | Получаване на глобални имейл статистики |
| `GET` | `/v3/categories/stats` | Получаване на статистики за категории |
| `GET` | `/v3/marketing/stats/singlesends` | Получаване на статистики за Single Send |

### Suppressions

| Метод | Крайна точка | Описание |
| --- | --- | --- |
| `GET` | `/v3/suppression/bounces` | Списък с bounce-нали имейли |
| `GET` | `/v3/suppression/blocks` | Списък с блокирани имейли |
| `GET` | `/v3/suppression/spam_reports` | Списък със spam reports |
| `GET` | `/v3/suppression/unsubscribes` | Списък с глобални unsubscribes |

## Събития

### Имейл събития (чрез Event Webhook)

| Събитие | Тригер | Случай на употреба |
| --- | --- | --- |
| `processed` | Имейлът е приет от SendGrid | Потвърждение на изпращане |
| `delivered` | Имейлът е доставен на получателя | Проследяване на доставка |
| `open` | Имейлът е отворен | Engagement scoring |
| `click` | Кликнат линк | Проследяване на интерес |
| `bounce` | Имейлът е bounce-нал | Хигиена на списък |
| `dropped` | Имейлът е suppress-нат | Compliance преглед |
| `deferred` | Доставката е отложена | Мониторинг на retry |
| `spam_report` | Маркиран като спам | Управление на репутация |
| `unsubscribe` | Отписан чрез линк | Синхронизация на предпочитания |

## Примери с код

### Инициализация на конектора

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect SendGrid
await tajo.connectors.connect('sendgrid', {
  apiKey: process.env.SENDGRID_API_KEY
});
```

### Миграция на контакти към Brevo

```javascript
// Full contact migration from SendGrid to Brevo
await tajo.connectors.sync('sendgrid', {
  type: 'full',
  resources: ['contacts', 'suppressions'],
  options: {
    includeCustomFields: true,
    migrateListMemberships: true,
    migrateSuppressions: true
  }
});

// Check migration status
const status = await tajo.connectors.status('sendgrid');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   contactsMigrated: 45000,
//   suppressionsSynced: 3200,
//   listsMapped: 8
// }
```

### Препращане на имейл събития

```javascript
// Handle SendGrid Event Webhook
app.post('/webhooks/sendgrid', async (req, res) => {
  const signature = req.get('X-Twilio-Email-Event-Webhook-Signature');

  // Verify webhook signature (ECDSA)
  if (!verifySendGridSignature(req.body, signature)) {
    return res.status(401).send('Unauthorized');
  }

  // Process batch of events
  for (const event of req.body) {
    await tajo.connectors.handleWebhook('sendgrid', {
      type: event.event,
      email: event.email,
      timestamp: event.timestamp,
      payload: event
    });
  }

  res.status(200).send('OK');
});
```

## Ограничения на заявките

Rate limits на SendGrid API:

| Крайна точка | Лимит | Детайли |
| --- | --- | --- |
| Mail Send (`/v3/mail/send`) | Зависи от плана | Free: 100/ден, Essentials: на базата на плана |
| Marketing Contacts PUT | 3 заявки/секунда | Пакетно до 30 000 контакта |
| Marketing Contacts Search | 50 заявки/секунда | На API ключ |
| Общ API | 1 000 заявки/секунда | На API ключ |
| Event Webhook | Batch доставка | До 1 000 събития на POST |

Лимити за Mail Send

Лимитите за Mail Send зависят от твоя SendGrid план. Free акаунтите са ограничени до 100 имейла/ден. Провери детайлите на своя план за точните лимити за изпращане.

## Отстраняване на проблеми

### Чести проблеми

| Проблем | Причина | Решение |
| --- | --- | --- |
| 401 Unauthorized | Невалиден API ключ | Провери API ключа в SendGrid Settings |
| 403 Forbidden | Недостатъчни разрешения на API ключ | Създай нов ключ с необходимите обхвати |
| Contact export pending | Обработка на голям dataset | Poll-вай export status крайната точка до завършване |
| Непълна синхронизация на suppressions | Изисква се пагинация | Внедри пагинация с параметър offset |
| Event webhook не се получава | URL не е верифициран | Завърши webhook URL верификацията в SendGrid |

### Режим за дебъг

Активирай подробно логване:

```yaml
connectors:
  sendgrid:
    debug: true
    log_level: verbose
    log_webhooks: true
```

### Тест на връзката

```bash
tajo connectors test sendgrid
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Lists accessible
# ✓ Statistics readable
# ✓ Suppressions accessible
```

## Добри практики

1. **Първо мигрирай suppressions** – Увери се, че bounces, blocks и unsubscribes са в Brevo преди изпращане
2. **Използвай пакетни качвания на контакти** – PUT до 30 000 контакта на заявка за ефективност
3. **Верифицирай Event Webhook** – Активирай подписани уебхуци с ECDSA верификация
4. **Мапвай персонализирани полета** – Създай съответните атрибути в Brevo преди миграция на контакти
5. **Синхронизирай данни за ангажираност** – Импортирай исторически статистики за сегментация в Brevo
6. **Обработвай асинхронни експорти** – Експортите на контакти са асинхронни; poll-вай за завършване

## Сигурност

- **Автентикация с API ключ** – Bearer token с гранулирани нива на разрешения
- **Event Webhook подписване** – ECDSA верификация на подпис за webhook payloads
- **TLS криптиране** – Цялата API комуникация е криптирана чрез HTTPS
- **IP Access Management** – Ограничаване на Dashboard и API достъп по IP
- **Two-factor автентикация** – 2FA достъпна за достъп до акаунт

## Свързани ресурси

- [SendGrid API документация](https://docs.sendgrid.com/api-reference)
- [SendGrid Event Webhook ръководство](https://docs.sendgrid.com/for-developers/tracking-events/event)
- [Brevo конектор](https://tajo.io/bg/docs/connectors/marketing/brevo)
- [Mailchimp конектор](https://tajo.io/bg/docs/connectors/marketing/mailchimp)
- [Customer Sync скил](https://tajo.io/bg/docs/skills/data-sync/customer-sync)
