Skip to main content
Join the Agentforce Hackathon on Nov. 18-19 to compete for a $20,000 Grand Prize. Sign up now. Terms apply.

프롬프트 템플릿 생성 및 틀 마련하기

학습 목표

이 유닛을 완료하면 다음을 수행할 수 있습니다.

  • 기본 지식을 습득할 수 있습니다.
  • 프롬프트 빌더를 사용해 영업 이메일 프롬프트 템플릿을 생성할 수 있습니다.
  • 프롬프트 템플릿에 리소스를 추가할 수 있습니다.
  • Apex 클래스를 사용해 프롬프트 템플릿에 데이터를 제공할 수 있습니다.

이유와 방법

프롬프트 빌더: 빠르게 살펴보기 모듈에서 Salesforce 관리자인 Linda Rosenberg는 프롬프트 템플릿으로 작업을 자동화하여 영업 팀의 작업량을 줄이는 것을 목표로 삼았습니다. 이 모듈에서는 그 이유방법에 대해 자세히 살펴봅니다.

영업 이메일 프롬프트 템플릿 작성하기

참고

프롬프트 빌더에서 영업 이메일 프롬프트 템플릿을 생성하려면 Einstein for Sales, Einstein for Platform, Einstein for Service add-on 중 하나가 필요합니다.

Linda는 영업 팀에서 이메일을 생성하는 데 사용할 수 있는 템플릿을 만들어 제품 이벤트 진행 시 고객 초대장을 작성하는 데 소요되는 시간을 줄이고자 합니다.

Linda는 먼저 Salesforce 설정에서 프롬프트 빌더로 이동합니다. 프롬프트 빌더로 이동 후 가장 먼저 표시되는 것은 프롬프트 빌더 Explore 페이지입니다. 여기서 확인할 수 있는 것은 다음과 같습니다.

  • 프롬프트 빌더의 기능에 대해 자세히 알아볼 수 있는 안내서
  • 프롬프트 템플릿 안내 및 예시에 대한 액세스
  • 모든 기존 프롬프트 템플릿과 그 유형, 범주 및 상태 목록.
  • 기존 프롬프트 템플릿을 편집하고 삭제하는 기능.

프롬프트 빌더 Explore 페이지.

Explore 페이지에서 프롬프트 템플릿을 만들 수도 있습니다. New Prompt Template(새 프롬프트 템플릿) 버튼을 클릭합니다.

템플릿 유형 설정.

Linda는 템플릿 유형 설정 화면에 있는 필드를 채웁니다.

프롬프트 템플릿을 설정할 때는 명확한 목표를 세우는 것이 중요합니다. 이 경우 Linda는 회사의 고객이 누구인지, 그리고 영업 팀이 이메일을 통해 고객에게 전달하려는 내용은 무엇인지 생각해야 합니다.

Linda는 자신의 이메일이 Cloud Kicks의 모든 연락처에 전송될 수 있음을 알고 있습니다. 따라서 연락처는 수신자 개체에 해당합니다. 그리고 다음을 선택하여 템플릿 유형 설정을 완료합니다.

  1. Prompt Template Type(프롬프트 템플릿 유형): Sales Email(영업 이메일)
  2. Prompt Template Name(프롬프트 템플릿 이름): Invite Customer to Local Product Event(지역 제품 이벤트에 고객 초청하기)
  3. API Name(API 이름): Invite_Customer_to_Local_Product_Event
  4. Template Description(템플릿 설명): Email customer to invite to local product event.(고객에게 이메일을 보내 지역 제품 이벤트에 초대합니다.)
  5. Recipient(수신자): Contact(연락처)
  6. Related Object(관련 개체): Account(계정)

템플릿 틀 마련하기

앞서 우리는 템플릿을 구체적으로 만드는 것이 효과적이라는 것을 배웠습니다. '구체적'이라는 표현은 템플릿에 이 짜여져 있다는 뜻이기도 합니다.

템플릿 유형을 정의한 후 Linda는 템플릿 워크스페이스에서 프롬프트 초안을 작성하고 초안의 기반을 마련하기 시작합니다.

프롬프트가 있는 프롬프트 템플릿 워크스페이스.

고객 이름, 이메일의 발신자, 직책, 이벤트에 대한 세부 정보를 포함합니다.

당신은 Salesforce 관리자로, Cloud Kicks라는 조직에 소속된 Linda Rosenberg입니다. 당신의 잠재 고객은 온타리아주 토론토에 위치한 Acme Inc.에서 부장을 맡고 있는 Rob Hutchinson입니다.

위의 잠재 고객을 'Floating on Clouds: Toronto Kickoff' 이벤트에 초청하는 이메일을 70단어 이내로 작성합니다. 해당 이벤트는 Cloud Kicks의 기존 및 신규 고객에게 교류의 장을 제공하고 출시 예정 제품을 소개하기 위해 9월 18일에 개최됩니다. 잠재 고객이 해당 이벤트에 참석하여 얻을 수 있는 혜택을 설명하고, 상세한 정보가 필요할 경우 해당 이벤트 현장이나 온라인에서 얼마든지 상담이 가능하다고 덧붙입니다.

훌륭해 보이죠. 하지만 이 초안은 특정 발신자와 수신자 한 명에 대해서만 사용할 수 있도록 하드코딩되어 있습니다. 프롬프트를 한 번만 사용한다면 괜찮을 것입니다. 그러나 프롬프트 템플릿이라는 것은 모든 발신자와 수신자에게 사용할 수 있다는 것을 의미합니다. 회사의 CRM 데이터를 템플릿으로 가져와서 자동으로 틀을 마련하는 방법이 필요합니다.

다행히도 Linda는 병합 필드, Apex, Flow를 사용하여 프롬프트 빌더에서 Salesforce 데이터에 안전하게 액세스할 수 있다는 것을 알고 있었습니다.

프롬프트 템플릿에 병합 필드 추가하기

작성한 프롬프트를 검토한 Linda는 병합 필드을 사용하여 한 번만 사용할 수 있도록 하드코딩된 프롬프트에서 모든 발신자와 수신자가 재사용할 수 있는 프롬프트로 바꿀 수 있는 방법을 찾습니다.

당신은 Salesforce 관리자로, Cloud Kicks라는 조직에 소속된 Linda Rosenberg입니다. 잠재 고객은 Rob Hutchinson으로, 부장 직책을 맡고 있습니다. 회사는 온타리오주 토론토에 있습니다.

위의 잠재 고객을 'Floating on Clouds: Toronto Kickoff' 이벤트에 초청하는 이메일을 70단어 이내로 작성합니다. 해당 이벤트는 Cloud Kicks의 기존 및 신규 고객에게 교류의 장을 제공하고 출시 예정 제품을 소개하기 위해 9월 18일에 개최됩니다. 잠재 고객이 해당 이벤트에 참석하여 얻을 수 있는 혜택을 설명하고, 상세한 정보가 필요할 경우 해당 이벤트 현장이나 온라인에서 얼마든지 상담이 가능하다고 덧붙입니다.

Linda는 프롬프트 템플릿 워크스페이스에서 Resources(리소스) 선택 목록을 사용하여 사용할 리소스 유형을 선택합니다. 그리고 영업 이메일 프롬프트 템플릿에 대한 여러 옵션이 있다는 것을 알게 됩니다. 현재 조직, 발신자, 수신자 모두 프롬프트 템플릿에서 사용할 수 있습니다.

현재 조직, 발신자, 수신자를 포함하는 리소스 목록.

이 경우 Linda는 리소스 선택 목록에서 Sender(발신자)Recipient(수신자)를 선택한 다음 직책, 이름, 회사 등의 특정 정보를 선택하여 프롬프트 템플릿의 틀을 마련합니다. 작업 내용을 저장합니다.

입력 가능한 발신자 병합 필드가 리소스 선택기에 표시됩니다.

입력 가능한 수신자 병합 필드가 리소스 선택기에 표시됩니다.

참고

이 모듈에서는 프롬프트 템플릿에 {!$Resource} 구문이 표시됩니다. 이 특수 구문을 사용하면 이 모듈의 텍스트를 프롬프트 템플릿 워크스페이스에 쉽게 복사하여 붙여넣을 수 있습니다. 이렇게 하면 모든 리소스가 템플릿에서 원하는 위치와 방식으로 유지됩니다.

당신의 직책은 {!$Input:Sender.Title}이고 이름은 {!$Input:Sender.Name}이며 {!$Input:Sender.CompanyName}(이)라는 회사에 소속되어 있습니다. 잠재 고객은 {!$Input:Recipient.Title}{!$Input:Recipient.Name}입니다. 회사는 {!$Input:Recipient.MailingCity}에 있습니다.

위의 잠재 고객을 'Floating on Clouds: Toronto Kickoff' 이벤트에 초청하는 이메일을 70단어 이내로 작성합니다. 해당 이벤트는 Cloud Kicks의 기존 및 신규 고객에게 교류의 장을 제공하고 출시 예정 제품을 소개하기 위해 9월 18일에 개최됩니다. 잠재 고객이 해당 이벤트에 참석하여 얻을 수 있는 혜택을 설명하고, 상세한 정보가 필요할 경우 해당 이벤트 현장이나 온라인에서 얼마든지 상담이 가능하다고 덧붙입니다.

작성을 마친 후, Linda는 프롬프트가 응답을 표시하기 전에 조금 더 추가되어야 할 부분, 즉 9월 18일의 'Floating on Clouds: Toronto Kickoff'이 있다는 것을 알게 됩니다.

Cloud Kicks의 'Floating on Clouds'는 도시를 기반으로 지역의 고객을 초청하는 전국적 이벤트입니다. 그리고 Linda는 영업 이메일 프롬프트 템플릿을 최대한 개인화하여 고객을 지역 이벤트에 초대하는 이메일을 생성하려 합니다.

이렇게 하려면 병합 필드만으로는 충분하지 않다는 것을 깨닫습니다. 프롬프트 템플릿에 로직을 통합해야 합니다. 프롬프트 빌더 내에서 이 작업을 수행하기 위한 접근 방식으로는 Apex 또는 템플릿 트리거 프롬프트 플로 사용을 비롯한 몇 가지 방법이 있습니다. 먼저 프롬프트 템플릿에서 Apex를 사용하는 방법을 살펴보겠습니다.

프롬프트 템플릿에 Apex 추가하기

프롬프트에서 SOQL 쿼리 또는 외부 API의 데이터를 사용하려는 경우 Apex를 고려해 보세요. Apex는 올바르게 형식이 지정된 JSON을 생성하거나 프로그래밍 방식의 데이터 필터링을 수행하려는 경우에도 효과적입니다.

이 경우 Linda는 특정 연락처와 가까운 이벤트를 찾아 이벤트 이름, 제목, 위치 및 시작 시간을 반환하는 Apex 클래스를 만들고자 합니다. Linda는 개발자 콘솔을 사용하여 메서드가 InvocableMethod로 주석 처리된 ContactEventsPrompt라는 이름의 클래스를 만듭니다. InvocableMethodRequest 클래스에 정의된 입력이 프롬프트 내의 입력과 일치하는 List<Request>를 수락해야 합니다. 또한 InvocableMethod는 템플릿 유형과 일치하는 CapabilityType으로 레이블을 지정해야 합니다.

참고

프롬프트 템플릿에 Apex 클래스를 추가하는 방법에 대해 자세히 알아보거나 코드 샘플을 보려면 Salesforce 문서를 참조하세요.

클래스가 생성되면 Linda는 프롬프트 빌더의 프롬프트 템플릿 워크스페이스로 돌아가서 Apex가 이제 리소스라는 것을 확인합니다. Linda는 Resource(리소스)를 클릭하고 Apex를 선택하여 Apex 클래스를 추가합니다.

Apex, 현재 조직, 발신자, 수신자를 포함하는 리소스 목록.

사용 가능한 Apex 클래스가 리소스 선택기에 표시됩니다.

당신의 직책은 {!$Input:Sender.Title}이고 이름은 {!$Input:Sender.Name}이며 {!$Input:Sender.CompanyName}(이)라는 회사에 소속되어 있습니다. 잠재 고객은 {!$Input:Recipient.Title}{!$Input:Recipient.Name}입니다. 회사는 {!$Input:Recipient.MailingCity}에 있습니다.

위의 잠재 고객을 Cloud Kicks의 기존 및 신규 고객에게 교류의 장을 제공하고 출시 예정 제품을 소개하는 이벤트에 초청하는 이메일을 70단어 이내로 작성합니다. 잠재 고객이 해당 이벤트에 참석하여 얻을 수 있는 혜택을 설명하고, 상세한 정보가 필요할 경우 해당 이벤트 현장이나 온라인에서 얼마든지 상담이 가능하다고 덧붙입니다.

이메일에 다음 이벤트 정보를 추가합니다. {!$Apex:ContactEventsPrompt.Prompt}.

좋습니다! 이제 하나의 이벤트를 참조하지 않아도 됩니다. Linda는 Apex 클래스를 사용하여 특정 연락처에 가까운 이벤트를 반환할 수 있습니다.

리소스

Salesforce 도움말에서 Trailhead 피드백을 공유하세요.

Trailhead에 관한 여러분의 의견에 귀 기울이겠습니다. 이제 Salesforce 도움말 사이트에서 언제든지 새로운 피드백 양식을 작성할 수 있습니다.

자세히 알아보기 의견 공유하기