---
title: "SendGrid konektor"
description: "Kompletan vodič za SendGrid integraciju za sinhronizaciju kontakata, transakcionih emailova, marketinških kampanja i događaja angažovanja sa Brevo putem Tajo."
url: https://tajo.io/sr/docs/connectors/marketing/sendgrid/
markdown: https://tajo.io/sr/docs/connectors/marketing/sendgrid.md
lang: sr-Latn-RS
robots: noindex
---

Zatražite rani pristup

Unesite ime i poslovnu adresu e-pošte. Poslaćemo vam vezu za potvrdu zahteva za pristup Taju.

# SendGrid konektor

Status konektora: U izradi Gradi se. Još nije provereno.

| Izvorno polje | Odredišno polje | Primer vrednosti |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Poveži svoj SendGrid nalog sa Brevo putem Tajo za migraciju email infrastrukture, sinhronizaciju kontakata, prenos podataka kampanja i unifikovanu analitiku angažovanja na obe platforme.

## Pregled

| Svojstvo | Vrednost |
| --- | --- |
| **Platforma** | SendGrid (Twilio) |
| **Kategorija** | Marketing |
| **Složenost podešavanja** | Lako |
| **Zvanična integracija** | Ne |
| **Sinhronizovani podaci** | Kontakti, Kampanje, Transakcioni email, Događaji |
| **Osnovni URL API-ja** | `https://api.sendgrid.com/v3` |

## Karakteristike

- **Migracija kontakata** - Migracija SendGrid Marketing kontakata u Brevo sa prilagođenim poljima
- **Sinhronizacija transakcionih emailova** - Praćenje transakcionih email događaja za unifikovano izveštavanje
- **Podaci kampanje** - Sinhronizacija podataka o performansama Single Send i Automation kampanja
- **Event webhook-ovi** - Prosleđivanje email događaja (dostavljeno, otvoreno, kliknuto, odbijeno) u Brevo
- **Sinhronizacija suzbijanja** - Migracija lista odbijanja, blokiranja i odjave radi usklađenosti
- **Migracija šablona** - Izvoz dinamičnih transakcionih šablona za upotrebu u Brevo
- **Verifikacija pošiljaoca** - Sinhronizacija verifikovanih identiteta pošiljaoca i autentifikacije domene
- **Sinhronizacija statistika** - Uvoz istorijskih statistika angažovanja u Brevo atribute

## Preduslovi

Pre nego što započneš, proveri da imaš:

1. SendGrid nalog (Free, Essentials, Pro ili Premier)
2. SendGrid API ključ sa potrebnim dozvolama
3. Brevo nalog sa API pristupom
4. Tajo nalog

## Autentifikacija

### Autentifikacija API ključem

SendGrid koristi autentifikaciju bearer tokenom.

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

Kreiraj API ključeve u SendGrid Settings > API Keys sa specifičnim nivoima dozvola:

- **Full Access** - Kompletan API pristup
- **Restricted Access** - Granularna kontrola dozvola
- **Billing Access** - Operacije samo za naplatu

#### Potrebne dozvole

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

Bezbednost API ključa

SendGrid API ključevi se prikazuju samo jednom pri kreiranju. Čuvaj ih na sigurnom mestu. Ako ih izgubiš, moraš kreirati novi ključ.

## Konfiguracija

### Osnovno podešavanje

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

### Mapiranje polja

Mapiranje polja SendGrid kontakata na Brevo atribute kontakta:

#### Default Mappings

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Email adresa kontakta (jedinstveni identifikator) |
| `first_name` optional | string | Mapira se na atribut FIRSTNAME |
| `last_name` optional | string | Mapira se na atribut LASTNAME |
| `phone_number` optional | string | Mapira se na atribut SMS |
| `city` optional | string | Grad kontakta |
| `country` optional | string | Zemlja kontakta |
| `custom_fields` optional | object | Parovi ključ-vrednost prilagođenih polja |
| `list_ids` optional | array | Članstvo na SendGrid listama |

#### Mapiranje prilagođenih polja

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

### Marketing kontakti

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `PUT` | `/v3/marketing/contacts` | Dodavanje ili ažuriranje kontakata |
| `POST` | `/v3/marketing/contacts/search` | Pretraga kontakata |
| `GET` | `/v3/marketing/contacts/count` | Dohvatanje broja kontakata |
| `POST` | `/v3/marketing/contacts/exports` | Izvoz kontakata |
| `DELETE` | `/v3/marketing/contacts` | Brisanje kontakata |
| `GET` | `/v3/marketing/lists` | Listanje svih listi kontakata |

### Transakcioni email (Mail Send)

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `POST` | `/v3/mail/send` | Slanje emaila |
| `GET` | `/v3/templates` | Listanje dinamičnih šablona |
| `GET` | `/v3/templates/{id}` | Dohvatanje detalja šablona |

### Kampanje (Single Sends)

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `/v3/marketing/singlesends` | Listanje Single Sends |
| `GET` | `/v3/marketing/singlesends/{id}` | Dohvatanje detalja Single Send |
| `GET` | `/v3/marketing/automations` | Listanje automatizacija |

### Statistike

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `/v3/stats` | Dohvatanje globalnih email statistika |
| `GET` | `/v3/categories/stats` | Dohvatanje statistika po kategoriji |
| `GET` | `/v3/marketing/stats/singlesends` | Dohvatanje statistika Single Send |

### Suzbijanja

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `/v3/suppression/bounces` | Listanje odbijenih emailova |
| `GET` | `/v3/suppression/blocks` | Listanje blokiranih emailova |
| `GET` | `/v3/suppression/spam_reports` | Listanje spam prijava |
| `GET` | `/v3/suppression/unsubscribes` | Listanje globalnih odjava |

## Događaji

### Email događaji (putem Event Webhook-a)

| Događaj | Okidač | Slučaj upotrebe |
| --- | --- | --- |
| `processed` | Email prihvaćen od strane SendGrid-a | Potvrda slanja |
| `delivered` | Email dostavljen primaocu | Praćenje dostave |
| `open` | Email otvoren | Ocenjivanje angažovanja |
| `click` | Veza kliknuta | Praćenje interesa |
| `bounce` | Email odbijen | Higijena liste |
| `dropped` | Email suzbijen | Pregled usklađenosti |
| `deferred` | Dostava odložena | Praćenje ponovnih pokušaja |
| `spam_report` | Označen kao spam | Upravljanje reputacijom |
| `unsubscribe` | Odjavljen putem veze | Sinhronizacija preferencija |

## Primeri koda

### Inicijalizacija konektora

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

### Migracija kontakata u 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
// }
```

### Prosleđivanje email događaja

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

## Ograničenja brzine

Ograničenja brzine SendGrid API-ja:

| Endpoint | Limit | Detalji |
| --- | --- | --- |
| Mail Send (`/v3/mail/send`) | Zavisi od plana | Free: 100/dan, Essentials: na osnovu plana |
| Marketing Contacts PUT | 3 zahteva/sekundi | Batch do 30.000 kontakata |
| Marketing Contacts Search | 50 zahteva/sekundi | Po API ključu |
| Opšti API | 1.000 zahteva/sekundi | Po API ključu |
| Event Webhook | Batch isporuka | Do 1.000 događaja po POST zahtevu |

Limiti Mail Send

Limiti Mail Send zavise od tvog SendGrid plana. Free nalozi su ograničeni na 100 emailova/dan. Proveri detalje svog plana za tačne limite slanja.

## Rešavanje problema

### Česti problemi

| Problem | Uzrok | Rešenje |
| --- | --- | --- |
| 401 Unauthorized | Nevažeći API ključ | Verifikuj API ključ u SendGrid Settings |
| 403 Forbidden | Nedovoljne dozvole API ključa | Kreiraj novi ključ sa potrebnim skopovima |
| Izvoz kontakata na čekanju | Obrada velikog skupa podataka | Ispitivaj endpoint statusa izvoza do završetka |
| Nepotpuna sinhronizacija suzbijanja | Potrebna paginacija | Implementiraj paginaciju sa offset parametrom |
| Webhook nije primljen | URL nije verifikovan | Završi verifikaciju webhook URL-a u SendGrid-u |

### Debug režim

Uključi detaljno logovanje:

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

### Testiraj vezu

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

## Najbolje prakse

1. **Najpre migrišu suzbijanja** - Osiguraj da su odbijanja, blokiranja i odjave u Brevo pre slanja
2. **Koristi batch uploadove kontakata** - PUT do 30.000 kontakata po zahtevu radi efikasnosti
3. **Verifikuj Event Webhook** - Omogući potpisane webhook-ove sa ECDSA verifikacijom
4. **Mapiraj prilagođena polja** - Kreiraj odgovarajuće Brevo atribute pre migracije kontakata
5. **Sinhronizuj podatke o angažovanju** - Uvezi istorijske statistike za segmentaciju u Brevo
6. **Obrađuj asinhroni izvoz** - Izvozi kontakata su asinhroni; ispitivaj do završetka

## Bezbednost

- **Autentifikacija API ključem** - Bearer token sa granularnim nivoima dozvola
- **Potpisivanje Event Webhook-a** - ECDSA verifikacija potpisa za webhook payloade
- **TLS enkripcija** - Sva API komunikacija enkriptovana putem HTTPS
- **Upravljanje IP pristupom** - Ograniči pristup Dashboard-u i API-ju po IP adresi
- **Dvofaktorska autentifikacija** - 2FA dostupna za pristup nalogu

## Povezani resursi

- [SendGrid API dokumentacija](https://docs.sendgrid.com/api-reference)
- [SendGrid Event Webhook vodič](https://docs.sendgrid.com/for-developers/tracking-events/event)
- [Brevo konektor](https://tajo.io/sr/docs/connectors/marketing/brevo)
- [Mailchimp konektor](https://tajo.io/sr/docs/connectors/marketing/mailchimp)
- [Customer Sync veština](https://tajo.io/sr/docs/skills/data-sync/customer-sync)
