콘텐츠로 이동
📣 인포그랩에서 OpenAI 기술 기반으로 자체 개발한 자동화 번역 프로그램을 통해 n8n 공식 문서의 한글판을 국내 최초로 제공합니다.

3. 주문 필터링#

워크플로우의 이 단계에서는 조건 논리를 사용하여 데이터를 필터링하는 방법과 If 노드를 사용하여 노드에서 표현식을 사용하는 방법을 배웁니다.

Airtable에 처리 중인 주문만 삽입하려면 orderStatus로 데이터를 필터링해야 합니다. 기본적으로, orderStatus가 처리 중일 모든 기록을 Airtable에 삽입하라고 프로그램에 지시하고, 그렇지 않으면, 예를 들어 orderStatus처리 중이 아닐 경우, 다른 orderStatus (booked)를 가진 모든 주문의 합계를 계산하고 싶습니다.

이 if-then-else 명령은 조건 논리입니다. n8n 워크플로우에서는 If node를 사용하여 비교 작업을 기반으로 조건적으로 워크플로우를 분리할 수 있습니다.

If vs. Switch

If 노드를 사용하여 가능한 두 개 이상의 조건 경로에서 데이터를 필터링해야 하는 경우 Switch node를 사용하십시오. Switch node는 If node와 유사하지만 여러 출력 경로를 지원합니다.

Airtable 노드에 대한 연결 제거#

먼저, HTTP 요청 노드와 Airtable 노드 사이의 연결을 제거합시다:

  1. HTTP Request 노드와 Airtable 노드 사이의 화살표 연결에 마우스를 올립니다.
  2. 연결을 제거하기 위해 쓰레기 아이콘을 선택합니다.

If 노드 구성#

Airtable 노드와의 연결이 제거되면, HTTP 요청 노드에 연결된 If 노드를 추가합니다:

  1. HTTP 요청 노드에서 나오는 + 기호를 선택합니다.
  2. If 노드를 검색합니다.
  3. 검색 결과에 나타나면 선택합니다.

If 노드에서는 표현식을 사용할 것입니다.

Expressions

Expression은 입력에 따라 값을 나타내는 프로그래밍 언어의 문자 및 기호 문자열입니다. n8n 워크플로우에서는 노드에서 입력 데이터에 대한 다른 노드를 참조하기 위해 표현식을 사용할 수 있습니다. 우리의 예에서 If 노드는 HTTP 요청 노드가 출력한 데이터를 참조합니다.

If 노드 창에서 매개변수를 구성합니다:

  • 값 1: {{ $json.orderStatus }}

    1. 이 값을 선택하려면 먼저 값1 필드에 마우스를 올립니다.
    2. 값 1 필드의 오른쪽에서 Expression 탭을 선택합니다.
    3. 다음으로 연결 아이콘을 선택하여 표현식 편집기를 엽니다:
      Expression Editor 열기
      Expression Editor 열기
    4. 이제 변수 선택기 내비게이션을 사용하여 현재 노드 > 입력 데이터 > JSON을 엽니다.
    5. orderStatus를 선택합니다.
      IF 노드의 표현식 편집기
      If 노드의 표현식 편집기
    6. 표현식이 추가되면 편집 표현식 대화를 닫습니다.
  • 연산: 문자열 > 같음

  • 값 2: processing

Data Type

Operation을 선택할 때 올바른 데이터 유형(부울, 날짜 및 시간, 숫자 또는 문자열)을 선택해야 합니다.

Test step를 선택하여 If 노드를 테스트합니다.

귀하의 결과는 다음과 같아야 합니다:

If 노드 출력
If 노드 출력

orderStatusprocessing인 주문은 True Branch 출력에 표시되어야 하며, orderStatusbooked인 주문은 False Branch 출력에 표시되어야 합니다.

Airtable에 데이터 삽입하기#

다음으로, 이 데이터를 Airtable에 삽입하려고 합니다. Nathan이 Airtable에 데이터 삽입하기 수업의 마지막에 한 말을 기억하나요?

사실, 테이블에 처리 중인 주문만 삽입해야 해요...

Nathan이 테이블에 processing 주문만 필요하므로, Airtable 노드를 If 노드의 true 커넥터에 연결할 것입니다.

이 경우, Airtable 노드는 이미 캔버스에 있으므로 HTTP 요청true 커넥터를 선택하고 Airtable 노드로 드래그합니다.

이 시점에서 Airtable 노드를 다시 테스트하는 것이 좋습니다. 그 전에 Airtable에서 테이블을 열고 기존의 모든 행을 삭제하십시오. 그런 다음 n8n에서 Airtable 노드 창을 열고 단계 테스트를 선택합니다.

Airtable에서 데이터를 검토하여 워크플로우가 올바른 주문(주문 상태가 processing인 주문)만 추가했는지 확인하십시오.

이 단계에서 귀하의 워크플로우는 다음과 같아야 합니다:

If 노드가 있는 워크플로우
If 노드가 있는 워크플로우

다음은 무엇인가요?#

Nathan 🙋: 이 If 노드는 데이터를 필터링하는 데 정말 유용해요! 이제 처리 중인 주문에 대한 모든 정보를 가지고 있어요. 사실, employeeNameorderID만 필요하지만, 혹시나 해서 다른 필드도 모두 남겨둘 수 있을 것 같아요.

You 👩‍🔧: 사실, 그렇게 하는 것은 추천하지 않아요. 더 많은 데이터를 삽입하면 더 많은 컴퓨터 성능이 필요하고, 데이터 전송 속도가 느려지고 시간이 더 걸리며, 테이블의 저장 리소스도 더 많이 차지합니다. 이 경우, 5개의 특성을 가진 14개의 레코드는 그리 많지 않아 보일 수 있지만, 비즈니스가 수천 개의 레코드와 수십 개의 특성으로 성장하면 상황이 달라질 수 있으며, 추가적인 열 하나가 성능에 영향을 줄 수 있습니다.

Nathan 🙋: 아, 그거 알아두면 좋네요. 처리 중인 주문에서 두 개의 필드만 선택할 수 있나요?

You 👩‍🔧: 물론이죠, 다음 단계에서 그렇게 할게요.

인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!