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:

  1. Establecer accessLevel a MEMBER
  2. Proporcionar el roleId de tu rol personalizado
  3. El usuario heredará todos los permisos definidos en el rol personalizado
  4. 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 O companyId, 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

Asistente IA

Las respuestas son generadas por IA y pueden contener errores.

¿Cómo puedo ayudarte?

Pregúntame cualquier cosa sobre Blue o esta documentación.

Enter para enviar • Shift+Enter para nueva línea • ⌘I para abrir