Tworzenie projektów za pomocą API Blue.
Utwórz nowy projekt
Aby utworzyć nowy projekt, możesz użyć następującej mutacji:
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
}
}
Pamiętaj, aby dołączyć wymagane nagłówki w swoim żądaniu:
- `X-Bloo-Token-ID`: Twój identyfikator tokena API
- `X-Bloo-Token-Secret`: Twój sekret tokena API
- `X-Bloo-Company-ID`: Twój identyfikator firmy
- `Content-Type: application/json`
Przykład odpowiedzi
Po pomyślnym wykonaniu, mutacja zwróci szczegóły nowo utworzonego projektu:
{
"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"
}
}
}
Utwórz z szablonu
Aby utworzyć projekt z istniejącego szablonu, możesz dodać opcjonalny templateId
do mutacji.
mutation {
createProject(
input: {
templateId: "YOUR TEMPLATE ID OR SLUG"
name: "YOUR PROJECT NEW NAME"
companyId: "YOUR COMPANY ID OR SLUG"
}
) {
id
}
}
Zaawansowany przykład z szablonu
Oto kompletny przykład pokazujący wszystkie dostępne opcje podczas tworzenia z szablonu:
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
}
}
Parametr `coverConfig` obecnie działa tylko podczas tworzenia projektu z szablonu. Dla projektów tworzonych od podstaw, będziesz musiał użyć mutacji `editProject` po utworzeniu, aby skonfigurować obrazy okładek zadań.
Sprawdź status tworzenia
Aby sprawdzić status tworzenia swojego projektu w kolejce, możesz użyć następującego zapytania:
query {
copyProjectStatus {
newProjectName
isTemplate
isActive
queuePosition
totalQueues
}
}
To zapytanie zwróci status tworzenia twojego projektu w kolejce.
Parametry wejściowe
CreateProjectInput
Parametr | Typ | Wymagany | Opis |
---|---|---|---|
name |
String | ✅ Tak | Nazwa projektu. URL-e zostaną usunięte z nazwy. |
companyId |
String | ✅ Tak | Identyfikator lub slug firmy, w której projekt zostanie utworzony. |
description |
String | Nie | Opis projektu. |
color |
String | Nie | Kolor projektu w formacie hex (np. "#3B82F6"). |
icon |
String | Nie | Identyfikator ikony dla projektu (np. "teczka", "rakieta"). |
category |
ProjectCategory | Nie | Kategoria projektu. Domyślnie ustawiona na GENERAL , jeśli nie określono. |
templateId |
String | Nie | Identyfikator istniejącego projektu, który ma być użyty jako szablon. |
coverConfig |
TodoCoverConfigInput | Nie | Konfiguracja dla obrazów okładek zadań (obecnie działa tylko z tworzeniem na podstawie szablonu). |
Wartości ProjectCategory
Wartość | Opis |
---|---|
CRM |
Projekty zarządzania relacjami z klientami |
CROSS_FUNCTIONAL |
Projekty zespołów międzyfunkcyjnych |
CUSTOMER_SUCCESS |
Inicjatywy sukcesu klienta |
DESIGN |
Projekty projektowe i kreatywne |
ENGINEERING |
Projekty inżynieryjne i rozwojowe |
GENERAL |
Projekty ogólne (domyślnie) |
HR |
Projekty zasobów ludzkich |
IT |
Projekty technologii informacyjnej |
MARKETING |
Kampanie marketingowe i inicjatywy |
OPERATIONS |
Projekty operacyjne i logistyczne |
PRODUCT |
Projekty zarządzania produktem |
SALES |
Projekty sprzedaży i rozwoju biznesu |
TodoCoverConfigInput
Jeśli chcesz skonfigurować, jak działają obrazy okładek zadań w twoim projekcie, możesz podać parametr coverConfig
:
Parametr | Typ | Wymagany | Opis |
---|---|---|---|
enabled |
Boolean | ✅ Tak | Czy obrazy okładek są włączone dla zadań |
fit |
ImageFit | ✅ Tak | Jak obrazy powinny pasować do obszaru okładki |
imageSelectionType |
ImageSelectionType | ✅ Tak | Który obraz wybrać z dostępnych opcji |
source |
ImageSource | ✅ Tak | Skąd pobierać obrazy |
sourceId |
String | Nie | Identyfikator konkretnego źródła (np. identyfikator pola niestandardowego) |
Wartości ImageFit: COVER
, CONTAIN
, FILL
, SCALE_DOWN
Wartości ImageSelectionType: FIRST
(pierwszy obraz), LAST
(ostatni obraz)
Wartości ImageSource: DESCRIPTION
(z opisu zadania), COMMENTS
(z komentarzy), CUSTOM_FIELD
(z pola niestandardowego)
Pola odpowiedzi
Mutacja createProject zwraca obiekt projektu z następującymi dostępnymi polami:
Pole | Typ | Opis |
---|---|---|
id |
ID! | Unikalny identyfikator projektu |
name |
String! | Nazwa projektu |
slug |
String! | Identyfikator projektu przyjazny dla URL |
description |
String | Opis projektu |
color |
String | Kolor projektu w formacie hex |
icon |
String | Identyfikator ikony |
category |
ProjectCategory | Wartość enum kategorii projektu |
companyId |
String! | Identyfikator firmy |
createdAt |
DateTime! | Znacznik czasu utworzenia |
updatedAt |
DateTime! | Znacznik czasu ostatniej aktualizacji |
archived |
Boolean! | Czy projekt jest zarchiwizowany |
isTemplate |
Boolean! | Czy to jest projekt szablonowy |
Uwaga: Możesz zażądać dowolnej kombinacji tych pól w swojej odpowiedzi.
Ważne uwagi
- Musisz mieć dostęp na poziomie
OWNER
,ADMIN
lubMEMBER
do firmy, aby tworzyć projekty - Podczas tworzenia z szablonu, szablon nie może mieć więcej niż 250 000 zadań
- Użytkownik tworzący jest automatycznie przypisywany jako
OWNER
projektu - Nazwy projektów są automatycznie przycinane z białych znaków
- Parametr
coverConfig
obecnie działa tylko podczas tworzenia z szablonu
Odpowiedzi błędów
Firma nie znaleziona
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Szablon nie znaleziony
{
"errors": [{
"message": "Template not found",
"extensions": {
"code": "NOT_FOUND"
}
}]
}
Szablon za duży
{
"errors": [{
"message": "Template cannot have more than 250000 todos",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Odrzucone uprawnienia
{
"errors": [{
"message": "You do not have permission to create projects in this company",
"extensions": {
"code": "FORBIDDEN"
}
}]
}