Pular para conteúdo

salesforce

fonte

lê objetos do salesforce (contas, oportunidades, leads, objetos customizados) via soql, com suporte a produção e sandbox.


quando usar

  • consolidar dados de crm (salesforce) com dados operacionais de outros sistemas em um único lakehouse
  • construir relatórios analíticos que cruzam pipeline de vendas (salesforce) com dados financeiros ou de produto
  • extrair objetos customizados do salesforce sem depender de exportação manual

configuração

campo tipo obrigatório descrição
credential_id uuid sim credencial salesforce criada em configurações → credenciais
domain enum não login (produção) ou test (sandbox) · padrão: login
object string não* objeto salesforce (ex: Account, Opportunity, Lead)
fields lista não campos a selecionar quando object é usado · padrão: ["Id"]
soql string não* soql completo — tem prioridade sobre object/fields

informe soql ou* object (com fields opcionais). se nenhum for informado, a extração falha.

extração incremental (watermark)

campo tipo descrição
watermark_column string coluna com timestamp/id crescente (ex: LastModifiedDate) — habilita extração incremental por alto-water-mark
watermark_var string variável de pipeline injetada com o último valor visto (padrão: watermark)

não é cdc

a extração incremental é por polling via soql — não é o change data capture nativo do salesforce (platform events / cdc). funciona bem quando o objeto tem um campo de última modificação confiável.


credencial salesforce

crie a credencial em configurações → credenciais com:

campo descrição
username usuário salesforce
password senha
security_token token de segurança (gerado em salesforce → configurações pessoais)
domain login (produção) ou test (sandbox) — pode ser sobrescrito na config do nó

exemplos

objeto simples com campos selecionados

{
  "credential_id": "uuid-da-credencial",
  "object": "Account",
  "fields": ["Id", "Name", "CreatedDate", "AnnualRevenue"],
  "domain": "login"
}

equivale a SELECT Id, Name, CreatedDate, AnnualRevenue FROM Account.

soql customizado com filtro

{
  "credential_id": "uuid-da-credencial",
  "soql": "SELECT Id, Name, StageName, Amount, CloseDate FROM Opportunity WHERE StageName = 'Closed Won' AND CloseDate = THIS_YEAR"
}

extração incremental

{
  "credential_id": "uuid-da-credencial",
  "soql": "SELECT Id, Name, LastModifiedDate FROM Lead WHERE LastModifiedDate > {{ pipeline.watermark }}",
  "watermark_column": "LastModifiedDate",
  "watermark_var": "watermark"
}

sandbox

{
  "credential_id": "uuid-da-credencial-sandbox",
  "object": "Contact",
  "fields": ["Id", "Email", "AccountId"],
  "domain": "test"
}

variáveis de pipeline

qualquer trecho de soql aceita {{variavel}}, resolvido antes da execução:

SELECT Id, Name FROM Opportunity
WHERE CloseDate >= {{data_inicio}} AND CloseDate <= {{data_fim}}

limites de api do salesforce

consultas soql muito amplas em objetos grandes (ex: Task, EmailMessage) podem esbarrar em limites de linhas/tempo da api do salesforce. prefira filtros por data e, quando possível, use extração incremental por watermark em vez de reler o objeto inteiro a cada execução.