---
title: "SendGrid-koppling"
description: "Komplett integrationsguide för SendGrid för att synka kontakter, transaktionsmejl, marknadsföringskampanjer och engagemangshändelser med Brevo via Tajo."
url: https://tajo.io/se/docs/connectors/marketing/sendgrid/
markdown: https://tajo.io/se/docs/connectors/marketing/sendgrid.md
lang: sv-SE
robots: noindex
---

Ansök om tidig åtkomst

Ange ditt förnamn och din e-postadress på jobbet. Vi skickar en länk för att bekräfta din begäran om åtkomst till Tajo.

# SendGrid-koppling

Kopplingens status: Under utveckling Byggs. Inte verifierad än.

| Källfält | Målfält | Exempelvärde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Anslut ditt SendGrid-konto till Brevo via Tajo för migrering av e-postinfrastruktur, kontaktsynkronisering, överföring av kampanjdata och enhetlig engagemangsanalys över båda plattformarna.

## Översikt

| Egenskap | Värde |
| --- | --- |
| **Plattform** | SendGrid (Twilio) |
| **Kategori** | Marknadsföring |
| **Installationskomplexitet** | Enkel |
| **Officiell integration** | Nej |
| **Data som synkas** | Kontakter, kampanjer, transaktionsmejl, händelser |
| **Bas-URL för API** | `https://api.sendgrid.com/v3` |

## Funktioner

- **Kontaktmigrering** - Migrera SendGrid Marketing-kontakter till Brevo med anpassade fält
- **Synk av transaktionsmejl** - Spåra transaktionsmejlhändelser för enhetlig rapportering
- **Kampanjdata** - Synka prestandadata från Single Send- och Automation-kampanjer
- **Händelse-webhooks** - Vidarebefordra e-posthändelser (delivered, opened, clicked, bounced) till Brevo
- **Suppression-synk** - Migrera studs-, block- och avprenumerationslistor för efterlevnad
- **Mallmigrering** - Exportera Dynamic Transactional Templates för användning i Brevo
- **Avsändarverifiering** - Synka verifierade avsändaridentiteter och domänautentisering
- **Statistiksynk** - Importera historisk engagemangsstatistik till Brevo-attribut

## Förutsättningar

Innan du börjar, se till att du har:

1. Ett SendGrid-konto (Free, Essentials, Pro eller Premier)
2. En SendGrid API-nyckel med nödvändiga behörigheter
3. Ett Brevo-konto med API-åtkomst
4. Ett Tajo-konto

## Autentisering

### API-nyckelautentisering

SendGrid använder bearer token-autentisering.

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

Skapa API-nycklar under SendGrid Settings > API Keys med specifika behörighetsnivåer:

- **Full Access** - Fullständig API-åtkomst
- **Restricted Access** - Granulär behörighetskontroll
- **Billing Access** - Endast faktureringsoperationer

#### Nödvändiga behörigheter

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

Säkerhet för API-nycklar

SendGrid API-nycklar visas endast en gång vid skapandet. Lagra dem säkert. Om de förloras måste du skapa en ny nyckel.

## Konfiguration

### Grundläggande konfiguration

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

### Fältmappning

Mappa SendGrid-kontaktfält till Brevo-kontaktattribut:

#### Standardmappningar

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Kontaktens e-postadress (unik identifierare) |
| `first_name` optional | string | Mappas till attributet FIRSTNAME |
| `last_name` optional | string | Mappas till attributet LASTNAME |
| `phone_number` optional | string | Mappas till SMS-attributet |
| `city` optional | string | Kontaktens stad |
| `country` optional | string | Kontaktens land |
| `custom_fields` optional | object | Nyckel-värde-par för anpassade fält |
| `list_ids` optional | array | SendGrid-listmedlemskap |

#### Anpassad fältmappning

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

### Marketing-kontakter

| Metod | Ändpunkt | Beskrivning |
| --- | --- | --- |
| `PUT` | `/v3/marketing/contacts` | Lägg till eller uppdatera kontakter |
| `POST` | `/v3/marketing/contacts/search` | Sök kontakter |
| `GET` | `/v3/marketing/contacts/count` | Hämta antal kontakter |
| `POST` | `/v3/marketing/contacts/exports` | Exportera kontakter |
| `DELETE` | `/v3/marketing/contacts` | Ta bort kontakter |
| `GET` | `/v3/marketing/lists` | Lista alla kontaktlistor |

### Transaktionsmejl (Mail Send)

| Metod | Ändpunkt | Beskrivning |
| --- | --- | --- |
| `POST` | `/v3/mail/send` | Skicka ett mejl |
| `GET` | `/v3/templates` | Lista Dynamic Templates |
| `GET` | `/v3/templates/{id}` | Hämta malldetaljer |

### Kampanjer (Single Sends)

| Metod | Ändpunkt | Beskrivning |
| --- | --- | --- |
| `GET` | `/v3/marketing/singlesends` | Lista Single Sends |
| `GET` | `/v3/marketing/singlesends/{id}` | Hämta Single Send-detaljer |
| `GET` | `/v3/marketing/automations` | Lista automationer |

### Statistik

| Metod | Ändpunkt | Beskrivning |
| --- | --- | --- |
| `GET` | `/v3/stats` | Hämta global e-poststatistik |
| `GET` | `/v3/categories/stats` | Hämta kategoristatistik |
| `GET` | `/v3/marketing/stats/singlesends` | Hämta Single Send-statistik |

### Suppressions

| Metod | Ändpunkt | Beskrivning |
| --- | --- | --- |
| `GET` | `/v3/suppression/bounces` | Lista studsade mejl |
| `GET` | `/v3/suppression/blocks` | Lista blockerade mejl |
| `GET` | `/v3/suppression/spam_reports` | Lista spam-rapporter |
| `GET` | `/v3/suppression/unsubscribes` | Lista globala avprenumerationer |

## Händelser

### E-posthändelser (via Event Webhook)

| Händelse | Utlösare | Användningsfall |
| --- | --- | --- |
| `processed` | E-post accepterad av SendGrid | Sändningsbekräftelse |
| `delivered` | E-post levererad till mottagare | Leveransspårning |
| `open` | E-post öppnad | Engagemangspoäng |
| `click` | Länk klickad | Intressespårning |
| `bounce` | E-post studsade | Listhygien |
| `dropped` | E-post undertryckt | Efterlevnadsgranskning |
| `deferred` | Leveransen försenad | Övervakning av omförsök |
| `spam_report` | Markerad som spam | Reputationshantering |
| `unsubscribe` | Avprenumererade via länk | Preferenssynk |

## Kodexempel

### Initiera kopplingen

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

### Migrera kontakter till 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
// }
```

### Vidarebefordra e-posthändelser

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

## API-gränser

Rate limits för SendGrid API:

| Ändpunkt | Gräns | Detaljer |
| --- | --- | --- |
| Mail Send (`/v3/mail/send`) | Beror på plan | Free: 100/dag, Essentials: baserat på plan |
| Marketing Contacts PUT | 3 förfrågningar/sekund | Batcha upp till 30 000 kontakter |
| Marketing Contacts Search | 50 förfrågningar/sekund | Per API-nyckel |
| Allmänt API | 1 000 förfrågningar/sekund | Per API-nyckel |
| Event Webhook | Batchleverans | Upp till 1 000 händelser per POST |

Mail Send-gränser

Mail Send-gränser beror på din SendGrid-plan. Gratiskonton är begränsade till 100 mejl/dag. Kontrollera dina plandetaljer för exakta utskicksgränser.

## Felsökning

### Vanliga problem

| Problem | Orsak | Lösning |
| --- | --- | --- |
| 401 Unauthorized | Ogiltig API-nyckel | Verifiera API-nyckeln i SendGrid Settings |
| 403 Forbidden | Otillräckliga behörigheter för API-nyckeln | Skapa ny nyckel med nödvändiga scopes |
| Kontaktexporten väntar | Bearbetning av stor datamängd | Pollla export-statusändpunkten tills den är klar |
| Ofullständig suppression-synk | Paginering krävs | Implementera paginering med offset-parameter |
| Event webhook tas inte emot | URL ej verifierad | Slutför verifiering av webhook-URL i SendGrid |

### Debug-läge

Aktivera utförlig loggning:

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

### Testa anslutningen

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

## Bästa praxis

1. **Migrera suppressions först** - Se till att studsar, blockeringar och avprenumerationer finns i Brevo innan utskick
2. **Använd batchuppladdning av kontakter** - PUT upp till 30 000 kontakter per förfrågan för effektivitet
3. **Verifiera Event Webhook** - Aktivera signerade webhooks med ECDSA-verifiering
4. **Mappa anpassade fält** - Skapa motsvarande Brevo-attribut innan kontaktmigrering
5. **Synka engagemangsdata** - Importera historisk statistik för segmentering i Brevo
6. **Hantera asynkrona exporter** - Kontaktexporter är asynkrona; pollla för att se när de är klara

## Säkerhet

- **API-nyckelautentisering** - Bearer token med granulära behörighetsnivåer
- **Signering av Event Webhook** - Verifiering av ECDSA-signaturer för webhook-payloads
- **TLS-kryptering** - All API-kommunikation krypteras via HTTPS
- **IP Access Management** - Begränsa dashboard- och API-åtkomst via IP
- **Tvåfaktorsautentisering** - 2FA tillgängligt för kontoåtkomst

## Relaterade resurser

- [SendGrid API-dokumentation](https://docs.sendgrid.com/api-reference)
- [SendGrid Event Webhook-guide](https://docs.sendgrid.com/for-developers/tracking-events/event)
- [Brevo-koppling](https://tajo.io/se/docs/connectors/marketing/brevo)
- [Mailchimp-koppling](https://tajo.io/se/docs/connectors/marketing/mailchimp)
- [Skill för kundsynk](https://tajo.io/se/docs/skills/data-sync/customer-sync)
