Proyek di Blue membentuk kerangka dasar untuk mengorganisir pengguna dan data.
Daftar Semua Proyek
Kueri projectList
memungkinkan Anda untuk mengambil proyek dengan opsi penyaringan, pengurutan, dan paginasi yang kuat.
Contoh Dasar
query ProjectListQuery {
projectList(filter: { companyIds: ["ENTER COMPANY ID"] }) {
items {
id
uid
slug
name
description
archived
color
icon
createdAt
updatedAt
allowNotification
position
unseenActivityCount
todoListsMaxPosition
lastAccessedAt
isTemplate
automationsCount
totalFileCount
totalFileSize
todoAlias
}
pageInfo {
totalPages
totalItems
page
perPage
hasNextPage
hasPreviousPage
}
}
}
Contoh Lanjutan dengan Penyaringan dan Pengurutan
query FilteredProjectList {
projectList(
filter: {
companyIds: ["company-123", "company-456"]
archived: false
isTemplate: false
search: "marketing"
inProject: true
folderId: null # Get root-level projects only
}
sort: [position_ASC, name_ASC]
skip: 0
take: 50
) {
items {
id
name
slug
position
archived
}
totalCount
pageInfo {
totalItems
hasNextPage
}
}
}
Bidang Proyek
Tabel berikut menjelaskan semua bidang yang tersedia untuk setiap proyek dalam ProjectListQuery
:
Field | Type | Description |
---|---|---|
id | ID! | Pengidentifikasi unik untuk proyek |
uid | String! | Pengidentifikasi unik yang ramah pengguna untuk proyek |
slug | String! | Nama proyek yang ramah URL |
name | String! | Nama tampilan proyek |
description | String | Deskripsi singkat tentang proyek |
archived | Boolean | Boolean yang menunjukkan apakah proyek diarsipkan |
color | String | Warna yang terkait dengan proyek untuk identifikasi visual |
icon | String | Ikon yang terkait dengan proyek untuk identifikasi visual |
image | Image | Objek gambar sampul proyek |
createdAt | DateTime! | Stempel waktu saat proyek dibuat |
updatedAt | DateTime! | Stempel waktu saat proyek terakhir diperbarui |
allowNotification | Boolean! | Boolean yang menunjukkan apakah notifikasi diaktifkan untuk proyek |
position | Float! | Nilai numerik yang mewakili posisi proyek dalam daftar |
unseenActivityCount | Int! | Jumlah aktivitas yang belum terlihat dalam proyek |
todoListsMaxPosition | Float! | Nilai posisi maksimum untuk daftar tugas dalam proyek |
lastAccessedAt | DateTime | Stempel waktu saat proyek terakhir diakses |
isTemplate | Boolean! | Boolean yang menunjukkan apakah proyek adalah template |
isOfficialTemplate | Boolean! | Boolean yang menunjukkan apakah ini adalah template resmi Blue |
automationsCount(isActive: Boolean) | Int! | Jumlah otomatisasi yang terkait dengan proyek |
totalFileCount | Int | Total jumlah file dalam proyek |
totalFileSize | Float | Total ukuran semua file dalam proyek (dalam byte) |
todoAlias | String | Alias kustom untuk "todo" yang digunakan dalam proyek |
category | ProjectCategory! | Kategori proyek (CRM, PEMASARAN, dll.) |
hideEmailFromRoles | [UserAccessLevel!] | Array peran yang harus menyembunyikan alamat email |
hideStatusUpdate | Boolean | Boolean untuk menyembunyikan pembaruan status |
company | Company! | Detail lengkap objek perusahaan |
accessLevel(userId: String) | UserAccessLevel | Dapatkan tingkat akses pengguna untuk proyek tertentu |
folder | Folder | Folder yang berisi proyek ini |
features | [ProjectFeature!] | Array fitur proyek yang diaktifkan |
sequenceCustomField | CustomField | Bidang kustom yang digunakan untuk penomoran urut |
coverConfig | TodoCoverConfig | Konfigurasi untuk gambar sampul tugas |
hideRecordCount | Boolean | Apakah menyembunyikan jumlah catatan |
showTimeSpentInTodoList | Boolean | Apakah menunjukkan waktu yang dihabiskan dalam daftar tugas |
showTimeSpentInProject | Boolean | Apakah menunjukkan waktu yang dihabiskan dalam proyek |
todoFields | [TodoField] | Definisi bidang tugas kustom |
Catatan: Anda dapat meminta kombinasi bidang ini dalam kueri GraphQL Anda.
Bidang Paginasi
Objek pageInfo
menyediakan detail paginasi untuk hasil kueri:
Field | Type | Description |
---|---|---|
totalPages | Int | Total jumlah halaman hasil |
totalItems | Int | Total jumlah proyek yang cocok dengan kueri |
page | Int | Nomor halaman saat ini |
perPage | Int | Jumlah item per halaman |
hasNextPage | Boolean! | Boolean yang menunjukkan apakah ada halaman hasil berikutnya |
hasPreviousPage | Boolean! | Boolean yang menunjukkan apakah ada halaman hasil sebelumnya |
Parameter Kueri
Opsi Penyaringan (ProjectListFilter)
Parameter | Type | Required | Description |
---|---|---|---|
companyIds |
[String!]! | ✅ Ya | Array ID perusahaan atau slug untuk dicari |
ids |
[String!] | Tidak | Filter berdasarkan ID proyek tertentu |
archived |
Boolean | Tidak | Filter berdasarkan status diarsipkan (true/false) |
isTemplate |
Boolean | Tidak | Filter proyek template (true/false) |
search |
String | Tidak | Cari proyek berdasarkan nama (tidak sensitif huruf besar/kecil) |
folderId |
String | Tidak | Filter berdasarkan ID folder. Gunakan null untuk proyek tingkat akar |
inProject |
Boolean | Tidak | Filter berdasarkan keanggotaan pengguna. Lihat catatan di bawah |
Catatan tentang filter inProject
:
true
atauundefined
: Mengembalikan proyek yang menjadi anggota penggunafalse
: Mengembalikan proyek yang TIDAK ada dalam keanggotaan pengguna (memerlukan izin pemilik perusahaan)- Penyaringan folder (
folderId
) hanya berfungsi ketikainProject
tidakfalse
Opsi Pengurutan (ProjectSort)
Value | Description |
---|---|
id_ASC |
Urutkan berdasarkan ID naik |
id_DESC |
Urutkan berdasarkan ID turun |
name_ASC |
Urutkan berdasarkan nama naik (A-Z) |
name_DESC |
Urutkan berdasarkan nama turun (Z-A) |
createdAt_ASC |
Urutkan berdasarkan tanggal pembuatan (terlama terlebih dahulu) |
createdAt_DESC |
Urutkan berdasarkan tanggal pembuatan (terbaru terlebih dahulu) |
updatedAt_ASC |
Urutkan berdasarkan pembaruan terakhir (terlama terlebih dahulu) |
updatedAt_DESC |
Urutkan berdasarkan pembaruan terakhir (terbaru terlebih dahulu) |
position_ASC |
Urutkan berdasarkan posisi naik* |
position_DESC |
Urutkan berdasarkan posisi turun* |
*Pengurutan posisi hanya tersedia saat melihat proyek yang menjadi anggota pengguna (inProject !== false
)
Parameter Paginasi
Parameter | Type | Default | Description |
---|---|---|---|
skip |
Int | 0 | Jumlah catatan yang akan dilewati |
take |
Int | 20 | Jumlah catatan yang akan dikembalikan |
Catatan Penting
-
Perilaku default untuk proyek non-anggota (
inProject: false
):- Mengecualikan proyek yang diarsipkan kecuali filter
archived
secara eksplisit diatur - Mengecualikan proyek template kecuali filter
isTemplate
secara eksplisit diatur
- Mengecualikan proyek yang diarsipkan kecuali filter
-
Batasan penyaringan folder:
- Hanya berfungsi saat menunjukkan proyek pengguna
- Tidak dapat digunakan dengan
inProject: false
- Gunakan
folderId: null
untuk mendapatkan proyek yang tidak ada dalam folder mana pun
-
Fallback pengurutan:
- Pengurutan posisi diabaikan saat melihat proyek non-anggota
- Kembali ke pengurutan nama dalam kasus tersebut
-
Parameter yang sudah tidak digunakan:
orderBy
,after
,before
,first
,last
sudah tidak digunakan- Gunakan
sort
,skip
, dantake
sebagai gantinya