Membuat proyek menggunakan Blue API.
Buat Proyek Baru
Untuk membuat proyek baru, Anda dapat menggunakan mutasi berikut:
mutation {
createProject(
input: {
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
description: "Project description"
color: "#3B82F6"
icon: "briefcase"
category: GENERAL
}
) {
id
name
slug
description
color
icon
category
}
}
Ingat untuk menyertakan header yang diperlukan dalam permintaan Anda:
- `X-Bloo-Token-ID`: ID token API Anda
- `X-Bloo-Token-Secret`: Rahasia token API Anda
- `X-Bloo-Company-ID`: ID perusahaan Anda
- `Content-Type: application/json`
Contoh Respons
Setelah berhasil, mutasi akan mengembalikan detail proyek yang baru dibuat:
{
"data": {
"createProject": {
"id": "newly-created-project-id",
"name": "YOUR PROJECT NEW NAME",
"slug": "your-project-new-name",
"description": "Project description",
"color": "#3B82F6",
"icon": "briefcase",
"category": "GENERAL"
}
}
}
Buat dari Template
Untuk membuat proyek dari template yang ada, Anda dapat menambahkan templateId
opsional ke mutasi.
mutation {
createProject(
input: {
templateId: "YOUR TEMPLATE ID OR SLUG"
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
}
) {
id
}
}
Contoh Lanjutan dengan Template
Berikut adalah contoh lengkap yang menunjukkan semua opsi yang tersedia saat membuat dari template:
mutation {
createProject(
input: {
templateId: "marketing-template"
name: "Q1 Marketing Campaign"
companyId: "acme-corp"
description: "Marketing initiatives for Q1 2024"
color: "#10B981"
icon: "megaphone"
category: MARKETING
coverConfig: {
enabled: true
fit: COVER
imageSelectionType: FIRST
source: DESCRIPTION
}
}
) {
id
name
slug
description
color
icon
category
}
}
Parameter `coverConfig` saat ini hanya berfungsi saat membuat proyek dari template. Untuk proyek yang dibuat dari awal, Anda perlu menggunakan mutasi `editProject` setelah pembuatan untuk mengonfigurasi gambar sampul todo.
Periksa Status Pembuatan
Untuk memeriksa status pembuatan proyek Anda dalam antrean, Anda dapat menggunakan kueri berikut:
query {
copyProjectStatus {
newProjectName
isTemplate
isActive
queuePosition
totalQueues
}
}
Kueri ini akan mengembalikan status pembuatan proyek Anda dalam antrean.
Parameter Input
CreateProjectInput
Parameter | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
name |
String | ✅ Ya | Nama proyek. URL akan dihapus dari nama. |
companyId |
String | ✅ Ya | ID atau slug perusahaan tempat proyek akan dibuat. |
description |
String | Tidak | Deskripsi proyek. |
color |
String | Tidak | Warna proyek dalam format hex (misalnya, "#3B82F6"). |
icon |
String | Tidak | Identifikasi ikon untuk proyek (misalnya, "briefcase", "rocket"). |
category |
ProjectCategory | Tidak | Kategori proyek. Secara default menjadi GENERAL jika tidak ditentukan. |
templateId |
String | Tidak | ID proyek yang ada untuk digunakan sebagai template. |
coverConfig |
TodoCoverConfigInput | Tidak | Konfigurasi untuk gambar sampul todo (saat ini hanya berfungsi dengan pembuatan berbasis template). |
Nilai ProjectCategory
Nilai | Deskripsi |
---|---|
CRM |
Proyek Manajemen Hubungan Pelanggan |
CROSS_FUNCTIONAL |
Proyek tim lintas fungsi |
CUSTOMER_SUCCESS |
Inisiatif keberhasilan pelanggan |
DESIGN |
Proyek desain dan kreatif |
ENGINEERING |
Proyek rekayasa dan pengembangan |
GENERAL |
Proyek umum (default) |
HR |
Proyek Sumber Daya Manusia |
IT |
Proyek Teknologi Informasi |
MARKETING |
Kampanye dan inisiatif pemasaran |
OPERATIONS |
Proyek operasi dan logistik |
PRODUCT |
Proyek manajemen produk |
SALES |
Proyek pengelolaan penjualan dan pengembangan bisnis |
TodoCoverConfigInput
Jika Anda ingin mengonfigurasi bagaimana gambar sampul todo bekerja dalam proyek Anda, Anda dapat memberikan parameter coverConfig
:
Parameter | Tipe | Diperlukan | Deskripsi |
---|---|---|---|
enabled |
Boolean | ✅ Ya | Apakah gambar sampul diaktifkan untuk todo |
fit |
ImageFit | ✅ Ya | Bagaimana gambar harus pas di area sampul |
imageSelectionType |
ImageSelectionType | ✅ Ya | Gambar mana yang harus dipilih dari opsi yang tersedia |
source |
ImageSource | ✅ Ya | Dari mana menarik gambar |
sourceId |
String | Tidak | Pengidentifikasi sumber spesifik (misalnya, ID bidang kustom) |
Nilai ImageFit: COVER
, CONTAIN
, FILL
, SCALE_DOWN
Nilai ImageSelectionType: FIRST
(gambar pertama), LAST
(gambar terakhir)
Nilai ImageSource: DESCRIPTION
(dari deskripsi todo), COMMENTS
(dari komentar), CUSTOM_FIELD
(dari bidang kustom)
Bidang Respons
Mutasi createProject mengembalikan objek Proyek dengan bidang yang tersedia sebagai berikut:
Bidang | Tipe | Deskripsi |
---|---|---|
id |
ID! | Pengidentifikasi unik untuk proyek |
name |
String! | Nama proyek |
slug |
String! | Pengidentifikasi proyek yang ramah URL |
description |
String | Deskripsi proyek |
color |
String | Warna proyek dalam format hex |
icon |
String | Identifikasi ikon |
category |
ProjectCategory | Nilai enum kategori proyek |
companyId |
String! | ID perusahaan |
createdAt |
DateTime! | Timestamp pembuatan |
updatedAt |
DateTime! | Timestamp pembaruan terakhir |
archived |
Boolean! | Apakah proyek diarsipkan |
isTemplate |
Boolean! | Apakah ini proyek template |
Catatan: Anda dapat meminta kombinasi bidang ini dalam respons Anda.
Catatan Penting
- Anda harus memiliki akses level
OWNER
,ADMIN
, atauMEMBER
ke perusahaan untuk membuat proyek - Saat membuat dari template, template tidak boleh memiliki lebih dari 250.000 todo
- Pengguna yang membuat secara otomatis ditugaskan sebagai
OWNER
proyek - Nama proyek secara otomatis dihapus dari spasi kosong
- Parameter
coverConfig
saat ini hanya berfungsi saat membuat dari template
Respons Kesalahan
Perusahaan Tidak Ditemukan
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Template Tidak Ditemukan
{
"errors": [{
"message": "Template not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Template Terlalu Besar
{
"errors": [{
"message": "Template cannot have more than 250000 todos",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Izin Ditolak
{
"errors": [{
"message": "You do not have permission to create projects in this company",
"extensions": {
"code": "FORBIDDEN"
}
}]
}