Dynamics 365: 레코드 생성 또는 업데이트
Dynamics 365: 레코드 생성 또는 업데이트를 사용하여 여정 단계에서 대체 키 열을 기준으로 일치하는 하나의 Dataverse 행을 업서트(upsert)합니다. 값이 이미 있는 경우 행을 업데이트하고, 없는 경우 새로 생성합니다. Dataverse 에는 정적 API 키가 없으므로 이 지점은 전체 계정에 대해 한 번 등록된 Entra ID 애플리케이션을 통해 인증합니다. 지점 자체에는 토큰 필드가 없습니다.
일반적인 사용 사례:
- Dynamics 365 동기화 유지: 여정 참여자가 여정을 진행함에 따라 행을 생성하거나 업데이트하여 CRM 에서 최신 데이터를 볼 수 있도록 합니다.
- 여정 활동을 CRM 에 동기화: 여정 참여자가 마일스톤에 도달했을 때 열을 설정하여 팀이 이를 필터링하거나 보고할 수 있도록 합니다.
- 중복 행 방지: 대체 키로 일치시키면 이 지점을 다시 통과하는 여정 참여자는 새 행을 생성하는 대신 동일한 행을 업데이트합니다.
시작하기 전에
Anchor link toEntra ID 에 애플리케이션을 등록하고 설정 > 타사 통합 > Microsoft Dynamics 365에서 연결합니다:
- Microsoft Entra 관리 센터에서 애플리케이션을 등록하고 클라이언트 시크릿을 생성합니다.
- Power Platform 관리 센터에서 대상 환경을 열고, 애플리케이션을 애플리케이션 사용자로 추가한 후, 쓰려는 테이블의 행을 생성하고 업데이트할 수 있는 보안 역할을 할당합니다.
- Pushwoosh 의 환경 URL에
https://를 포함하고 후행 경로가 없는 환경의 URL 을 입력합니다(예:https://acme.crm4.dynamics.com). - 디렉터리(테넌트) ID 및 애플리케이션(클라이언트) ID에 Entra ID 개요 페이지에 있는 애플리케이션의 ID 를 입력합니다.
- 클라이언트 시크릿에 시크릿 값을 붙여넣습니다. 이 값은 쓰기 전용으로 저장됩니다. Pushwoosh 는 이 값을 다시 표시하지 않으므로, 교체하려면 새 값을 붙여넣어야 합니다.
- Dynamics 365 연결을 클릭합니다.

Dynamics 365 를 연결한 후, 통합을 설치하여 여정 빌더에 지점이 나타나도록 합니다.
지점 구성
Anchor link to- 왼쪽 패널의 통합 섹션에서 Dynamics 365: 레코드 생성 또는 업데이트를 캔버스로 드래그합니다.
- 지점을 더블 클릭하고 단계 이름을 입력합니다.
- 환경 호스트에
https://없이 동일한 환경의 호스트를 입력합니다(예:acme.crm4.dynamics.com).

- 테이블에 엔터티 세트 이름(복수형)을 입력합니다(예:
contacts,leads또는 사용자 지정 테이블의 세트 이름).

- 대체 키 열에 해당 테이블의 대체 키가 적용되는 열을 입력합니다(예:
pw_hwid).

- 대체 키 값에 일치시킬 값을 입력합니다. 보통
{{device:hwid}}와 같은 매크로를 사용합니다. 값은 요청 URL 에 포함되므로 따옴표가 있는 값은 피하세요.

- 열에 쓸 Dataverse 열마다 하나의 행을 추가합니다. 열 이름과 값을 입력합니다. 이름은 비어 있지 않고 고유해야 합니다. 값은 고정된 텍스트이거나 Webhook 본문에서와 같은
{{device:hwid}}와 같은 여정 참여자 매크로일 수 있습니다. 또는 동적 값 삽입을 클릭하여 이 여정의 이전 단계에서 생성된 속성(예: LLM 응답 또는 매핑된 Webhook 값)을 선택합니다.

- 저장을 클릭합니다.
여정 참여자는 캔버스에서 다음에 연결하는 단계로 계속 진행합니다.
단계 실행 후 속성
Anchor link toSalesforce: 레코드 생성 또는 업데이트와 달리, 이 지점은 행의 ID 를 여정 참여자 속성으로 반환하지 않습니다. 이후 단계에서 ID 가 필요한 경우, 동일한 대체 키 값으로 행을 다시 조회해야 합니다.
실패 및 예기치 않은 응답
Anchor link to지점의 드로어에서 호출 로그를 열고 응답을 확인합니다:
- 401 — 연결의 클라이언트 시크릿이 거부되었거나 만료되었습니다. 설정 > 타사 통합에서 다시 연결하세요.
- 403 — 애플리케이션 사용자의 보안 역할이 해당 테이블에 대한 생성 또는 업데이트 액세스 권한을 부여하지 않습니다.
- 404 — 환경 호스트 또는 테이블이 해당 환경의 어떤 것과도 일치하지 않습니다.
- 400 — 대체 키 열이 해당 테이블의 대체 키로 정의되지 않았거나, 열의 이름이 실제 열이 아닙니다.
요청이 실패하면 여정 참여자는 여정에서 제외됩니다. 오류 및 실패한 요청을 참조하세요.
예시 시나리오: 기업 요금제 요청을 Dynamics 365 에 동기화하기
Anchor link toB2B SaaS 앱에서 사용자가 인앱 기업 요금제 요청을 탭할 수 있습니다. 팀은 이 요청을 Dynamics 365 에 업서트(upsert)하여, 반복적인 탭이 중복을 생성하는 대신 동일한 행을 업데이트하도록 일치시키기를 원합니다.
- 트리거 기반 진입 요소를 추가하고
EnterprisePricingRequested이벤트에서 실행되도록 설정합니다. - 바로 뒤에 Dynamics 365: 레코드 생성 또는 업데이트를 추가합니다. 테이블을
contacts로, 대체 키 열을pw_hwid로, 대체 키 값을{{device:hwid}}로 설정합니다. 열에서emailaddress1을{{tag:Email}}로 설정합니다. - 저장을 클릭합니다.
이것이 실행되면, 요청은 장치별로 일치하는 Dynamics 365 연락처로 존재하게 되어, 영업팀이 앱 자체 데이터 대신 CRM 에서 작업할 수 있게 됩니다.