既存のプロジェクトの完全なコピーを作成し、含める内容の設定オプションを提供します。
プロジェクトのコピー
コピープロジェクトミューテーションを使用すると、同じ会社内または異なる会社に既存のプロジェクトを複製できます。これは、プロジェクトテンプレートの作成、類似プロジェクトの設定、または会社間でのプロジェクトの移動に便利です。コピー操作は、大規模なプロジェクトを効率的に処理するために非同期で実行されます。
基本例
mutation CopyProject {
copyProject(
input: {
projectId: "proj_123abc"
name: "New Project Copy"
options: {
todos: true
todoLists: true
people: true
}
}
)
}
高度な例
mutation CopyProject {
copyProject(
input: {
projectId: "proj_123abc"
name: "Q2 Marketing Campaign"
description: "Copy of Q1 campaign with updated timeline"
imageURL: "https://example.com/campaign-logo.png"
companyId: "comp_789xyz"
options: {
assignees: true
automations: true
checklists: true
customFields: true
discussions: false
discussionComments: false
dueDates: true
files: true
forms: true
people: true
projectUserRoles: true
statusUpdates: false
statusUpdateComments: false
tags: true
todoActions: true
todoComments: false
todoLists: true
todos: true
}
}
)
}
入力パラメータ
CopyProjectInput
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
projectId |
String! | ✅ はい | コピーするプロジェクトのID |
name |
String! | ✅ はい | 新しいプロジェクトの名前(最大50文字) |
description |
String | いいえ | 新しいプロジェクトの説明(最大500文字) |
imageURL |
String | いいえ | 新しいプロジェクトの画像URL |
companyId |
String | いいえ | 新しいプロジェクトを作成する会社のID。指定しない場合は、ソースプロジェクトの会社を使用します |
options |
CopyProjectOptionsInput! | ✅ はい | コピーする要素の設定 |
CopyProjectOptionsInput
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
assignees |
Boolean | いいえ | タスクのアサインをコピーする(people: true が必要) |
automations |
Boolean | いいえ | プロジェクトの自動化とワークフローをコピーする |
checklists |
Boolean | いいえ | タスクのチェックリストをコピーする |
customFields |
Boolean | いいえ | カスタムフィールドの定義と値をコピーする |
discussions |
Boolean | いいえ | プロジェクトのディスカッションをコピーする |
discussionComments |
Boolean | いいえ | ディスカッションのコメントをコピーする(discussions: true が必要) |
dueDates |
Boolean | いいえ | タスクの期限をコピーする |
files |
Boolean | いいえ | ファイルの添付をコピーする |
forms |
Boolean | いいえ | プロジェクトのフォームをコピーする |
people |
Boolean | いいえ | プロジェクトのメンバーをコピーする |
projectUserRoles |
Boolean | いいえ | ユーザーの役割と権限をコピーする(people: true が必要) |
statusUpdates |
Boolean | いいえ | プロジェクトのステータス更新をコピーする |
statusUpdateComments |
Boolean | いいえ | ステータス更新のコメントをコピーする(statusUpdates: true が必要) |
tags |
Boolean | いいえ | プロジェクトのタグをコピーする |
todoActions |
Boolean | いいえ | タスクのアクション/サブタスクをコピーする |
todoComments |
Boolean | いいえ | タスクのコメントをコピーする |
todoLists |
Boolean | いいえ | タスクのリスト/セクションをコピーする |
todos |
Boolean | いいえ | タスクをコピーする |
coverConfig |
Boolean | いいえ | TODOカバー画像の設定をコピーする |
レスポンス
ミューテーションはBoolean
の値を返します:
true
- コピージョブが正常にキューに追加されましたfalse
- コピージョブを開始できませんでした
コピー状況の確認
コピーは非同期であるため、copyProjectStatus
クエリを使用して進行状況を確認します:
コピー状況フィールド
フィールド | タイプ | 説明 |
---|---|---|
queuePosition |
Int | コピーキュー内の位置 |
totalQueues |
Int | キュー内のアイテムの総数 |
isActive |
Boolean | コピー操作が現在アクティブかどうか |
oldProject |
Project | コピーされているソースプロジェクト |
newProjectName |
String | 作成される新しいプロジェクトの名前 |
isTemplate |
Boolean | テンプレートとしてコピーされているかどうか |
oldCompany |
Company | ソース会社 |
newCompany |
Company | ターゲット会社 |
query CheckCopyStatus {
copyProjectStatus {
queuePosition
totalQueues
isActive
oldProject {
id
name
}
newProjectName
isTemplate
oldCompany {
id
name
}
newCompany {
id
name
}
}
}
必要な権限
プロジェクトをコピーするには、ソースとターゲットの両方の場所で適切な権限が必要です:
シナリオ | 必要な権限 |
---|---|
Copy within same company | OWNER , ADMIN , or MEMBER role in the source project |
Copy to different company | • OWNER , ADMIN , or MEMBER role in the source project• Must be a member of the target company |
ソースプロジェクトは、コピーするためにアクティブ(アーカイブされていない)でなければなりません。
エラーレスポンス
プロジェクトが見つかりません
{
"errors": [{
"message": "Record not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
ソースプロジェクトが存在しないか、アクセス権がない場合に発生します。
会社が見つかりません
{
"errors": [{
"message": "Record not found",
"extensions": {
"code": "COMPANY_NOT_FOUND"
}
}]
}
ターゲット会社が存在しないか、アクセス権がない場合に発生します。
プロジェクトが大きすぎます
{
"errors": [{
"message": "Project is too large to copy",
"extensions": {
"code": "CREATE_PROJECT_LIMIT"
}
}]
}
プロジェクトに250,000以上のタスクがある場合に発生します。
コピーがすでに進行中
{
"errors": [{
"message": "Oops!"
}]
}
すでにコピー操作が進行中の場合に発生します。
重要な注意事項
- 非同期操作: ミューテーションはバックグラウンドジョブをキューに追加し、すぐに戻ります。進行状況を追跡するには
copyProjectStatus
を使用します。 - 一度に一つのコピー: ユーザーごとにアクティブなコピー操作は一つだけです。
- サイズ制限: 250,000以上のタスクを持つプロジェクトはコピーできません。
- 論理的依存関係: 一部のオプションは一緒に使用するのが最適です:
assignees
はpeople: true
と共に機能します(人がいないとアサインはコピーされません)discussionComments
はdiscussions: true
と共に機能しますstatusUpdateComments
はstatusUpdates: true
と共に機能しますprojectUserRoles
はpeople: true
と共に機能します
- 名前処理: プロジェクト名はトリムされ、URLは自動的に削除されます。
- キュー優先度: エンタープライズ顧客はコピーキューで優先度が高くなります。
- ステータスキャッシング: コピーのステータスは完了後6時間キャッシュされます。