Назначайте, добавляйте или удаляйте пользователей из записей с помощью API Blue


Управление назначениями записей

API Blue предоставляет три операции для управления назначениями записей: установка назначений (умное замещение), добавление назначений и удаление назначений. Эти операции автоматически обрабатывают отслеживание активности, уведомления, вебхуки и обновления в реальном времени.

Установить назначенных пользователей (умное назначение)

Заменяет всех текущих назначенных пользователей новым списком. Система интеллектуально вычисляет, какие изменения необходимы, удаляя пользователей, которых нет в новом списке, и добавляя новых.

mutation SetRecordAssignees {
  setTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_123", "user_456", "user_789"]
  }) {
    success
    operationId
  }
}

Добавить назначенных пользователей

Добавляет новых назначенных пользователей без удаления существующих. Будут добавлены только пользователи, которые еще не назначены.

mutation AddRecordAssignees {
  addTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_999", "user_111"]
  }) {
    success
    operationId
  }
}

Удалить назначенных пользователей

Удаляет конкретных назначенных пользователей из записи.

mutation RemoveRecordAssignees {
  removeTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_456"]
  }) {
    success
    operationId
  }
}

Входные параметры

SetTodoAssigneesInput

Параметр Тип Обязательный Описание
todoId String! ✅ Да Идентификатор записи, к которой нужно назначить пользователей
assigneeIds [String!]! ✅ Да Массив идентификаторов пользователей для назначения (заменяет всех текущих назначенных)

AddTodoAssigneesInput

Параметр Тип Обязательный Описание
todoId String! ✅ Да Идентификатор записи, к которой нужно назначить пользователей
assigneeIds [String!]! ✅ Да Массив идентификаторов пользователей для добавления в качестве назначенных

RemoveTodoAssigneesInput

Параметр Тип Обязательный Описание
todoId String! ✅ Да Идентификатор записи, из которой нужно удалить назначенных пользователей
assigneeIds [String!]! ✅ Да Массив идентификаторов пользователей для удаления из назначенных

Поля ответа

Поле Тип Описание
success Boolean! Успешно ли завершена операция
operationId String Уникальный идентификатор для отслеживания этой операции

Необходимые разрешения

Установить/Удалить назначенных пользователей

Роль Может назначать/удалять
OWNER ✅ Да
ADMIN ✅ Да
MEMBER ✅ Да
CLIENT ✅ Да
VIEW_ONLY ❌ Нет
COMMENT_ONLY ❌ Нет

Добавить назначенных пользователей

Роль Может добавлять назначенных пользователей
OWNER ✅ Да
ADMIN ✅ Да
MEMBER ✅ Да
CLIENT ✅ Да
VIEW_ONLY ✅ Да
COMMENT_ONLY ✅ Да

Ответы на ошибки

Запись не найдена

{
  "errors": [{
    "message": "Todo was not found.",
    "extensions": {
      "code": "TODO_NOT_FOUND"
    }
  }]
}

Недостаточно прав

{
  "errors": [{
    "message": "You don't have permission to modify this record",
    "extensions": {
      "code": "FORBIDDEN"
    }
  }]
}

Неверный ввод

{
  "errors": [{
    "message": "Variable '$input' got invalid value; Expected non-nullable type 'String!' not to be null.",
    "extensions": {
      "code": "GRAPHQL_VALIDATION_FAILED"
    }
  }]
}

Сравнение операций

Функция Установить назначенных Добавить назначенных Удалить назначенных
Logic Smart replacement Incremental addition Selective removal
Activity Tracking ✅ Да ❌ Нет ❌ Нет
Уведомления ✅ Да ❌ Нет ❌ Нет
Webhooks ✅ Да ❌ Нет ❌ Нет
Automations ✅ Да ❌ Нет ❌ Нет
Permission Level Stricter More permissive Stricter

Бизнес-логика

Умное назначение (setTodoAssignees)

Когда вы используете setTodoAssignees, система:

  1. Сравнивает списки: Анализирует текущих назначенных пользователей и новый список назначенных
  2. Вычисляет изменения: Определяет, кого удалить, кого оставить и кого добавить
  3. Удаляет пользователей: Снимает назначение с пользователей, которых нет в новом списке
  4. Добавляет пользователей: Назначает пользователей из нового списка, которые ранее не были назначены
  5. Отслеживает активность: Создает записи журнала активности для каждого изменения
  6. Отправляет уведомления: Уведомляет вновь назначенных пользователей
  7. Запускает вебхуки: Срабатывают вебхуки добавления/удаления назначенных
  8. Обновляет графики: Помечает аналитические графики для обновления
  9. Обновления в реальном времени: Публикует обновления для подключенных клиентов

Простые операции (добавление/удаление)

Операции addTodoAssignees и removeTodoAssignees предоставляют базовую функциональность без комплексного отслеживания и уведомлений, как в setTodoAssignees.

Важные заметки

  • Членство в проекте: Назначенные пользователи должны быть членами проекта, содержащего запись
  • Нет ограничений на назначения: Нет максимального количества назначенных пользователей на запись
  • Самоназначение: Пользователи могут назначать себя, если у них есть соответствующие разрешения
  • Пустые массивы: Предоставление пустого assigneeIds массива в setTodoAssignees удаляет всех назначенных пользователей
  • Предотвращение дубликатов: Система автоматически предотвращает дублирование назначений
  • Эффективность базы данных: Использует соединительную таблицу (TodoUser) для масштабируемых отношений многие-ко-многим
  • Обновления в реальном времени: Все подключенные клиенты получают немедленные обновления при изменении назначений

Получить доступных назначенных пользователей

Чтобы получить список пользователей, которые могут быть назначены на записи в проекте:

query GetAssignees {
  assignees(projectId: "project_abc123") {
    id
    name
    email
    avatar
  }
}

Этот запрос возвращает всех членов проекта, которые могут быть потенциально назначены на записи.

Связанные операции

AI Ассистент

Ответы генерируются с использованием ИИ и могут содержать ошибки.

Как я могу вам помочь?

Спросите меня о чем угодно, связанном с Blue или этой документацией.

Введите для отправки • Shift+Enter для новой строки • ⌘I для открытия