Buat salinan lengkap dari proyek yang ada dengan opsi yang dapat dikonfigurasi untuk apa yang akan disertakan.


Salin Proyek

Mutasi salin proyek memungkinkan Anda untuk menduplikasi proyek yang ada dalam perusahaan yang sama atau ke perusahaan yang berbeda. Ini berguna untuk membuat template proyek, menyiapkan proyek serupa, atau memindahkan proyek antar perusahaan. Operasi salin berjalan secara asinkron untuk menangani proyek besar dengan efisien.

Contoh Dasar

mutation CopyProject {
  copyProject(
    input: {
      projectId: "proj_123abc"
      name: "New Project Copy"
      options: {
        todos: true
        todoLists: true
        people: true
      }
    }
  )
}

Contoh Lanjutan

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
      }
    }
  )
}

Parameter Masukan

CopyProjectInput

Parameter Tipe Diperlukan Deskripsi
projectId String! ✅ Ya ID proyek yang akan disalin
name String! ✅ Ya Nama untuk proyek baru (maks 50 karakter)
description String Tidak Deskripsi untuk proyek baru (maks 500 karakter)
imageURL String Tidak URL gambar untuk proyek baru
companyId String Tidak ID perusahaan tempat proyek baru harus dibuat. Jika tidak disediakan, menggunakan perusahaan proyek sumber
options CopyProjectOptionsInput! ✅ Ya Konfigurasi untuk elemen apa yang akan disalin

CopyProjectOptionsInput

Parameter Tipe Diperlukan Deskripsi
assignees Boolean Tidak Salin penugasan tugas (memerlukan people: true)
automations Boolean Tidak Salin otomatisasi dan alur kerja proyek
checklists Boolean Tidak Salin daftar periksa tugas
customFields Boolean Tidak Salin definisi dan nilai bidang kustom
discussions Boolean Tidak Salin diskusi proyek
discussionComments Boolean Tidak Salin komentar pada diskusi (memerlukan discussions: true)
dueDates Boolean Tidak Salin tanggal jatuh tempo pada tugas
files Boolean Tidak Salin lampiran file
forms Boolean Tidak Salin formulir proyek
people Boolean Tidak Salin anggota proyek
projectUserRoles Boolean Tidak Salin peran dan izin pengguna (memerlukan people: true)
statusUpdates Boolean Tidak Salin pembaruan status proyek
statusUpdateComments Boolean Tidak Salin komentar pada pembaruan status (memerlukan statusUpdates: true)
tags Boolean Tidak Salin tag proyek
todoActions Boolean Tidak Salin tindakan/subtugas tugas
todoComments Boolean Tidak Salin komentar tugas
todoLists Boolean Tidak Salin daftar/section tugas
todos Boolean Tidak Salin tugas
coverConfig Boolean Tidak Salin konfigurasi gambar sampul todo

Respons

Mutasi mengembalikan nilai Boolean:

  • true - Pekerjaan salin telah berhasil dijadwalkan
  • false - Pekerjaan salin tidak dapat dimulai

Memeriksa Status Salin

Karena penyalinan bersifat asinkron, gunakan kueri copyProjectStatus untuk memeriksa kemajuan:

Bidang Status Salin

Bidang Tipe Deskripsi
queuePosition Int Posisi dalam antrean salin
totalQueues Int Total jumlah item dalam antrean
isActive Boolean Apakah operasi salin saat ini aktif
oldProject Project Proyek sumber yang sedang disalin
newProjectName String Nama proyek baru yang sedang dibuat
isTemplate Boolean Apakah ini menyalin sebagai template
oldCompany Company Perusahaan sumber
newCompany Company Perusahaan target
query CheckCopyStatus {
  copyProjectStatus {
    queuePosition
    totalQueues
    isActive
    oldProject {
      id
      name
    }
    newProjectName
    isTemplate
    oldCompany {
      id
      name
    }
    newCompany {
      id
      name
    }
  }
}

Izin yang Diperlukan

Untuk menyalin proyek, Anda memerlukan izin yang sesuai di kedua lokasi sumber dan target:

Skenario Izin yang Diperlukan
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

Proyek sumber harus aktif (tidak diarsipkan) untuk dapat disalin.

Respons Kesalahan

Proyek Tidak Ditemukan

{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

Terjadi ketika proyek sumber tidak ada atau Anda tidak memiliki akses.

Perusahaan Tidak Ditemukan

{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "COMPANY_NOT_FOUND"
    }
  }]
}

Terjadi ketika perusahaan target tidak ada atau Anda tidak memiliki akses.

Proyek Terlalu Besar

{
  "errors": [{
    "message": "Project is too large to copy",
    "extensions": {
      "code": "CREATE_PROJECT_LIMIT"
    }
  }]
}

Terjadi ketika proyek memiliki lebih dari 250.000 tugas.

Salin Sudah Dalam Proses

{
  "errors": [{
    "message": "Oops!"
  }]
}

Terjadi ketika Anda sudah memiliki operasi salin yang sedang berlangsung.

Catatan Penting

  • Operasi Asinkron: Mutasi menjadwalkan pekerjaan latar belakang dan segera mengembalikan. Gunakan copyProjectStatus untuk melacak kemajuan.
  • Satu Salinan Sekaligus: Hanya satu operasi salin per pengguna yang dapat aktif pada satu waktu.
  • Batas Ukuran: Proyek dengan lebih dari 250.000 tugas tidak dapat disalin.
  • Ketergantungan Logis: Beberapa opsi bekerja paling baik bersama:
    • assignees bekerja dengan people: true (penugasan tidak akan disalin tanpa orang)
    • discussionComments bekerja dengan discussions: true
    • statusUpdateComments bekerja dengan statusUpdates: true
    • projectUserRoles bekerja dengan people: true
  • Pemrosesan Nama: Nama proyek dipangkas dan URL apa pun secara otomatis dihapus.
  • Prioritas Antrean: Pelanggan enterprise menerima prioritas lebih tinggi dalam antrean salin.
  • Caching Status: Status salin disimpan dalam cache selama 6 jam setelah penyelesaian.

Asisten AI

Respon dihasilkan menggunakan AI dan mungkin mengandung kesalahan.

Bagaimana saya bisa membantu Anda?

Tanyakan apa saja tentang Blue atau dokumentasi ini.

Masukkan untuk mengirim • Shift+Masukkan untuk baris baru • ⌘I untuk membuka