スコープと権限
スコープとは、アシスタントを接続する際にOAuthの同意画面で許可する同意の単位です。接続済みのアシスタントによるすべてのツール呼び出しは、そのアクセストークンに焼き込まれたスコープと照合されます——あなたのアカウントロールをその都度読み直すわけではありません。つまり、接続時に許可した内容が、取り消すか別の選択で再接続するまで、そのまま許可され続けます。
全リスト
| スコープ | 許可すること | デフォルトで許可? |
|---|---|---|
projects:read | メールプロジェクトとそのデザインを見る | Yes |
projects:write | メールプロジェクトを作成・編集する | Yes |
contacts:read | 連絡先リストを見る——サマリーは常に、個々の連絡先の行はツールが明示的に要求したときのみ | Yes |
contacts:write | 連絡先を追加・更新し、配信停止を管理する | Yes |
analytics:read | キャンペーンの結果、フォームの回答、注文を見る | Yes |
campaigns:read | 送信履歴と繰り返し送信のスケジュールを見る | Yes |
campaigns:send | 連絡先にキャンペーンを送信し、繰り返し送信のスケジュールを作成・有効化する | No — オプトインのみ |
templates:read | 保存済みおよびコミュニティのテンプレートを使う | Yes |
templates:write | プロジェクトをテンプレートとして保存する | Yes |
mailbox:read | 認証済みドメインで受信したメールとサポートチケットを読む | Yes |
mailbox:write | メールボックスのスレッドとサポートチケットに返信する | Yes |
commerce:write | 物理商品の注文をフルフィルメント済みにする | Yes |
journeys:read | 自動化されたジャーニーと保存済みセグメントを表示 | Yes |
journeys:write | ジャーニーを作成(常にオフの状態で保存)、セグメントを作成、ジャーニーを一時停止。ジャーニーをオンにするには campaigns:send も必要です | Yes |
openid | あなたの本人確認を行う | Yes |
email | あなたのアカウントのメールアドレスを共有する(対応しているプラットフォームでのワークスペースのドメイン制限に使用) | Yes |
offline_access | 1時間ごとに再認可することなく接続を維持する | Yes |
campaigns:sendが特別な理由
ここに挙げたスコープはいずれも、読み取り専用か、取り消せる編集(ブロックを削除する、連絡先を削除する、テンプレートを復元する)です。実際の人にメールを送信することは、コネクタが行える中で唯一取り消せない行動です。そのため、同意画面ではこれがデフォルトでチェックされておらず、区別のつく警告色で表示され——許可された後でも、実際に何かが送信される前にセキュリティで説明されている2段階のprepare_send/confirm_sendフローが必要になります。
アカウントロールがスコープをどう制限するか
接続先のアカウントで**閲覧者(viewer)**の場合、同意画面には*:read系のスコープとopenid/email/offline_accessのみが表示されます——これは、MailInAppの他の場所で閲覧者がすでに持っている同じ読み取り専用の上限です。**編集者(editor)とオーナー(owner)**は全リストを許可できます。両者とも許可できない唯一のものは、コネクタがそもそも一切公開していないもの——認証情報のローテーション、SMTP/決済/ドメイン設定、チーム管理——で、これらはスコープに関係なく、どのコネクタツールからも到達不能であり、MailInApp内の他の場所にある既存の編集者の制限を反映しています。
接続がどのアカウントとして動作するか
1つの接続は、その存続期間全体を通じて1つのアカウントに紐づきます。複数の会社(自分自身の個人アカウントと、アクティブなメンバーとして参加しているチーム)に所属している場合、同意画面はスコープを表示する前にどちらか1つを選ぶよう求めます。同じアシスタントから2つの会社を使い分けるには、2回接続する必要があり、それによってConnectionsページ上にも独立して取り消し可能な2つのエントリができます。
このアカウントの紐付けは、接続時だけでなく、すべてのツール呼び出しの際に再確認されます: チームオーナーがあなたをチームメイトから外したり、あなたのロールが変わった場合、その接続からの次の呼び出しは——スコープを許可した時点での状態ではなく——あなたの現在の状態を反映します。