Conector Salesforce

Conector Salesforce

Conecte seu Salesforce CRM ao Brevo via Tajo para sincronização de contatos de nível empresarial, gestão de leads, rastreamento de oportunidades e automação de marketing impulsionada pelos dados do seu CRM.

Visão geral

PropriedadeValor
PlataformaSalesforce
CategoriaCRM
Complexidade de configuraçãoAvançada
Integração oficialSim
Dados sincronizadosContatos, Leads, Contas, Oportunidades, Eventos
URL base da APIhttps://yourInstance.salesforce.com/services/data/vXX.0

Recursos

  • Sincronização bidirecional de contatos/leads - Sincronize contatos e leads do Salesforce com listas de contatos do Brevo
  • Rastreamento de oportunidades - Mapeie estágios e valores de negócios para segmentação baseada em receita
  • Hierarquia de contas - Sincronize contas de empresas para marketing baseado em conta no Brevo
  • Mapeamento de objetos personalizados - Mapeie objetos personalizados do Salesforce para atributos e eventos do Brevo
  • Sincronização de membros de campanha - Sincronize membros de campanha do Salesforce com listas do Brevo
  • Rastreamento de atividades - Sincronize tarefas, eventos e atividades de e-mail para pontuação de engajamento
  • Streaming em tempo real - Use a Streaming API do Salesforce para atualizações instantâneas de dados
  • Suporte a consultas SOQL - Filtre dados sincronizados com consultas SOQL personalizadas

Pré-requisitos

Antes de começar, certifique-se de que você tem:

  1. Uma org Salesforce (qualquer edição com acesso à API)
  2. Um Connected App configurado em Salesforce Setup
  3. Acesso à API habilitado para o perfil do seu usuário Salesforce
  4. Uma conta Brevo com acesso à API
  5. Uma conta Tajo

Autenticação

OAuth 2.0 Web Server Flow (Recomendado)

Ideal para integrações em produção com autorização do usuário.

Terminal window
# 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}"

Fluxo Username-Password

Para integrações servidor-para-servidor sem interação do usuário.

Terminal window
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}"

Token de segurança

O Salesforce exige anexar o token de segurança à sua senha para o fluxo username-password. Redefina seu token em Setup > My Personal Information > Reset My Security Token.

Configuração

Configuração básica

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

Mapeamento de campos

Mapeie campos do Salesforce para atributos de contato do Brevo:

Mapeamentos padrão

Parameter Type Description
Email required
string

E-mail do contato/lead (identificador único para o Brevo)

FirstName optional
string

Mapeia para o atributo FIRSTNAME no Brevo

LastName optional
string

Mapeia para o atributo LASTNAME no Brevo

Phone optional
string

Mapeia para o atributo SMS para mensagens WhatsApp/SMS

Account.Name optional
string

Nome da conta/empresa associada

LeadSource optional
string

Fonte de aquisição do lead

StageName optional
string

Estágio da oportunidade para rastreamento de negócios

OwnerId optional
string

Representante de vendas atribuído para roteamento

Mapeamento de campos personalizados

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

Endpoints da API

Recursos da REST API

MétodoEndpointDescrição
GET/services/data/vXX.0/sobjects/ContactConsultar contatos
POST/services/data/vXX.0/sobjects/ContactCriar um contato
PATCH/services/data/vXX.0/sobjects/Contact/{id}Atualizar um contato
GET/services/data/vXX.0/sobjects/LeadConsultar leads
GET/services/data/vXX.0/sobjects/AccountConsultar contas
GET/services/data/vXX.0/sobjects/OpportunityConsultar oportunidades
GET/services/data/vXX.0/query?q={SOQL}Executar consulta SOQL
POST/services/data/vXX.0/composite/sobjectsCriar/atualizar em lote

Bulk API

MétodoEndpointDescrição
POST/services/data/vXX.0/jobs/ingestCriar job de ingestão em massa
PUT/services/data/vXX.0/jobs/ingest/{jobId}/batchesEnviar dados em lote
GET/services/data/vXX.0/jobs/ingest/{jobId}Verificar status do job

Streaming API

EndpointDescrição
/cometd/XX.0Long-polling CometD para eventos em tempo real
PushTopicInscrever-se em mudanças de registro via tópicos baseados em SOQL
Change Data CaptureTransmitir mudanças granulares no nível de campo
Platform EventsArquitetura personalizada orientada a eventos

Eventos

Eventos de registro (Change Data Capture)

EventoGatilhoCaso de uso
ContactChangeEventContato criado/atualizado/excluídoSincronização de contatos em tempo real
LeadChangeEventLead criado/atualizado/convertidoRastreamento de ciclo de vida do lead
OpportunityChangeEventEstágio da oportunidade alteradoAutomação de pipeline de negócios
AccountChangeEventRegistro de conta modificadoSincronização de dados da empresa

Platform Events

EventoGatilhoCaso de uso
Lead_Converted__eLead convertido em contatoNutrição pós-conversão
Deal_Won__eOportunidade closed-wonFluxo de onboarding de cliente
Deal_Lost__eOportunidade closed-lostCampanhas de win-back

Exemplos de código

Inicializar o conector

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

Sincronizar contatos com filtro SOQL

// 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 em tempo real

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

Limites de taxa

Os limites da REST API do Salesforce dependem da sua edição e contagem de licenças:

EdiçãoRequisições de API por 24 horas
Developer15.000
Enterprise1.000 por licença de usuário (mínimo 15.000)
Unlimited5.000 por licença de usuário (mínimo 15.000)
Performance5.000 por licença de usuário (mínimo 15.000)

Limites adicionais:

  • Limite de API concorrente: 25 requisições de longa duração
  • Bulk API: 15.000 lotes por 24 horas
  • Streaming API: 2.000 eventos por dia (pode ser aumentado)
  • Composite API: 25 sub-requisições por requisição composta

Monitoramento de uso da API

Monitore seu uso da API em Salesforce Setup > System Overview. O Tajo usa a Bulk API para grandes sincronizações para conservar seus limites de API.

Solução de problemas

Problemas comuns

ProblemaCausaSolução
INVALID_SESSION_IDToken expiradoRenove o token OAuth automaticamente
REQUEST_LIMIT_EXCEEDEDLimite diário de API atingidoUse a Bulk API ou reduza a frequência de sincronização
FIELD_INTEGRITY_EXCEPTIONCampo obrigatório ausenteMapeie todos os campos obrigatórios na configuração
DUPLICATES_DETECTEDRegras de duplicados ativasConfigure as preferências de tratamento de duplicados
INSUFFICIENT_ACCESSPermissões de objeto ausentesConceda acesso à API no perfil do Salesforce

Modo de depuração

Habilite o log detalhado:

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

Testar conexão

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

Melhores práticas

  1. Use a Bulk API para grandes sincronizações - Mude para a Bulk API 2.0 para conjuntos de dados acima de 2.000 registros
  2. Implemente Change Data Capture - Use CDC para sincronização em tempo real em vez de polling
  3. Mapeie apenas os campos necessários - Reduza o uso da API sincronizando apenas campos obrigatórios
  4. Trate a renovação de token - Implemente lógica de renovação automática de token OAuth
  5. Use requisições compostas - Combine chamadas de API relacionadas para reduzir a contagem de requisições
  6. Teste primeiro em sandbox - Use uma org sandbox do Salesforce antes do deploy em produção

Segurança

  • OAuth 2.0 - Autorização padrão de mercado com múltiplos tipos de grant
  • Restrições de IP - O Salesforce suporta faixas de IP de login e configurações de IP confiáveis
  • TLS 1.2+ - Toda comunicação com a API é criptografada com TLS 1.2 no mínimo
  • Segurança em nível de campo - Controle granular de acesso a campos por perfil
  • Gerenciamento de sessão - Timeout de sessão configurável e limites de sessões concorrentes

Recursos relacionados

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

Assistente AI

Olá! Pergunte-me qualquer coisa sobre a documentação.

Comece grátis com Brevo