# トランスフォーメーションでペイロード・ヘッダー・URL を変更

> 配信の直前に JavaScript の handler を実行し、ペイロード・ヘッダー・URL・HTTP メソッドを変更する、または配信をキャンセルする設定です。

Source: https://webhookadmin.com/docs/guide/transformations/

## 必要な権限とプラン

- **閲覧**: Viewer 以上（変数の値は Developer 以上のみ表示）
- **保存・テスト・削除**: Developer 以上
- **プラン**: Pro 以上

## トランスフォーメーションを設定する

1. エンドポイントの詳細を開き、「トランスフォーメーション」タブを選びます。
2. 「コード」に `handler(webhook)` を記述します。「テンプレート」（ヘッダーの追加・ペイロード形式の変更・イベントの除外・変数の利用）から始めることもできます。
3. 必要に応じて「変数」に名前と値を登録します。handler の中で `webhook.env` から参照できます。
4. 「テストイベント」でイベントタイプとテスト用の data（JSON）を入力し、「テスト」を押して「実行結果」と「実行ログ」を確認します。テストでは何も配信しません。
5. 「トランスフォーメーションを有効にする」をオンにして保存します。

保存していない変更がある状態で他のタブや画面に移動しようとすると、確認のダイアログを表示します。

## webhook で変更できるもの

| プロパティ | 内容 |
| --- | --- |
| `method` | HTTP メソッド。POST・PUT・PATCH に変更できます。 |
| `url` | エンドポイント URL。変更できるのはパスとクエリのみです。 |
| `payload` | 配信するペイロード。変更できます。 |
| `headers` | 追加するヘッダー。 |
| `cancel` | `true` にすると配信をキャンセルします（失敗には含めません）。 |
| `eventType`・`env`・`transformationsParams` | 参照のみです。 |

署名は変更後のペイロードで計算します。

## 上限

- コードは 51,200 文字までです。外部との通信はできません。
- 1 回の実行あたりの処理量とメモリには上限があります。
- 変数は 50 個・合計 4KB までです。
- エラーが発生したメッセージは、配信も再送信も行いません。配信ログにエラーの種類を表示します。

## 無効化・削除する

「トランスフォーメーションを有効にする」をオフにすると、ペイロードを変更せずに配信します。「削除」を押すと、次回の配信から変更せずに配信します。無効化と削除は、プランにかかわらず実行できます。

## 関連するページ

- [エンドポイント](https://webhookadmin.com/docs/guide/endpoints/)
- [配信ログ](https://webhookadmin.com/docs/guide/messages/)
- [プランと請求](https://webhookadmin.com/docs/guide/billing/)
