Make.com AI 영상 시나리오: Sume HTTP 요청과 웹훅

Make.com AI 영상 시나리오를 둘로 나누세요. Make a request가 Sume 실행을 시작하고, 커스텀 웹훅이 서명된 결과를 받아 sha256()으로 확인합니다.

읽는 시간 5분Sume
전체 글

Sume를 쓰는 Make.com AI 영상 시나리오는 시나리오 두 개로 이루어집니다. 첫 번째 시나리오는 HTTP 앱의 Make a request 모듈로 POST /v1/formats/sume/{slug}/runs를 보내면서 두 번째 시나리오의 커스텀 웹훅 URL을 communication.webhook_url에 넣습니다. 두 번째 시나리오는 Sume가 서명된 결과를 POST하면 시작되어, Make의 sha256() 함수로 서명을 확인하고 영상을 게시합니다.

Sume에는 Make 앱이 없으므로, 두 시나리오 모두 HTTPS 호출을 직접 보내거나 받습니다. Sume 관련 사실은 Format 호출하기 (영문)와 Run 웹훅 (영문)에서, Make 동작은 2026-09-27에 확인한 Make 앱 문서와 도움말 센터에서 가져왔습니다. 서명 방식은 Sume 영상 실행용 서명된 웹훅에서 설명합니다.

왜 시나리오 하나로는 영상을 기다릴 수 없나요?

Make a request는 최대 300초까지만 기다립니다. 타임아웃은 1에서 300 사이의 초 단위 숫자입니다. Format 실행은 생성 호출에 즉시 응답한 뒤 몇 분 동안 작업하며, 롱폼 호스트 영상은 보통 15~30분이면 끝납니다. 그래서 첫 번째 시나리오는 실행을 시작하기만 하고, 실행이 완료되거나 실패할 때 Sume가 두 번째 시나리오를 한 번 호출합니다.

Make a request로 실행을 어떻게 시작하나요?

모듈을 아래와 같이 설정한 다음 실행 본문을 보내세요. 카탈로그 Format은 formats:write가 있는 키라면 어떤 키든 받습니다.

Make HTTP, API 키 인증 유형 문서와 Sume Format 호출하기 (영문) 기준, 2026-09-27 확인.
필드값이유
Authentication typeAPI keyMake는 키를 헤더에 넣는 방식 대신 자격 증명(credentials) 필드를 권장합니다.
Key와 parameter nameIn the header: Authorization에 Bearer <key>, 또는 x-api-key에 키만하나만 보내세요. 요청에 둘 다 실리면 Sume가 401로 응답합니다.
URL과 methodhttps://api.sume.com/v1/formats/sume/sume-product-commercial/runs, POST카탈로그 Format 주소입니다.
HeadersIdempotency-Key원본 레코드의 ID에 버전을 붙여 만듭니다. 같은 키와 본문이면 원래 실행과 함께 200이 돌아오고 두 번째 청구는 없습니다.
Body content typeapplication/jsonJSON string으로 보내면 예약 문자를 직접 이스케이프해야 하고, data structure를 쓰면 대신 이스케이프해 줍니다.
Parse responseYes(예)이후 모듈이 실행 ID인 data.id를 매핑할 수 있습니다.
{
  "instruction": "Make a vertical product commercial from the attached photo.",
  "attachments": [
    { "type": "input_image", "image_url": "https://example.com/product.jpg" }
  ],
  "generation_spend_cap_usd": 20,
  "communication": { "webhook_url": "<scenario two's webhook URL>" }
}

커스텀 웹훅은 어떻게 설정하나요?

두 번째 시나리오를 Webhooks > Custom webhook으로 시작하고, 그 URL을 위 본문에 복사해 넣으세요. 그다음 아래처럼 설정하세요.

  • JSON pass-through와 Get request headers를 켜세요. JSON pass-through는 페이로드를 텍스트 문자열로 이후 모듈에 넘기고, Get request headers는 헤더를 매핑할 수 있게 합니다. 서명 확인에는 둘 다 필요합니다.
  • 웹훅의 API key authentication은 꺼 두세요. 이 옵션은 x-make-apikey 헤더를 기대하는데, Sume의 웹훅 설정은 URL과 모드뿐입니다.
  • 기본적으로 Make는 요청을 큐에 넣고 200 Accepted로 응답하며, 이 응답은 Sume의 시도당 10초 제한 안에 들어옵니다. 큐가 가득 차면 400으로 응답하고, 10초 안에 300건이 넘는 요청은 429를 받습니다. Sume는 모두 합쳐 최대 10번 시도합니다.
  • Make의 페이로드 한도는 5 MB입니다. Sume는 1 MiB까지의 영수증을 본문에 그대로 담고, 그보다 크면 error.result_url과 함께 payload: null을 보냅니다.
  • Make는 어떤 시나리오에도 연결되지 않은 채 5일이 넘은 웹훅을 비활성화하고 410을 반환하므로, 두 번째 시나리오를 계속 연결해 두세요.

sha256()으로 서명은 어떻게 확인하나요?

Make의 sha256(text; [encoding]; [key]; [key encoding]) 함수는 key를 넘기면 HMAC을 반환하며, 기본 출력 형식은 hex입니다. x-sume-webhook-timestamp 헤더, 점 하나, pass-through 본문을 이어 텍스트를 만들고, key로는 Sume 서명 시크릿을 넘기세요. 그다음 x-sume-webhook-signature 헤더를 쉼표 기준으로 split()하고, 배열 함수 contains()로 sume-v1= 뒤에 계산한 해시가 붙은 값이 있는지 확인하세요.

  • 시크릿을 교체한 뒤 24시간 동안은 헤더에 항목이 두 개, 최신 항목부터 실리므로 헤더 전체를 비교하지 마세요.
  • 오 분 범위를 벗어난 타임스탬프는 거부하세요.
  • 시크릿은 Sume 대시보드의 웹훅 탭에서 보거나, account:read가 있는 키로 GET /v1/webhooks/signing-secret에서 읽으세요.
  • Make는 JSON pass-through를 원본 JSON에 접근하는 방법으로 설명합니다. 유료 실행 전에 Sume의 테스트 보내기(Send test)로 확인 로직을 검증하세요(/dashboard/webhooks, 또는 account:write가 있는 키로 POST /v1/webhooks/test-deliveries). 테스트 보내기는 입력한 URL로 서명된 webhook.test 본문을 POST합니다.

검증한 뒤 두 번째 시나리오는 무엇을 해야 하나요?

JSON pass-through를 켜면 본문이 텍스트로 도착하므로, JSON 앱의 Parse JSON 모듈에 통과시켜 필드를 매핑하세요. event가 format.run.terminal일 때만 계속 진행하세요. 테스트 보내기 본문에는 webhook.test가 담깁니다. 그러면 Sume Format 실행 수명주기의 봉투 규칙은 세 가지 확인으로 정리됩니다.

  • request_id로 중복을 제거하세요. 이 값은 실행 ID와 같고, 재시도할 때마다 똑같이 반복됩니다.
  • status는 실행이 완료됐으면 OK, 실패했으면 ERROR입니다. OK면 내구성 있는 media.sume.com URL인 payload.primary_output_url을 게시하세요.
  • 취소되거나 건너뛴 실행은 웹훅을 보내지 않습니다. 아무것도 오지 않았거나, 영수증이 1 MiB를 넘어 payload가 null이라면 API 키로 GET /v1/format-runs/{run_id}를 읽으세요. 그 data가 같은 영수증입니다.

출처

관련 글

연동 카테고리의 다른 글

연동 글 전체 보기

작성자 Sume