Salesforce 트리거

Salesforce 트리거를 사용하면 변경 데이터 캡처(CDC)엔터프라이즈 메시징 플랫폼 이벤트를 리슨할 수 있습니다. 이 트리거를 사용하면 CDC 이벤트(만들기, 업데이트, 삭제 또는 삭제 취소) 또는 Salesforce 인스턴스의 플랫폼 이벤트를 기반으로 통합을 시작할 수 있습니다.

시작하기 전에

이 섹션에서는 Apigee Integration에 pub/sub 방식으로 변경사항을 스트리밍하기 위해 변경 데이터 캡처(CDC) 또는 플랫폼을 사용하도록 Salesforce 인스턴스를 연결하고 구성하는 데 필요한 단계에 대해 설명합니다. Apigee에서 Salesforce 관련 태스크나 트리거를 구성하기 전에 다음 단계를 완료해야 합니다.

통합 사용자 설정

다음 단계를 수행하여 통합 사용자를 설정합니다.

  1. sysadmin 사용자 인증 정보로 Salesforce 인스턴스에 로그인합니다.
  2. 톱니바퀴 아이콘을 클릭한 후 다음 이미지와 같이 설정을 선택합니다. 설정 페이지를 보여주는 이미지설정 페이지를 보여주는 이미지
  3. 관리 메뉴에서 사용자 > 사용자를 클릭합니다.
  4. 사용자 창에서 새 사용자 버튼을 선택합니다.
  5. 사용자 수정 대화상자에서 다음 세부정보를 입력합니다.
    1. 이름: 통합 사용자의 이름입니다.
    2. : 통합 사용자의 성입니다.
    3. 이메일 주소: 통합 사용자의 이메일입니다. 그룹 이메일이어야 합니다.
    4. 사용자 이름: 조직 수준의 명명 규칙을 준수하는 사용자 이름입니다.

      새 통합 사용자를 만드는 경우 EMAIL.SALESFORCE_ORG_NAME.SANDBOX_NAME 형식을 사용합니다.

      기존 통합 사용자가 있는 경우 여기에 사용자 이름을 입력했는지 확인합니다.

    5. 역할: 옵션 드롭다운에서 선택합니다.
    6. 사용자 라이선스: Salesforce를 입력합니다. 평가판 조직을 사용하는 경우에는 Salesforce Platform을 입력합니다.
    7. 프로필: 드롭다운에서 통합 사용자의 권한 프로필을 선택합니다.

      승인되지 않은 사용으로부터 통합 사용자 Salesforce 액세스를 보호하려면 권한 없이 프로필을 할당하는 것이 좋습니다.

    8. 저장을 클릭합니다.
  6. 새 통합 사용자의 비밀번호를 업데이트하려면 다음 단계를 따르세요.
    1. 사용자 창에서 비밀번호 재설정 버튼을 클릭합니다. 비밀번호 재설정 이메일이 사용자와 연결된 이메일 주소로 전송됩니다.
    2. 이메일 계정에서 비밀번호 재설정 절차를 따르세요. 새 비밀번호를 메모합니다. 나중에 입력해야 하기 때문입니다.

권한 세트 구성

이미 통합 사용자에게 적합한 권한 집합에 대한 액세스 권한이 이미 있는 경우 이 단계를 건너뛰고 보안 토큰 설정을 진행할 수 있습니다. 그렇지 않은 경우 다음 단계에 따라 통합 사용자와 Salesforce 객체에 대한 권한 세트를 구성합니다.

통합 사용자에 대해 권한 집합을 구성하려면 다음 단계를 따르세요.

  1. 설정 메뉴에서 사용자 > 권한 집합을 클릭합니다.
  2. 권한 집합 창에서 새로 만들기 버튼을 클릭합니다.
  3. 권한 집합 대화상자에 다음 세부정보를 입력합니다.
    • 라벨: 권한 집합의 이름을 입력합니다.
    • 라이선스: 라이선스 드롭다운에서 Salesforce를 선택합니다.
    • 저장을 클릭합니다.
  4. 시스템 설정 옵션 목록에서 아래로 스크롤하여 시스템 권한을 선택합니다.
  5. 시스템 권한 페이지에서 수정 버튼을 클릭합니다.
  6. 사용 가능한 권한 목록까지 아래로 스크롤하고 API 사용 설정됨 체크박스를 선택합니다.

    Api 전용 사용자 권한도 필요하지만 필요한 보안 토큰이 재설정될 때까지 사용 설정할 수 없습니다. 이 권한은 이후 단계에서 추가됩니다.

  7. (선택사항) 해당되는 경우 스크롤하여 모든 데이터 수정 모든 데이터 보기를 선택합니다. 이러한 권한은 필수는 아니지만, 통합 사용자에게 새 객체에 대한 액세스 권한을 자동으로 제공하려는 경우에 유용할 수 있습니다. 샌드박스에서의 테스트에서만 이러한 권한을 사용하는 것이 좋습니다.
  8. 권한 목록 상단으로 스크롤하여 저장을 클릭합니다.
  9. 설정을 확인하고 저장을 클릭합니다.

Salesforce 객체의 권한 집합을 구성하려면 다음 안내를 따르세요.

  1. 권한 집합 개요를 클릭하여 기본 권한 집합 구성 페이지로 돌아갑니다.
  2. 권한 설정 창의 섹션에서 객체 설정을 선택합니다.
  3. 아래로 스크롤하여 권한 집합이 필요한 Salesforce 객체를 선택합니다. 이 예시에서는 Opportunity 객체를 사용합니다.
  4. 객체 세부정보 페이지에서 수정 버튼을 클릭합니다.
  5. 레코드 유형의 체크박스를 선택합니다. 필요한 레코드 유형을 알고 있으면 해당 레코드 유형을 선택합니다. 어떤 레코드 유형이 필요한지 잘 모르는 경우 모두 선택하세요.
  6. 객체 권한의 체크박스를 선택하여 사용 설정합니다. 읽기모두 보기를 사용하는 것이 좋습니다.
  7. 해당 체크박스를 선택하여 각 객체 필드에 대해 읽기 액세스 또는 수정 권한을 부여합니다.
  8. 페이지의 상단으로 스크롤하여 저장을 클릭합니다.

보안 토큰 설정

통합 사용자를 위한 보안 토큰을 이전에 만들었고 비밀번호를 재설정하면 새 보안 토큰이 포함된 이메일이 자동으로 전송됩니다. 새 토큰을 사용하고 연결된 앱 만들기로 건너뛸 수 있습니다.

그러지 않으면 다음 단계를 따라 통합 사용자의 보안 토큰을 재설정합니다.

  1. 이전 단계에서 설정한 사용자 이름과 비밀번호를 사용하여 Salesforce에 통합 사용자로 로그인합니다.
  2. 기본 메뉴에서 프로필 사진을 클릭한 다음 설정을 클릭합니다.
  3. 설정 메뉴에서 내 보안 토큰 재설정을 선택하여 보안 토큰 재설정 창을 엽니다.
  4. 보안 토큰 재설정 버튼을 클릭합니다.
  5. 새 보안 토큰이 포함된 이메일의 통합 사용자에게 연결된 이메일 계정을 확인합니다. 이후 단계에서 필요하므로 새로운 보안 토큰을 기록합니다.
  6. (선택사항) 위의 권한 세트 구성에서 설명한 대로 권한 집합에 대해 시스템 권한에서 Api 사용자 전용 권한을 사용 설정합니다.

연결된 앱 만들기

연결된 앱을 설정하려면 시스템 관리 권한이 필요합니다. 현재 통합 사용자로 로그인한 경우 로그아웃한 다음 sysadmin으로 다시 로그인합니다.

연결된 앱을 설정하려면 다음 단계를 따르세요.

  1. 톱니바퀴 아이콘을 클릭한 후 설정을 선택합니다.
  2. 설정 메뉴에서 다음 이미지와 같이 App Manager를 검색하여 선택합니다. 설정 페이지를 보여주는 이미지설정 페이지를 보여주는 이미지
  3. 새로 연결된 앱을 클릭합니다.
  4. 구성 창에서 다음 세부정보를 제공합니다.
    • 연결된 앱 이름: 연결된 앱의 이름을 입력합니다.
    • API 이름: API의 이름을 입력합니다.
    • 연락처 이메일: 연결된 앱의 이메일을 입력합니다. 그룹 이메일 별칭이 적합합니다.
    • API(OAuth 설정 사용): OAuth 설정 사용을 선택합니다. 이어서 다음을 설정합니다.
      1. (선택사항) 콜백 URL: 외부 서비스에서 유효성 검사를 수행하는 경우에만 필요합니다. 콜백을 제공하려는 경우 http(s):// 프리픽스를 포함해야 합니다.
      2. 선택한 OAuth 범위: 다음을 선택합니다.
        • 데이터(api) 액세스 및 관리
        • 사용자를 대신하여 언제든지 요청 수행(refresh_token, offline_access)
  5. 저장을 클릭합니다.
  6. 계속을 클릭합니다. 이메일 주소로 전송된 인증 코드를 사용하여 다시 승인해야 합니다.
  7. 코드가 성공적으로 승인되면 다음 페이지에 소비자 보안 비밀고객 키가 표시됩니다. Apigee용 인증 모듈을 설정할 때 사용되므로 이 값을 기록해 둡니다.
  8. 관리 버튼을 클릭합니다.
  9. 연결된 앱 세부정보 페이지에서 정책 수정 버튼을 클릭합니다.
  10. OAuth 정책 섹션에서 허용된 사용자 드롭다운의 값을 관리자가 승인한 사용자는 사전 승인됨으로 변경합니다.
  11. 저장을 클릭합니다.
  12. 페이지의 프로필권한 집합 섹션으로 스크롤하여 연결된 앱에 적용할 프로필 또는 권한 집합을 선택합니다.
  13. 원하는 프로필 또는 권한 집합을 선택합니다.
  14. 저장을 클릭합니다.

CDC 이벤트 사용을 위한 기본 요건 단계

CDC 이벤트를 사용하도록 Apigee 트리거를 구성하려면 먼저 Salesforce에서 CDC에 구성된 객체를 추가합니다.

  1. Salesforce에 sysadmin으로 로그인합니다.
  2. 톱니바퀴 아이콘을 클릭한 다음 설정을 클릭합니다.
  3. 왼쪽 탐색 메뉴를 사용하여 Change Data Capture를 검색하여 선택합니다.
  4. 변경 데이터 캡처 설정 페이지의 사용 가능한 항목 열에서 사용할 Salesforce 객체를 찾아 선택된 항목 열로 드래그합니다.
  5. 저장을 클릭합니다.

플랫폼 이벤트를 사용하기 위한 기본 요건 단계

플랫폼 이벤트를 사용하도록 Apigee 트리거를 구성하려면 먼저 Salesforce에서 다음 단계를 완료합니다.

  • 플랫폼 이벤트 만들기
  • 플랫폼 이벤트의 권한 업데이트

플랫폼 이벤트 만들기

플랫폼 이벤트를 만들려면 다음 단계를 수행합니다.

  1. sysadmin 사용자 인증 정보로 Salesforce 인스턴스에 로그인합니다.
  2. 톱니바퀴 아이콘을 클릭한 후 설정을 선택합니다.
  3. 탐색창에서 플랫폼을 검색한 후 플랫폼 이벤트를 클릭합니다.
  4. 새 플랫폼 이벤트를 보여주는 이미지새 플랫폼 이벤트를 보여주는 이미지
  5. 플랫폼 이벤트 페이지에서 새 플랫폼 이벤트를 클릭하고 다음 속성을 설정합니다.
  • 라벨
  • 복수형 라벨
  • 객체 이름(이 필드는 자동으로 채워짐)
  • 게시 동작 다음 값 중 하나를 선택합니다.
    • 커밋 후 게시: 조건이 충족되지 않으면 이벤트 스트리밍을 되돌립니다.
    • 즉시 게시: 유효성 검사를 기다리지 않고 이벤트를 즉시 트리거합니다.
    게시 동작에 대한 자세한 내용은 플랫폼 이벤트 및 트랜잭션을 참조하세요.
  • 배포 상태(선택사항): 이벤트를 배포할 준비가 되면 배포됨을 선택합니다.
  • 저장을 클릭합니다.
  • 플랫폼 이벤트의 라벨 설정과 게시 동작을 보여주는 이미지플랫폼 이벤트의 라벨 설정과 게시 동작을 보여주는 이미지
  • 커스텀 필드를 만듭니다. 커스텀 필드를 만들려면 커스텀 필드 및 관계 섹션에서 새로 만들기를 클릭하고 커스텀 필드 유형을 선택합니다. 원하는 만큼 커스텀 필드를 만들 수 있습니다.
  • 커스텀 필드를 만든 후에는 플랫폼 이벤트 페이지에서 API 이름 필드의 값을 확인합니다. 객체 이름은 _e로 끝납니다. 즉, 객체가 플랫폼 이벤트 객체라는 의미입니다. CDC 객체의 경우 객체 이름이 _c로 끝납니다.

    저장된 플랫폼 이벤트의 세부정보를 보여주는 이미지저장된 플랫폼 이벤트의 세부정보를 보여주는 이미지

    플랫폼 이벤트의 권한 업데이트

    통합 사용자가 새로 생성된 플랫폼 이벤트에 액세스할 수 있게 하려면 권한 집합을 업데이트해야 합니다.

    권한을 업데이트하려면 다음 단계를 수행합니다.

    1. 설정 메뉴에서 사용자 > 권한 집합을 클릭합니다.
    2. 권한 세트 페이지에서 이전에 만든 권한을 클릭합니다.
    3. 객체 설정 > Plural Label of the Platform Event를 클릭합니다.
    4. 객체 권한 섹션에서 읽기만들기 권한을 사용 설정합니다.
    5. 저장을 클릭합니다.
    6. 플랫폼 이벤트의 권한을 보여주는 이미지플랫폼 이벤트의 권한을 보여주는 이미지

    Salesforce 트리거 추가

    신규 또는 기존 통합에 Salesforce 트리거를 추가하려면 다음 단계를 수행합니다.
    1. Apigee UI에서 Apigee 조직을 선택합니다.
    2. 개발 > 통합을 클릭합니다.
    3. 기존 통합을 선택하거나 통합 만들기를 클릭하여 새 통합을 만듭니다.

      새 통합을 만드는 경우:

      1. 통합 만들기 대화상자에 이름과 설명을 입력합니다.
      2. 지원되는 리전 목록에서 통합에 대한 리전을 선택합니다.
      3. 만들기를 클릭합니다.

      통합 디자이너 페이지에서 통합이 열립니다.

    4. 통합 설계자 탐색 메뉴에서 +태스크/트리거 추가 > 태스크를 클릭하여 사용 가능한 태스크 목록을 봅니다.
    5. 기존 통합을 선택하거나 통합 만들기를 클릭합니다.
    6. 통합 편집기에서 + 태스크/트리거 추가 > 트리거를 클릭하여 사용 가능한 트리거를 봅니다.
    7. Salesforce 트리거 요소를 클릭하여 디자이너에 배치합니다.

    Salesforce 트리거 구성

    Salesforce 트리거를 구성하려면 다음 단계를 수행합니다.

    1. 통합 편집기에서 Salesforce 트리거를 클릭하여 트리거 구성 창을 봅니다.
    2. Salesforce 인스턴스 구성 드롭다운에서 Salesforce 인스턴스를 선택합니다.

      Salesforce 인스턴스가 없으면 새 인스턴스를 만듭니다. 자세한 내용은 새 Salesforce 인스턴스 만들기를 참조하세요.

    3. Salesforce 채널 구성 드롭다운에서 Salesforce 채널을 선택합니다.

      Salesforce 채널이 없으면 새 채널을 만듭니다. 자세한 내용은 새 Salesforce 채널 만들기를 참조하세요.

    4. 이벤트 유형을 CDC로 선택했으면 다음 작업 중 하나를 선택합니다.
      • Create
      • Update
      • Delete
      • Undelete

      특정 작업 또는 간격 작업이 발생한 경우에만 트리거가 실행됩니다.

      Salesforce 트리거를 작업 하나에만 구성할 수 있습니다. 여러 작업에 트리거를 실행하려면 작업마다 Salesforce 트리거를 만듭니다.

    새 Salesforce 인스턴스 만들기

    새 Salesforce 인스턴스를 구성하려면 다음 단계를 수행합니다.

    1. 수정 가능한 트리거 속성에서 Salesforce 인스턴스 구성 선택 > + 새 Salesforce 인스턴스 구성 추가를 클릭합니다.
    2. Salesforce 인스턴스 구성 추가 대화상자에서 다음 속성을 설정합니다.
      • Salesforce 인스턴스 연결 이름: 인스턴스 이름을 입력합니다.

        구성 후에는 이 이름을 사용하여 Salesforce 인스턴스를 참조합니다.

      • Salesforce 도메인: 인스턴스의 서비스 권한을 입력합니다. Salesforce 계정에서 도메인을 찾을 수 있습니다. 예를 들면 instance.my.salesforce.com입니다. 다음 이미지는 Salesforce 도메인을 보여줍니다.

        Salesforce 인스턴스에서 Salesforce 도메인 가져오기 Salesforce 인스턴스에서 Salesforce 도메인 가져오기

      • 인증 프로필: 인증 프로필을 선택합니다.

        인증 프로필이 없으면 OAuth 2.0 리소스 소유자 비밀번호 사용자 인증 정보 인증 유형으로 새 프로필을 만듭니다. 다음 이미지는 인증 프로필을 만드는 데 필요한 필드를 보여줍니다.

        OAuth 2.0 리소스 소유자 비밀번호 사용자 인증 정보 OAuth 2.0 리소스 소유자 비밀번호 사용자 인증 정보

        필드에 대한 자세한 내용은 OAuth 2.0 리소스 소유자 비밀번호 사용자 인증 정보를 참조하세요. Salesforce 인스턴스에 다음 값을 입력합니다.
        • 클라이언트 ID: 연결된 앱을 설정할 때 확인한 고객 키를 입력합니다.
        • 보안 비밀: 연결된 앱을 설정할 때 확인한 고객 보안 비밀을 입력합니다.
        • 비밀번호: USER_PASSWORDSECURITY_TOKEN 형식으로 사용자 비밀번호를 입력합니다. 다음을 바꿉니다.
          • USER_PASSWORD: Salesforce 사용자 비밀번호입니다.
          • SECURITY_TOKEN: 통합에 설정한 보안 토큰입니다.
          예를 들어 USER_PASSWORDtest-password이고 SECURITY_TOKEN737K27NCa3O6이면 비밀번호는 test-password737K27NCa3O6입니다.
  • Salesforce 조직 ID: Salesforce 인스턴스의 조직 ID를 입력합니다. Salesforce 관리자로부터 ID를 가져올 수 있습니다.
  • Add(추가)를 클릭합니다.
  • 새 Salesforce 채널 만들기

    새 Salesforce 채널을 구성하려면 다음 단계를 수행합니다.

    1. 수정 가능한 트리거 속성에서 Salesforce 채널 구성 선택 > + 새 Salesforce 채널 구성 추가를 클릭합니다.
    2. Salesforce 채널 구성 추가 대화상자에서 Salesforce 객체 이름 속성의 객체 이름을 입력합니다.

      객체 이름을 모르는 경우 Salesforce 관리자에게 문의하세요.

    3. Add(추가)를 클릭합니다.

    출력 변수

    Salesforce 트리거의 응답을 출력 변수에서 사용할 수 있습니다.

    다음 표에서는 CDC 이벤트의 출력 변수를 설명합니다.

    변수 데이터 유형 설명
    SalesforceTriggerCdcPayload JSON 변경 이벤트 세부정보입니다.
    SalesforceTriggerEvent JSON 이벤트의 replayId를 포함합니다.
    SalesforceTriggerSchema 문자열 스키마를 트리거합니다.
    SalesforceTriggerCdcSnapshot JSON 변경 이벤트 후 객체 스냅샷 이 필드를 UpdateCreate 작업에만 사용할 수 있습니다.
    SalesforceTriggerCdcRecordId 문자열 업데이트되거나 추가된 레코드의 recordId를 포함합니다. recordId는 변경된 Salesforce 객체의 식별자입니다.

    다음 표에서는 플랫폼 이벤트의 출력 변수를 설명합니다.

    변수 데이터 유형 설명
    SalesforceTriggerPEPayload JSON 변경 이벤트 세부정보입니다.
    SalesforceTriggerEvent JSON 이벤트의 replayId를 포함합니다.
    SalesforceTriggerSchema 문자열 스키마를 트리거합니다.
    이 트리거의 출력 매개변수는 CdcTriggerPayload JSON 변수입니다. JSON 변수는 업데이트된 레코드 객체를 포함합니다.

    권장사항

    커스텀 코드를 작성해 Salesforce 이벤트를 게시하지 않고 Salesforce 알림을 사용하여 통합을 트리거하려는 경우에는 Salesforce 트리거를 사용하는 것이 좋습니다. Salesforce 케이스에서 필드가 약간 변경되면 Salesforce CDC 이벤트가 트리거되어 통합이 트리거되므로 상당한 통합 노이즈가 발생할 수 있습니다. 이벤트 필터 변경을 사용하여 통합을 트리거하는 필수 CDC 이벤트만 필터링하는 것이 좋습니다. 이벤트 필터 변경을 사용하면 통합 노이즈를 줄이고 라이선스 제한사항을 준수할 수 있습니다.

    마찬가지로 통합이 더 이상 필요하지 않으면 이 트리거를 사용하여 모든 통합을 게시 취소하는 것이 좋습니다. 게시가 취소되거나 삭제될 때까지 통합은 Salesforce CDC 및 플랫폼 이벤트를 계속 리슨합니다.

    고려사항

    Salesforce 트리거를 사용하여 통합을 실행하기 전에 다음 사항을 고려하세요.

    • Salesforce에서는 일반적으로 하루에 CDC 및 플랫폼 이벤트를 최대 100,000개까지 전송합니다. 통합 트리거에 사용할 CDC 이벤트를 선택하기 전에 Salesforce 관리자에게 문의하여 라이선스 제한사항을 파악합니다.
    • Salesforce로의 일괄 업로드를 계획 중이라면 CDC를 일시중지하여 통합 노이즈를 줄이고 라이선스 제한사항을 준수하는지 확인하세요.
    • Salesforce에서 게시할 수 있는 최대 이벤트 메시지 크기는 1MB입니다. 자세한 내용은 변경 데이터 캡처 할당을 참조하세요.
    • Apigee에서는 다음 minicluster 리전에서 Salesforce CDC 이벤트를 지원하지 않습니다.
      • asia-northeast1
      • asia-south1
      • australia-southeast1
      • europe-west2
      • europe-west3
      • europe-west6
      • northamerica-northeast1
      • southamerica-east1
      • us-east4
      • us-west2