Twórz interaktywne pola przycisków, które uruchamiają automatyzacje po kliknięciu
Pola niestandardowe przycisku zapewniają interaktywne elementy UI, które uruchamiają automatyzacje po kliknięciu. W przeciwieństwie do innych typów pól niestandardowych, które przechowują dane, pola przycisków służą jako wyzwalacze akcji do wykonania skonfigurowanych przepływów pracy.
Podstawowy przykład
Utwórz proste pole przycisku, które uruchamia automatyzację:
mutation CreateButtonField {
createCustomField(input: {
name: "Send Invoice"
type: BUTTON
projectId: "proj_123"
}) {
id
name
type
}
}
Zaawansowany przykład
Utwórz przycisk z wymaganiami potwierdzenia:
mutation CreateButtonWithConfirmation {
createCustomField(input: {
name: "Delete All Attachments"
type: BUTTON
projectId: "proj_123"
buttonType: "hardConfirmation"
buttonConfirmText: "DELETE"
description: "Permanently removes all attachments from this task"
}) {
id
name
type
buttonType
buttonConfirmText
description
}
}
Parametry wejściowe
CreateCustomFieldInput
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
name |
String! | ✅ Tak | Nazwa wyświetlana przycisku |
type |
CustomFieldType! | ✅ Tak | Musi być BUTTON |
projectId |
String! | ✅ Tak | ID projektu, w którym pole zostanie utworzone |
buttonType |
String | Nie | Zachowanie potwierdzenia (zobacz Typy przycisków poniżej) |
buttonConfirmText |
String | Nie | Tekst, który użytkownicy muszą wpisać w celu twardego potwierdzenia |
description |
String | Nie | Tekst pomocy wyświetlany użytkownikom |
required |
Boolean | Nie | Czy pole jest wymagane (domyślnie fałsz) |
isActive |
Boolean | Nie | Czy pole jest aktywne (domyślnie prawda) |
Typ pola przycisku
Pole buttonType jest ciągiem w formie wolnej, który może być używany przez klientów UI do określenia zachowania potwierdzenia. Powszechne wartości to:
""(puste) - Brak potwierdzenia"soft"- Prosty dialog potwierdzenia"hard"- Wymaga wpisania tekstu potwierdzenia
Uwaga: To są tylko wskazówki UI. API nie weryfikuje ani nie egzekwuje konkretnych wartości.
Uruchamianie kliknięć przycisku
Aby uruchomić kliknięcie przycisku i wykonać związane automatyzacje:
mutation ClickButton {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "field_456"
})
}
Parametry wejściowe kliknięcia
| Parametr | Typ | Wymagane | Opis |
|---|---|---|---|
todoId |
String! | ✅ Tak | ID zadania zawierającego przycisk |
customFieldId |
String! | ✅ Tak | ID pola niestandardowego przycisku |
Ważne: Zachowanie API
Wszystkie kliknięcia przycisków przez API wykonują się natychmiast niezależnie od jakichkolwiek ustawień buttonType lub buttonConfirmText. Te pola są przechowywane dla klientów UI, aby wdrożyć dialogi potwierdzenia, ale samo API:
- Nie weryfikuje tekstu potwierdzenia
- Nie egzekwuje żadnych wymagań dotyczących potwierdzenia
- Wykonuje akcję przycisku natychmiast po wywołaniu
Potwierdzenie jest czysto funkcją bezpieczeństwa po stronie klienta UI.
Przykład: Klikanie różnych typów przycisków
# Button with no confirmation
mutation ClickSimpleButton {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "simple_button_id"
})
}
# Button with soft confirmation (API call is the same!)
mutation ClickSoftConfirmButton {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "soft_confirm_button_id"
})
}
# Button with hard confirmation (API call is still the same!)
mutation ClickHardConfirmButton {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "hard_confirm_button_id"
})
}
Wszystkie trzy mutacje powyżej wykonają akcję przycisku natychmiast po wywołaniu przez API, omijając jakiekolwiek wymagania dotyczące potwierdzenia.
Pola odpowiedzi
Odpowiedź pola niestandardowego
| Pole | Typ | Opis |
|---|---|---|
id |
String! | Unikalny identyfikator dla pola niestandardowego |
name |
String! | Nazwa wyświetlana przycisku |
type |
CustomFieldType! | Zawsze BUTTON dla pól przycisków |
buttonType |
String | Ustawienie zachowania potwierdzenia |
buttonConfirmText |
String | Wymagany tekst potwierdzenia (jeśli używasz twardego potwierdzenia) |
description |
String | Tekst pomocy dla użytkowników |
required |
Boolean! | Czy pole jest wymagane |
isActive |
Boolean! | Czy pole jest obecnie aktywne |
projectId |
String! | ID projektu, do którego należy to pole |
createdAt |
DateTime! | Kiedy pole zostało utworzone |
updatedAt |
DateTime! | Kiedy pole zostało ostatnio zmodyfikowane |
Jak działają pola przycisków
Integracja z automatyzacją
Pola przycisków są zaprojektowane do współpracy z systemem automatyzacji Blue:
- Utwórz pole przycisku za pomocą powyższej mutacji
- Skonfiguruj automatyzacje, które nasłuchują na zdarzenia
CUSTOM_FIELD_BUTTON_CLICKED - Użytkownicy klikają przycisk w UI
- Automatyzacje wykonują skonfigurowane akcje
Przepływ zdarzeń
Gdy przycisk zostanie kliknięty:
User Click → setTodoCustomField mutation → CUSTOM_FIELD_BUTTON_CLICKED event → Automation execution
Brak przechowywania danych
Ważne: Pola przycisków nie przechowują żadnych wartości danych. Służą wyłącznie jako wyzwalacze akcji. Każde kliknięcie:
- Generuje zdarzenie
- Uruchamia związane automatyzacje
- Rejestruje akcję w historii zadania
- Nie modyfikuje żadnej wartości pola
Wymagane uprawnienia
Użytkownicy potrzebują odpowiednich ról projektowych, aby tworzyć i używać pól przycisków:
| Akcja | Wymagana rola |
|---|---|
| Create button field | OWNER or ADMIN at project level |
| Update button field | OWNER or ADMIN at project level |
| Click button | OWNER, ADMIN, MEMBER, or CLIENT (based on field permissions) |
| Configure automations | OWNER or ADMIN at project level |
Odpowiedzi błędów
Odrzucone uprawnienia
{
"errors": [{
"message": "You don't have permission to edit this custom field",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Pole niestandardowe nie znalezione
{
"errors": [{
"message": "Custom field not found",
"extensions": {
"code": "CUSTOM_FIELD_NOT_FOUND"
}
}]
}
Uwaga: API nie zwraca konkretnych błędów dla brakujących automatyzacji lub niezgodności potwierdzenia.
Najlepsze praktyki
Konwencje nazewnictwa
- Używaj nazw zorientowanych na akcje: "Wyślij fakturę", "Utwórz raport", "Powiadom zespół"
- Bądź konkretny co do tego, co robi przycisk
- Unikaj ogólnych nazw, takich jak "Przycisk 1" lub "Kliknij tutaj"
Ustawienia potwierdzenia
- Pozostaw
buttonTypepuste dla bezpiecznych, odwracalnych działań - Ustaw
buttonType, aby zasugerować zachowanie potwierdzenia klientom UI - Użyj
buttonConfirmText, aby określić, co użytkownicy powinni wpisać w potwierdzeniach UI - Pamiętaj: To są tylko wskazówki UI - wywołania API zawsze wykonują się natychmiast
Projektowanie automatyzacji
- Skup się na pojedynczym przepływie pracy w akcjach przycisków
- Zapewnij jasną informację zwrotną na temat tego, co się wydarzyło po kliknięciu
- Rozważ dodanie tekstu opisu, aby wyjaśnić cel przycisku
Typowe przypadki użycia
-
Przejścia w przepływie pracy
- "Oznacz jako zakończone"
- "Wyślij do zatwierdzenia"
- "Archiwizuj zadanie"
-
Integracje zewnętrzne
- "Synchronizuj z CRM"
- "Generuj fakturę"
- "Wyślij aktualizację e-mail"
-
Operacje wsadowe
- "Aktualizuj wszystkie podzadania"
- "Kopiuj do projektów"
- "Zastosuj szablon"
-
Akcje raportowe
- "Generuj raport"
- "Eksportuj dane"
- "Utwórz podsumowanie"
Ograniczenia
- Przycisk nie może przechowywać ani wyświetlać wartości danych
- Każdy przycisk może tylko uruchamiać automatyzacje, a nie bezpośrednie wywołania API (jednak automatyzacje mogą zawierać akcje żądań HTTP do wywoływania zewnętrznych API lub własnych API Blue)
- Widoczność przycisku nie może być kontrolowana warunkowo
- Maksymalnie jedno wykonanie automatyzacji na kliknięcie (choć ta automatyzacja może uruchomić wiele akcji)
Powiązane zasoby
- API automatyzacji - Konfiguruj akcje uruchamiane przez przyciski
- Przegląd pól niestandardowych - Ogólne koncepcje pól niestandardowych