Twilio Advent Calendar 2017 の3日目となります。
Twilio にはアカウントの管理の概念として「マスターアカウント」と「サブアカウント」があります。
Twilio で受託開発をしたり、サービス運営をしたりする上で重要な概念ですので、注意点を含めて解説していきます。
マスターアカウントとは
追記 新しくなった Twilio コンソールからマスターアカウントの呼び名が変わり、"プロジェクト" と呼ぶようになったそうです。以下、マスターアカウント = プロジェクト として記載します。
Twilio で管理するメインのアカウントです。マスターアカウントには複数のユーザーが所属することができます。それぞれのユーザーには権限があり、「オーナー」、「管理者」、「開発者」、「経理」の4つがあります。 Twilio を最初に使い始めたユーザーがオーナーとなります。
私たちと関係の深そうな「開発者」権限は、課金情報やサブアカウントの作成以外ができるアカウントです。電話番号の追加などもできるので、それなりに権限の大きな役割となります。
さて、マスターアカウントには複数のユーザーが所属できると書きました。つまり、1つのメールアドレスで、複数のマスターアカウントに所属することも可能です。その方法は簡単で、ホーム -> 設定 -> ユーザー管理からユーザーを追加するだけです。
1つのメールアドレスで複数のマスターアカウントに所属すると、以下のようにヘッダからアカウントの切り替えが可能になります。
これで、それぞれの権限でそれぞれの Twilio コンソールが見られるようになります。
サブアカウントとは
サブアカウントとは、マスターアカウントが管理する Twilio のアカウントです。
サブアカウントごとに電話番号の管理やそれぞれのデータを完全に切り分けることができるので、マスターアカウントを複数持っている状態に近いと言えます。
サブアカウントを作成するには、Twilio の SubAccont API を呼ぶか、手動でサブアカウントを作成するかで対応できます。
作成したサブアカウントは、Twilio コンソールの右上メニューより切り替えることができます。
サブアカウントを切り替えたあとは、基本的には そのサブアカウントでログインした状態として Twilio コンソールを扱うことができます。
複数のマスターアカウントとサブアカウントの使い分け
さて、ここからが本題です。どのように複数のマスターアカウントとサブアカウントを使い分ければ良いのでしょうか。
最も大きな違いは「決済方法」でしょう。クレジットカード情報を登録できるのは、「マスターアカウント」だけです。つまり、それぞれのアカウントで決済するカードを変えたい場合には複数のマスターアカウントにせざるを得ません。反対に、サブアカウントで使った Twilio 料金はそのマスターアカウントで決済することになりますので、決済を一元管理したい場合にはサブアカウントで運用する流れとなります。
Twilio を使ってサービスを運営する場合にはサブアカウントは大変便利なものですが、何点か注意点もあります。その一つとして、通話の録音料金はマスターアカウントでしか取得できないというのがあります。サブアカウントごとに今月の通話料などは API を通じて取ってこれるので、例えばサブアカウントごとで別の支払い方法で請求することは可能です。しかし、実際にはサブアカウントごとに録音も蓄積されていくわけですが、この料金がなんと取ってくることができません。。これは録音が今までの総蓄積量を月初に一括で請求する仕様だからなのかもしれません。
サブアカウントごとに録音料金も一緒に計算したい場合には、Twilio の RecordingsAPI で総録音分数を取得し、サブアカウントごとに削除した録音分数を引くような処理が必要です。最終的にこの面倒な方法に落ち着きましたが、他にいい方法があれば教えてください。
ちなみにサブアカウントはアカウントごとクローズすれば、そのサブアカウントで持っていた電話番号料金や録音料金など、そのサブアカウント単位の全ての請求が止まるのは魅力的です。例えばサブアカウントで利用していた契約を削除したいって場合にはわざわざ電話番号や録音を消す必要がなくなります。また、サブアカウントは API をうまく利用すればお客様に Twilio の存在を全く知られないままサービスを始めていただくことができるようになります。お客様の方で Twilio とサービス側それぞれにお金を払うみたいな複雑なフローを組ませなくていいのは大変魅力的です。
実は大きな違いはこれだけです。そのため、サービス運営側でデータベースに AccountSID
と AuthToken
だけ保存しておけば、実質複数マスターアカウントでもサブアカウントでも同様のコードでほとんどがうまくいきます。
例えば通話料がとても大きな企業にはそれぞれマスターアカウントを持ってもらうようにし、決済金額が低い企業にはサブアカウントで一括管理みたいな柔軟な運用も可能になることでしょう。
終わりに
本記事ではマスターアカウントとサブアカウントの使い分けについて説明しました。
来年はもっと多くの Twilio を使ったサービスが出てくることを楽しみにしています!