본문 바로가기

Salesforce/Actual Case Related Q&A

External User에게 Record 내용을 Chatter를 통해 공유하는 기능 문의

Q: 안녕하세요.

Chatter / Group 기능과 관련하여 조언을 구하고자 글을 올리게 되었습니다.

Group 생성 시 Private with customers Group을 생성할 경우 Chatter External User의 초대가 가능하여 외부사용자와의 내용공유를 위해 활용을 고려하고 있었습니다.

그러나, Chatter External User의 경우 Object 접근권한으로 인하여 account 혹은 opportunity의Activity를 mention(@)을 통해 Private with customers Group으로 공유가 불가능하여 진행이 어렵게 되었습니다.

관련하여 Mention기능을 사용하여 특정 task Log를 외부로 공유하고자할 경우 진행가능한 방향이 있다면 조언 부탁 드리겠습니다.

Mention기능이 아닌 별도 Task Log를 선택적으로 외부로 공유할 수 있는 간단한 방식이 있다면 함께 의견 부탁 드립니다.

A: 

일단 스탠다드로는 external User는 Record에 접근 할 수 없기 때문에
Record Feed에서 External User가 포함되어 있는 그룹을 맨션할 수 없습니다.
Config로는 불가능 하고 개발리소스가 가용하다면
방법은 2가지정도가 떠오르네요

개발도 고려하신다면 아래방법을 참고하셔도 좋을 것 같습니다.

1 Group에 RecordLink[/ + RecordName]으로 공유
고객이 초대된 그룹에서 /를 이용하여 레코드를 단순 공유하는 경우
1.1 Custom Setting - 공유 대상 Object의 FieldSet, ObjectPrefix를 관리
1.1.1 ObjectPrefix - eg. 006(Opportunity)
1.1.2 FieldSetName -공유된 레코드의 필드 중 Feed(또는 Note)로 구성할 필드를 모은 Field Set
1.2 FeedItemTrigger
1.2.1Feed의 ParentId가 GroupId(External User가 포함된)일 경우
1.2.2 ConnectApi를 사용하여 Feed의 Mention 중 ChatterFeeds.getFeedElementBatch, ConnectApi.MentionSegment를 사용하여 CustomSetting의 ObjectPrefix와 비교 공유 대상레코드인지 확인
1.2.3 ParentId에 기존 Feed의 ParentId(Group)
1.2.4 Body에 공유 내역을 CustomSetting의 FieldSetName으로 FieldSet Class를 활용하여 조회 후
1.2.4.1 FeedBody로 단순 텍스트로 공유
1.2.3.2 Note나 File로 생성하여 FeedAttachment로 연결

2 Record로 공유 이력을 기록하는 방법
고객(External User)가 초대된 그룹이 여러개이며 레코드를 어디에 공유했는지 한눈에 파악해야 할 필요가 있는 경우
2.1 Custom Object(ShareRecord) - 공유 이력을 기록하는 오브젝트
2.1.1 RecordId - 공유된 Record의 Id
2.1.2 GroupId - 공유한 Group의 Id
2.1.3 FieldSetName - 공유된 레코드의 필드 중 Feed(또는 Note)로 구성할 필드를 모은 Field Set
2.1.4 RecordLinkFormula - 레코드 이동 편의를 위한 포뮬라
2.1.5 GroupLinkFormula - 그룹 이동 편의를 위한 포뮬라
2.2 FieldSet (공유 가능한 Object마다 구성)
2.3 Lightning Component(Aura, LWC)
2.3.1 Lightning Page에 설정 시 Object의 FieldSet을 Parameter로 설정
2.3.2 CollaborationGroup, CanHaveGuests = true를 조회 하여 선택
2.3.3 Group을 선택하면 ShareRecord 레코드를 생성
2.4 ShareRecordTrigger
2.4.1 생성된 ShareRecord의 정보를 바탕으로 Feed 생성
2.4.2 ParentId에 ShareRecord.GroupId
2.4.3 Createdby로 누가 공유했는지
2.4.4 Body에 공유 내역을 FieldSet Class를 활용하여 조회 후
2.4.4.1 FeedBody로 단순 텍스트로 공유
2.4.4.2 Note나 File로 생성하여 FeedAttachment로 연결

https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000001shw&fId=0D53A00004tlJUn