SALESFORCE_ACCOUNT_CREATE - Criar Empresa (Account) no Salesforce
O que é este Node?
O SALESFORCE_ACCOUNT_CREATE é o node responsável por criar empresas (Accounts) no Salesforce CRM, representando organizações com as quais sua empresa tem ou busca ter relacionamento comercial.
Por que este Node existe?
Accounts são a fundação do CRM B2B. O SALESFORCE_ACCOUNT_CREATE existe para:
- Hierarquia Organizacional: Organizar contatos, oportunidades e atividades por empresa
- Visão 360º: Centralizar todo histórico de relacionamento com cada empresa cliente
- Gestão de Carteira: Permitir que vendedores gerenciem portfolio de empresas-cliente
- Análise de Receita: Consolidar receita e métricas por empresa, não apenas por contato
Como funciona internamente?
Quando o SALESFORCE_ACCOUNT_CREATE é executado, o sistema:
- Recebe os dados: Coleta nome da empresa e informações complementares
- Processa variáveis: Substitui variáveis do contexto pelos valores reais
- Valida campo obrigatório: Name é o único campo obrigatório
- Monta payload: Inclui dados básicos e endereço de cobrança
- Autentica no Salesforce: Usa accessToken e instanceUrl
- Faz requisição POST: Envia para
/services/data/v60.0/sobjects/Account - Retorna ID: Salesforce responde com ID da Account criada
- Em caso de erro: Retorna mensagem detalhada
Código interno (salesforce-executor.service.ts:425-452):
private async createAccount(
nodeData: FlowNodeData,
credentials: SalesforceCredentials,
context: any,
): Promise<any> {
const { name, phone, website, type, industry, description, billingStreet, billingCity, billingState, billingPostalCode, billingCountry } = nodeData;
const accountData: any = {
Name: this.replaceVariables(name, context),
};
if (phone) accountData.Phone = this.replaceVariables(phone, context);
if (website) accountData.Website = this.replaceVariables(website, context);
if (type) accountData.Type = this.replaceVariables(type, context);
if (industry) accountData.Industry = this.replaceVariables(industry, context);
if (description) accountData.Description = this.replaceVariables(description, context);
if (billingStreet) accountData.BillingStreet = this.replaceVariables(billingStreet, context);
if (billingCity) accountData.BillingCity = this.replaceVariables(billingCity, context);
if (billingState) accountData.BillingState = this.replaceVariables(billingState, context);
if (billingPostalCode) accountData.BillingPostalCode = this.replaceVariables(billingPostalCode, context);
if (billingCountry) accountData.BillingCountry = this.replaceVariables(billingCountry, context);
if (nodeData.additionalFields) {
Object.assign(accountData, this.processAdditionalFields(nodeData.additionalFields, context));
}
return this.salesforceApiRequest('POST', '/sobjects/Account', credentials, accountData);
}
Quando você DEVE usar este Node?
Use SALESFORCE_ACCOUNT_CREATE sempre que precisar de registrar uma nova empresa no CRM:
Casos de uso
- Nova empresa cliente: Empresa fecha primeiro negócio e precisa ser cadastrada
- Conversão de Lead: Após qualificar lead, criar Account antes de Contact e Opportunity
- Cadastro de prospect: Empresa identificada como potencial cliente de grande valor
- Partner/Fornecedor: Cadastrar empresas parceiras ou fornecedoras
- Grupo empresarial: Registrar diferentes empresas de um mesmo grupo
Quando NÃO usar SALESFORCE_ACCOUNT_CREATE
- Pessoa física: Use SALESFORCE_CONTACT_CREATE (B2C) ou SALESFORCE_LEAD_CREATE
- Account já existe: Use SALESFORCE_ACCOUNT_UPDATE para atualizar
- Incerteza se existe: Use SALESFORCE_ACCOUNT_UPSERT com campo externo (CNPJ)
Parâmetros Detalhados
name (string, obrigatório)
O que é: Razão social ou nome fantasia da empresa. Único campo obrigatório.
Exemplo: "Tech Solutions LTDA", "Indústria ABC S.A.", "{{company_name}}"
Flow completo para testar:
{
"name": "Teste Salesforce - Criar Account",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Nome Empresa",
"parameters": {
"message": "Nome da empresa:",
"variableName": "company"
}
}
},
{
"id": "salesforce_1",
"type": "salesforce",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Criar Account",
"parameters": {
"resource": "account",
"operation": "create",
"accessToken": "{{salesforce_token}}",
"instanceUrl": "https://sua-instancia.salesforce.com",
"name": "{{company}}"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Empresa cadastrada! ID: {{salesforce_1.id}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 900, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "salesforce_1" },
{ "source": "salesforce_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Digite nome da empresa e ela será cadastrada no Salesforce.
phone (string, opcional)
O que é: Telefone principal da empresa.
Exemplo: "+551133334444", "{{company_phone}}"
website (string, opcional)
O que é: Website corporativo da empresa.
Exemplo: "https://www.empresa.com.br", "{{company_website}}"
type (string, opcional)
O que é: Tipo/categoria da empresa.
Valores comuns: "Customer", "Prospect", "Partner", "Competitor", "Reseller", "Supplier"
industry (string, opcional)
O que é: Setor/indústria da empresa.
Valores comuns: "Technology", "Manufacturing", "Healthcare", "Finance", "Retail", "Education"
description (string, opcional)
O que é: Descrição ou observações sobre a empresa.
Exemplo: "Principal cliente do setor industrial. Possui 3 filiais."
billingStreet (string, opcional)
O que é: Endereço de cobrança - rua e número.
Exemplo: "Av. Paulista, 1000", "{{billing_address}}"
billingCity (string, opcional)
O que é: Cidade do endereço de cobrança.
Exemplo: "São Paulo", "{{billing_city}}"
billingState (string, opcional)
O que é: Estado do endereço de cobrança.
Exemplo: "SP", "RJ", "{{billing_state}}"
billingPostalCode (string, opcional)
O que é: CEP do endereço de cobrança.
Exemplo: "01310-100", "{{billing_zip}}"
billingCountry (string, opcional)
O que é: País do endereço de cobrança.
Exemplo: "Brasil", "Brazil", "{{billing_country}}"
additionalFields (object, opcional)
O que é: Campos customizados específicos da sua instância.
Exemplo:
{
"CNPJ__c": "12.345.678/0001-90",
"Annual_Revenue__c": 5000000,
"Number_of_Employees__c": 150,
"Account_Manager__c": "005xx000001abcd"
}
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| resource | string | Sim | Deve ser "account" |
| operation | string | Sim | Deve ser "create" |
| accessToken | string | Sim | Token OAuth do Salesforce |
| instanceUrl | string | Sim | URL da instância Salesforce |
| name | string | Sim | Nome/razão social da empresa |
| phone | string | Não | Telefone principal |
| website | string | Não | Website corporativo |
| type | string | Não | Tipo de conta |
| industry | string | Não | Setor/indústria |
| description | string | Não | Descrição da empresa |
| billingStreet | string | Não | Endereço de cobrança |
| billingCity | string | Não | Cidade |
| billingState | string | Não | Estado |
| billingPostalCode | string | Não | CEP |
| billingCountry | string | Não | País |
| additionalFields | object | Não | Campos customizados |
Exemplo 1: Cadastro Completo de Empresa
Objetivo: Criar Account com informações completas de empresa cliente
JSON para Importar
{
"name": "Cadastro Completo Empresa - Salesforce",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "message_1",
"type": "message",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Boas-vindas",
"parameters": {
"message": "Vou cadastrar sua empresa no nosso sistema. Preciso de algumas informações."
}
}
},
{
"id": "input_1",
"type": "input",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Razão Social",
"parameters": {
"message": "Razão social da empresa:",
"variableName": "company_name"
}
}
},
{
"id": "input_2",
"type": "input",
"position": { "x": 700, "y": 100 },
"data": {
"label": "CNPJ",
"parameters": {
"message": "CNPJ:",
"variableName": "cnpj"
}
}
},
{
"id": "phone_1",
"type": "phone",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Telefone",
"parameters": {
"message": "Telefone principal:",
"variableName": "phone"
}
}
},
{
"id": "input_3",
"type": "input",
"position": { "x": 1100, "y": 100 },
"data": {
"label": "Website",
"parameters": {
"message": "Website (opcional, pode digitar 'não' se não tiver):",
"variableName": "website"
}
}
},
{
"id": "input_4",
"type": "input",
"position": { "x": 1300, "y": 100 },
"data": {
"label": "Setor",
"parameters": {
"message": "Setor de atuação:",
"variableName": "industry"
}
}
},
{
"id": "number_1",
"type": "number",
"position": { "x": 1500, "y": 100 },
"data": {
"label": "Funcionários",
"parameters": {
"message": "Quantos funcionários aproximadamente?",
"variableName": "employees"
}
}
},
{
"id": "salesforce_1",
"type": "salesforce",
"position": { "x": 1700, "y": 100 },
"data": {
"label": "Criar Account",
"parameters": {
"resource": "account",
"operation": "create",
"accessToken": "{{salesforce_token}}",
"instanceUrl": "https://sua-instancia.salesforce.com",
"name": "{{company_name}}",
"phone": "{{phone}}",
"website": "{{website}}",
"industry": "{{industry}}",
"type": "Prospect",
"description": "Empresa cadastrada via WhatsApp",
"additionalFields": {
"CNPJ__c": "{{cnpj}}",
"Number_of_Employees__c": "{{employees}}",
"Lead_Source__c": "WhatsApp"
}
}
}
},
{
"id": "message_2",
"type": "message",
"position": { "x": 1900, "y": 100 },
"data": {
"label": "Sucesso",
"parameters": {
"message": "Empresa {{company_name}} cadastrada com sucesso! Nossa equipe entrará em contato em breve."
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 2100, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "message_1" },
{ "source": "message_1", "target": "input_1" },
{ "source": "input_1", "target": "input_2" },
{ "source": "input_2", "target": "phone_1" },
{ "source": "phone_1", "target": "input_3" },
{ "source": "input_3", "target": "input_4" },
{ "source": "input_4", "target": "number_1" },
{ "source": "number_1", "target": "salesforce_1" },
{ "source": "salesforce_1", "target": "message_2" },
{ "source": "message_2", "target": "end_1" }
]
}
Saída esperada:
Sistema: Vou cadastrar sua empresa no nosso sistema. Preciso de algumas informações.
Sistema: Razão social da empresa:
Usuário: Tech Solutions LTDA
Sistema: CNPJ:
Usuário: 12.345.678/0001-90
Sistema: Telefone principal:
Usuário: 1133334444
Sistema: Website (opcional, pode digitar 'não' se não tiver):
Usuário: www.techsolutions.com.br
Sistema: Setor de atuação:
Usuário: Tecnologia
Sistema: Quantos funcionários aproximadamente?
Usuário: 50
Sistema: Empresa Tech Solutions LTDA cadastrada com sucesso! Nossa equipe entrará em contato em breve.
Exemplo 2: Account com Endereço Completo
Objetivo: Criar Account incluindo endereço de cobrança completo
JSON para Importar
{
"name": "Account com Endereço - Salesforce",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Empresa",
"parameters": {
"message": "Nome da empresa:",
"variableName": "company"
}
}
},
{
"id": "input_2",
"type": "input",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Endereço",
"parameters": {
"message": "Endereço completo (rua e número):",
"variableName": "street"
}
}
},
{
"id": "input_3",
"type": "input",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Cidade",
"parameters": {
"message": "Cidade:",
"variableName": "city"
}
}
},
{
"id": "input_4",
"type": "input",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Estado",
"parameters": {
"message": "Estado (sigla):",
"variableName": "state"
}
}
},
{
"id": "input_5",
"type": "input",
"position": { "x": 1100, "y": 100 },
"data": {
"label": "CEP",
"parameters": {
"message": "CEP:",
"variableName": "zip"
}
}
},
{
"id": "salesforce_1",
"type": "salesforce",
"position": { "x": 1300, "y": 100 },
"data": {
"label": "Criar Account",
"parameters": {
"resource": "account",
"operation": "create",
"accessToken": "{{salesforce_token}}",
"instanceUrl": "https://sua-instancia.salesforce.com",
"name": "{{company}}",
"type": "Customer",
"billingStreet": "{{street}}",
"billingCity": "{{city}}",
"billingState": "{{state}}",
"billingPostalCode": "{{zip}}",
"billingCountry": "Brasil"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 1500, "y": 100 },
"data": {
"label": "Confirmação",
"parameters": {
"message": "Empresa cadastrada com endereço em {{city}}/{{state}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "input_2" },
{ "source": "input_2", "target": "input_3" },
{ "source": "input_3", "target": "input_4" },
{ "source": "input_4", "target": "input_5" },
{ "source": "input_5", "target": "salesforce_1" },
{ "source": "salesforce_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada:
Sistema: Nome da empresa:
Usuário: Indústria XYZ
Sistema: Endereço completo (rua e número):
Usuário: Rua Industrial, 500
Sistema: Cidade:
Usuário: São Paulo
Sistema: Estado (sigla):
Usuário: SP
Sistema: CEP:
Usuário: 01234-567
Sistema: Empresa cadastrada com endereço em São Paulo/SP
Resposta do Node
{
"id": "0015g00000ABC123",
"success": true,
"errors": []
}
Boas Práticas
✅ SIM:
- Usar CNPJ ou identificador único em additionalFields para evitar duplicatas
- Coletar informações básicas: nome, telefone, website, setor
- Definir Type corretamente (Customer, Prospect, Partner, etc.)
- Incluir endereço completo quando disponível para emissão de documentos
- Salvar ID retornado para criar Contacts e Opportunities associados
- Usar Industry padronizado para segmentação e reports
- Adicionar description com contexto de como a empresa chegou até você
❌ NÃO:
- Criar Account duplicada - verificar por CNPJ ou nome antes
- Usar abreviações não padronizadas em campos de endereço
- Omitir informações básicas como telefone quando disponível
- Criar Account sem definir Type
- Ignorar campos customizados importantes como CNPJ
- Cadastrar pessoa física como Account (use Contact)
Dicas
💡 Dica 1: Após criar Account, use o ID retornado para criar Contacts (funcionários) e Opportunities (negócios) associados, mantendo hierarquia organizada.
💡 Dica 2: Implemente busca por CNPJ antes de criar Account para evitar duplicatas. Use SALESFORCE_SEARCH_QUERY com CNPJ como critério.
💡 Dica 3: Combine com APIs de consulta de CNPJ (Receita Federal) para preencher automaticamente razão social, endereço e outros dados.
💡 Dica 4: Use campos customizados para armazenar métricas importantes: faturamento anual, número de funcionários, segmento específico, potencial de receita.
💡 Dica 5: Para empresas com múltiplas filiais, crie uma Account matriz e use campo Parent Account para criar hierarquia de filiais.
Próximos Nodes
→ SALESFORCE_ACCOUNT_UPDATE - Atualizar dados da Account → SALESFORCE_CONTACT_CREATE - Criar contatos associados à Account → SALESFORCE_OPPORTUNITY_CREATE - Criar oportunidade para a Account → SALESFORCE_ACCOUNT_GET - Buscar dados de uma Account