---
title: "Salesforce konektor"
description: "Kompletan vodič za Salesforce CRM integraciju za sinhronizaciju leadova, kontakata, naloga, mogućnosti i prilagođenih objekata sa Brevo putem Tajo."
url: https://tajo.io/sr/docs/connectors/crm/salesforce/
markdown: https://tajo.io/sr/docs/connectors/crm/salesforce.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.

# Salesforce konektor

Status konektora: Planirano Još nije izrađeno. Tajo danas ne pokreće ovaj konektor.

| 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 Salesforce CRM sa Brevo putem Tajo za enterprise-grade sinhronizaciju kontakata, upravljanje leadovima, praćenje mogućnosti i marketing automatizaciju pokretanu tvojim CRM podacima.

## Pregled

| Svojstvo | Vrednost |
| --- | --- |
| **Platforma** | Salesforce |
| **Kategorija** | CRM |
| **Složenost podešavanja** | Napredno |
| **Zvanična integracija** | Ne |
| **Sinhronizovani podaci** | Kontakti, Leadovi, Nalozi, Mogućnosti, Događaji |
| **Osnovni URL API-ja** | `https://yourInstance.salesforce.com/services/data/vXX.0` |

## Karakteristike

- **Dvosrna sinhronizacija kontakata/leadova** - Sinhronizuj Salesforce kontakte i leadove sa Brevo listama kontakata
- **Praćenje mogućnosti** - Mapiranje faza i iznosa poslova za segmentaciju zasnovanu na prihodu
- **Hijerarhija naloga** - Sinhronizuj poslovne naloge za account-based marketing u Brevo
- **Mapiranje prilagođenih objekata** - Mapiranje Salesforce prilagođenih objekata na Brevo atribute i događaje
- **Sinhronizacija članova kampanje** - Sinhronizuj Salesforce članove kampanje sa Brevo listama
- **Praćenje aktivnosti** - Sinhronizuj zadatke, događaje i email aktivnosti za ocenjivanje angažovanja
- **Streaming u realnom vremenu** - Koristi Salesforce Streaming API za trenutna ažuriranja podataka
- **Podrška za SOQL upite** - Filtriraj sinhronizovane podatke prilagođenim SOQL upitima

## Preduslovi

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

1. Salesforce organizaciju (bilo koje izdanje sa API pristupom)
2. Konfigurisanu Connected App u Salesforce Setup
3. API pristup omogućen za tvoj Salesforce korisnički profil
4. Brevo nalog sa API pristupom
5. Tajo nalog

## Autentifikacija

### OAuth 2.0 Web Server tok (preporučeno)

Najbolje za produkcione integracije sa autorizacijom korisnika.

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

### Username-Password tok

Za server-to-server integracije bez interakcije korisnika.

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

Bezbednosni token

Salesforce zahteva dodavanje bezbednosnog tokena na lozinku za username-password tok. Resetuj token iz Setup > My Personal Information > Reset My Security Token.

## Konfiguracija

### Osnovno podešavanje

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

### Mapiranje polja

Mapiranje Salesforce polja na Brevo atribute kontakta:

#### Default Mappings

| Parameter | Type | Description |
| --- | --- | --- |
| `Email` required | string | Email kontakta/leada (jedinstveni identifikator za Brevo) |
| `FirstName` optional | string | Mapira se na FIRSTNAME atribut u Brevo |
| `LastName` optional | string | Mapira se na LASTNAME atribut u Brevo |
| `Phone` optional | string | Mapira se na SMS atribut za WhatsApp/SMS poruke |
| `Account.Name` optional | string | Naziv pridruženog naloga/kompanije |
| `LeadSource` optional | string | Izvor akvizicije leada |
| `StageName` optional | string | Faza mogućnosti za praćenje poslova |
| `OwnerId` optional | string | Dodeljeni prodajni predstavnik za rutiranje |

#### Mapiranje prilagođenih polja

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

### REST API resursi

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `/services/data/vXX.0/sobjects/Contact` | Upit kontakata |
| `POST` | `/services/data/vXX.0/sobjects/Contact` | Kreiranje kontakta |
| `PATCH` | `/services/data/vXX.0/sobjects/Contact/{id}` | Ažuriranje kontakta |
| `GET` | `/services/data/vXX.0/sobjects/Lead` | Upit leadova |
| `GET` | `/services/data/vXX.0/sobjects/Account` | Upit naloga |
| `GET` | `/services/data/vXX.0/sobjects/Opportunity` | Upit mogućnosti |
| `GET` | `/services/data/vXX.0/query?q={SOQL}` | Izvršavanje SOQL upita |
| `POST` | `/services/data/vXX.0/composite/sobjects` | Grupno kreiranje/ažuriranje |

### Bulk API

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `POST` | `/services/data/vXX.0/jobs/ingest` | Kreiranje bulk ingest posla |
| `PUT` | `/services/data/vXX.0/jobs/ingest/{jobId}/batches` | Otpremanje batch podataka |
| `GET` | `/services/data/vXX.0/jobs/ingest/{jobId}` | Provera statusa posla |

### Streaming API

| Endpoint | Opis |
| --- | --- |
| `/cometd/XX.0` | CometD long-polling za događaje u realnom vremenu |
| PushTopic | Pretplata na promene zapisa putem SOQL tema |
| Change Data Capture | Striming finih promena na nivou polja |
| Platform Events | Prilagođena arhitektura zasnovana na događajima |

## Događaji

### Događaji zapisa (Change Data Capture)

| Događaj | Okidač | Primer upotrebe |
| --- | --- | --- |
| `ContactChangeEvent` | Kontakt kreiran/ažuriran/obrisan | Sinhronizacija kontakata u realnom vremenu |
| `LeadChangeEvent` | Lead kreiran/ažuriran/konvertovan | Praćenje životnog ciklusa leada |
| `OpportunityChangeEvent` | Faza mogućnosti promenjena | Automatizacija deal pipelinea |
| `AccountChangeEvent` | Zapis naloga izmenjen | Sinhronizacija podataka kompanije |

### Platform Events

| Događaj | Okidač | Primer upotrebe |
| --- | --- | --- |
| `Lead_Converted__e` | Lead konvertovan u kontakt | Nurture nakon konverzije |
| `Deal_Won__e` | Mogućnost zatvorena-dobijena | Tok onboardinga kupca |
| `Deal_Lost__e` | Mogućnost zatvorena-izgubljena | Win-back kampanje |

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

### Sinhronizacija kontakata sa SOQL filterom

```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 u realnom vremenu

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

## Ograničenja brzine

Salesforce REST API limiti zavise od tvog izdanja i broja licenci:

| Izdanje | API zahtevi na 24 sata |
| --- | --- |
| Developer | 15.000 |
| Enterprise | 1.000 po korisničkoj licenci (min 15.000) |
| Unlimited | 5.000 po korisničkoj licenci (min 15.000) |
| Performance | 5.000 po korisničkoj licenci (min 15.000) |

Dodatna ograničenja:

- **Limit istovremenih API zahteva**: 25 dugotrajnih zahteva
- **Bulk API**: 15.000 batch-eva na 24 sata
- **Streaming API**: 2.000 događaja dnevno (može se povećati)
- **Composite API**: 25 podzahteva po composite zahtevu

Praćenje korišćenja API-ja

Prati korišćenje API-ja u Salesforce Setup > System Overview. Tajo koristi bulk API za velike sinhronizacije kako bi sačuvao tvoje API limite.

## Rešavanje problema

### Česti problemi

| Problem | Uzrok | Rešenje |
| --- | --- | --- |
| INVALID\_SESSION\_ID | Token istekao | Automatski osvježi OAuth token |
| REQUEST\_LIMIT\_EXCEEDED | Dostignut dnevni API limit | Koristi Bulk API ili smanji učestalost sinhronizacije |
| FIELD\_INTEGRITY\_EXCEPTION | Nedostaje obavezno polje | Mapiraj sva obavezna polja u konfiguraciji |
| DUPLICATES\_DETECTED | Aktivna pravila za duplikate | Konfiguriši podešavanja za obradu duplikata |
| INSUFFICIENT\_ACCESS | Nedostaju dozvole za objekat | Dodeli API pristup u Salesforce profilu |

### Debug režim

Uključi detaljno logovanje:

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

### Testiraj vezu

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

## Najbolje prakse

1. **Koristi Bulk API za velike sinhronizacije** - Prebaci se na Bulk API 2.0 za skupove podataka veće od 2.000 zapisa
2. **Implementiraj Change Data Capture** - Koristi CDC za sinhronizaciju u realnom vremenu umesto ispitivanja
3. **Mapiraj samo potrebna polja** - Smanji korišćenje API-ja sinhronizovanjem samo potrebnih polja
4. **Obrada osvežavanja tokena** - Implementiraj automatsku logiku osvežavanja OAuth tokena
5. **Koristi composite zahteve** - Kombinuj srodne API pozive kako bi smanjio broj zahteva
6. **Prvo testiraj u sandbox okruženju** - Koristi Salesforce sandbox organizaciju pre produkcijskog postavljanja

## Bezbednost

- **OAuth 2.0** - Standardna autorizacija sa više tipova dozvola
- **IP ograničenja** - Salesforce podržava login IP opsege i podešavanja pouzdanih IP adresa
- **TLS 1.2+** - Sva API komunikacija enkriptovana sa minimalnim TLS 1.2
- **Bezbednost na nivou polja** - Granularna kontrola pristupa polju po profilu
- **Upravljanje sesijom** - Konfigurisano isticanje sesije i ograničenja istovremenih sesija

## Povezani resursi

- [Salesforce REST API dokumentacija](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_rest.htm)
- [Salesforce Bulk API 2.0 vodič](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_intro.htm)
- [HubSpot konektor](https://tajo.io/sr/docs/connectors/crm/hubspot)
- [Customer Sync veština](https://tajo.io/sr/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/sr/docs/contact-management)
