---
title: "Conector SendGrid"
description: "Ghid complet de integrare SendGrid pentru sincronizarea contactelor, e-mailurilor tranzacționale, campaniilor de marketing și evenimentelor de implicare cu Brevo prin Tajo."
url: https://tajo.io/ro/docs/connectors/marketing/sendgrid/
markdown: https://tajo.io/ro/docs/connectors/marketing/sendgrid.md
lang: ro-RO
robots: noindex
---

Solicită acces anticipat

Introduceți prenumele și adresa de e-mail profesională. Vă vom trimite un link pentru a confirma cererea de acces la Tajo.

# Conector SendGrid

Starea conectorului: În lucru În construcție. Încă neverificat.

| Câmp sursă | Câmp destinație | Valoare exemplu |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Conectați contul SendGrid la Brevo prin Tajo pentru migrarea infrastructurii de e-mail, sincronizarea contactelor, transferul datelor de campanie și analize unificate de implicare pe ambele platforme.

## Prezentare generală

| Proprietate | Valoare |
| --- | --- |
| **Platformă** | SendGrid (Twilio) |
| **Categorie** | Marketing |
| **Complexitate configurare** | Ușoară |
| **Integrare oficială** | Nu |
| **Date sincronizate** | Contacte, Campanii, E-mail tranzacțional, Evenimente |
| **URL de bază API** | `https://api.sendgrid.com/v3` |

## Funcționalități

- **Migrare contacte** - Migrați contactele de marketing SendGrid la Brevo cu câmpuri personalizate
- **Sincronizare e-mail tranzacțional** - Urmăriți evenimentele de e-mail tranzacțional pentru raportare unificată
- **Date campanii** - Sincronizați datele de performanță ale campaniilor Single Send și Automation
- **Webhook-uri evenimente** - Redirecționați evenimentele de e-mail (livrate, deschise, accesate, respinse) la Brevo
- **Sincronizare supresii** - Migrați listele de respingeri, blocări și dezabonări pentru conformitate
- **Migrare șabloane** - Exportați Șabloanele Tranzacționale Dinamice pentru utilizare în Brevo
- **Verificare expeditor** - Sincronizați identitățile de expeditor verificate și autentificarea domeniului
- **Sincronizare statistici** - Importați statisticile istorice de implicare în atributele Brevo

## Cerințe preliminare

Înainte de a începe, asigurați-vă că aveți:

1. Un cont SendGrid (Free, Essentials, Pro sau Premier)
2. O cheie API SendGrid cu permisiunile necesare
3. Un cont Brevo cu acces API
4. Un cont Tajo

## Autentificare

### Autentificare cu cheie API

SendGrid utilizează autentificarea cu token bearer.

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

Creați chei API în SendGrid Settings > API Keys cu niveluri specifice de permisiune:

- **Acces complet** - Acces complet la API
- **Acces restricționat** - Control granular al permisiunilor
- **Acces facturare** - Operații numai de facturare

#### Permisiuni necesare

```
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
```

Securitate cheie API

Cheile API SendGrid sunt afișate o singură dată la creare. Stocați-le în siguranță. Dacă sunt pierdute, trebuie să creați o cheie nouă.

## Configurare

### Configurare de bază

```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
```

### Mapare câmpuri

Mapați câmpurile de contact SendGrid la atributele de contact Brevo:

#### Mapări implicite

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Adresa de e-mail a contactului (identificator unic) |
| `first_name` optional | string | Mapează la atributul FIRSTNAME |
| `last_name` optional | string | Mapează la atributul LASTNAME |
| `phone_number` optional | string | Mapează la atributul SMS |
| `city` optional | string | Orașul contactului |
| `country` optional | string | Țara contactului |
| `custom_fields` optional | object | Perechi cheie-valoare ale câmpurilor personalizate |
| `list_ids` optional | array | Apartenența la listele SendGrid |

#### Mapare câmpuri personalizate

```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
```

## Puncte finale API

### Contacte marketing

| Metodă | Punct final | Descriere |
| --- | --- | --- |
| `PUT` | `/v3/marketing/contacts` | Adaugă sau actualizează contacte |
| `POST` | `/v3/marketing/contacts/search` | Caută contacte |
| `GET` | `/v3/marketing/contacts/count` | Obține numărul de contacte |
| `POST` | `/v3/marketing/contacts/exports` | Exportă contacte |
| `DELETE` | `/v3/marketing/contacts` | Șterge contacte |
| `GET` | `/v3/marketing/lists` | Listează toate listele de contacte |

### E-mail tranzacțional (Mail Send)

| Metodă | Punct final | Descriere |
| --- | --- | --- |
| `POST` | `/v3/mail/send` | Trimite un e-mail |
| `GET` | `/v3/templates` | Listează Șabloanele Dinamice |
| `GET` | `/v3/templates/{id}` | Obține detalii șablon |

### Campanii (Single Sends)

| Metodă | Punct final | Descriere |
| --- | --- | --- |
| `GET` | `/v3/marketing/singlesends` | Listează Single Sends |
| `GET` | `/v3/marketing/singlesends/{id}` | Obține detalii Single Send |
| `GET` | `/v3/marketing/automations` | Listează automatizările |

### Statistici

| Metodă | Punct final | Descriere |
| --- | --- | --- |
| `GET` | `/v3/stats` | Obține statistici globale e-mail |
| `GET` | `/v3/categories/stats` | Obține statistici pe categorii |
| `GET` | `/v3/marketing/stats/singlesends` | Obține statisticile Single Send |

### Supresii

| Metodă | Punct final | Descriere |
| --- | --- | --- |
| `GET` | `/v3/suppression/bounces` | Listează e-mailurile respinse |
| `GET` | `/v3/suppression/blocks` | Listează e-mailurile blocate |
| `GET` | `/v3/suppression/spam_reports` | Listează rapoartele de spam |
| `GET` | `/v3/suppression/unsubscribes` | Listează dezabonările globale |

## Evenimente

### Evenimente e-mail (prin Event Webhook)

| Eveniment | Declanșator | Caz de utilizare |
| --- | --- | --- |
| `processed` | E-mail acceptat de SendGrid | Confirmare trimitere |
| `delivered` | E-mail livrat destinatarului | Urmărire livrare |
| `open` | E-mail deschis | Scorare implicare |
| `click` | Link accesat | Urmărire interes |
| `bounce` | E-mail respins | Igienă listă |
| `dropped` | E-mail suprimat | Revizuire conformitate |
| `deferred` | Livrare amânată | Monitorizare reîncercare |
| `spam_report` | Marcat ca spam | Gestionare reputație |
| `unsubscribe` | Dezabonat prin link | Sincronizare preferințe |

## Exemple de cod

### Inițializare conector

```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
});
```

### Migrare contacte la 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
// }
```

### Redirecționare evenimente e-mail

```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');
});
```

## Limite de rată

Limite de rată API SendGrid:

| Punct final | Limită | Detalii |
| --- | --- | --- |
| Mail Send (`/v3/mail/send`) | Dependent de plan | Free: 100/zi, Essentials: bazat pe plan |
| Marketing Contacts PUT | 3 cereri/secundă | Lot de până la 30.000 de contacte |
| Marketing Contacts Search | 50 cereri/secundă | Per cheie API |
| API general | 1.000 cereri/secundă | Per cheie API |
| Event Webhook | Livrare în lot | Până la 1.000 de evenimente per POST |

Limite Mail Send

Limitele Mail Send depind de planul SendGrid. Conturile Free sunt limitate la 100 de e-mailuri/zi. Verificați detaliile planului pentru limitele exacte de trimitere.

## Depanare

### Probleme frecvente

| Problemă | Cauză | Soluție |
| --- | --- | --- |
| 401 Neautorizat | Cheie API invalidă | Verificați cheia API în SendGrid Settings |
| 403 Interzis | Permisiuni insuficiente ale cheii API | Creați o cheie nouă cu scope-urile necesare |
| Export contacte în așteptare | Procesare set de date mare | Interogați punctul final de status export până la finalizare |
| Sincronizare supresii incompletă | Paginare necesară | Implementați paginarea cu parametrul offset |
| Webhook de eveniment neprimit | URL neverificat | Completați verificarea URL webhook în SendGrid |

### Modul de depanare

Activați jurnalizarea verbosă:

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

### Testare conexiune

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

## Bune practici

1. **Migrați supresiile mai întâi** - Asigurați că respingerile, blocările și dezabonările sunt în Brevo înainte de trimitere
2. **Utilizați încărcări de contacte în lot** - PUT până la 30.000 de contacte per cerere pentru eficiență
3. **Verificați Event Webhook** - Activați webhook-uri semnate cu verificare ECDSA
4. **Mapați câmpurile personalizate** - Creați atributele Brevo corespunzătoare înainte de migrarea contactelor
5. **Sincronizați datele de implicare** - Importați statisticile istorice pentru segmentare în Brevo
6. **Gestionați exporturile asincrone** - Exporturile de contacte sunt asincrone; interogați pentru finalizare

## Securitate

- **Autentificare cu cheie API** - Token bearer cu niveluri granulare de permisiune
- **Semnare Event Webhook** - Verificare semnătură ECDSA pentru payload-urile webhook
- **Criptare TLS** - Toate comunicațiile API criptate prin HTTPS
- **Gestionare acces IP** - Restricționați accesul la Tabloul de bord și API pe baza IP-ului
- **Autentificare în doi pași** - 2FA disponibil pentru accesul la cont

## Resurse conexe

- [Documentație API SendGrid](https://docs.sendgrid.com/api-reference)
- [Ghid Event Webhook SendGrid](https://docs.sendgrid.com/for-developers/tracking-events/event)
- [Conector Brevo](https://tajo.io/ro/docs/connectors/marketing/brevo)
- [Conector Mailchimp](https://tajo.io/ro/docs/connectors/marketing/mailchimp)
- [Skill Sincronizare clienți](https://tajo.io/ro/docs/skills/data-sync/customer-sync)
