TwilioのFAX送信機能の評価結果=不可

## 2020/12/18 追記
Twilio社から2021年12月でFAX API機能の提供打ち切りというアナウンスがありました。
採用していたら開発投資が無駄になるところでした…。良かった。(本記事の初稿は7月)

[![Image from Gyazo](https://i.gyazo.com/94210276db07d1371576ef1bf9ad80eb.png)](https://gyazo.com/94210276db07d1371576ef1bf9ad80eb)

---

# 背景

宿泊施設ではFAX送信機能は未だに必須機能です。

弊社が提供する[宿泊予約システム](https://nyango.com/services/travel/)では「[秒速FAX送信](https://fax.toones.jp/send/)」というサービスで実現しています。(弊社システムはFAXだけでなくEmail、LINE通知に対応しています)

現在、ある団体様向けに当該システムを導入するためにカスタマイズしているですが、そこでは年間10万件以上の送信が見込まれるので、少しでも安くしたいという要望がございました。

調査(問い合わせて)みたところ7円/枚で済みそうだったためTwilioのFAX送信を評価してみました。(金額については「送信失敗でも課金されるケースがある」ということで事前にはわからない。というのが実際でした)

評価結果は「**見送り(不採用)**」です。

価格は当初期待したほどではないにしても最安級ではあるのですが、機能面とサポート面が~~クソ~~満足できるものではありませんでした。

リリースから3年経過しても**Beta**であり、ドキュメントの日本語化も中途半端なのでやる気がない(=これ以上の「(FAX送信そのものの)機能」「(管理機能含めた)使い勝手」「サポート」の向上は見込めない)と判断しました。(FAXは他のコミュニケーション媒体と比較して高コスト・低品質~送信エラーになる確率が非常に高い~で将来性低いので投資判断が低くなるのは当たり前だと思います)

# 機能面(の弱いところ/デメリット)

- 送信できるのはPDFだけ。
    - PDFをファイルとして配置する
        - ディスクを消費する。定期削除の追加実装が必要
    - PDFは誰でも参照できるWeb上の公開領域に配置する必要がある。
        - Basic認証に対応しているが作り込みと保守対象が増える
- リトライ機能がない。FAXは送信失敗しやすいので必須
    - 作り込みが必要
- 送信結果をポーリングもしくはWebhookで自前で判定する必要がある
- 送信履歴の照会機能を自前で作り込む必要がある
- 送信失敗しても課金される(ことがある)
    - レスポンスの`status`では識別不可らしい。※サポート即答できず調査待ち
- 番号の確保に固定費が必要
- トライアルアカウントが用意されているがFAX送信処理は実行できない
    - この制限はドキュメント/FAQには記載されていなかった(実行エラーメッセージより判断)

## 参考/秒速FAX送信について

なお、秒速FAX送信は以下のような仕様です。機能面についてはTwilioが対応していないものをピックアップしています。

- 簡単に送信できる
    - 所定の番号に「メール」送信するだけ  ★システムのメール送信機能を流用できるので開発不要★
        - サービス側で変換してFAX送信してくれる
    - PDFの添付も可能
- 自動リトライがある(選択可能/最大6回) ※課金対象外
- 送信エラー発生時はメールで通知される
- FAX送信履歴(照会、詳細)が用意されている。PDF化されたデータもダウンロードできる
- 比較的安い
    - 完全従量制で初期費・固定費なしで10円/枚(月間5000枚以上だと安くなる/5万枚以上は7円)
    - 送信失敗時は課金されない
    - アプリケーションからFAX送信できるサービスの中では最安級だと思います

### 秒速FAX送信でも必要な追加実装

**秒速FAX送信**ではEメール機能をそのまま流用できるのですが、コンテンツ(文字列)の扱いについてFAXとメールでは以下の点が異なるので、FAX用文字列の整形処理は独自に実装する必要があります。

- 自動で文字列の折返しは行われない。 => Eメール通知内の長い文字列は適宜改行
- ページ単位で課金される => Eメール通知内の不要な文字(区切り線とか)を削除

# 管理機能が洗練されていない/サポート品質が低い

様々なサービスの管理機能やサポートを利用していますが、なんというか・・・。イライラすることばかりで過去最悪級の体験でした。

- 猥雑な申請手続きが必要
    - 専用のアプリをインストールして、新規に証明書類を撮影
    - 「Approve」されたという通知がきたのでトライアルアカウントで送信試すが実行エラー
        - エラーメッセージによると(日本国内はできない？)
    - アカウントをアップグレード(カード登録、チャージして)してFAX送信成功。翌日「不審なアクティビティが検出されたのでアカウント停止」となる
    - Googleなどでも「不審なログイン・アクティビティを検知」みたいなチェックはあるけど「自分のアクティビティです」と簡単に解消できるが、、、
    - Twilioの場合
        - 「この問題を解消するためにこのチケットに情報を記入してください。」というリンクが表示されるが403エラー(管理者アカウントでログインしているのに！)
        - エラーについて問い合わせたら外国人から回答があり「KDDIに連絡してくれ」
        - 問い合わせフォームは別のサービス(zendesk)で管理されていて、毎回、ログインが必要。かつ毎回アカウントの識別情報の手入力が必要。(ログインしてるんだから自動で入力して欲しいですね)
        - あげくの果てに「申請がおわってない」ので申請してくれ。というフィードバック
- アカウント情報登録が英語の登録フォームだったので英語で入力したら、後日、申請書類と同じ(=日本語)で入力しろだと。
- 解約手続きが面倒かつ不明朗
    - 管理サイトから解約できない。問い合わせが必要。
    - 解約時の留意事項に「残金」の扱いが明示されていない
    - 解約時の質問に残金の扱いについて記載したが回答に含まれていない(ので再質問) いいかげんにしてくれよ。
- 解約手続き完了後にチャージしてください。というリマインドメール。← どんなバッチ処理実装？

# その他の不安材料

以上のように落とし穴たくさんでした。その他の不安材料は以下です。

- 「料金」が問い合わせしないとわからない
- リリースから**3年**経過しているが未だにBeta
- [APIドキュメント](https://jp.twilio.com/docs/fax/api/fax-resource)の日本語化が中途半端
    - 全部、英語で問題ないですが、たいした分量でないのに中途半端というのが「やる気のなさ」を感じさせます

[![Image from Gyazo](https://i.gyazo.com/8e68591669fcee70e12c5a03e4a7c49d.png)](https://gyazo.com/8e68591669fcee70e12c5a03e4a7c49d)