Salesforce REST API 연동

3월 9일 업데이트됨

안녕하세요, 클로비스입니다.

오늘은 그동안 궁금해하셨을 세일즈포스와 외부 프로그램의 데이터 전송 가능 여부와 저희 클로비스에서 사용하는 방식에 대해 알아보겠습니다.


우선 그동안 궁금해하셨을 세일즈포스의 데이터를 다른 응용 프로그램과 주고받는 기능 또는 사용하시는 응용 프로그램, 예) ERP, 의 데이터를 세일즈포스로 불러오는 기능은 API를 사용 시 가능하다고 자신있게 말씀드릴 수 있겠습니다.


API란 운영체제와 응용 프로그램 간의 통신으로 데이터를 주고받거나 어느 기능을 사용할 수 있게 해주는 일종의 매개체입니다.

하기 이미지와 같이 세일즈포스에서는 다양한 API 방식을 제공하고 있으며 저희 클로비스는 주로 REST API 방식으로 연동을 진행하고 있습니다.


그럼 REST API란 무엇일까요?

우선, 클로비스에서는 앞서 말씀드린 대로 어느 프로그램이 가지고 있는 데이터와 기능을 사용하기 위해 REST API 연동을 구현하고 있습니다.


REST API(Representational State Transfer)는 API의 방식 중 하나입니다.

REST API는 URI(통합 자원 식별자)로 각 자원을 식별 후 HTTP(서버 통신) 기반으로 필요한 자원에 접근을 가능하게 합니다.

세일즈포스의 REST API는 기본적으로 5가지의 HTTP 메소드(HEAD, GET, POST, PATCH-부분 수정, DELETE)를 지원하며 URI(통합 자원 식별자)와 어느 측에서 요청하고(클라이언트) 받을지(서버) 상호 간에 정의한 규칙을 통해 통신하도록 정의되어있습니다.


URI, HTTP 메소드란?

REST API의 모든 자원(데이터, 프로그램의 기능 등)은 고유한 값이 존재하며 이는 HTTP URI로 표현이 됩니다.

그 후 클라이언트는 URI를 통해 특정 자원의 정보를 서버에 요청하며 HTTP 메소드를 통해 해당 자원에 대한 CRUD를 적용하는 것까지가 REST API의 기능입니다.


클라이언트와 서버란?

앞서 나온 클라이언트와 서버를 구분하기 위해 간략하게 말씀드리자면

데이터베이스 유무와 상관없이 어떠한 요청(Request)을 하는 측이 클라이언트이며

반대로 데이터베이스 유무와 상관없이 요청을 받아 어떠한 응답(Response)을 전달하는 측이 서버입니다.

즉, 서버라고 해서 꼭 데이터를 저장하는 측이 아니라는 점을 유의하시면 됩니다.


그럼 외부 응용 프로그램에서 세일즈포스의 REST API를 통해 어떻게 접근해야 할까요?

세일즈포스에 접근하기 위해서는 어느 API와 동일하게 인증하는 단계는 필수입니다.

세일즈포스에 접근할 수 있는(세일즈포스에서 발급된) ID 와 비밀번호를 통해 토큰값을 부여받아 세일즈포스의 커스터마이징을 가능하게 하는 프로그래밍 언어인 APEX로 구현된 API를 호출이 가능합니다.


세일즈포스와 API 연동 구현 시 유의 하실 사항이 있습니다.

  1. 세일즈포스 내, 외부에서 API를 통해 접근 할 수 있는 애플리케이션 생성은 필수

  2. 세일즈포스 사용자 정보(아이디, 비밀번호) 변경 시, 코드 수정 필수

  3. 발급받은 토큰의 유효시간이 24시간으로 만료되지 않도록 배치 코드를 작성 후 일정 시간에 한 번씩 자동 호출. (세션 만료 시간은 새롭게 호출된 시점부터 24시간 연장되며 처음 부여받은 토큰 값 또한 유지됩니다. 세션이 만료될 시 코드 수정 필수)

  4. 어느 시스템이 요청할지(클라이언트) 응답할지(서버), 아니면 양방향으로 요청을 주고받을지 명확하게 협의 필수 (API는 상황에 따라 요청하는 응답하는 단방향 혹은 양측간 자원을 요청하고 전달하는 양방향이 될 수도 있습니다.)

  5. API 연동 시점 (실시간, 지정된 시간)

  6. 연동 시 가져오는 데이터의 크기(단 건 처리, 대량 전송)

  7. 데이터 타입(JSON, XML...)


REST API를 이해하시기 쉽도록 실생활에 예를 들어 설명하자면

식당에 가서 직원에게 음식을 주문하면 그 직원이 주방 측에 주문 명세를 전달합니다. 그럼 요리사가 음식을 만들고 다시 직원을 통해 손님에게 전달하게 됩니다.

이 상황에서 주문을 받은 직원이 API가 되며 주문한 손님은 요청하는 클라이언트이며 요청을 받아 어떠한 처리를 하는 요리사가 서버가 되는 상황입니다.


사용하시는 프로그램과 세일즈포스의 연동이 구현되면 데이터를 중복 입력하는 작업 없이 필요한 데이터만 출력이 가능하며 그로 인해 고객관리의 원활하게 이루어지는 것을 저희 클로비스의 고객들께서 직접 경험하셨습니다.




세일즈포스와 사내 시스템 또는 기타 앱 등을 어떻게 연동하고 활용할 수 있는 지 궁금하시다면, 지금 바로 클로비스에 문의주세요!


댓글 0개

최근 게시물

전체 보기