---
title: "Salesforce-koppling"
description: "Komplett integrationsguide för Salesforce CRM för att synkronisera leads, kontakter, konton, affärsmöjligheter och anpassade objekt med Brevo via Tajo."
url: https://tajo.io/se/docs/connectors/crm/salesforce/
markdown: https://tajo.io/se/docs/connectors/crm/salesforce.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.

# Salesforce-koppling

Kopplingens status: Planerad Inte byggd än. Tajo kör inte den här kopplingen i dag.

| 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 Salesforce CRM till Brevo via Tajo för kontaktsynkronisering på företagsnivå, leadhantering, uppföljning av affärsmöjligheter och marknadsautomation driven av din CRM-data.

## Översikt

| Egenskap | Värde |
| --- | --- |
| **Plattform** | Salesforce |
| **Kategori** | CRM |
| **Installationskomplexitet** | Avancerad |
| **Officiell integration** | Nej |
| **Data som synkas** | Kontakter, leads, konton, affärsmöjligheter, händelser |
| **API bas-URL** | `https://yourInstance.salesforce.com/services/data/vXX.0` |

## Funktioner

- **Dubbelriktad synk av kontakter/leads** - Synkronisera Salesforce-kontakter och leads med Brevo-kontaktlistor
- **Uppföljning av affärsmöjligheter** - Mappa affärsstadier och belopp för intäktsbaserad segmentering
- **Kontohierarki** - Synka företagskonton för kontobaserad marknadsföring i Brevo
- **Mappning av anpassade objekt** - Mappa Salesforce-anpassade objekt till Brevo-attribut och händelser
- **Synkronisering av kampanjmedlemmar** - Synka medlemmar i Salesforce-kampanjer med Brevo-listor
- **Aktivitetsspårning** - Synka uppgifter, händelser och e-postaktiviteter för engagemangsscoring
- **Realtidsstreaming** - Använd Salesforce Streaming API för omedelbara datauppdateringar
- **SOQL-stöd för frågor** - Filtrera synkad data med anpassade SOQL-frågor

## Förutsättningar

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

1. En Salesforce-org (valfri utgåva med API-åtkomst)
2. En Connected App konfigurerad i Salesforce Setup
3. API-åtkomst aktiverad för din Salesforce-användarprofil
4. Ett Brevo-konto med API-åtkomst
5. Ett Tajo-konto

## Autentisering

### OAuth 2.0 Web Server-flöde (rekommenderas)

Bäst för produktionsintegrationer med användargodkännande.

```bash
# Step 1: Authorize
https://login.salesforce.com/services/oauth2/authorize?
  response_type=code&
  client_id={consumer_key}&
  redirect_uri={callback_url}

# Step 2: Exchange code for tokens
curl -X POST https://login.salesforce.com/services/oauth2/token \
  -d "grant_type=authorization_code" \
  -d "code={auth_code}" \
  -d "client_id={consumer_key}" \
  -d "client_secret={consumer_secret}" \
  -d "redirect_uri={callback_url}"
```

### Användarnamn-lösenordsflöde

För server-till-server-integrationer utan användarinteraktion.

```bash
curl -X POST https://login.salesforce.com/services/oauth2/token \
  -d "grant_type=password" \
  -d "client_id={consumer_key}" \
  -d "client_secret={consumer_secret}" \
  -d "username={username}" \
  -d "password={password}{security_token}"
```

Säkerhetstoken

Salesforce kräver att du lägger till din säkerhetstoken efter ditt lösenord för användarnamn-lösenordsflödet. Återställ din token från Setup > My Personal Information > Reset My Security Token.

## Konfiguration

### Grundinställning

```yaml
connectors:
  salesforce:
    enabled: true
    instance_url: "https://yourorg.my.salesforce.com"
    api_version: "v59.0"
    auth:
      type: oauth2
      consumer_key: "${SF_CONSUMER_KEY}"
      consumer_secret: "${SF_CONSUMER_SECRET}"
      refresh_token: "${SF_REFRESH_TOKEN}"

    # Data sync options
    sync:
      contacts: true
      leads: true
      accounts: true
      opportunities: true
      campaigns: true

    # Sync direction
    direction: salesforce_to_brevo

    # Brevo list assignment
    lists:
      all_leads: 15
      qualified_leads: 16
      customers: 17
```

### Fältmappning

Mappa Salesforce-fält till Brevo-kontaktattribut:

#### Standardmappningar

| Parameter | Type | Description |
| --- | --- | --- |
| `Email` required | string | Kontakt-/lead-e-post (unik identifierare för Brevo) |
| `FirstName` optional | string | Mappas till attributet FIRSTNAME i Brevo |
| `LastName` optional | string | Mappas till attributet LASTNAME i Brevo |
| `Phone` optional | string | Mappas till attributet SMS för WhatsApp/SMS-meddelanden |
| `Account.Name` optional | string | Tillhörande konto-/företagsnamn |
| `LeadSource` optional | string | Källa för leadförvärv |
| `StageName` optional | string | Stadium för affärsmöjlighet för uppföljning av affärer |
| `OwnerId` optional | string | Tilldelad säljare för routing |

#### Mappning av anpassade fält

```yaml
field_mapping:
  # Standard fields
  Email: email
  FirstName: FIRSTNAME
  LastName: LASTNAME
  Phone: SMS

  # CRM fields
  LeadSource: LEAD_SOURCE
  Lead_Score__c: LEAD_SCORE
  Account.Name: COMPANY_NAME
  Account.Industry: INDUSTRY

  # Opportunity fields
  Amount: DEAL_VALUE
  StageName: DEAL_STAGE
  CloseDate: EXPECTED_CLOSE_DATE

  # Custom fields
  Preferred_Channel__c: PREFERRED_CHANNEL
  Customer_Tier__c: VIP_TIER
```

## API-endpoints

### REST API-resurser

| Metod | Endpoint | Beskrivning |
| --- | --- | --- |
| `GET` | `/services/data/vXX.0/sobjects/Contact` | Fråga kontakter |
| `POST` | `/services/data/vXX.0/sobjects/Contact` | Skapa en kontakt |
| `PATCH` | `/services/data/vXX.0/sobjects/Contact/{id}` | Uppdatera en kontakt |
| `GET` | `/services/data/vXX.0/sobjects/Lead` | Fråga leads |
| `GET` | `/services/data/vXX.0/sobjects/Account` | Fråga konton |
| `GET` | `/services/data/vXX.0/sobjects/Opportunity` | Fråga affärsmöjligheter |
| `GET` | `/services/data/vXX.0/query?q={SOQL}` | Kör SOQL-fråga |
| `POST` | `/services/data/vXX.0/composite/sobjects` | Batch-skapa/uppdatera |

### Bulk API

| Metod | Endpoint | Beskrivning |
| --- | --- | --- |
| `POST` | `/services/data/vXX.0/jobs/ingest` | Skapa bulk-ingestjobb |
| `PUT` | `/services/data/vXX.0/jobs/ingest/{jobId}/batches` | Ladda upp batch-data |
| `GET` | `/services/data/vXX.0/jobs/ingest/{jobId}` | Kontrollera jobbstatus |

### Streaming API

| Endpoint | Beskrivning |
| --- | --- |
| `/cometd/XX.0` | CometD long-polling för händelser i realtid |
| PushTopic | Prenumerera på poständringar via SOQL-baserade ämnen |
| Change Data Capture | Streama granulära ändringar på fältnivå |
| Platform Events | Anpassad händelsedriven arkitektur |

## Händelser

### Posthändelser (Change Data Capture)

| Händelse | Utlösare | Användningsfall |
| --- | --- | --- |
| `ContactChangeEvent` | Kontakt skapad/uppdaterad/raderad | Kontaktsynk i realtid |
| `LeadChangeEvent` | Lead skapad/uppdaterad/konverterad | Spårning av leadlivscykel |
| `OpportunityChangeEvent` | Stadium för affärsmöjlighet ändrat | Automation av affärspipeline |
| `AccountChangeEvent` | Kontopost modifierad | Synkronisering av företagsdata |

### Platform Events

| Händelse | Utlösare | Användningsfall |
| --- | --- | --- |
| `Lead_Converted__e` | Lead konverterad till kontakt | Nurture efter konvertering |
| `Deal_Won__e` | Affärsmöjlighet vunnen | Flöde för kundonboarding |
| `Deal_Lost__e` | Affärsmöjlighet förlorad | Win-back-kampanjer |

## 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 Salesforce
await tajo.connectors.connect('salesforce', {
  instanceUrl: 'https://yourorg.my.salesforce.com',
  consumerKey: process.env.SF_CONSUMER_KEY,
  consumerSecret: process.env.SF_CONSUMER_SECRET,
  refreshToken: process.env.SF_REFRESH_TOKEN
});
```

### Synka kontakter med SOQL-filter

```javascript
// Sync only qualified leads from Salesforce
await tajo.connectors.sync('salesforce', {
  type: 'filtered',
  resources: ['leads'],
  filter: "SELECT Id, Email, FirstName, LastName, LeadScore__c FROM Lead WHERE Status = 'Qualified' AND Email != null",
  brevoListId: 16
});

// Check sync status
const status = await tajo.connectors.status('salesforce');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   contactsSynced: 18400,
//   leadsSynced: 7200,
//   opportunitiesSynced: 3100
// }
```

### Streaming i realtid

```javascript
// Subscribe to Salesforce Change Data Capture
await tajo.connectors.stream('salesforce', {
  channels: [
    '/data/ContactChangeEvent',
    '/data/LeadChangeEvent',
    '/data/OpportunityChangeEvent'
  ],
  handler: async (event) => {
    console.log(`Change detected: ${event.entity} ${event.changeType}`);
    // Automatically synced to Brevo by Tajo
  }
});
```

## Hastighetsbegränsningar

Gränser för Salesforce REST API beror på din utgåva och antal licenser:

| Utgåva | API-förfrågningar per 24 timmar |
| --- | --- |
| Developer | 15 000 |
| Enterprise | 1 000 per användarlicens (min 15 000) |
| Unlimited | 5 000 per användarlicens (min 15 000) |
| Performance | 5 000 per användarlicens (min 15 000) |

Ytterligare gränser:

- **Gräns för samtidiga API**: 25 långvariga förfrågningar
- **Bulk API**: 15 000 batcher per 24 timmar
- **Streaming API**: 2 000 händelser per dag (kan utökas)
- **Composite API**: 25 delförfrågningar per composite-förfrågan

Övervakning av API-användning

Övervaka din API-användning i Salesforce Setup > System Overview. Tajo använder bulk-API för stora synkar för att spara dina API-gränser.

## Felsökning

### Vanliga problem

| Problem | Orsak | Lösning |
| --- | --- | --- |
| INVALID\_SESSION\_ID | Token utgången | Uppdatera OAuth-token automatiskt |
| REQUEST\_LIMIT\_EXCEEDED | Daglig API-gräns nådd | Använd Bulk API eller minska synkfrekvensen |
| FIELD\_INTEGRITY\_EXCEPTION | Obligatoriskt fält saknas | Mappa alla obligatoriska fält i konfigurationen |
| DUPLICATES\_DETECTED | Dubblettregler aktiva | Konfigurera inställningar för dubletthantering |
| INSUFFICIENT\_ACCESS | Saknar objektbehörigheter | Bevilja API-åtkomst i Salesforce-profilen |

### Felsökningsläge

Aktivera utförlig loggning:

```yaml
connectors:
  salesforce:
    debug: true
    log_level: verbose
    log_api_calls: true
```

### Testa anslutning

```bash
tajo connectors test salesforce
# ✓ OAuth token valid
# ✓ Contacts accessible
# ✓ Leads accessible
# ✓ Accounts accessible
# ✓ Opportunities accessible
# ✓ Bulk API enabled
```

## Bästa praxis

1. **Använd Bulk API för stora synkar** - Byt till Bulk API 2.0 för dataset över 2 000 poster
2. **Implementera Change Data Capture** - Använd CDC för synk i realtid istället för polling
3. **Mappa endast nödvändiga fält** - Minska API-användningen genom att endast synka nödvändiga fält
4. **Hantera tokenuppdatering** - Implementera automatisk logik för att uppdatera OAuth-token
5. **Använd composite-förfrågningar** - Kombinera relaterade API-anrop för att minska antalet förfrågningar
6. **Testa i sandbox först** - Använd en Salesforce-sandbox-org innan produktionsdistribution

## Säkerhet

- **OAuth 2.0** - Industristandard för auktorisering med flera grant-typer
- **IP-begränsningar** - Salesforce stöder inloggnings-IP-intervall och betrodda IP-inställningar
- **TLS 1.2+** - All API-kommunikation krypterad med minst TLS 1.2
- **Säkerhet på fältnivå** - Granulär åtkomstkontroll per fält per profil
- **Sessionshantering** - Konfigurerbar sessionstimeout och gränser för samtidiga sessioner

## Relaterade resurser

- [Dokumentation för Salesforce REST API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_rest.htm)
- [Guide till Salesforce Bulk API 2.0](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_intro.htm)
- [HubSpot-koppling](https://tajo.io/se/docs/connectors/crm/hubspot)
- [Skill för kundsynkronisering](https://tajo.io/se/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/se/docs/contact-management)
