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:
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.