
# Entry Points API

**Entry Point**（エントリーポイント）とはルーティングルールのことです。「このチャネルでこのようなイベントが発生したとき、会話をこのエージェントに引き継ぐ」という設定を指します。チャネルを接続すればメッセージをアカウントで受信できるようになり、エージェントを作成すれば返信が可能になりますが、どちらも「見知らぬ人からの最初のメッセージに誰が応答するか」を決定するものではありません。それを決定するのがEntry Pointです。製品そのものについては、[Entry Pointsガイド](../ai-agents/entry-points.md)を参照してください。

- **ベースURL** — `https://api.youraiconnector.com/v1`
- **認証** — APIキー（[認証](authentication.md)を参照）
- **エラーとページネーション** — [エラーとページネーション](errors-and-pagination.md)を参照

以下のすべての例では、cURLでの `?apiKey=` クエリ形式と、JavaScriptおよびPythonでの `X-API-Key` ヘッダーを示しています。どちらの方法もすべてのエンドポイントで使用可能です。

> **APIエクスプローラーについて** このページのすべてのエンドポイントは公開されているOpenAPI仕様に含まれているため、[APIエクスプローラー](reference.md)で正確なフィールドを確認し、ライブリクエストを実行できます。


---

## ほとんどの統合で必要な1つの呼び出し

チャネルを接続し、エージェントを作成してから、チャネルをそのエージェントに向けるだけです：

```bash
curl -X PUT "https://api.youraiconnector.com/v1/entry-points/channel-defaults?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "channel": "whatsapp", "agent_id": "ag7HkQ2ZpLxR3mNb" }'
```

「このエージェントがWhatsAppに応答する」ための設定はこれで完了です。このページの他の内容はすべて、より限定的なルール（キーワード、コメント、新規フォロワー）、1つのチャネルに対する複数の番号、および設定内容の読み取りに関するものです。

---

## ルーティングの決定方法

メッセージが到着すると、プラットフォームは固定された優先順位に従って処理を行い、最初に条件を満たしたステップが適用されます：

1. **人間が会話を引き継いでいる** — AIは介入しません。
2. **連絡先がすでにエージェントに割り当てられている** — 手動、またはそのエージェントとの会話が進行中の場合、同じエージェントが継続して対応します。Entry Pointは既存の会話を移動させることはありません。別のエージェントにチャットを引き継ぐには、（アプリ内、または[自動化](../automations/automations.md#actions)アクションを使用して）割り当てを変更してください。
3. **連絡先がブロードキャストに返信している** — ブロードキャストのエージェントが応答します。ブロードキャストにエージェントが設定されていない場合は、誰も応答しません。
4. **限定的なEntry Pointが一致する** — キーワードルールはコメントルールよりも優先され、コメントルールはフォロワールールよりも優先されます。同じ種類のルールが複数ある場合は、最も最近更新されたものが優先されます。
5. **チャネルのデフォルト** — メッセージが到着したチャネルのデフォルト設定です。連絡先が書き込んだ特定の番号にスコープされたデフォルト設定は、チャネル全体のデフォルト設定よりも優先されます。
6. **一致するものがない** — メッセージはチームの受信トレイに届き、アシスタントは返信しません。

ステップ6を緩和する要素が2つあります。**アクティブなエージェントが1つだけ**存在し、チャネルにデフォルト設定がないアカウントの場合、そのエージェントが応答者となります。そのため、WhatsAppを接続してテストメッセージを送信したばかりの新しいアカウントで、応答がないという状況にはなりません。この最低限のルールは、キーワードルールが設定されているチャネルには適用されず（その場合、キーワードに一致しないメッセージは意図的に人間が対応するように残されます）、また「誰も応答しない」ように設定したチャネルを上書きすることもありません（[誰も応答しないチャネルにする](#leave-a-channel-with-nobody-answering)を参照）。

この優先順位の仕組みがアカウントで有効かどうかは `GET /entry-points/routing-status` で確認できます。現在はすべてのアカウントで有効になっていますが、統合機能側で想定するのではなく確認できるようにこの呼び出しが用意されています。

---

## Entry Pointオブジェクト

```json
{
  "id": "ep3KmQ8vTzXr5nWd",
  "type": "keyword",
  "channels": ["whatsapp", "instagram"],
  "agent_id": "ag7HkQ2ZpLxR3mNb",
  "enabled": true,
  "match_config": {
    "keywords": ["pricing", "quote"]
  },
  "first_response_mode": null,
  "first_response_exact_text": null,
  "public_comment_reply_exact_text": null,
  "created_at": 1700000000000,
  "last_modified_at": 1700000000000
}
```

| フィールド | 説明 |
|---|---|
| `id` | ルールのID。 |
| `type` | `channel_default`、`keyword`、`instagram_comment`、`facebook_comment`、`instagram_follower` のいずれか。[ルールタイプ](#rule-types)を参照。 |
| `channels` | ルールが対象とするチャネル：`whatsapp`、`whatsapp_web`、`instagram`、`instagram_private`、`messenger`、`telegram`、`sms`、`email`、`chat_widget`、`custom_channel`、`line`、`viber`、`tiktok`、`imessage`、`linkedin`、`skool`。コメントルールは `instagram` または `facebook` を使用します。 |
| `agent_id` | ルールがルーティング先とするエージェント。意図的に「誰も応答しない」と設定されたチャネルのデフォルトでは空になります。 |
| `enabled` | 廃止されたルールの場合 `false`。廃止されたルールは履歴であり、ライブ設定ではありませんが、どちらもリストエンドポイントから返されます。 |
| `match_config` | タイプ固有の設定 — [ルールタイプ](#rule-types)を参照。単純なチャネルデフォルトでは空です。 |
| `first_response_mode` | `ai`（デフォルト）はエージェントに最初の返信を書かせます。`exact_text` は `first_response_exact_text` をそのまま送信します。現在はコメントルールで適用されます。キーワードルールでも受け入れられ保存されますが、まだ使用されていません。 |
| `first_response_exact_text` | `first_response_mode` が `exact_text` の場合の固定された最初のDM。`{{first_name}}` は相手の名前に置き換えられます。不明な場合は「there」となります。 |
| `public_comment_reply_exact_text` | コメントルールのみ：コメントの下に表示される固定の公開返信。空白にすると公開返信はスキップされますが、DMは送信されます。 |
| `created_at`, `last_modified_at` | エポックミリ秒。 |

### ルールタイプ

| `type` | 実行タイミング | `match_config` |
|---|---|---|
| `channel_default` | 新規の未知の連絡先が `channels` のいずれかに書き込んだとき。 | `phone_numbers`（オプション）— デフォルトをチャネル全体ではなく、接続された1つの番号にスコープします。[WhatsApp番号ごとに1つのエージェント](#one-agent-per-whatsapp-number)を参照。 |
| `keyword` | 新規連絡先の最初のメッセージが `keywords` のいずれかであるとき。一致判定では大文字小文字やスペースは無視されます。また、AIが「info pls」を `INFO` と判定するようなニアミスも解決されますが、`fuzzy_match: false` を設定した場合は除外されます。プロモーションコードやSKUなど、ニアミスを許容してはいけない場合に使用してください。`sms` や `imessage` には適用されません。 | `keywords`（少なくとも1つ必須）、`fuzzy_match`（デフォルト `true`）。 |
| `instagram_comment` / `facebook_comment` | 投稿にコメントがついたとき。`channels` にはそれぞれ `instagram` または `facebook` を含める必要があります。 | `keywords`（空の場合は監視対象の投稿へのすべてのコメントが対象）、`post_ids`（空の場合はすべての投稿）、`delay_minutes`（DM送信までの待機時間）、`reply_instructions`（エージェントの返信文言）。 |
| `instagram_follower` | Instagramアカウントに新しいフォロワーが増えたとき。[Instagram (個人)](../messaging-channels/instagram-personal.md)接続が必要です。公式のInstagram DM接続ではフォロワーを検知できません。 | `reply_instructions`（オプション）。 |

チャネルのデフォルトが設定されていないチャネル上のキーワードルールは、ゲートとしても機能します。キーワードに一致しないメッセージには自動返信が行われず、単に受信トレイに届きます。これは、エージェントが1人しかいないアカウントでも同様です。

---

## チャネルにエージェントを割り当てる

`PUT /entry-points/channel-defaults` — チャネルへの新しい連絡先に対して、1人のエージェントを回答者に設定します。現在そのチャネルのデフォルトとして設定されている他のエージェントは、同じ呼び出しで解除されるため、チャネルには常に1人の回答者のみが存在することになります。すでにデフォルトとなっているエージェントを設定しても、何も変更されません。

| フィールド | 必須 | 説明 |
|---|---|---|
| `channel` | はい | チャネル（例: `whatsapp`、`whatsapp_web`、`instagram`、`messenger`、`telegram`、`sms`、`email`、`chat_widget`、または `custom_channel`）。 |
| `agent_id` | はい | 回答を担当するエージェント。アカウントに属している必要があります。 |
| `phone_number` | いいえ | このチャネル上の接続済み番号のいずれかにデフォルトを適用します（先頭に `+` を付けたE.164形式。接続済み番号に表示される通りに入力してください）。チャネル全体のデフォルト設定には影響しません。「[WhatsApp番号ごとに1人のエージェントを割り当てる](#one-agent-per-whatsapp-number)」を参照してください。 |

**cURL**

```bash
curl -X PUT "https://api.youraiconnector.com/v1/entry-points/channel-defaults?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "channel": "instagram", "agent_id": "ag7HkQ2ZpLxR3mNb" }'
```

**JavaScript**

```javascript
const res = await fetch("https://api.youraiconnector.com/v1/entry-points/channel-defaults", {
  method: "PUT",
  headers: {
    "X-API-Key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ channel: "instagram", agent_id: "ag7HkQ2ZpLxR3mNb" }),
});
const data = await res.json();
```

**Python**

```python
import requests

res = requests.put(
    "https://api.youraiconnector.com/v1/entry-points/channel-defaults",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={"channel": "instagram", "agent_id": "ag7HkQ2ZpLxR3mNb"},
)
data = res.json()
```

**レスポンス**

```json
{
  "success": true,
  "entry_point_id": "ep3KmQ8vTzXr5nWd",
  "disabled_entry_point_ids": ["epPrevious1234"]
}
```

`entry_point_id` は現在有効なルールです。`disabled_entry_point_ids` は、このルールを適用するために解除されたルールの一覧です（置き換えるものがなかった場合は空になります）。まだ会話をしたことがない連絡先のみが対象となります。すでにエージェントと会話中の連絡先は、そのエージェントとの会話が継続されます。

`400` は、`channel` または `agent_id` が欠落しているか、エージェントが別のアカウントに属しているか、あるいは `phone_number` が接続済み番号のいずれでもないことを意味します。

---

## 各チャネルの回答者を確認する

`GET /entry-points/channel-defaults` — アカウントのすべてのチャネルのデフォルト設定（新しい順）。廃止されたチャネル（`enabled: false`）や、意図的に「誰も応答しない」に設定されたチャネル（`agent_id: ""`）も含まれます。現在の状況を確認するには、`enabled` でフィルタリングしてください。

**cURL**

```bash
curl "https://api.youraiconnector.com/v1/entry-points/channel-defaults?apiKey=YOUR_API_KEY"
```

**JavaScript**

```javascript
const res = await fetch("https://api.youraiconnector.com/v1/entry-points/channel-defaults", {
  headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
```

**Python**

```python
import requests

res = requests.get(
    "https://api.youraiconnector.com/v1/entry-points/channel-defaults",
    headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
```

**レスポンス**

```json
{
  "success": true,
  "entry_points": [
    {
      "id": "ep3KmQ8vTzXr5nWd",
      "type": "channel_default",
      "channels": ["whatsapp"],
      "agent_id": "ag7HkQ2ZpLxR3mNb",
      "enabled": true,
      "match_config": {},
      "created_at": 1700000000000,
      "last_modified_at": 1700000000000
    },
    {
      "id": "epAEnhHoozpoGVze",
      "type": "channel_default",
      "channels": ["whatsapp"],
      "agent_id": "agRotterdamBranch",
      "enabled": true,
      "match_config": { "phone_numbers": ["+31685101091"] },
      "created_at": 1700000000000,
      "last_modified_at": 1700000000000
    }
  ]
}
```

これはアカウント全体の読み取りです。`GET /agents/{agentId}/entry-points` を使用して特定のエージェントのルールを一覧表示しても、「誰も応答しない」に設定されたチャネルは表示されません。そのルールはどのアージェントにも属していないためです。

---

## 誰も応答しないチャネルから退出する

`DELETE /entry-points/channel-defaults?channel=instagram` — 特定のチャネルのチャネル全体のデフォルト設定を廃止します。チャネルはボディではなくクエリパラメータとして指定します。`&phone_number=%2B31685101091` を追加すると、その番号のデフォルト設定のみがクリアされ、その番号はチャネルに応答する担当者に再び戻ります。

**cURL**

```bash
curl -X DELETE "https://api.youraiconnector.com/v1/entry-points/channel-defaults?channel=instagram&apiKey=YOUR_API_KEY"
```

**JavaScript**

```javascript
const res = await fetch(
  "https://api.youraiconnector.com/v1/entry-points/channel-defaults?channel=instagram",
  { method: "DELETE", headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
```

**Python**

```python
import requests

res = requests.delete(
    "https://api.youraiconnector.com/v1/entry-points/channel-defaults",
    params={"channel": "instagram"},
    headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
```

**レスポンス**

```json
{ "success": true, "disabled_entry_point_ids": ["ep3KmQ8vTzXr5nWd"] }
```

繰り返し実行しても安全です。デフォルト設定がないチャネルをクリアしても、空のリストが返される `200` となります。「クリア」とは「未設定」を意味し、「沈黙」ではありません。アクティブなエージェントが1人だけのアカウントでは、設定されていないチャネルは引き続きそのエージェントにフォールバックされます。チャネルからAIを完全に排除するには、アプリの「新しい会話への応答者」パネルで「誰も応答しない」を選択するか（これにより、フォールバックが上書きすることのない明示的な「nobody」デフォルトが書き込まれます）、`PATCH /agents/{agentId}/active` を使用してエージェントを一時停止してください。

---

## WhatsApp番号ごとに1人のエージェント

ルーティングはデフォルトでチャネルごとに行われます。すべてのWhatsApp番号で1人の応答者が共有されます。WhatsApp BusinessまたはWhatsApp Webで2つ以上の番号が接続されている場合、デフォルト設定を単一の番号に限定できます。これにより、支店やブランドごとに番号を持つ企業は、1つのアカウント内でそれぞれに独自のエージェントを割り当てることができます。

set呼び出しで `phone_number` を送信します：

```bash
curl -X PUT "https://api.youraiconnector.com/v1/entry-points/channel-defaults?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "whatsapp_web",
    "agent_id": "agRotterdamBranch",
    "phone_number": "+31685101091"
  }'
```

- 番号は、そのチャネルで接続されている番号のいずれかである必要があり、接続済み番号の下に表示される形式（`+` を含む E.164）で記述してください。それ以外は `400` となります。
- ルールは `match_config.phone_numbers: ["+31685101091"]` を使用してチャネルのデフォルトとして保存されます。その番号に届いたメッセージは担当エージェントに送信されます。他のすべての番号は、引き続きチャネル全体のデフォルト設定に従います。
- チャネル全体のデフォルトを設定または解除しても、番号ごとのルールには影響しません。その逆も同様です。番号固有のルールを解除するには `DELETE /entry-points/channel-defaults?channel=whatsapp_web&phone_number=%2B31685101091` を使用します。
- 返信は常に連絡先が書き込んだ番号から送信されるため、連絡先は同じ番号、同じエージェントとやり取りを続けることができます。

---

## より限定的なルールを追加する

`POST /agents/{agentId}/entry-points` — キーワード、コメント、またはフォロワーのルール（あるいはチャネルのデフォルト）を作成します（ただし、チャネルのデフォルトには、以前の応答者を自動的にリタイアさせる `PUT /entry-points/channel-defaults` を使用する方が適切です）。パス内のエージェントが常に優先されます。URL 内のエージェントとは異なるエージェントに対してルールを作成することはできません。

| フィールド | 必須 | 説明 |
|---|---|---|
| `type` | はい | `keyword`、`instagram_comment`、`facebook_comment`、`instagram_follower`、または `channel_default`。 |
| `channels` | はい | ルールが適用されるチャネルの空ではないリスト。コメントルールには、そのチャネル自体（`instagram` または `facebook`）をリストする必要があります。 |
| `match_config` | タイプによる | [ルールタイプ](#rule-types) を参照してください。キーワードルールには、`keywords` に少なくとも1つのエントリが必要です。 |
| `enabled` | いいえ | デフォルトは `true` です。 |
| `first_response_mode`、`first_response_exact_text`、`public_comment_reply_exact_text` | いいえ | [エントリーポイントオブジェクト](#the-entry-point-object) で説明されている初回応答設定。 |

**cURL**

```bash
curl -X POST "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/entry-points?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "keyword",
    "channels": ["whatsapp", "instagram"],
    "match_config": { "keywords": ["pricing", "quote"] }
  }'
```

**JavaScript**

```javascript
const res = await fetch(
  "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/entry-points",
  {
    method: "POST",
    headers: {
      "X-API-Key": "YOUR_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      type: "keyword",
      channels: ["whatsapp", "instagram"],
      match_config: { keywords: ["pricing", "quote"] },
    }),
  }
);
const data = await res.json();
```

**Python**

```python
import requests

res = requests.post(
    "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/entry-points",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={
        "type": "keyword",
        "channels": ["whatsapp", "instagram"],
        "match_config": {"keywords": ["pricing", "quote"]},
    },
)
data = res.json()
```

**レスポンス** (`201`)

```json
{ "success": true, "entry_point_id": "ep3KmQ8vTzXr5nWd" }
```

特定の2つの投稿で「LINK」というコメントにのみ反応し、2分待機してから固定の初回メッセージを送信するコメントからDMへのルール：

```json
{
  "type": "instagram_comment",
  "channels": ["instagram"],
  "match_config": {
    "keywords": ["LINK"],
    "post_ids": ["17895695668004550", "17841400008460056"],
    "delay_minutes": 2
  },
  "first_response_mode": "exact_text",
  "first_response_exact_text": "Hi {{first_name}}, here is the link you asked for: https://example.com/guide",
  "public_comment_reply_exact_text": "Sent you a DM!"
}
```

監視対象の投稿にコメントした全員にDMを送る場合は `keywords` を空にし、すべての投稿を監視する場合は `post_ids` を空にします。`400` は問題の内容を示します。不明な `type`、空の `channels`、キーワードのないキーワードルール、または自身のチャネルをリストしていないコメントルールなどが該当します。

---

## エージェントのルールを一覧表示する

`GET /agents/{agentId}/entry-points` — このエージェントに会話を送信するルールを新しい順に表示します（チャネルのデフォルト、キーワードルール、コメントルール、フォロワールール）。リタイアしたルールも `enabled: false` で表示されます。

**cURL**

```bash
curl "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/entry-points?apiKey=YOUR_API_KEY"
```

**JavaScript**

```javascript
const res = await fetch(
  "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/entry-points",
  { headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
```

**Python**

```python
import requests

res = requests.get(
    "https://api.youraiconnector.com/v1/agents/ag7HkQ2ZpLxR3mNb/entry-points",
    headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
```

**レスポンス**

```json
{
  "success": true,
  "entry_points": [
    {
      "id": "ep3KmQ8vTzXr5nWd",
      "type": "keyword",
      "channels": ["whatsapp", "instagram"],
      "agent_id": "ag7HkQ2ZpLxR3mNb",
      "enabled": true,
      "match_config": { "keywords": ["pricing", "quote"] },
      "created_at": 1700000000000,
      "last_modified_at": 1700000000000
    }
  ]
}
```

---

## ルールを変更する

`PUT /entry-points/{entryPointId}` — ルールを1つ変更します。変更するフィールドのみを送信してください。ネストされた設定は、`"match_config.keywords"` のようなドット付きキーを使用して個別に指定できます。変更が `type`、`channels`、または `match_config` に及ぶたびにルール全体が再チェックされるため、部分的な編集によって使用不可能なルールが残ることはありません（キーワードを指定せずに `type` を `keyword` に切り替えることは拒否されます）。`agent_id` を送信すると、ルールを別のエージェントに引き渡します。空の値は拒否されます。所有権および識別フィールドは無視されます。

**cURL**

```bash
curl -X PUT "https://api.youraiconnector.com/v1/entry-points/ep3KmQ8vTzXr5nWd?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "match_config": { "keywords": ["pricing", "quote", "demo"] } }'
```

**JavaScript**

```javascript
const res = await fetch("https://api.youraiconnector.com/v1/entry-points/ep3KmQ8vTzXr5nWd", {
  method: "PUT",
  headers: {
    "X-API-Key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ match_config: { keywords: ["pricing", "quote", "demo"] } }),
});
const data = await res.json();
```

**Python**

```python
import requests

res = requests.put(
    "https://api.youraiconnector.com/v1/entry-points/ep3KmQ8vTzXr5nWd",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={"match_config": {"keywords": ["pricing", "quote", "demo"]}},
)
data = res.json()
```

**レスポンス**

```json
{ "success": true, "entry_point_id": "ep3KmQ8vTzXr5nWd" }
```

その他の一般的な編集：`{ "enabled": false }` はルールを削除せずにリタイアさせ、`{ "agent_id": "agOtherAgent" }` は別のエージェントに移動します。空のボディを送信すると、`"No fields to update"` を含む `400` が返されます。

---

## ルールを削除する

`DELETE /entry-points/{entryPointId}` — ルールを完全に削除します。エントリーポイントを参照している他のものはないため、事前に切り離す必要はありません。

**cURL**

```bash
curl -X DELETE "https://api.youraiconnector.com/v1/entry-points/ep3KmQ8vTzXr5nWd?apiKey=YOUR_API_KEY"
```

**JavaScript**

```javascript
const res = await fetch("https://api.youraiconnector.com/v1/entry-points/ep3KmQ8vTzXr5nWd", {
  method: "DELETE",
  headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
```

**Python**

```python
import requests

res = requests.delete(
    "https://api.youraiconnector.com/v1/entry-points/ep3KmQ8vTzXr5nWd",
    headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
```

**レスポンス**

```json
{ "success": true, "entry_point_id": "ep3KmQ8vTzXr5nWd" }
```

ルールを削除せずに無効にするには、代わりに `enabled` を `false` に設定します。特にチャネルのデフォルトは通常、削除ではなくリタイアさせます。これを行うのが `DELETE /entry-points/channel-defaults` です。

---

## ルーティングが有効か確認する

`GET /entry-points/routing-status` — このアカウントで誰が応答するかを「エントリーポイント」のラダー（優先順位）が決定するかどうかを返します。閲覧権限があれば読み取り可能であるため、チームメンバーは所有者と同じ回答を確認できます。

```bash
curl "https://api.youraiconnector.com/v1/entry-points/routing-status?apiKey=YOUR_API_KEY"
```

```json
{ "success": true, "cutover_enabled": true }
```

現在、すべてのアカウントで `true` となっています。この呼び出しは、統合機能がルーティングの変更が反映されたことを（推測ではなく）確認してからユーザーに通知できるように保持されています。

---

## 古い、キャンペーン形式の呼び出し

エージェント機能以前の2つのエンドポイントは、キャンペーンを中心に構成されたアカウントで引き続き機能します。新しい統合では、上記のチャネルデフォルトの呼び出しを使用してください。

- `PUT /channel-routing/{channel}` と `{ "campaignId": "cp5NbV8xQrT2wYzA" }` — キャンペーン名を指定すると、そのキャンペーンのエージェントがチャネルの応答者になります。`{ "campaignId": null }` はチャネルをクリアします。発信専用キャンペーンは、提供できる着信時の動作がないため拒否されます。
- `POST /channel-routing/clear` と `{ "channels": ["whatsapp", "instagram"] }` — 1回の呼び出しで、それらに応答しているエージェントから複数のチャネルを解放します。通常、別の場所に割り当てる前に行われます。レスポンスには、実際に回答者が割り当てられていた `released_channels` がリストされます。

どちらも「サイレンス（無音）」ではなく「未設定」になります。アクティブなエージェントが1つだけのアカウントでは、解放されたチャネルは引き続きそのエージェントにフォールバックされます。

---

## エントリーポイントAPIのエラー

エントリーポイントのエンドポイントは、標準のエラーエンベロープを返します。

```json
{
  "success": false,
  "error": "Entry point not found"
}
```

| ステータス | エントリーポイントのエンドポイントで発生する場合 |
|---|---|
| `400` | フィールドが不足しているか、ルールが使用できない状態です。設定呼び出しに `channel` または `agent_id` がない、不明な `type`、空の `channels`、キーワードのないキーワードルール、自身のチャネルをリストしていないコメントルール、更新時に空白の `agent_id`、空の更新ボディ、または接続されている番号のいずれでもない `phone_number` が指定された場合などです。 |
| `403` | キーまたはチームメンバーにルーティングの編集権限がない可能性があります。書き込みにはキャンペーンの編集権限が必要であり、リストおよびステータスの読み取りには閲覧権限が必要です。 |
| `404` | エントリーポイントまたはエージェントが見つかりませんでした。存在しないか、別のアカウントに属しています。 |

すべてのエンドポイントが返す共通コード（`401`、`403`（プランにAPIアクセスが含まれていない）、`429`（レート制限）、`500`）については、再試行のガイダンスと共に[エラーとページネーション](errors-and-pagination.md)に記載されています。


---

## 次のステップ

- [エントリーポイント](../ai-agents/entry-points.md) — コンセプト、ルールの種類、およびアプリ内の「**新しい会話に誰が応答するか**」パネルについて。
- [AIエージェントAPI](agents.md) — これらのルールがルーティング先とするエージェントの作成と設定。
- [チャネルAPI](channels.md) — チャネル自体の接続。
- [コメントからDMへの自動化](../ai-automation/comment-to-dm.md) — コメントルールが実行された際の動作。
