特定のアクセスレベルとカスタムロールを持つプロジェクトや会社にユーザーを招待します。
ユーザーを招待
inviteUser
ミューテーションを使用すると、Blueのプロジェクトや会社にユーザーを招待できます。ユーザーには、事前定義されたアクセスレベルまたは特定の権限を持つカスタムロールを割り当てることができます。
基本的な例
標準のアクセスレベルでユーザーを招待します:
mutation InviteUserToProject {
inviteUser(
input: {
email: "newuser@example.com"
projectId: "web-redesign"
accessLevel: MEMBER
}
)
}
高度な例
カスタムロールを持つユーザーを複数のプロジェクトに招待します:
mutation InviteUserWithCustomRole {
inviteUser(
input: {
email: "contractor@example.com"
projectIds: ["web-redesign", "mobile-app", "api-v2"]
accessLevel: MEMBER
roleId: "role_contractor_123"
}
)
}
入力パラメータ
InviteUserInput
パラメータ | 型 | 必須 | 説明 |
---|---|---|---|
email |
String! | ✅ はい | 招待するユーザーのメールアドレス |
accessLevel |
UserAccessLevel! | ✅ はい | 付与するアクセスレベル(下の表を参照) |
projectId |
String | いいえ | 単一のプロジェクトID(companyIdと相互排他的) |
projectIds |
[String!] | いいえ | companyIdを使用する場合の複数のプロジェクトID |
companyId |
String | いいえ | 会社レベルの招待のための会社ID(projectIdと相互排他的) |
roleId |
String | いいえ | カスタムロールID(accessLevel: MEMBERが必要) |
UserAccessLevel 値
値 | 説明 |
---|---|
OWNER |
プロジェクト/会社に対する完全な制御 |
ADMIN |
管理者アクセス、ユーザーと設定を管理可能 |
MEMBER |
標準メンバーアクセスで完全な機能を持つ |
CLIENT |
外部クライアント向けの制限付きアクセス |
COMMENT_ONLY |
レコードを表示およびコメントすることのみ可能 |
VIEW_ONLY |
プロジェクトへの読み取り専用アクセス |
レスポンスフィールド
フィールド | 型 | 説明 |
---|---|---|
success |
Boolean! | 招待が成功裏に送信されたかどうか |
必要な権限
ユーザーは他のユーザーを招待するために十分な権限を持っている必要があります。権限の階層が適用されます:
あなたの役割 | 招待可能 |
---|---|
OWNER |
✅ すべてのアクセスレベル |
ADMIN |
✅ ADMIN, MEMBER, CLIENT, COMMENT_ONLY, VIEW_ONLY(OWNERを招待できない) |
MEMBER |
✅ MEMBER, CLIENT, COMMENT_ONLY, VIEW_ONLY(OWNERまたはADMINを招待できない) |
CLIENT |
✅ CLIENTのみ |
COMMENT_ONLY |
❌ 招待できない |
VIEW_ONLY |
❌ 招待できない |
注意: 会社の招待(companyId
を使用)は、会社のOWNERのみがユーザーを招待できます。
招待の種類
プロジェクト招待
ユーザーを単一のプロジェクトに招待します:
projectId
パラメータを使用companyId
を同時に使用できません- 招待者はプロジェクトにアクセスできる必要があります
- アクセスレベルの制限が適用されます
会社招待
ユーザーを会社に招待します(オプションで特定のプロジェクトも):
companyId
パラメータを使用projectId
を同時に使用できません- 会社のOWNERのみがこの方法を使用できます
projectIds
配列を使用して含めるプロジェクトを指定しますprojectIds
が省略された場合、ユーザーは会社のアクセスのみを取得します
カスタムロール
カスタムロールを使用する場合:
accessLevel
をMEMBER
に設定します- カスタムロールの
roleId
を提供します - ユーザーはカスタムロールで定義されたすべての権限を継承します
- カスタムロールはプロジェクト固有です
利用可能なカスタムロールを取得するには、projectUserRoles
クエリを使用します。
エラー応答
ユーザーはすでにプロジェクトに存在
{
"errors": [{
"message": "User is already in the project.",
"extensions": {
"code": "USER_ALREADY_IN_THE_PROJECT"
}
}]
}
権限が不十分
{
"errors": [{
"message": "You don't have permission to invite users with this access level",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
無効なプロジェクト
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
招待制限を超えました
{
"errors": [{
"message": "Unable to invite more people.",
"extensions": {
"code": "INVITATION_LIMIT"
}
}]
}
自分を招待できません
{
"errors": [{
"message": "You are not allowed to add yourself.",
"extensions": {
"code": "ADD_SELF"
}
}]
}
無効なカスタムロール
{
"errors": [{
"message": "Project user role was not found.",
"extensions": {
"code": "PROJECT_USER_ROLE_NOT_FOUND"
}
}]
}
会社が禁止されています
{
"errors": [{
"message": "Company is banned",
"extensions": {
"code": "COMPANY_BANNED"
}
}]
}
重要な注意事項
- メール検証: メールアドレスは正規化され、招待送信前に検証されます
- 招待の有効期限: 招待は7日後に期限切れとなり、受け入れられない場合は再送信する必要があります
- 自動通知: Blueは新しいユーザーに自動的に招待メールを送信します
- 会社のオーナー: 会社のオーナーはすべてのプロジェクトで自動的にADMINアクセスを受け取ります
- 請求への影響: ユーザーを追加すると、ユーザー単位の料金プランを利用している場合、サブスクリプションに影響を与える可能性があります
- アクティビティログ: すべてのユーザー招待は監査目的で記録されます
- パラメータの排他性:
projectId
またはcompanyId
のいずれかを提供する必要があり、両方は提供できません - 会社の制限: 会社のオーナーのみが
companyId
パラメータを使用できます - 自己招待: ユーザーは自分を招待できません(
ADD_SELF
エラーが発生します)