InfoGrab DocsInfoGrab Docs

3. 주문 필터링하기

요약

워크플로의 이 단계에서는 If 노드를 사용하여 조건부 로직으로 데이터를 필터링하고 노드에서 표현식을 사용하는 방법을 배웁니다. 이 단계 후 워크플로는 다음과 같이 보여야 합니다: Airtable에 processing 주문만 삽입하려면 orderStatus로 데이터를 필터링해야 합니다.

3. 주문 필터링하기#

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

이 단계 후 워크플로는 다음과 같이 보여야 합니다:

Airtable에 processing 주문만 삽입하려면 orderStatus로 데이터를 필터링해야 합니다. 기본적으로 orderStatus가 processing이면 이 상태의 모든 레코드를 Airtable에 삽입하고, 그렇지 않은 경우(예: orderStatusprocessing이 아닌 경우) 다른 orderStatus(booked)를 가진 모든 주문의 합계를 계산하도록 프로그램에 지시하려는 것입니다.

이 if-then-else 명령은 조건부 로직입니다. n8n 워크플로에서는 If 노드로 조건부 로직을 추가할 수 있으며, 이 노드는 비교 연산을 기반으로 워크플로를 조건부로 분기합니다.

If vs. Switch

불리언 값(참과 거짓) 이상으로 데이터를 필터링해야 하는 경우 Switch 노드를 사용합니다. Switch 노드는 If 노드와 유사하지만 여러 출력 커넥터를 지원합니다.

Airtable 노드 앞에 If 노드 추가하기#

먼저 HTTP Request 노드에서 Airtable 노드로의 연결 사이에 If 노드를 추가해봅시다:

  1. HTTP Request 노드와 Airtable 노드를 연결하는 화살표 위에 마우스를 올립니다.
  2. HTTP Request 노드와 Airtable 노드 사이의 + 기호를 선택합니다.

If 노드 구성하기#

더하기 기호를 선택하면 Airtable 노드와 HTTP 요청의 연결이 제거됩니다. 이제 HTTP Request 노드에 연결된 If 노드를 추가해봅시다:

  1. If 노드를 검색합니다.
  2. 검색 결과에 나타나면 선택합니다.

If 노드에는 표현식을 사용합니다.

표현식

표현식은 종종 입력에 따라 값을 얻기 위해 평가될 수 있는 프로그래밍 언어의 문자와 기호 문자열입니다. n8n 워크플로에서는 노드의 표현식을 사용하여 입력 데이터를 위해 다른 노드를 참조할 수 있습니다. 이 예시에서 If 노드는 HTTP Request 노드가 출력한 데이터를 참조합니다.

If 노드 창에서 파라미터를 구성합니다:

  • 다음 단계에 따라 value1 플레이스홀더를 {{ $json.orderStatus }}로 설정합니다:

    1. value1 필드 위에 마우스를 올립니다.
    2. value1 필드 오른쪽의 Expression 탭을 선택합니다.
    3. 다음으로 링크 아이콘을 선택하여 표현식 편집기를 엽니다:
    Opening the Expression Editor
    표현식 편집기 열기
    4. 왼쪽 패널을 사용하여 **HTTP Request** > **orderStatus**를 선택하고 창 중앙의 **Expression** 필드로 드래그합니다.
    Expression Editor in the IF node
    If 노드의 표현식 편집기
    6. 표현식을 추가하면 **Edit Expression** 대화 상자를 닫습니다.
  • Operation: String > is equal to 선택

  • value2 플레이스홀더를 processing으로 설정합니다.

데이터 유형

Operation을 선택할 때 올바른 데이터 유형(boolean, date & time, number 또는 string)을 선택해야 합니다.

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

결과는 다음과 같이 보여야 합니다:

If node output
If 노드 출력

processing 주문 상태를 가진 주문은 True Branch 출력에, booked 주문 상태를 가진 주문은 False Branch 출력에 표시되어야 합니다.

완료되면 If 노드 세부 정보 뷰를 닫습니다.

Airtable에 데이터 삽입하기#

다음으로 이 데이터를 Airtable에 삽입하려고 합니다. Airtable에 데이터 삽입하기 레슨 마지막에 Nathan이 무엇을 말했는지 기억하시나요?

실제로는 테이블에 processing 주문만 삽입해야 합니다...

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

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

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

Airtable의 데이터를 검토하여 워크플로가 올바른 주문(processing orderStatus를 가진)만 추가했는지 확인합니다. 이제 30개가 아닌 14개의 레코드가 있어야 합니다.

이 단계에서 워크플로는 다음과 같이 보여야 합니다:

다음은?#

Nathan 🙋: 이 If 노드는 데이터 필터링에 정말 유용하네요! 이제 processing 주문에 대한 모든 정보가 있습니다. 실제로는 employeeNameorderID만 필요하지만 혹시 모르니 다른 필드들도 유지해도 될 것 같아요.

당신 👩‍🔧: 실제로 그렇게 하는 것은 권장하지 않습니다. 더 많은 데이터를 삽입하면 더 많은 컴퓨팅 파워가 필요하고, 데이터 전송이 느려지고 오래 걸리며, 테이블에서 더 많은 저장 공간을 차지합니다. 이 특정 경우 5개의 필드를 가진 14개의 레코드는 큰 차이를 만들지 않을 수 있지만, 비즈니스가 수천 개의 레코드와 수십 개의 필드로 성장하면 누적되고 단 하나의 열도 성능에 영향을 줄 수 있습니다.

Nathan 🙋: 오, 좋은 정보네요. processing 주문에서 두 개의 필드만 선택할 수 있나요?

당신 👩‍🔧: 물론이죠, 다음 단계에서 그렇게 하겠습니다.

3. 주문 필터링하기

n8n v2.20
원문 보기
요약

워크플로의 이 단계에서는 If 노드를 사용하여 조건부 로직으로 데이터를 필터링하고 노드에서 표현식을 사용하는 방법을 배웁니다. 이 단계 후 워크플로는 다음과 같이 보여야 합니다: Airtable에 processing 주문만 삽입하려면 orderStatus로 데이터를 필터링해야 합니다.

3. 주문 필터링하기#

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

이 단계 후 워크플로는 다음과 같이 보여야 합니다:

Airtable에 processing 주문만 삽입하려면 orderStatus로 데이터를 필터링해야 합니다. 기본적으로 orderStatus가 processing이면 이 상태의 모든 레코드를 Airtable에 삽입하고, 그렇지 않은 경우(예: orderStatusprocessing이 아닌 경우) 다른 orderStatus(booked)를 가진 모든 주문의 합계를 계산하도록 프로그램에 지시하려는 것입니다.

이 if-then-else 명령은 조건부 로직입니다. n8n 워크플로에서는 If 노드로 조건부 로직을 추가할 수 있으며, 이 노드는 비교 연산을 기반으로 워크플로를 조건부로 분기합니다.

If vs. Switch

불리언 값(참과 거짓) 이상으로 데이터를 필터링해야 하는 경우 Switch 노드를 사용합니다. Switch 노드는 If 노드와 유사하지만 여러 출력 커넥터를 지원합니다.

Airtable 노드 앞에 If 노드 추가하기#

먼저 HTTP Request 노드에서 Airtable 노드로의 연결 사이에 If 노드를 추가해봅시다:

  1. HTTP Request 노드와 Airtable 노드를 연결하는 화살표 위에 마우스를 올립니다.
  2. HTTP Request 노드와 Airtable 노드 사이의 + 기호를 선택합니다.

If 노드 구성하기#

더하기 기호를 선택하면 Airtable 노드와 HTTP 요청의 연결이 제거됩니다. 이제 HTTP Request 노드에 연결된 If 노드를 추가해봅시다:

  1. If 노드를 검색합니다.
  2. 검색 결과에 나타나면 선택합니다.

If 노드에는 표현식을 사용합니다.

표현식

표현식은 종종 입력에 따라 값을 얻기 위해 평가될 수 있는 프로그래밍 언어의 문자와 기호 문자열입니다. n8n 워크플로에서는 노드의 표현식을 사용하여 입력 데이터를 위해 다른 노드를 참조할 수 있습니다. 이 예시에서 If 노드는 HTTP Request 노드가 출력한 데이터를 참조합니다.

If 노드 창에서 파라미터를 구성합니다:

  • 다음 단계에 따라 value1 플레이스홀더를 {{ $json.orderStatus }}로 설정합니다:

    1. value1 필드 위에 마우스를 올립니다.
    2. value1 필드 오른쪽의 Expression 탭을 선택합니다.
    3. 다음으로 링크 아이콘을 선택하여 표현식 편집기를 엽니다:
    Opening the Expression Editor
    표현식 편집기 열기
    4. 왼쪽 패널을 사용하여 **HTTP Request** > **orderStatus**를 선택하고 창 중앙의 **Expression** 필드로 드래그합니다.
    Expression Editor in the IF node
    If 노드의 표현식 편집기
    6. 표현식을 추가하면 **Edit Expression** 대화 상자를 닫습니다.
  • Operation: String > is equal to 선택

  • value2 플레이스홀더를 processing으로 설정합니다.

데이터 유형

Operation을 선택할 때 올바른 데이터 유형(boolean, date & time, number 또는 string)을 선택해야 합니다.

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

결과는 다음과 같이 보여야 합니다:

If node output
If 노드 출력

processing 주문 상태를 가진 주문은 True Branch 출력에, booked 주문 상태를 가진 주문은 False Branch 출력에 표시되어야 합니다.

완료되면 If 노드 세부 정보 뷰를 닫습니다.

Airtable에 데이터 삽입하기#

다음으로 이 데이터를 Airtable에 삽입하려고 합니다. Airtable에 데이터 삽입하기 레슨 마지막에 Nathan이 무엇을 말했는지 기억하시나요?

실제로는 테이블에 processing 주문만 삽입해야 합니다...

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

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

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

Airtable의 데이터를 검토하여 워크플로가 올바른 주문(processing orderStatus를 가진)만 추가했는지 확인합니다. 이제 30개가 아닌 14개의 레코드가 있어야 합니다.

이 단계에서 워크플로는 다음과 같이 보여야 합니다:

다음은?#

Nathan 🙋: 이 If 노드는 데이터 필터링에 정말 유용하네요! 이제 processing 주문에 대한 모든 정보가 있습니다. 실제로는 employeeNameorderID만 필요하지만 혹시 모르니 다른 필드들도 유지해도 될 것 같아요.

당신 👩‍🔧: 실제로 그렇게 하는 것은 권장하지 않습니다. 더 많은 데이터를 삽입하면 더 많은 컴퓨팅 파워가 필요하고, 데이터 전송이 느려지고 오래 걸리며, 테이블에서 더 많은 저장 공간을 차지합니다. 이 특정 경우 5개의 필드를 가진 14개의 레코드는 큰 차이를 만들지 않을 수 있지만, 비즈니스가 수천 개의 레코드와 수십 개의 필드로 성장하면 누적되고 단 하나의 열도 성능에 영향을 줄 수 있습니다.

Nathan 🙋: 오, 좋은 정보네요. processing 주문에서 두 개의 필드만 선택할 수 있나요?

당신 👩‍🔧: 물론이죠, 다음 단계에서 그렇게 하겠습니다.