DevRev Workflows の HTTP アクションでレスポンスサイズ上限 (200KB) にぶつかった話

DevRev Workflows の HTTP アクションでレスポンスサイズ上限 (200KB) にぶつかった話

DevRev Workflows の HTTP アクションには 200KB のレスポンスサイズ上限があります。この制限に対して 3 つの回避策を試みた結果と、得られた知見を共有します。
2026.04.24

はじめに

DevRev の Workflows は、GUI 上でトリガーやアクションを組み合わせてノーコードで自動化フローを構築できる機能です。今回、Ticket のステージ変更をトリガーにして外部 Web ページのコンテンツを取得するワークフローを構築しようとしたところ、HTTP アクション (Make HTTP requests) のレスポンスサイズ上限に引っかかりました。

size error

この記事では、遭遇したエラーの内容と試した 3 つの回避策、そこから得られた知見を共有します。

DevRev とは

DevRev とは、カスタマーサポートや開発チーム向けのエンタープライズ AI プラットフォームです。Ticket 管理やナレッジベースなどの機能に加え、Workflows や Snap-in による自動化の仕組みを備えています。

対象読者

  • DevRev の Workflows 機能を使って自動化を検討している方
  • DevRev で外部 API 連携を含むワークフローを構築したい方
  • Workflows と Snap-in の使い分けを知りたい方

参考

実現したかったこと

構築したかったワークフローは次のような流れです。

Ticket の Description に DevelopersIO の記事 URL を記載しておき、ステージを Resolved にすると自動的にその記事の内容を DevRev の Article として取り込むというものです。

Workflows でトリガーとコード実行を設定する

まず、Workflows で Ticket のステージ変更を検知するトリガーを設定します。Settings > Workflows から新規ワークフローを作成し、以下のように設定します。

  • トリガー: Ticket Updated
  • Fields to watch: Stage
  • フィルター: Ticket Updated / Output > Stage > Stage > IdResolved と等しい

次に、Execute Code アクションで Description から URL を抽出します。Execute Code は Python スクリプトを実行できるアクションです。

def run(inputs):
    import re
    description = inputs.get("description", "")
    match = re.search(r'https?://[^\s<>"{}|\\^`\[\]]+', description)
    return {"url": match.group(0) if match else ""}

Input Values として Ticket の Description を description という名前で渡し、Output Schema に url を定義します。

Output Schema

なお、Execute Code には注意すべき仕様があります。Output Schema を明示的に定義しなければ、return で値を返していても後続ステップの変数セレクターに表示されません。Output Schema の名前と return の辞書キーが一致している必要があります。

Insert variable

前段で Output を明示的に宣言することで Insert variable の選択肢に出現する

HTTP アクションで 200KB の壁にぶつかる

URL が抽出できたので、次は HTTP アクションでその URL にアクセスし、HTML を取得します。設定は単純で、URL に前ステップの出力変数を、Method に GET を指定するだけです。

ここで以下のエラーが発生しました。

Operation execution failed: Response body is too large.
Actual size: 209770 bytes. Allowed size: 204800 bytes.

size error

HTTP アクションにはレスポンスボディのサイズ上限があり、204,800 bytes を超えるレスポンスは受け付けられません。DevelopersIO の記事ページは約 210KB あり、わずかに上限を超えていました。この上限は設定画面から変更できません。

3 つの回避策を試した結果

回避策 1: Accept / Accept-Encoding ヘッダーの変更

HTTP リクエストのヘッダーに Accept: text/htmlAccept-Encoding: identity を追加し、サーバーからの応答を制御しようとしました。

結果は変わりませんでした。今回の対象 URL では、ヘッダーを変更しても HTTP アクションが扱うレスポンスボディサイズは 200KB 以下にならず、制限を回避できませんでした。

回避策 2: Range ヘッダーによる部分取得

HTTP の Range ヘッダーを使って、レスポンスの先頭部分だけを取得する方法を試しました。Range: bytes=0-199000 を指定し、先頭 195KB のみを要求します。<title><article> タグは HTML の前半に含まれるため、これで十分なはずです。

しかし、今回の対象 URL では同じエラーが発生しました。少なくともこのケースでは、Range ヘッダーを指定しても HTTP アクション上では 200KB 超のレスポンスとして扱われたため、安定した回避策にはなりませんでした。対象サーバーが Range リクエストを無視して全文を返した可能性もあり、原因の特定には至っていません。

回避策 3: Execute Code 内で HTTP リクエストを実行する

HTTP アクションを使わず、Execute Code 内で Python の urllib.request を使って直接 HTTP リクエストを送る方法を試しました。コード内であればレスポンスサイズの制限を受けないはずです。

def run(inputs):
    import urllib.request
    url = inputs.get("url", "")
    req = urllib.request.Request(url, headers={"User-Agent": "DevRev-Workflow/1.0"})
    with urllib.request.urlopen(req, timeout=10) as resp:
        html = resp.read().decode("utf-8", errors="replace")
    # ... HTML パース処理 ...

結果は、HTTP リクエストが失敗しました。少なくとも今回検証した環境では、Execute Code から外部 HTTP リクエストを実行できませんでした。デバッグ用の出力を確認したところ、URL は正しく受け取れているものの、HTTP 通信自体ができていませんでした。

判明した Workflows の制約

今回の検証で判明した Workflows の制約をまとめます。

制約 内容
HTTP アクションのレスポンスサイズ 204,800 bytes (200KB) が上限。変更不可
Range ヘッダーでの部分取得 今回の検証では効果なし。サーバー側の対応状況にも依存する
Execute Code の外部通信 今回の検証環境では外部 HTTP リクエストを実行できなかった

どのような場合に Workflows を使うべきか

Workflows は DevRev 内部のオブジェクト操作に適しています。たとえば、Ticket のステージ変更をトリガーにしてコメントを追加する、別の Ticket を作成するといった処理には問題なく使えます。

一方、外部 URL のコンテンツ取得のように 200KB を超える可能性のある外部連携が必要な場合は、Snap-in (TypeScript による関数実装) を検討すべきです。Snap-in であれば、HTTP アクションではなく TypeScript の function として外部 HTTP リクエストを実装できます。

今回のケースでは最終的に Snap-in で同等のワークフローを構築しました。取得した HTML を必要な title と body に加工してから DevRev に登録することで、HTTP アクションの 200KB 制限を回避した形です。

おわりに

DevRev の Workflows は GUI で手軽にフローを組める反面、外部連携には制約があります。特に HTTP アクションの 200KB 制限は、実際に試さないとわからないものでした。これから DevRev で外部連携を含む自動化を検討する方の参考になれば幸いです。

この記事をシェアする

関連記事