Invitar usuarios a proyectos o empresas con niveles de acceso específicos y roles personalizados.
Invitar a un Usuario
La inviteUser
mutación permite invitar usuarios a tus proyectos o empresas de Blue. Los usuarios pueden ser asignados a niveles de acceso predefinidos o roles personalizados con permisos específicos.
Ejemplo Básico
Invitar a un usuario con un nivel de acceso estándar:
mutation InviteUserToProject {
inviteUser(
input: {
email: "newuser@example.com"
projectId: "web-redesign"
accessLevel: MEMBER
}
)
}
Ejemplo Avanzado
Invitar a un usuario con un rol personalizado a múltiples proyectos:
mutation InviteUserWithCustomRole {
inviteUser(
input: {
email: "contractor@example.com"
projectIds: ["web-redesign", "mobile-app", "api-v2"]
accessLevel: MEMBER
roleId: "role_contractor_123"
}
)
}
Parámetros de Entrada
InviteUserInput
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
email |
String! | ✅ Sí | Dirección de correo electrónico del usuario a invitar |
accessLevel |
UserAccessLevel! | ✅ Sí | Nivel de acceso a otorgar (ver tabla a continuación) |
projectId |
String | No | ID de un solo proyecto (exclusivo con companyId) |
projectIds |
[String!] | No | Múltiples IDs de proyecto al usar companyId |
companyId |
String | No | ID de la empresa para invitaciones a nivel de empresa (exclusivo con projectId) |
roleId |
String | No | ID de rol personalizado (requiere accessLevel: MEMBER) |
Valores de UserAccessLevel
Valor | Descripción |
---|---|
OWNER |
Control total sobre el proyecto/empresa |
ADMIN |
Acceso administrativo, puede gestionar usuarios y configuraciones |
MEMBER |
Acceso estándar de miembro con funcionalidad completa |
CLIENT |
Acceso limitado para clientes externos |
COMMENT_ONLY |
Solo puede ver y comentar registros |
VIEW_ONLY |
Acceso solo de lectura al proyecto |
Campos de Respuesta
Campo | Tipo | Descripción |
---|---|---|
success |
Boolean! | Si la invitación fue enviada con éxito |
Permisos Requeridos
Los usuarios deben tener permisos suficientes para invitar a otros. La jerarquía de permisos se aplica:
Tu Rol | Puede Invitar |
---|---|
OWNER |
✅ Todos los niveles de acceso |
ADMIN |
✅ ADMIN, MEMBER, CLIENT, COMMENT_ONLY, VIEW_ONLY (no puede invitar a OWNER) |
MEMBER |
✅ MEMBER, CLIENT, COMMENT_ONLY, VIEW_ONLY (no puede invitar a OWNER o ADMIN) |
CLIENT |
✅ CLIENT solo |
COMMENT_ONLY |
❌ No puede invitar |
VIEW_ONLY |
❌ No puede invitar |
Nota: Para invitaciones a empresas (usando companyId
), solo los PROPIETARIOS de la empresa pueden invitar usuarios.
Tipos de Invitación
Invitación a Proyecto
Invitar a un usuario a un solo proyecto:
- Usar el parámetro
projectId
- No se puede usar
companyId
simultáneamente - El invitador debe tener acceso al proyecto
- Se aplican restricciones de nivel de acceso
Invitación a Empresa
Invitar a un usuario a una empresa (y opcionalmente a proyectos específicos):
- Usar el parámetro
companyId
- No se puede usar
projectId
simultáneamente - Solo los PROPIETARIOS de la empresa pueden usar este método
- Usar el array
projectIds
para especificar qué proyectos incluir - Si se omite
projectIds
, el usuario solo obtiene acceso a la empresa
Roles Personalizados
Al usar roles personalizados:
- Establecer
accessLevel
aMEMBER
- Proporcionar el
roleId
de tu rol personalizado - El usuario heredará todos los permisos definidos en el rol personalizado
- Los roles personalizados son específicos del proyecto
Para recuperar los roles personalizados disponibles, usa la projectUserRoles
consulta.
Respuestas de Error
Usuario Ya en el Proyecto
{
"errors": [{
"message": "User is already in the project.",
"extensions": {
"code": "USER_ALREADY_IN_THE_PROJECT"
}
}]
}
Permisos Insuficientes
{
"errors": [{
"message": "You don't have permission to invite users with this access level",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
Proyecto Inválido
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
Límite de Invitaciones Excedido
{
"errors": [{
"message": "Unable to invite more people.",
"extensions": {
"code": "INVITATION_LIMIT"
}
}]
}
No Puedes Invitarte a Ti Mismo
{
"errors": [{
"message": "You are not allowed to add yourself.",
"extensions": {
"code": "ADD_SELF"
}
}]
}
Rol Personalizado Inválido
{
"errors": [{
"message": "Project user role was not found.",
"extensions": {
"code": "PROJECT_USER_ROLE_NOT_FOUND"
}
}]
}
Empresa Prohibida
{
"errors": [{
"message": "Company is banned",
"extensions": {
"code": "COMPANY_BANNED"
}
}]
}
Notas Importantes
- Validación de Correo Electrónico: Las direcciones de correo electrónico son normalizadas y validadas antes de enviar invitaciones
- Caducidad de la Invitación: Las invitaciones caducan después de 7 días y deben ser reenviadas si no son aceptadas
- Notificaciones Automáticas: Blue envía automáticamente correos electrónicos de invitación a nuevos usuarios
- Propietarios de la Empresa: Los propietarios de la empresa reciben automáticamente acceso ADMIN en todos los proyectos
- Impacto en la Facturación: Agregar usuarios puede afectar tu suscripción si tienes precios por usuario
- Registro de Actividades: Todas las invitaciones de usuarios son registradas para fines de auditoría
- Exclusividad de Parámetros: Debes proporcionar
projectId
OcompanyId
, no ambos - Restricciones de Empresa: Solo los propietarios de la empresa pueden usar el parámetro
companyId
- Auto-Invitación: Los usuarios no pueden invitarse a sí mismos (se generará el error
ADD_SELF
)
Operaciones Relacionadas
- Listar Usuarios - Ver todos los usuarios en un proyecto o empresa
- Eliminar Usuario - Eliminar usuarios de proyectos
- Roles Personalizados - Gestionar roles de usuario personalizados