Pular para o conteúdo

Os modelos de dados padrão

Também em 28 idiomas

English · Español · 日本語 · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

An aisle of a builders' supply warehouse, its racks stacked with ready-made standard doors, windows and stair parts, a cart waiting in the aisle.
Imagem gerada com IA

Módulo 2 de 10 do capítulo Arquitetura de dados Salesforce, capítulo 3 do curso Data Architect. Cada módulo se sustenta sozinho. Anterior: A plataforma de dados Salesforce: mais que um banco de dados · Próximo: Construa o seu: objetos personalizados

A pergunta que este módulo responde: O que a Salesforce já modelou para você, e como isso se encaixa?

No módulo 1 eu disse para você olhar para a nave-mãe: antes de inventar algo, veja como o próprio Salesforce faz. Este módulo é onde a gente olha de verdade. A Salesforce já modelou muita coisa do negócio para você, nos seus objetos padrão, e dois desses modelos fazem a maior parte do trabalho na maioria das orgs em que eu entro: o modelo de vendas (Sales) e o modelo de serviço (Service). Antes de decidir se algo merece um objeto personalizado, você precisa saber o que já existe. Esses são os próximos dois módulos.

Um objeto padrão vem pronto de fábrica. A Salesforce o construiu, ele tem um propósito definido, e vem com seus próprios campos e relacionamentos. Você pode acrescentar campos a ele, construir automação em volta dele e mudar seus layouts, mas não pode redesenhá-lo: os campos e relacionamentos padrão são da Salesforce.

Olhe os nomes. Account, Contact, Case. Sem prefixo, sem sufixo. É a Salesforce guardando esse espaço para si. Tudo o que nós construímos termina em __c, então a Salesforce pode acrescentar novos objetos padrão a qualquer momento sem nunca colidir com nada na sua org. E ela acrescenta, a cada release.

Em algum momento alguém construiu um objeto de produto que não deu certo e teve de ser deixado para trás. É por isso que o nome de API é Product2. É meu primeiro teste decisivo quando alguém me diz que conhece Salesforce.

Comece pela esquerda, com o Lead: alguém que pode virar cliente. Um lead ainda não faz parte do modelo de verdade. É uma área de espera. Quando você o converte, o Salesforce cria os registros reais: uma Conta, um Contato e, se houver um negócio, uma Oportunidade. É por isso que eu desenho o Lead de lado.

A Conta é a empresa. Seus Contatos são as pessoas que trabalham nela. Uma Oportunidade é um negócio com essa conta. Até aqui, nada que você não esperasse.

Aí fica interessante. O que tem no negócio? Cada linha é um produto da oportunidade (Opportunity Product), e um produto da oportunidade não aponta direto para um Produto. Ele aponta para uma entrada do catálogo de preços (Price Book Entry): este produto, a este preço, neste catálogo de preços. A entrada do catálogo de preços fica entre o Produto e o catálogo de preços (Price Book), então o mesmo produto pode ter um preço no catálogo de preços padrão e outro no seu catálogo de preços de parceiros.

São dois relacionamentos que viraram coisas, um depois do outro. Lembra do Item de entrega do capítulo 2, entre a Entrega e o Produto, e do Truque do cachorro entre o Cachorro e o Truque? A Salesforce fez exatamente a mesma coisa aqui, duas vezes: o produto da oportunidade entre a Oportunidade e a entrada do catálogo de preços, e a entrada do catálogo de preços entre o Produto e o catálogo de preços. Quando você consegue ler isso, consegue ler a maior parte do modelo de dados padrão.

O modelo de vendas O modelo de vendas. Um Lead, à esquerda, é convertido em uma Conta. Uma Conta tem Contatos e Oportunidades. Uma Oportunidade usa um catálogo de preços e contém produtos da oportunidade. Cada produto da oportunidade é precificado por uma entrada do catálogo de preços. Um catálogo de preços lista entradas do catálogo de preços, e um Produto aparece em entradas do catálogo de preços, então cada entrada do catálogo de preços une um Produto e um catálogo de preços. é convertido em tem tem usa contém é precificado por lista aparece em Lead Conta Contato Oportunidade Catálogo de preços Produto da oportunidade Entrada do catálogo de preços Produto exatamente um zero ou um um ou muitos zero ou muitos © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Eis essa cadeia de perto, com os campos que a mantêm unida:

A cadeia de preços de perto A cadeia de preços como um modelo de dados detalhado. Um produto da oportunidade carrega o ID da sua Oportunidade, o ID da sua entrada do catálogo de preços, uma quantidade e um preço de venda, e é precificado por uma entrada do catálogo de preços. A entrada do catálogo de preços carrega o ID do seu catálogo de preços, o ID do seu Produto, um preço de lista e um indicador Usar preço padrão. Um catálogo de preços tem um nome e um indicador É padrão; um Produto tem um nome e um código de produto. é precificado por lista aparece em Catálogo de preços ID do catálogo de preços ID DE REGISTRO Nome É padrão Produto da oportunidade ID do produto da oportunidade ID DE REGISTRO ID da oportunidade ID da entrada do catálogo de preços Quantidade Preço de venda Entrada do catálogo de preços ID da entrada do catálogo de preços ID DE REGISTRO ID do catálogo de preços ID do produto Preço de lista Usar preço padrão Produto ID do produto ID DE REGISTRO Nome Código do produto exatamente um zero ou um um ou muitos zero ou muitos © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Uma regra em que as pessoas tropeçam: existe um catálogo de preços padrão, e uma entrada em qualquer outro catálogo de preços pode simplesmente usar o preço padrão do produto. Saiba qual catálogo de preços uma oportunidade usa antes de carregar os produtos dela.

Agora o outro lado da casa. A mesma Conta, os mesmos Contatos. Quando algo dá errado, o cliente abre um Caso.

O caso geralmente é sobre algo que o cliente tem, e o Salesforce tem um objeto para isso: o Ativo (Asset). No módulo 5 vou chamá-lo de o objeto padrão que as pessoas deixam passar. É algo que o cliente tem, tenha ele comprado de você ou não.

E a que o cliente tem direito? Esse é o direito (Entitlement): o suporte que uma conta está qualificada a receber, muitas vezes ligado a um ativo, a um produto ou a um contrato de serviço. Coloque um direito num caso, e agora o caso sabe que nível de suporte deve receber.

O modelo de serviço O modelo de serviço. Uma Conta tem Contatos, Casos e Ativos. Um Contato relata Casos. Um Caso pode ser sobre um Ativo, e um direito (Entitlement), que pertence a uma Conta, cobre Casos. Uma linha do Caso de volta para ele mesmo, contornando o seu canto, é o Caso pai: um caso é pai de zero ou muitos casos, e cada caso tem zero ou um pai. tem tem relata possui é sobre cobre pai de Conta Contato Ativo Caso Direito exatamente um zero ou um um ou muitos zero ou muitos © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Repare na linha que sai do Caso e volta para ele mesmo. Todo caso tem um campo Caso pai (Parent Case), e ele aponta para outro caso. Isso é uma autopesquisa (self-lookup): um relacionamento de um objeto com ele mesmo. Confunde muita gente na primeira vez que vê, então aqui vão os dois motivos pelos quais eu a uso.

Um: um problema grande que se divide em problemas menores. O cliente relata que a instalação inteira caiu. Abrimos subcasos para a rede, o hardware e a configuração, cada um trabalhado separadamente, e todos se resolvem para cima: o caso pai não termina enquanto eles não terminarem.

Dois: histórico. Um caso foi fechado no mês passado, e agora o mesmo problema voltou. O novo caso aponta para o original, então qualquer um que o abra vê que isso já aconteceu antes, e o que foi feito a respeito.

Vamos voltar às autopesquisas quando chegarmos aos relacionamentos, no módulo 7.

Repare que a Conta e o Contato ficam no mesmo lugar nos dois diagramas. São os mesmos registros. Um vendedor e um agente de atendimento estão olhando para o mesmo cliente, de lados diferentes da casa. Esse é um dos argumentos mais fortes para continuar no padrão: os modelos foram construídos para se encontrar.

Nem tudo num registro é um campo. Contratos, fotos, PDFs e planilhas são arquivos, e o lugar deles é o Salesforce Files, não o antigo modelo de anexos (Attachments), que é legado. Se o documento já vive no SharePoint Online, no OneDrive, no Google Drive ou no Box, o Files Connect deixa os usuários chegarem até ele a partir do Salesforce sem copiá-lo para dentro.

Arquivos são contados de um jeito diferente dos registros. O Salesforce divide o armazenamento em dois: o armazenamento de arquivos guarda anexos, Files, Salesforce CRM Content, arquivos do Chatter e afins, e o armazenamento de dados guarda seus registros. O armazenamento de arquivos sobe rápido quando todo registro ganha fotos ou digitalizações, então grandes volumes de imagens, como as fotos de um aplicativo de campo, muitas vezes ficam melhor totalmente fora do Salesforce, com o Salesforce guardando só um link. O módulo 4 volta a esse assunto.

O armazenamento de dados também é contado de um jeito diferente de um banco de dados. Num banco de dados normal, uma tabela com duas colunas e um milhão de linhas é pequena, e uma tabela com cem colunas e um milhão de linhas é um elefante. O Salesforce pesa as duas igual: a maioria dos registros conta como cerca de 2 KB, não importa quantos campos tenham. Há exceções. Uma campanha conta mais, uma mensagem de e-mail conta pelo tamanho real, e uma conta pessoal conta como cerca de 4 KB, porque é uma conta e um contato.

Uma dica. Sempre que entro numa org nova, um dos primeiros lugares aonde vou é Setup → Storage Usage (Uso do armazenamento). Chego a pedir um print ao cliente já na primeira ligação. Essa tela não mente. Ela mostra quais objetos estão crescendo, e quais já são os elefantes.

O modelo de Conta e Contato funciona lindamente para uma empresa e as pessoas que trabalham nela. Mas e se o seu cliente não for uma empresa? E se for uma pessoa?

Essa é a conta pessoal: uma conta e um contato combinados num único registro, para pessoas físicas. Os campos de contato vêm junto, e os personalizados aparecem com um sufixo próprio, __pc. Cada uma conta tanto no armazenamento de contas quanto no de contatos, porque por baixo ela é as duas coisas.

Um aviso antes de ativá-las: depois que as contas pessoais são habilitadas, não dá para desabilitá-las. É o Teste de Reversibilidade do capítulo 1 na sua forma mais pura. O módulo 5 traz minha posição sobre quando elas valem a pena.

  • Quais partes do negócio a Salesforce já modelou, antes de projetar qualquer coisa nova.
  • Se um conceito cai no modelo de vendas, no modelo de serviço ou nos dois, sabendo que eles compartilham a Conta e o Contato.
  • Onde documentos e imagens vivem: no Salesforce Files, num sistema de arquivos conectado, ou fora da plataforma, com um link.
  • Quanto os dados vão custar em armazenamento, contados do jeito que o Salesforce conta: registros, não colunas.
  • Se o cliente é uma empresa ou uma pessoa, antes de ativar algo que não pode ser desativado.

E quando o Salesforce não tem o que você precisa? Você constrói. É o próximo passo.