# Salesforce

O conector **Salesforce** permite realizar operações na plataforma Salesforce.

## **Parâmetros**

Dê uma olhada nos parâmetros de configuração do conector. Parâmetros suportados por [expressões Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados com `(DB)`.

### **Aba General**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Fail On Error</strong></td><td>Se ativado, interrompe a execução do pipeline ao ocorrer um erro. Se desativado, a execução continua, mas a propriedade <code>"success"</code> será definida como <code>false</code>.</td><td>False</td><td>Booleano</td></tr></tbody></table>

### **Aba Authentication**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Salesforce Login URL</strong> <code>(DB)</code></td><td>URL usada para autenticação no Salesforce.</td><td>N/A</td><td>String</td></tr><tr><td><strong>Salesforce Client Account</strong></td><td>Conta do Connected App com o ID do cliente. Tipo suportado: <strong>OAuth Provider</strong>.</td><td>N/A</td><td>Account</td></tr><tr><td><strong>OAuth Authentication Flow</strong></td><td>Tipo de autenticação usada no app do Salesforce: <strong>JWT Bearer Token Flow</strong> ou <strong>Username-Password Flow</strong>.</td><td>N/A</td><td>String</td></tr><tr><td><strong>Operation Account</strong></td><td>Conta usada para realizar operações no Salesforce. Contas suportadas: <strong>Basic</strong>, <strong>Certificate-Chain.</strong></td><td>N/A</td><td>Account</td></tr><tr><td><strong>Subject</strong></td><td>Usuário usado para autenticação com o app do Salesforce. Disponível apenas com o <strong>JWT Bearer Token Flow</strong>.</td><td>N/A</td><td>String</td></tr></tbody></table>

### **Aba Salesforce API**

O conector **Salesforce** pode recuperar automaticamente todas as entidades disponíveis na plataforma Salesforce para simplificar a configuração.

{% hint style="warning" %}
**Informações importantes:**

* Para usar esse recurso, é necessário configurar uma conta e uma URL válidas do Salesforce. Se nenhuma conta for selecionada em **Operation Account** ou se as credenciais forem inválidas, o conector muda automaticamente para o modo **RAW**, que exige configuração manual.
* Em [**Cápsulas**](/documentation/developer-guide/pt-br/development-cycle/build-overview/capsulas.md), apenas o modo **RAW** é suportado. Isso significa que todas as configurações, incluindo o parâmetro **API Version**, devem ser feitas manualmente. O uso da sintaxe [Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) é suportado.
  {% endhint %}

#### **Reutilização do AuthToken**

Ao acessar a aba **Salesforce API**, o conector gera um token de acesso com validade limitada, que pode expirar.

Para evitar a regeneração frequente do token, a Digibee oferece a funcionalidade de **AuthToken Reuse** para o fluxo username-password. Isso permite configurar uma nova conexão no portal do Salesforce e reutilizar o token existente.

Veja [como configurar esse mecanismo](/documentation/connectors-and-triggers/pt-br/connectors/enterprise-applications/salesforce/authtoken-reuse-salesforce.md).

#### **Parâmetros da aba Salesforce API**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>API Version</strong></td><td>Versão da API do Salesforce.</td><td>{latest version}</td><td>String</td></tr><tr><td><strong>API Protocol</strong></td><td>API do Salesforce a ser usada: <strong>Bulk</strong>, <strong>Bulk 2.0</strong>, <strong>RAW</strong> e <strong>Rest</strong>.</td><td>N/A</td><td>String</td></tr><tr><td><strong>Operation</strong></td><td>Operação a ser executada na API do Salesforce. Veja abaixo, em uma seção dedicada, as opções disponíveis para cada tipo de API.</td><td>N/A</td><td>String</td></tr></tbody></table>

#### **Parâmetros do modo RAW**

Quando o **API Protocol** está definido como **RAW**, os seguintes parâmetros devem ser configurados manualmente:

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Method</strong></td><td>Método HTTP a ser utilizado.</td><td><code>GET</code></td><td>String</td></tr><tr><td><strong>Path</strong> <code>(DB)</code></td><td>Caminho do endpoint da API do Salesforce. Certifique-se de incluir a versão da API no caminho.</td><td><code>/services/data/v51/sobjects/Account/</code></td><td>String</td></tr><tr><td><strong>Headers</strong> <code>(DB)</code></td><td>Cabeçalhos da requisição necessários.</td><td><code>Content-Type: application/json</code></td><td>String</td></tr><tr><td><strong>Object Fields</strong></td><td>Lista de chaves que devem corresponder às definidas no campo <strong>Headers</strong>. Essas chaves são obrigatórias aqui para garantir o processamento correto da requisição. Se um header não estiver listado neste campo, ele não será incluído na requisição.</td><td><code>Content-Type</code></td><td>String</td></tr><tr><td><strong>Body</strong> <code>(DB)</code></td><td>Corpo da requisição.</td><td>N/A</td><td>JSON</td></tr></tbody></table>

#### **Operações disponíveis por tipo de API**

**Bulk:**

* Abort Job
* Close Job
* Create Batch
* Create Batch Query
* Create Job
* Get All Batches
* Get Batch
* Get Job
* Get Query Result
* Get Query Result Ids
* Get Request
* Get Results

**Bulk 2.0:**

* Abort Job
* Abort Query Job
* Close Job
* Create Batch
* Create Job
* Create Query Job
* Delete Job
* Delete Query Job
* Get All Jobs
* Get All Query Jobs
* Get Failed Results
* Get Job
* Get Query Job
* Get Query Job Results
* Get Successful Results
* Get Unprocessed Records

**Rest:**

* Apex Call
* Approval
* Approvals
* Composite
* Composite-batch
* Composite Create SObject Collections
* Composite Delete SObject Collections
* Composite Retrieve SObject Collections
* Composite-tree
* Composite Update SObject Collections
* Composite Upsert SObject Collections
* Create SObject
* Delete SObject
* Delete SObject With Id
* Get Basic Info
* Get Blob Field
* Get Description
* Get Global Objects
* Get Resources
* Get SObject
* Get SObject With Id
* Get Versions
* Limits
* Query
* Query All
* Query More
* Recent
* Search
* Update SObject
* Upsert SObject

### **Aba Advanced settings**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Fields to NULL</strong></td><td>Define se os campos do SObject com valores nulos devem ser considerados pela API do Salesforce. Por padrão, o Salesforce ignora SObjects com campos nulos.</td><td>False</td><td>Booleano</td></tr></tbody></table>

### **Aba Documentation**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td>Campo opcional para descrever a configuração do conector e quaisquer regras de negócio relevantes.</td><td>N/A</td><td>String</td></tr></tbody></table>

## **Notas adicionais**

### **Protocolo REST**

#### **Operação Composite**

Ao usar a operação **Composite**, é necessário remover o caminho base da propriedade `url` para garantir que o conector funcione corretamente. Por exemplo:

```json
{
  "method": "POST",
  "url": "/services/data/v59.0/sobjects/Account",
  "referenceId": "refAccount",
  "body": {
    "Name": "Sample Account"
  }
}
```

Nesse caso, remova a parte `/services/data/v59.0` da propriedade `url`.

Após a edição, a `url` correta deve ser:

```json
{
  "method": "POST",
  "url": "/sobjects/Account",
  "referenceId": "refAccount",
  "body": {
    "Name": "Sample Account"
  }
}
```

#### **Operação Composite Update SObject Collections**

A saída esperada desta operação é:

```json
{
  "success": true,
  "data": [
    {
      "id": "003ak00000XgSkrAAF",
      "errors": [],
      "success": true
    },
    {
      "id": "003ak00000XgSksAAF",
      "errors": [],
      "success": true
    },
    {
      "id": "003ak00000XgSktAAF",
      "errors": [],
      "success": true
    }
  ]
}
```

#### **Operação Get Blob Field**

Para esta operação, o arquivo pode ser recebido de duas formas:

* Como uma string em base64
* Como um arquivo armazenado no diretório local do pipeline

Por padrão, o arquivo é recebido em formato base64. Para armazená-lo como um arquivo local no diretório do pipeline, ative a flag **Save as Local File** e especifique o nome do arquivo no campo **File Name**. Você poderá, em seguida, usar conectores de leitura de arquivos no fluxo para processar o arquivo salvo.

#### **Operação Query**

Para qualquer operação do tipo **Query** (como **Query**, **Query All** ou **Query More**), use o seguinte padrão:

```json
{
  "q": "SELECT Id, LastName, Company FROM Lead ORDER BY CreatedDate DESC LIMIT 5"
}
```

Se quiser usar [expressões com Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md), escreva da seguinte forma:

```json
{
  "q": "{{ message.query }}"
}
```

### **Protocolo Bulk 2.0**

#### **Operação Create Batch**

O resultado esperado para esta operação é:

```json
{
  "success": true,
  "data": {
    "HttpResponseCode": "201",
    "HttpResponseText": "Created",
    "Content-type": "text/csv",
    "Sforce-Limit-Info": "api-usage=4184/15000"
  }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/enterprise-applications/salesforce.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
