---
title: Integração com Salesforce
description: "Automação de vendas e CRM com integração Salesforce para CrewAI."
icon: "salesforce"
mode: "wide"
---

## Visão Geral

Permita que seus agentes gerenciem relacionamentos com clientes, processos de vendas e dados através do Salesforce. Crie e atualize registros, gerencie leads e oportunidades, execute consultas SOQL e otimize seus fluxos de trabalho de CRM com automação potencializada por IA.

## Pré-requisitos

Antes de usar a integração Salesforce, certifique-se de que você possui:

- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
- Uma conta Salesforce com permissões apropriadas
- Sua conta Salesforce conectada via a [página de Integrações](https://app.crewai.com/integrations)

## Configurando a Integração Salesforce

### 1. Conecte sua Conta Salesforce

1. Acesse [CrewAI AMP Integrações](https://app.crewai.com/crewai_plus/connectors)
2. Encontre **Salesforce** na seção Integrações de Autenticação
3. Clique em **Conectar** e complete o fluxo OAuth
4. Conceda as permissões necessárias para gerenciamento de CRM e vendas
5. Copie seu Token Enterprise em [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)

### 2. Instale o Pacote Necessário

```bash
uv add crewai-tools
```

### 3. Configuração de variável de ambiente

<Note>
  Para usar integrações com `Agent(apps=[])`, você deve definir a variável de
  ambiente `CREWAI_PLATFORM_INTEGRATION_TOKEN` com seu Enterprise Token.
</Note>

```bash
export CREWAI_PLATFORM_INTEGRATION_TOKEN="seu_enterprise_token"
```

Ou adicione ao seu arquivo `.env`:

```
CREWAI_PLATFORM_INTEGRATION_TOKEN=seu_enterprise_token
```

## Ferramentas Disponíveis

### **Gerenciamento de Registros**

<AccordionGroup>
  <Accordion title="salesforce/create_record_contact">
    **Descrição:** Crie um novo registro de Contato no Salesforce.

    **Parâmetros:**
    - `FirstName` (string, opcional): Primeiro nome
    - `LastName` (string, obrigatório): Sobrenome - Este campo é obrigatório
    - `accountId` (string, opcional): ID da Conta - Conta à qual o contato pertence
    - `Email` (string, opcional): Endereço de e-mail
    - `Title` (string, opcional): Cargo do contato, como CEO ou Vice-presidente
    - `Description` (string, opcional): Descrição do contato
    - `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Contato

  </Accordion>

  <Accordion title="salesforce/create_record_lead">
    **Descrição:** Crie um novo registro de Lead no Salesforce.

    **Parâmetros:**
    - `FirstName` (string, opcional): Primeiro nome
    - `LastName` (string, obrigatório): Sobrenome - Este campo é obrigatório
    - `Company` (string, obrigatório): Empresa - Este campo é obrigatório
    - `Email` (string, opcional): Endereço de e-mail
    - `Phone` (string, opcional): Número de telefone
    - `Website` (string, opcional): URL do site
    - `Title` (string, opcional): Cargo do contato, como CEO ou Vice-presidente
    - `Status` (string, opcional): Status do Lead - Use as Configurações de Workflow do Connect Portal para selecionar o status do Lead
    - `Description` (string, opcional): Descrição do lead
    - `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Lead

  </Accordion>

  <Accordion title="salesforce/create_record_opportunity">
    **Descrição:** Crie um novo registro de Oportunidade no Salesforce.

    **Parâmetros:**
    - `Name` (string, obrigatório): Nome da Oportunidade - Este campo é obrigatório
    - `StageName` (string, opcional): Estágio da Oportunidade - Use as Configurações de Workflow do Connect Portal para selecionar o estágio
    - `CloseDate` (string, opcional): Data de fechamento no formato YYYY-MM-DD - Padrão para 30 dias a partir da data atual
    - `AccountId` (string, opcional): Conta à qual a Oportunidade pertence
    - `Amount` (string, opcional): Valor total estimado da venda
    - `Description` (string, opcional): Descrição da oportunidade
    - `OwnerId` (string, opcional): Usuário Salesforce designado para esta Oportunidade
    - `NextStep` (string, opcional): Descrição da próxima tarefa no fechamento da Oportunidade
    - `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Oportunidade

  </Accordion>

  <Accordion title="salesforce/create_record_task">
    **Descrição:** Crie um novo registro de Tarefa no Salesforce.

    **Parâmetros:**
    - `whatId` (string, opcional): Relacionado ao ID - ID da Conta ou Oportunidade relacionada à Tarefa
    - `whoId` (string, opcional): ID do Nome - ID do Contato ou Lead relacionado à Tarefa
    - `subject` (string, obrigatório): Assunto da tarefa
    - `activityDate` (string, opcional): Data da Atividade no formato YYYY-MM-DD
    - `description` (string, opcional): Descrição da tarefa
    - `taskSubtype` (string, obrigatório): Subtipo da Tarefa - Opções: task, email, listEmail, call
    - `Status` (string, opcional): Status - Opções: Not Started, In Progress, Completed
    - `ownerId` (string, opcional): ID do responsável - Usuário Salesforce designado para a Tarefa
    - `callDurationInSeconds` (string, opcional): Duração da chamada em segundos
    - `isReminderSet` (boolean, opcional): Se o lembrete está definido
    - `reminderDateTime` (string, opcional): Data/Hora do lembrete no formato ISO
    - `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Tarefa

  </Accordion>

  <Accordion title="salesforce/create_record_account">
    **Descrição:** Crie um novo registro de Conta no Salesforce.

    **Parâmetros:**
    - `Name` (string, obrigatório): Nome da Conta - Este campo é obrigatório
    - `OwnerId` (string, opcional): Usuário Salesforce responsável por esta Conta
    - `Website` (string, opcional): URL do site
    - `Phone` (string, opcional): Número de telefone
    - `Description` (string, opcional): Descrição da conta
    - `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Conta

  </Accordion>

  <Accordion title="salesforce/create_record_any">
    **Descrição:** Crie um registro de qualquer tipo de objeto no Salesforce.

    **Nota:** Esta é uma ferramenta flexível para criar registros de tipos de objetos personalizados ou desconhecidos.

  </Accordion>
</AccordionGroup>

### **Atualização de Registros**

<AccordionGroup>
  <Accordion title="salesforce/update_record_contact">
    **Descrição:** Atualize um registro de Contato existente no Salesforce.

    **Parâmetros:**
    - `recordId` (string, obrigatório): ID do registro a ser atualizado
    - `FirstName` (string, opcional): Primeiro nome
    - `LastName` (string, opcional): Sobrenome
    - `accountId` (string, opcional): ID da Conta à qual o contato pertence
    - `Email` (string, opcional): Endereço de e-mail
    - `Title` (string, opcional): Cargo do contato
    - `Description` (string, opcional): Descrição do contato
    - `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Contato

  </Accordion>

  <Accordion title="salesforce/update_record_lead">
    **Descrição:** Atualize um registro de Lead existente no Salesforce.

    **Parâmetros:**
    - `recordId` (string, obrigatório): ID do registro a ser atualizado
    - `FirstName` (string, opcional): Primeiro nome
    - `LastName` (string, opcional): Sobrenome
    - `Company` (string, opcional): Nome da empresa
    - `Email` (string, opcional): Endereço de e-mail
    - `Phone` (string, opcional): Número de telefone
    - `Website` (string, opcional): URL do site
    - `Title` (string, opcional): Cargo do contato
    - `Status` (string, opcional): Status do Lead
    - `Description` (string, opcional): Descrição do lead
    - `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Lead

  </Accordion>

  <Accordion title="salesforce/update_record_opportunity">
    **Descrição:** Atualize um registro de Oportunidade existente no Salesforce.

    **Parâmetros:**
    - `recordId` (string, obrigatório): ID do registro a ser atualizado
    - `Name` (string, opcional): Nome da Oportunidade
    - `StageName` (string, opcional): Estágio da oportunidade
    - `CloseDate` (string, opcional): Data de fechamento no formato YYYY-MM-DD
    - `AccountId` (string, opcional): Conta à qual a Oportunidade pertence
    - `Amount` (string, opcional): Valor total estimado da venda
    - `Description` (string, opcional): Descrição da oportunidade
    - `OwnerId` (string, opcional): Usuário Salesforce responsável por esta Oportunidade
    - `NextStep` (string, opcional): Descrição da próxima tarefa no fechamento da Oportunidade
    - `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Oportunidade

  </Accordion>

  <Accordion title="salesforce/update_record_task">
    **Descrição:** Atualize um registro de Tarefa existente no Salesforce.

    **Parâmetros:**
    - `recordId` (string, obrigatório): ID do registro a ser atualizado
    - `whatId` (string, opcional): Relacionado ao ID - ID da Conta ou Oportunidade relacionada
    - `whoId` (string, opcional): ID do Nome - ID do Contato ou Lead relacionado à Tarefa
    - `subject` (string, opcional): Assunto da tarefa
    - `activityDate` (string, opcional): Data da Atividade no formato YYYY-MM-DD
    - `description` (string, opcional): Descrição da tarefa
    - `Status` (string, opcional): Status - Opções: Not Started, In Progress, Completed
    - `ownerId` (string, opcional): ID do responsável - Usuário Salesforce designado para a Tarefa
    - `callDurationInSeconds` (string, opcional): Duração da chamada em segundos
    - `isReminderSet` (boolean, opcional): Se o lembrete está definido
    - `reminderDateTime` (string, opcional): Data/Hora do lembrete em formato ISO
    - `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Tarefa

  </Accordion>

  <Accordion title="salesforce/update_record_account">
    **Descrição:** Atualize um registro de Conta existente no Salesforce.

    **Parâmetros:**
    - `recordId` (string, obrigatório): ID do registro a ser atualizado
    - `Name` (string, opcional): Nome da Conta
    - `OwnerId` (string, opcional): Usuário Salesforce responsável por esta Conta
    - `Website` (string, opcional): URL do site
    - `Phone` (string, opcional): Número de telefone
    - `Description` (string, opcional): Descrição da conta
    - `additionalFields` (object, opcional): Campos adicionais no formato JSON para campos personalizados de Conta

  </Accordion>

  <Accordion title="salesforce/update_record_any">
    **Descrição:** Atualize um registro de qualquer tipo de objeto no Salesforce.

    **Nota:** Esta é uma ferramenta flexível para atualizar registros de tipos de objetos personalizados ou desconhecidos.

  </Accordion>
</AccordionGroup>

### **Recuperação de Registros**

<AccordionGroup>
  <Accordion title="salesforce/get_record_by_id_contact">
    **Descrição:** Obtenha um registro de Contato pelo seu ID.

    **Parâmetros:**
    - `recordId` (string, obrigatório): ID do registro do Contato

  </Accordion>

  <Accordion title="salesforce/get_record_by_id_lead">
    **Descrição:** Obtenha um registro de Lead pelo seu ID.

    **Parâmetros:**
    - `recordId` (string, obrigatório): ID do registro do Lead

  </Accordion>

  <Accordion title="salesforce/get_record_by_id_opportunity">
    **Descrição:** Obtenha um registro de Oportunidade pelo seu ID.

    **Parâmetros:**
    - `recordId` (string, obrigatório): ID do registro da Oportunidade

  </Accordion>

  <Accordion title="salesforce/get_record_by_id_task">
    **Descrição:** Obtenha um registro de Tarefa pelo seu ID.

    **Parâmetros:**
    - `recordId` (string, obrigatório): ID do registro da Tarefa

  </Accordion>

  <Accordion title="salesforce/get_record_by_id_account">
    **Descrição:** Obtenha um registro de Conta pelo seu ID.

    **Parâmetros:**
    - `recordId` (string, obrigatório): ID do registro da Conta

  </Accordion>

  <Accordion title="salesforce/get_record_by_id_any">
    **Descrição:** Obtenha um registro de qualquer tipo de objeto pelo seu ID.

    **Parâmetros:**
    - `recordType` (string, obrigatório): Tipo do registro (ex.: "CustomObject__c")
    - `recordId` (string, obrigatório): ID do registro

  </Accordion>
</AccordionGroup>

### **Busca de Registros**

<AccordionGroup>
  <Accordion title="salesforce/search_records_contact">
    **Descrição:** Pesquise registros de Contato com filtragem avançada.

    **Parâmetros:**
    - `filterFormula` (object, opcional): Filtro avançado em forma normal disjuntiva com operadores específicos de campo
    - `sortBy` (string, opcional): Campo para ordenação (ex.: "CreatedDate")
    - `sortDirection` (string, opcional): Direção da ordenação - Opções: ASC, DESC
    - `includeAllFields` (boolean, opcional): Incluir todos os campos nos resultados
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>

  <Accordion title="salesforce/search_records_lead">
    **Descrição:** Pesquise registros de Lead com filtragem avançada.

    **Parâmetros:**
    - `filterFormula` (object, opcional): Filtro avançado em forma normal disjuntiva com operadores específicos de campo
    - `sortBy` (string, opcional): Campo para ordenação (ex.: "CreatedDate")
    - `sortDirection` (string, opcional): Direção da ordenação - Opções: ASC, DESC
    - `includeAllFields` (boolean, opcional): Incluir todos os campos nos resultados
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>

  <Accordion title="salesforce/search_records_opportunity">
    **Descrição:** Pesquise registros de Oportunidade com filtragem avançada.

    **Parâmetros:**
    - `filterFormula` (object, opcional): Filtro avançado em forma normal disjuntiva com operadores específicos de campo
    - `sortBy` (string, opcional): Campo para ordenação (ex.: "CreatedDate")
    - `sortDirection` (string, opcional): Direção da ordenação - Opções: ASC, DESC
    - `includeAllFields` (boolean, opcional): Incluir todos os campos nos resultados
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>

  <Accordion title="salesforce/search_records_task">
    **Descrição:** Pesquise registros de Tarefa com filtragem avançada.

    **Parâmetros:**
    - `filterFormula` (object, opcional): Filtro avançado em forma normal disjuntiva com operadores específicos de campo
    - `sortBy` (string, opcional): Campo para ordenação (ex.: "CreatedDate")
    - `sortDirection` (string, opcional): Direção da ordenação - Opções: ASC, DESC
    - `includeAllFields` (boolean, opcional): Incluir todos os campos nos resultados
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>

  <Accordion title="salesforce/search_records_account">
    **Descrição:** Pesquise registros de Conta com filtragem avançada.

    **Parâmetros:**
    - `filterFormula` (object, opcional): Filtro avançado em forma normal disjuntiva com operadores específicos de campo
    - `sortBy` (string, opcional): Campo para ordenação (ex.: "CreatedDate")
    - `sortDirection` (string, opcional): Direção da ordenação - Opções: ASC, DESC
    - `includeAllFields` (boolean, opcional): Incluir todos os campos nos resultados
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>

  <Accordion title="salesforce/search_records_any">
    **Descrição:** Pesquise registros de qualquer tipo de objeto.

    **Parâmetros:**
    - `recordType` (string, obrigatório): Tipo de registro para buscar
    - `filterFormula` (string, opcional): Critérios de busca por filtro
    - `includeAllFields` (boolean, opcional): Incluir todos os campos nos resultados
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>
</AccordionGroup>

### **Recuperação por List View**

<AccordionGroup>
  <Accordion title="salesforce/get_record_by_view_id_contact">
    **Descrição:** Obtenha registros de Contato de um List View específico.

    **Parâmetros:**
    - `listViewId` (string, obrigatório): ID do List View
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>

  <Accordion title="salesforce/get_record_by_view_id_lead">
    **Descrição:** Obtenha registros de Lead de um List View específico.

    **Parâmetros:**
    - `listViewId` (string, obrigatório): ID do List View
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>

  <Accordion title="salesforce/get_record_by_view_id_opportunity">
    **Descrição:** Obtenha registros de Oportunidade de um List View específico.

    **Parâmetros:**
    - `listViewId` (string, obrigatório): ID do List View
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>

  <Accordion title="salesforce/get_record_by_view_id_task">
    **Descrição:** Obtenha registros de Tarefa de um List View específico.

    **Parâmetros:**
    - `listViewId` (string, obrigatório): ID do List View
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>

  <Accordion title="salesforce/get_record_by_view_id_account">
    **Descrição:** Obtenha registros de Conta de um List View específico.

    **Parâmetros:**
    - `listViewId` (string, obrigatório): ID do List View
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>

  <Accordion title="salesforce/get_record_by_view_id_any">
    **Descrição:** Obtenha registros de qualquer tipo de objeto a partir de um List View específico.

    **Parâmetros:**
    - `recordType` (string, obrigatório): Tipo do registro
    - `listViewId` (string, obrigatório): ID do List View
    - `paginationParameters` (object, opcional): Configurações de paginação com pageCursor

  </Accordion>
</AccordionGroup>

### **Campos Personalizados**

<AccordionGroup>
  <Accordion title="salesforce/create_custom_field_contact">
    **Descrição:** Crie campos personalizados para objetos de Contato.

    **Parâmetros:**
    - `label` (string, obrigatório): Rótulo do campo para exibições e referência interna
    - `type` (string, obrigatório): Tipo do campo - Opções: Checkbox, Currency, Date, Email, Number, Percent, Phone, Picklist, MultiselectPicklist, Text, TextArea, LongTextArea, Html, Time, Url
    - `defaultCheckboxValue` (boolean, opcional): Valor padrão para campos checkbox
    - `length` (string, obrigatório): Comprimento para campos numéricos/texto
    - `decimalPlace` (string, obrigatório): Casas decimais para campos numéricos
    - `pickListValues` (string, obrigatório): Valores para campos picklist (separados por novas linhas)
    - `visibleLines` (string, obrigatório): Linhas visíveis para campos multiseleção/área de texto
    - `description` (string, opcional): Descrição do campo
    - `helperText` (string, opcional): Texto de ajuda exibido ao passar o mouse
    - `defaultFieldValue` (string, opcional): Valor padrão do campo

  </Accordion>

  <Accordion title="salesforce/create_custom_field_lead">
    **Descrição:** Crie campos personalizados para objetos de Lead.

    **Parâmetros:**
    - `label` (string, obrigatório): Rótulo do campo para exibições e referência interna
    - `type` (string, obrigatório): Tipo do campo - Opções: Checkbox, Currency, Date, Email, Number, Percent, Phone, Picklist, MultiselectPicklist, Text, TextArea, LongTextArea, Html, Time, Url
    - `defaultCheckboxValue` (boolean, opcional): Valor padrão para campos checkbox
    - `length` (string, obrigatório): Comprimento para campos numéricos/texto
    - `decimalPlace` (string, obrigatório): Casas decimais para campos numéricos
    - `pickListValues` (string, obrigatório): Valores para campos picklist (separados por novas linhas)
    - `visibleLines` (string, obrigatório): Linhas visíveis para campos multiseleção/área de texto
    - `description` (string, opcional): Descrição do campo
    - `helperText` (string, opcional): Texto de ajuda exibido ao passar o mouse
    - `defaultFieldValue` (string, opcional): Valor padrão do campo

  </Accordion>

  <Accordion title="salesforce/create_custom_field_opportunity">
    **Descrição:** Crie campos personalizados para objetos de Oportunidade.

    **Parâmetros:**
    - `label` (string, obrigatório): Rótulo do campo para exibições e referência interna
    - `type` (string, obrigatório): Tipo do campo - Opções: Checkbox, Currency, Date, Email, Number, Percent, Phone, Picklist, MultiselectPicklist, Text, TextArea, LongTextArea, Html, Time, Url
    - `defaultCheckboxValue` (boolean, opcional): Valor padrão para campos checkbox
    - `length` (string, obrigatório): Comprimento para campos numéricos/texto
    - `decimalPlace` (string, obrigatório): Casas decimais para campos numéricos
    - `pickListValues` (string, obrigatório): Valores para campos picklist (separados por novas linhas)
    - `visibleLines` (string, obrigatório): Linhas visíveis para campos multiseleção/área de texto
    - `description` (string, opcional): Descrição do campo
    - `helperText` (string, opcional): Texto de ajuda exibido ao passar o mouse
    - `defaultFieldValue` (string, opcional): Valor padrão do campo

  </Accordion>

  <Accordion title="salesforce/create_custom_field_task">
    **Descrição:** Crie campos personalizados para objetos de Tarefa.

    **Parâmetros:**
    - `label` (string, obrigatório): Rótulo do campo para exibições e referência interna
    - `type` (string, obrigatório): Tipo do campo - Opções: Checkbox, Currency, Date, Email, Number, Percent, Phone, Picklist, MultiselectPicklist, Text, TextArea, Time, Url
    - `defaultCheckboxValue` (boolean, opcional): Valor padrão para campos checkbox
    - `length` (string, obrigatório): Comprimento para campos numéricos/texto
    - `decimalPlace` (string, obrigatório): Casas decimais para campos numéricos
    - `pickListValues` (string, obrigatório): Valores para campos picklist (separados por novas linhas)
    - `visibleLines` (string, obrigatório): Linhas visíveis para campos multiseleção
    - `description` (string, opcional): Descrição do campo
    - `helperText` (string, opcional): Texto de ajuda exibido ao passar o mouse
    - `defaultFieldValue` (string, opcional): Valor padrão do campo

  </Accordion>

  <Accordion title="salesforce/create_custom_field_account">
    **Descrição:** Crie campos personalizados para objetos de Conta.

    **Parâmetros:**
    - `label` (string, obrigatório): Rótulo do campo para exibições e referência interna
    - `type` (string, obrigatório): Tipo do campo - Opções: Checkbox, Currency, Date, Email, Number, Percent, Phone, Picklist, MultiselectPicklist, Text, TextArea, LongTextArea, Html, Time, Url
    - `defaultCheckboxValue` (boolean, opcional): Valor padrão para campos checkbox
    - `length` (string, obrigatório): Comprimento para campos numéricos/texto
    - `decimalPlace` (string, obrigatório): Casas decimais para campos numéricos
    - `pickListValues` (string, obrigatório): Valores para campos picklist (separados por novas linhas)
    - `visibleLines` (string, obrigatório): Linhas visíveis para campos multiseleção/área de texto
    - `description` (string, opcional): Descrição do campo
    - `helperText` (string, opcional): Texto de ajuda exibido ao passar o mouse
    - `defaultFieldValue` (string, opcional): Valor padrão do campo

  </Accordion>

  <Accordion title="salesforce/create_custom_field_any">
    **Descrição:** Crie campos personalizados para qualquer tipo de objeto.

    **Nota:** Esta é uma ferramenta flexível para criar campos personalizados para tipos de objetos personalizados ou desconhecidos.

  </Accordion>
</AccordionGroup>

### **Operações Avançadas**

<AccordionGroup>
  <Accordion title="salesforce/write_soql_query">
    **Descrição:** Execute consultas SOQL personalizadas em seus dados do Salesforce.

    **Parâmetros:**
    - `query` (string, obrigatório): Consulta SOQL (ex.: "SELECT Id, Name FROM Account WHERE Name = 'Exemplo'")

  </Accordion>

  <Accordion title="salesforce/create_custom_object">
    **Descrição:** Crie um novo objeto personalizado no Salesforce.

    **Parâmetros:**
    - `label` (string, obrigatório): Rótulo do objeto para abas, layouts de página e relatórios
    - `pluralLabel` (string, obrigatório): Rótulo plural (ex.: "Contas")
    - `description` (string, opcional): Uma descrição do Objeto Personalizado
    - `recordName` (string, obrigatório): Nome do registro exibido em layouts e buscas (ex.: "Nome da Conta")

  </Accordion>

  <Accordion title="salesforce/describe_action_schema">
    **Descrição:** Obtenha o schema esperado para operações em tipos de objetos específicos.

    **Parâmetros:**
    - `recordType` (string, obrigatório): Tipo de registro a ser detalhado
    - `operation` (string, obrigatório): Tipo de Operação (ex.: "CREATE_RECORD" ou "UPDATE_RECORD")

    **Nota:** Use esta função primeiro ao trabalhar com objetos personalizados para entender seu schema antes de realizar operações.

  </Accordion>
</AccordionGroup>

## Exemplos de Uso

### Configuração Básica de um Agente Salesforce

```python
from crewai import Agent, Task, Crew

# Obtenha ferramentas enterprise (ferramentas Salesforce serão incluídas)

# Crie um agente com capacidades Salesforce
salesforce_agent = Agent(
    role="CRM Manager",
    goal="Manage customer relationships and sales processes efficiently",
    backstory="An AI assistant specialized in CRM operations and sales automation.",
    apps=['salesforce']
)

# Task to create a new lead
create_lead_task = Task(
    description="Create a new lead for John Doe from Example Corp with email john.doe@example.com",
    agent=salesforce_agent,
    expected_output="Lead created successfully with lead ID"
)

# Run the task
crew = Crew(
    agents=[salesforce_agent],
    tasks=[create_lead_task]
)

crew.kickoff()
```

### Filtrando Ferramentas Salesforce Específicas

```python

# Obtenha apenas ferramentas Salesforce específicas
    actions_list=["salesforce/create_record_lead", "salesforce/update_record_opportunity", "salesforce/search_records_contact"]
)

sales_manager = Agent(
    role="Sales Manager",
    goal="Manage leads and opportunities in the sales pipeline",
    backstory="An experienced sales manager who handles lead qualification and opportunity management.",
    apps=['salesforce']
)

# Task to manage sales pipeline
pipeline_task = Task(
    description="Create a qualified lead and convert it to an opportunity with $50,000 value",
    agent=sales_manager,
    expected_output="Lead created and opportunity established successfully"
)

crew = Crew(
    agents=[sales_manager],
    tasks=[pipeline_task]
)

crew.kickoff()
```

### Gerenciamento de Contatos e Contas

```python
from crewai import Agent, Task, Crew

account_manager = Agent(
    role="Account Manager",
    goal="Manage customer accounts and maintain strong relationships",
    backstory="An AI assistant that specializes in account management and customer relationship building.",
    apps=['salesforce']
)

# Task to manage customer accounts
account_task = Task(
    description="""
    1. Create a new account for TechCorp Inc.
    2. Add John Doe as the primary contact for this account
    3. Create a follow-up task for next week to check on their project status
    """,
    agent=account_manager,
    expected_output="Account, contact, and follow-up task created successfully"
)

crew = Crew(
    agents=[account_manager],
    tasks=[account_task]
)

crew.kickoff()
```

### Consultas SOQL Avançadas e Relatórios

```python
from crewai import Agent, Task, Crew

data_analyst = Agent(
    role="Sales Data Analyst",
    goal="Generate insights from Salesforce data using SOQL queries",
    backstory="An analytical AI that excels at extracting meaningful insights from CRM data.",
    apps=['salesforce']
)

# Complex task involving SOQL queries and data analysis
analysis_task = Task(
    description="""
    1. Execute a SOQL query to find all opportunities closing this quarter
    2. Search for contacts at companies with opportunities over $100K
    3. Create a summary report of the sales pipeline status
    4. Update high-value opportunities with next steps
    """,
    agent=data_analyst,
    expected_output="Comprehensive sales pipeline analysis with actionable insights"
)

crew = Crew(
    agents=[data_analyst],
    tasks=[analysis_task]
)

crew.kickoff()
```

Esta documentação abrangente cobre todas as ferramentas Salesforce organizadas por funcionalidade, facilitando que os usuários encontrem as operações específicas de que necessitam para automação de seu CRM.

### Precisa de ajuda?

<Card title="Precisa de ajuda?" icon="headset" href="mailto:support@crewai.com">
  Entre em contato com nossa equipe de suporte para assistência na configuração
  da integração com Salesforce ou para resolução de problemas.
</Card>
