[SFDC] Standard Object

최승언·2023년 3월 27일
0

SFDC

목록 보기
1/2

❓SFDC란

SFDC는 Salesforce Dot Com(Salesforce.com)의 약자이다.

Salesforce

Salesforce는 SaaS 기반의 CRM 솔루션이다.

SaaS (Software as a Service)
SaaS는 클라우드 컴퓨팅의 한 형태로, 소프트웨어를 인터넷을 통해 제공하는 방식을 말한다. 서버나 네트워크 등의 인프라를 구축하거나 유지보수할 필요 없이 언제 어디서나 인터넷에 연결된 장치에서 액세스할 수 있다.

CRM (Customer Relationship Management)
고객과의 모든 커뮤니케이션 및 인터랙션 데이터를 수집, 기록, 관리하는 소프트웨어다. CRM 소프트웨어는 고객과 주고받은 이메일, 미팅 회의록, 고객의 연락처, 고객의 이름, 타이틀 등 고객의 모든 것을 하나의 소프트웨어에서 관리하게 해준다.

Salesforce의 특징

  • 클라우드 기반
  • 쉬운 사용성
    Salesforce의 사용자 인터페이스는 직관적이고 사용하기 쉽다. 이를 통해 사용자는 CRM 및 비즈니스 관리 작업을 쉽게 수행할 수 있다.
  • 다양한 기능
    Salesforce는 다양한 기능을 제공하며, 이를 통해 기업은 고객 관계를 효과적으로 관리하고, 비즈니스 프로세스를 자동화하며, 팀 간 협업을 강화할 수 있다.
  • 유연성
    Salesforce는 매우 유연하며, 기업은 CRM 솔루션을 사용자 정의하여 자체적인 비즈니스 요구사항에 맞게 구성할 수 있다.
  • 확장성
    Salesforce는 대규모 기업에서부터 소기업까지 다양한 규모의 기업에서 사용될 수 있다. 또한 Salesforce는 필요에 따라 커스터마이즈하여 사용자 요구에 맞게 확장할 수 있다.

MVC아키텍쳐

  • Model

    • Standard & Custom Object (선언)
      : Database의 Schema Table 즉, 객체 지향 프로그래밍에서 DAO와 비슷한 개념이지만, 차이점은 Salesforce의 Object는 비즈니스 로직을 갖춘 객체이다.
  • View

    • Visualforce Page (Classic) : JSP와 유사
    • Lightning Component (Aura)
    • Lightning Web Component (LWC)
  • Controller

    • Apex Class (Program)
      : Java의 Class와 매우 유사하다. Java Class와 마찬가지로 클래스 정의, 멤버 변수, 메소드 등을 포함한다. 또한, 상속, 다형성, 추상화, 인터페이스 등의 객체 지향 개념을 지원한다.

개발 언어

  • Apex
    Salesforce의 서버 측 개발 언어이다. Java와 유사한 문법을 갖추고 있으며, 데이터베이스 연동, 트리거, 웹 서비스 등 다양한 기능을 지원한다.
  • Visualforce
    Salesforce의 UI 개발 프레임워크로서, HTML, CSS, JavaScript를 기반으로 한 사용자 인터페이스를 생성한다. Visualforce는 Apex와 통합되어 Salesforce 데이터베이스에 대한 액세스를 가능하게 하며, 다양한 UI 컴포넌트와 커스텀 컴포넌트를 지원한다.
  • Lightning
    최근에 Salesforce에서 도입한 UI 프레임워크이다. JavaScript와 CSS를 기반으로 한 모던한 UI 개발을 지원한다. Lightning은 Apex와 통합되어 데이터베이스 조작과 같은 서버 측 기능도 가능하게 한다.

❓Standard Object란

Salesforce 데이터 모델에 미리 정의된 객체로, Salesforce에서 사용되는 일반적인 업무 기능을 지원하는 객체이다.

객체(Object)

salesforce에서 객체는 스프레드 시트와 유사한 레코드가 포함된 데이터베이스 테이블이다.
그리고, "레코드"는 데이터베이스의 행(필드)이다.

객체(Object) = 테이블
레코드 = 행

또한, Salesforce에서 이미 정의된 객체를 표준 객체(Standard Object),
유저가 직접 만든 객체를 사용자 정의 객체(Custom Object)라고 한다.

ER 다이어그램

일부 Standard Object는 계층적인 구조를 가지고 있다.

예를 들어, AccountContact는 계층 구조로 구성되어 있다. Account는 조직을 나타내며, 각 Account 아래에는 여러 개의 Contact가 속할 수 있다. 이러한 구조를 사용하면 조직과 그 조직과 관련된 모든 연락처를 관리할 수 있다.

또한, Opportunity 객체는 계층 구조가 아니지만, 다른 Standard Object와 관련된 계층 구조를 나타낼 수 있다. 예를 들어, Opportunity는 특정 Account와 연결될 수 있으며, Opportunity 아래에는 다양한 Sales StageProbability 값이 포함될 수 있다.

그러나, 모든 Standard Object가 계층 구조를 갖는 것은 아니다. 예를 들어, Lead 객체는 계층 구조를 가지고 있지 않다.

따라서, Standard Object의 계층 구조는 Object 간의 관계와 기능에 따라 달라질 수 있다. 일부 객체는 계층 구조를 갖지만, 다른 객체는 계층 구조를 갖지 않을 수 있다.

  • 예시 : Sales Objects ER-Diagram

💡Standard Objects

Account

기업, 조직, 개인 등의 고객 정보를 저장한다.

- 함수

create() delete() describeLayout() describeSObjects() getDeleted() getUpdated() merge() query() retrieve() search() undelete() update() upsert()

- 정보

  1. 기본 정보: Account 이름, 계층 구조 및 계정 소유자 등과 같은 기본 정보.
  2. 연락처 정보: Account와 연관된 연락처의 이름, 이메일, 전화번호 등 연락처 정보.
  3. 주소 정보: Account와 연관된 주소 정보.
  4. 거래 정보: Account와 연관된 거래 정보. 예를 들어, 거래 이름, 거래 유형, 거래 단계 등.
  5. 활동 정보: Account와 연관된 활동 정보. 예를 들어, 회의, 전화 통화, 이메일 등.
  6. 기타 정보: Account에 대한 기타 정보.

- 장점

  • 고객 정보를 중앙 집중화하여 관리할 수 있다.
  • Sales, Marketing, Customer Service 등의 다양한 팀 간에 고객 정보를 공유할 수 있다.
  • 고객에 대한 이력을 추적하여 다양한 비즈니스 프로세스와 보고서를 작성할 수 있다.
  • 다양한 팀이 고객 정보를 사용하여 맞춤형 마케팅을 수행할 수 있다.
  • 고객과의 관계를 강화할 수 있다.
  • 판매 예측 및 계획에 도움을 준다.

Account는 다른 Standard Object와 함께 사용되기도 한다. 예를 들어, Account와 Contact, Opportunity, Case 등의 Standard Object를 연결하여 고객에 대한 전반적인 정보를 파악할 수 있다.

Contact

고객의 연락처 정보를 저장한다.

- 함수

create() delete() describeLayout() describeSObjects() getDeleted() getUpdated() merge() query() retrieve() search() undelete() update() upsert()

- 정보

  1. 이름과 연락처 정보: 고객의 이름, 이메일, 전화번호 등 연락처 정보
  2. 직책 정보: 고객의 직책 정보
  3. 기업 정보: 고객이 속한 기업 정보
  4. 관계 정보: 고객과 기업 간의 관계 정보. 예를 들어, 직원, 파트너, 고객 등으로 구분.
  5. 활동 정보: 고객과의 활동 정보. 예를 들어, 회의, 전화 통화, 이메일 등과 같은 활동.
  6. 이력 정보: 고객과의 이력 정보. 예를 들어, 이전에 수행한 거래, 문제 및 요구사항 등과 같은 정보.
  7. 기타 정보: Contact에 대한 기타 정보

- 장점

  • 고객 정보를 중앙 집중화하여 관리할 수 있다.
  • 다양한 비즈니스 프로세스에서 Contact 정보를 사용하여 다양한 작업을 수행할 수 있다.
  • 다른 Standard Object와 함께 사용하여 고객에 대한 전반적인 정보를 파악할 수 있다.
  • 다양한 팀이 고객 정보를 사용하여 맞춤형 마케팅을 수행할 수 있다.
  • 판매 예측 및 계획에 도움을 줍니다.

Lead

잠재 고객의 정보를 저장하는 데 사용된다. 이를 통해 판매 팀은 잠재 고객과의 연락을 유지하고, 잠재 고객이 실제 고객이 되도록 추적하고 관리할 수 있다.

- 함수

create() delete() describeLayout() describeSObjects() getDeleted() getUpdated() merge() query() retrieve() search() undelete() update() upsert()

- 정보

  1. 이름과 연락처 정보: Lead의 이름, 이메일, 전화번호 등 연락처 정보.
  2. 기업 정보: Lead가 속한 기업 정보.
  3. 관심 분야: Lead가 관심 있는 제품, 서비스 또는 업종에 대한 정보.
  4. Lead 출처: Lead가 어디에서 발생했는지, 예를 들어 마케팅 캠페인, 웹사이트, 소셜 미디어 등에서 발생했는지를 나타낸다.
  5. Lead 상태: Lead가 현재 어떤 단계에 있는지, 예를 들어 연락 대기 중, 관심 있는 사람, 판매 기회 등의 상태.
  6. Lead 등급: Lead의 우선순위를 나타내며, 예를 들어 A, B, C 등으로 구분할 수 있다.
  7. 기타 정보: Lead에 대한 기타 정보.

- 장점

  • 잠재 고객에 대한 정보를 중앙 집중화하여 관리할 수 있다.
  • 판매 팀은 고객에게 맞춤형 마케팅을 수행하고, 고객과의 관계를 유지할 수 있다.
  • Lead 상태를 추적함으로써 판매 기회를 식별하고, 이를 판매 프로세스로 이어갈 수 있다.
  • 판매 예측 및 계획에 도움을 준다.
  • Lead를 판매 프로세스의 일부로 적극적으로 추적함으로써 잠재 고객과의 관계를 강화할 수 있다.

Opportunity

판매 기회를 나타낸다. 예상 매출, 진행 상태, 담당자 등을 관리하여 판매 파이프라인을 추적하고 관리할 수 있다.

- 함수

create() delete() describeLayout() describeSObjects() getDeleted() getUpdated() query() retrieve() search() undelete() update() upsert()

- 정보

  1. 제품/서비스 정보: Opportunity와 연관된 제품 또는 서비스의 정보.
  2. 거래 정보: 거래 이름, 거래 유형, 거래 단계 등 거래에 대한 정보
  3. 판매 정보: 판매 예측 및 판매 기회와 관련된 정보.
  4. 기업 정보: 거래와 연관된 기업 정보.
  5. 관련 정보: 거래와 연관된 Contact, Case, Activity 등의 정보.

- 장점

  • 판매 기회를 추적하고, 기회가 어떤 단계에 있는지를 파악할 수 있다.
  • 판매 예측 및 계획에 도움을 준다.
  • 판매 기회와 관련된 Contact, Account, Case, Activity 등과 같은 정보를 연결함으로써 전반적인 고객 정보를 파악할 수 있다.
  • 다양한 팀이 판매 기회에 대한 정보를 공유함으로써 고객과의 관계를 강화할 수 있다.
  • 거래가 완료되면, Opportunity를 Closed-Won으로 표시하여 거래가 완료되었음을 나타낼 수 있다.
  • 판매 프로세스의 여러 단계에서 판매 기회를 추적하여 판매 기회의 단계를 이해하고, 판매 예측을 수립하는 데 사용된다.

이외에도 많은 Standard Object가 존재한다.

번호Object 이름설명
01Account기업이나 조직과 같은 거래처의 정보를 저장한다.
02Contact고객, 잠재 고객, 업체 담당자 등 개인의 정보를 저장한다.
03AccountRelationship계층구조를 나타내기 위하여 계정 간의 관계를 지정한다.
04Contract고객과의 계약과 관련된 다양한 정보를 저장한다.
05ContractContactRole계약에 연결된 연락처와 그들의 역할을 저장한다. 많은 계약이 여러 연락처와 관련되어 있을 때 유용하며, 연락처가 서로 다른 역할을 가질 수 있다.
06Asset조직이 보유하고 있는 제품이나 장비와 같은 자산을 저장한다.
07Case고객 문의, 불만, 요청 등과 같은 고객 상호작용을 기록하고, 문제 해결에 대한 작업을 할당한다.
08Lead잠재적 고객에 대한 정보를 저장한다.
09Campaign마케팅과 관련된 정보를 저장한다.
10CampaignMember캠페인과 연관된 Lead나 Contact 등의 멤버십 정보를 저장한다.
11Territory회사 내의 영업 지역과 관련된 정보를 저장한다. 지역의 계층 구조, 지역별 책임자, 판매 예산 등을 정의할 수 있다.
12Opportunity판매 기회(예: 계약 체결, 물품 판매 등)를 나타내며, 계약 거래에 대한 정보(금액, 담당자, 예상 매출 등)을 저장한다.
13OpportunityContactRoleOpportunity에 연결된 Contact와의 관계를 저장한다. 즉, Opportunity에 연결된 Contact가 어떤 역할을 하는지를 나타낸다.
14Quote조직의 제안서 및 견적을 관리하기 위해 사용된다.
15AccountTeamMemberAccount팀에 속한 사용자를 관리하는 데 사용된다.
16OpportunityTeamMemberOpportunity에 대한 팀 멤버 정보를 저장한다. 팀 멤버는 Opportunity에 대한 판매 활동을 수행하고 책임이 있는 멤버이다. 예를 들어, 책임자, 영업 사원, 판매 관리자 등이 될 수 있다.
17ForecastingItem판메 예측에 대한 개별 판매 항목 정보를 저장하며, 팀과 개별 사용자의 예측을 구성하고 통합한다.
18Order판매 주문과 관련된 정보를 저장하고, 주문 항목과 배송 정보를 추적할 수 있다.
19Partner두 개의 Account 또는 Opportunity 레코드와 Account 레코드 간의 파트너 관계를 나타낸다.
20PartnerRole파트너의 역할을 나타내는 것으로, 컨설턴트, 공급 업체 등이 있다.
21AccountPartner두 개의 Account 레코드 간의 파트너 관계를 나타낸다. Partner 레코드가 생성될 때 자동으로 생성된다.
22OpportunityPartner두 개의 Opportunity 레코드 간의 파트너 관계를 나타낸다. 두 개의 Opportunity 레코드 간에 파트너 관계가 생성될 때 자동으로 생성된다.
23Product2판매 상품에 대한 정보를 저장한다.
24PriceBook2Org에서 판매하는 제품 목록을 포함하고 있는 가격표이다.
25UserOrg에 소속된 사용자 정보를 저장한다.
26GroupUser 레코드의 집합이다. 예를 들어, "판매팀" 또는 "영업부"와 같은 이름의 그룹을 만들어 해당 팀이나 부서의 사용자를 그룹으로 묶을 수 있다.
27Calendar기본 사용자 달력, 공용 달력, 리소스 달력, 휴일 달력 등 달력을 나타낸다.
28Task사용자가 완료해야 할 일, 할 일 목록, 예약된 이벤트 등과 같은 업무 활동을 나타낸다.
29TaskRelationTask와 연관된 Lead, Contact 등의 다른 오브젝트와의 관계를 나타낸다.
30EventCalendar에서의 일정을 나타낸다.
31EventRelationEvent에 초대된 사람 또는 리소스를 나타낸다.
32Solution고객 이슈에 대한 자세한 설명과 해결책을 나타낸다. 일반적으로 고객 지원 팀에서 사용된다.
33ServiceContract고객과 기업 간의 서비스 계약을 나타낸다.
34ContractLineItem서비스 계약에 포함된 제품을 나타낸다.
35Entitlement계정이나 연락처가 받을 수 있는 고객 지원을 나타낸다.
36EntitlementContactEntitlement와 Contact 오브젝트 사이의 관계를 나타내며, 고객 지원을 받을 자격이 있는 연락처를 정의한다.
37ContactRequest고객이 지원을 요청하고 해당 문제에 대해 연락을 받기를 요청한 경우를 나타낸다.
38CaseTeamMemberCase 팀의 구성원을 나타낸다.
39CaseTeamRoleCase 팀 멤버의 역할을 정의한다.
40CaseComment연간된 Case에 대한 상세한 내용이나 문제 해결 과정에서 추가 정보를 기록한다.
41CaseArticle고객 지원 Case를 처리하면서 사용할 수 있는 지식 기반 솔루션의 문서를 저장한다.
42KnowledgeArticle기업에서 생성한 지식 콘텐츠를 저장하고 관리한다.
43KnowledgeArticleVersion기존 KnowledgeArticle을 업데이트하거나 새로운 KnowledgeArticle를 생성할 때 사용되고, 모든 버전이 저장된다.
44EmailMessage이메일과 관련된 정보를 저장한다.
45CaseHistoryCase 오브젝트의 상태 변화에 대한 기록을 저장한다.
46MilestoneTypeCase와 관련된 중요한 이벤트인 CaseMilestone을 정의하는 데 사용된다.
47CaseMilestone특정 Case에서 특정 MilestoneType의 마일스톤을 달성한 날짜와 시간, 해당 마일스톤에 대한 세부 정보, 마일스톤을 달성한 사용자 등과 같은 정보를 저장하낟.
48Swarm여러 사용자가 함께 작업하고 실시간으로 업데이트를 볼 수 있도록 한다.
49SwarmMemberSwarm오브젝트와 관련된 사용자의 정보를 저장한다.
50CaseRelatedIssueCase와 연관된 이슈를 나타내며, 해결될 때까지 Case의 해결 상태를 'pending'으로 유지할 수 있다.
51Incident고객이 제기한 문제나 문의사항에 대한 정보를 저장한다.
52Problem조직에서 발생한 문제에 대한 정보를 저장한다. 예를 들어, 제품의 결함, 서비스의 장애 등 조직 내부에서 발생한 문제를 추적한다.
53CaseSolutionCase의 해결책을 나타낸다. Case를 생성할 때 문제를 해결하는 해결책이 이미 알려져 있으면, 이러한 해결책을 참조하거나 연결할 수 있다.
54CategoryDataSolution 레코드의 논리적 그룹을 나타낸다.
55CategoryNodeSolution 카테고리 간의 상위-하위 관계를 나타내기 위한 트리를 나타낸다.

그 외 더 많은 Object는 공식문서에서 확인하면 된다.
https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_list.htm

profile
공부기록

0개의 댓글