> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Twilio

> Twilio APIを通じてSMS、MMS、WhatsAppメッセージ送信、音声通話を実行

## 概要

TwilioツールはTwilioの通信プラットフォームを通じてメッセージや通話の送受信を可能にします。SMS、メディア付きMMS、WhatsAppメッセージング、音声通話をサポートします。

## 主な機能

### アウトバウンド通信

* `TWILIO_SEND_SMS`
  * 任意の電話番号にSMSテキストメッセージを送信
* `TWILIO_SEND_WHATSAPP`
  * Twilio API for WhatsApp Business経由でWhatsAppメッセージを送信

## 認証

全てのツールはTwilio認証情報が必要です：

* **Account SID**: [Twilioコンソール](https://console.twilio.com/)で確認
* **Auth Token**: Twilioコンソールで確認

認証情報は以下の方法で提供できます：

1. 環境変数：`TWILIO_ACCOUNT_SID`と`TWILIO_AUTH_TOKEN`
2. ツール設定パラメータ
3. JinbaFlowシークレットマネージャー

## セットアップ

### 1. Twilioアカウント取得

1. [Twilio](https://www.twilio.com/try-twilio)でサインアップ
2. アカウントと電話番号を認証
3. [Twilioコンソール](https://console.twilio.com/)からAccount SIDとAuth Tokenを取得
   * Auth Tokenはデフォルトで非表示になっているため、「Show」をクリックして表示します

### 2. 電話番号取得

はじめてTwilioを使用する場合は、コンソールから [Get a Trial Number](https://www.twilio.com/console/phone-numbers/trial-number/modal?capability%5B%5D=sms)をクリックし、トライアル番号を取得することができます。 この番号はSMSの送受信が可能な番号が表示されます。

WhatsAppの場合は、テスト用に[Twilioサンドボックス](https://console.twilio.com/us1/develop/sms/try-it-out/whatsapp-learn)に参加します。

**トライアルアカウントの制限**:

* 取得できる電話番号は1つのみ
* 送信先は[認証済み電話番号](https://console.twilio.com/us1/develop/phone-numbers/manage/verified)のみ
  * **重要**: Twilioの仮想番号（例: +18777804236）は認証できません
  * ご自身の**実際の電話番号**を認証する必要があります
* 1日あたり最大50件のメッセージ送信制限
* すべてのメッセージに「Sent from your Twilio trial account」のサインが追加されます

## 使用例

**注意**: 以下の例はトライアルアカウントでテスト可能です。

## 受信（Webhook）

Twilioの受信はWebhookで行われます。Twilioの番号設定で受信用URLを登録します。

* 受信用エンドポイント: `POST /api/v2/external/flows/:flowId/twilio-run`
* Twilioはデフォルトで `application/x-www-form-urlencoded` を送信します
* TwiML応答が求められるため、JinbaFlow側は空の `<Response></Response>` を返します

### 例5: SMS受信（Webhook）

```yaml theme={null}
- id: receive_sms
  tool: INPUT_TWILIO_SMS
  config:
    - name: validate_signature
      value: false
  input: []
```

### 例1: SMS送信

```yaml theme={null}
- id: send_sms
  tool: TWILIO_SEND_SMS
  config:
    - name: account_sid
      value: "{{secrets.TWILIO.account_sid}}"
    - name: auth_token
      value: "{{secrets.TWILIO.auth_token}}"
  input:
    - name: to
      value: "+819012345678"
    - name: from
      value: "+15017122661"
    - name: body
      value: "JinbaFlowからこんにちは！"
```

### 例3: WhatsAppメッセージ送信

```yaml theme={null}
- id: send_whatsapp
  tool: TWILIO_SEND_WHATSAPP
  config:
    - name: account_sid
      value: "{{secrets.TWILIO.account_sid}}"
    - name: auth_token
      value: "{{secrets.TWILIO.auth_token}}"
  input:
    - name: to
      value: "+819012345678"
    - name: from
      value: "+14155238886"  # Twilio WhatsApp番号
    - name: body
      value: "WhatsApp経由でこんにちは！"
```

## 電話番号フォーマット

全ての電話番号は**E.164形式**である必要があります：

* 国コードを`+`プレフィックスで含める
* スペース、ダッシュ、括弧なし
* 例：
  * アメリカ: `+15551234567`
  * 日本: `+819012345678`
  * イギリス: `+447911123456`

## メディアサポート（MMS/WhatsApp）

サポートされるメディアタイプ：

* **画像**: JPEG, PNG, GIF
* **動画**: MP4
* **ドキュメント**: PDF

1メッセージあたり最大10個のメディアURL。

## リソース

* [Twilioドキュメント](https://www.twilio.com/docs)
* [Twilioコンソール](https://console.twilio.com/)
* [TwiML音声命令](https://www.twilio.com/docs/voice/twiml)
* [WhatsApp Business API](https://www.twilio.com/docs/whatsapp)
