---
title: "Connettore Salesforce"
description: "Guida completa all'integrazione di Salesforce CRM per sincronizzare lead, contatti, account, opportunità e oggetti personalizzati con Brevo tramite Tajo."
url: https://tajo.io/it/docs/connectors/crm/salesforce/
markdown: https://tajo.io/it/docs/connectors/crm/salesforce.md
lang: it-IT
robots: noindex
---

Richiedi l’accesso anticipato

Inserisci il tuo nome e indirizzo email aziendale. Ti invieremo un link per confermare la richiesta di accesso a Tajo.

# Connettore Salesforce

Stato del connettore: Pianificato Non ancora realizzato. Oggi Tajo non esegue questo connettore.

| Campo di origine | Campo di destinazione | Valore di esempio |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Collega il tuo CRM Salesforce a Brevo tramite Tajo per una sincronizzazione contatti di livello enterprise, gestione lead, tracciamento opportunità e automazione marketing alimentata dai tuoi dati CRM.

## Panoramica

| Proprietà | Valore |
| --- | --- |
| **Piattaforma** | Salesforce |
| **Categoria** | CRM |
| **Complessità di setup** | Avanzata |
| **Integrazione ufficiale** | Sì |
| **Dati sincronizzati** | Contatti, Lead, Account, Opportunità, Eventi |
| **API Base URL** | `https://yourInstance.salesforce.com/services/data/vXX.0` |

## Funzionalità

- **Sincronizzazione bidirezionale contatti/lead** - Sincronizza contatti e lead Salesforce con le liste Brevo
- **Tracciamento opportunità** - Mappa stage e importi dei deal per la segmentazione basata sui ricavi
- **Gerarchia account** - Sincronizza gli account aziendali per account-based marketing in Brevo
- **Mappatura oggetti personalizzati** - Mappa gli oggetti personalizzati Salesforce agli attributi ed eventi Brevo
- **Sync dei campaign member** - Sincronizza i membri delle campagne Salesforce con le liste Brevo
- **Tracciamento attività** - Sincronizza task, eventi e attività email per l’engagement scoring
- **Streaming in tempo reale** - Usa la Salesforce Streaming API per aggiornamenti dati istantanei
- **Supporto query SOQL** - Filtra i dati sincronizzati con query SOQL personalizzate

## Prerequisiti

Prima di iniziare, assicurati di avere:

1. Una org Salesforce (qualsiasi edizione con accesso API)
2. Una Connected App configurata in Salesforce Setup
3. Accesso API abilitato per il profilo utente Salesforce
4. Un account Brevo con accesso API
5. Un account Tajo

## Autenticazione

### OAuth 2.0 Web Server Flow (consigliato)

Ideale per integrazioni in produzione con autorizzazione dell’utente.

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

Per integrazioni server-to-server senza interazione utente.

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

Security Token

Salesforce richiede di aggiungere il tuo security token alla password per il flusso username-password. Resetta il tuo token da Setup > My Personal Information > Reset My Security Token.

## Configurazione

### Setup di base

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

### Mappatura dei campi

Mappa i campi Salesforce agli attributi di contatto Brevo:

#### Mappature predefinite

| Parameter | Type | Description |
| --- | --- | --- |
| `Email` required | string | Email di Contact/Lead (identificatore univoco per Brevo) |
| `FirstName` optional | string | Mappato all'attributo FIRSTNAME in Brevo |
| `LastName` optional | string | Mappato all'attributo LASTNAME in Brevo |
| `Phone` optional | string | Mappato all'attributo SMS per messaggi WhatsApp/SMS |
| `Account.Name` optional | string | Nome dell'account/azienda associato |
| `LeadSource` optional | string | Sorgente di acquisizione del lead |
| `StageName` optional | string | Stage dell'opportunità per il tracciamento deal |
| `OwnerId` optional | string | Sales rep assegnato per il routing |

#### Mappatura campi personalizzati

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

## Endpoint API

### Risorse REST API

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `GET` | `/services/data/vXX.0/sobjects/Contact` | Query contatti |
| `POST` | `/services/data/vXX.0/sobjects/Contact` | Crea un contatto |
| `PATCH` | `/services/data/vXX.0/sobjects/Contact/{id}` | Aggiorna un contatto |
| `GET` | `/services/data/vXX.0/sobjects/Lead` | Query lead |
| `GET` | `/services/data/vXX.0/sobjects/Account` | Query account |
| `GET` | `/services/data/vXX.0/sobjects/Opportunity` | Query opportunità |
| `GET` | `/services/data/vXX.0/query?q={SOQL}` | Esegui query SOQL |
| `POST` | `/services/data/vXX.0/composite/sobjects` | Creazione/aggiornamento batch |

### Bulk API

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `POST` | `/services/data/vXX.0/jobs/ingest` | Crea job di ingest bulk |
| `PUT` | `/services/data/vXX.0/jobs/ingest/{jobId}/batches` | Carica dati batch |
| `GET` | `/services/data/vXX.0/jobs/ingest/{jobId}` | Verifica stato del job |

### Streaming API

| Endpoint | Descrizione |
| --- | --- |
| `/cometd/XX.0` | Long-polling CometD per eventi in tempo reale |
| PushTopic | Sottoscrivi i cambiamenti dei record tramite topic basati su SOQL |
| Change Data Capture | Stream di modifiche granulari a livello di campo |
| Platform Events | Architettura event-driven personalizzata |

## Eventi

### Eventi record (Change Data Capture)

| Evento | Trigger | Caso d’uso |
| --- | --- | --- |
| `ContactChangeEvent` | Contatto creato/aggiornato/eliminato | Sync contatti in tempo reale |
| `LeadChangeEvent` | Lead creato/aggiornato/convertito | Tracciamento lifecycle lead |
| `OpportunityChangeEvent` | Stage opportunità modificato | Automazione deal pipeline |
| `AccountChangeEvent` | Record account modificato | Sync dati aziendali |

### Platform Events

| Evento | Trigger | Caso d’uso |
| --- | --- | --- |
| `Lead_Converted__e` | Lead convertito in contatto | Nurture post-conversione |
| `Deal_Won__e` | Opportunità closed-won | Flusso onboarding cliente |
| `Deal_Lost__e` | Opportunità closed-lost | Campagne di win-back |

## Esempi di codice

### Inizializza il connettore

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

### Sincronizza contatti con filtro SOQL

```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 in tempo reale

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

## Limiti di velocità

I limiti della Salesforce REST API dipendono dalla tua edizione e dal numero di licenze:

| Edizione | Richieste API per 24 ore |
| --- | --- |
| Developer | 15.000 |
| Enterprise | 1.000 per licenza utente (min 15.000) |
| Unlimited | 5.000 per licenza utente (min 15.000) |
| Performance | 5.000 per licenza utente (min 15.000) |

Limiti aggiuntivi:

- **Limite API concorrenti**: 25 richieste long-running
- **Bulk API**: 15.000 batch per 24 ore
- **Streaming API**: 2.000 eventi al giorno (possono essere aumentati)
- **Composite API**: 25 subrequest per richiesta composite

Monitoraggio uso API

Monitora l’utilizzo delle API in Salesforce Setup > System Overview. Tajo usa la bulk API per le sync grandi per risparmiare i tuoi limiti API.

## Risoluzione dei problemi

### Problemi comuni

| Problema | Causa | Soluzione |
| --- | --- | --- |
| INVALID\_SESSION\_ID | Token scaduto | Aggiorna automaticamente il token OAuth |
| REQUEST\_LIMIT\_EXCEEDED | Limite API giornaliero raggiunto | Usa Bulk API o riduci la frequenza di sync |
| FIELD\_INTEGRITY\_EXCEPTION | Campo obbligatorio mancante | Mappa tutti i campi obbligatori in configurazione |
| DUPLICATES\_DETECTED | Regole di duplicazione attive | Configura le preferenze di gestione duplicati |
| INSUFFICIENT\_ACCESS | Permessi oggetto mancanti | Concedi l’accesso API nel profilo Salesforce |

### Modalità debug

Abilita il logging dettagliato:

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

### Testa la connessione

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

## Best practice

1. **Usa Bulk API per sync grandi** - Passa a Bulk API 2.0 per dataset oltre i 2.000 record
2. **Implementa Change Data Capture** - Usa CDC per la sync in tempo reale invece del polling
3. **Mappa solo i campi necessari** - Riduci l’uso dell’API sincronizzando solo i campi richiesti
4. **Gestisci il refresh del token** - Implementa la logica di refresh automatico del token OAuth
5. **Usa richieste composite** - Combina chiamate API correlate per ridurre il numero di richieste
6. **Testa prima in sandbox** - Usa una org sandbox di Salesforce prima del deployment in produzione

## Sicurezza

- **OAuth 2.0** - Autorizzazione standard del settore con più tipi di grant
- **Restrizioni IP** - Salesforce supporta login IP range e trusted IP settings
- **TLS 1.2+** - Tutte le comunicazioni API cifrate con TLS 1.2 minimo
- **Sicurezza a livello di campo** - Controllo granulare degli accessi ai campi per profilo
- **Gestione sessioni** - Timeout sessione configurabile e limiti di sessione concorrenti

## Risorse correlate

- [Documentazione Salesforce REST API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_rest.htm)
- [Guida Salesforce Bulk API 2.0](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_intro.htm)
- [Connettore HubSpot](https://tajo.io/it/docs/connectors/crm/hubspot)
- [Skill Customer Sync](https://tajo.io/it/docs/skills/data-sync/customer-sync)
- [API Contatti Brevo](https://tajo.io/it/docs/contact-management)
