Skapa interaktiva knappfält som utlöser automatiseringar när de klickas
Anpassade knappfält tillhandahåller interaktiva UI-element som utlöser automatiseringar när de klickas. Till skillnad från andra typer av anpassade fält som lagrar data, fungerar knappfält som åtgärdsutlösare för att utföra konfigurerade arbetsflöden.
Grundläggande exempel
Skapa ett enkelt knappfält som utlöser en automatisering:
mutation CreateButtonField {
createCustomField(input: {
name: "Send Invoice"
type: BUTTON
projectId: "proj_123"
}) {
id
name
type
}
}
Avancerat exempel
Skapa en knapp med bekräftelsekrav:
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
}
}
Indata parametrar
CreateCustomFieldInput
Parameter | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
name |
String! | ✅ Ja | Visningsnamn för knappen |
type |
CustomFieldType! | ✅ Ja | Måste vara BUTTON |
projectId |
String! | ✅ Ja | Projekt-ID där fältet kommer att skapas |
buttonType |
String | Nej | Bekräftelsebeteende (se knapp typer nedan) |
buttonConfirmText |
String | Nej | Text som användare måste skriva för hård bekräftelse |
description |
String | Nej | Hjälptext som visas för användare |
required |
Boolean | Nej | Om fältet är obligatoriskt (standard är falskt) |
isActive |
Boolean | Nej | Om fältet är aktivt (standard är sant) |
Knapptypfält
Fältet buttonType
är en fri textsträng som kan användas av UI-klienter för att bestämma bekräftelsebeteende. Vanliga värden inkluderar:
""
(tom) - Ingen bekräftelse"soft"
- Enkel bekräftelsedialog"hard"
- Kräver att bekräftelsetext skrivs
Obs: Dessa är endast UI-hänvisningar. API:et validerar eller tvingar inte specifika värden.
Utlösning av knappklick
För att utlösa ett knappklick och utföra associerade automatiseringar:
mutation ClickButton {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "field_456"
})
}
Klicka Indata parametrar
Parameter | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
todoId |
String! | ✅ Ja | ID för uppgiften som innehåller knappen |
customFieldId |
String! | ✅ Ja | ID för det anpassade knappfältet |
Viktigt: API-beteende
Alla knappklick genom API:et utförs omedelbart oavsett några buttonType
eller buttonConfirmText
inställningar. Dessa fält lagras för UI-klienter att implementera bekräftelsedialoger, men API:et självt:
- Validerar inte bekräftelsetext
- Tvingar inte några bekräftelsekrav
- Utför knappåtgärden omedelbart när den anropas
Bekräftelse är enbart en klientsidefunktion för UI-säkerhet.
Exempel: Klicka på olika knapptyper
# 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"
})
}
Alla tre mutationer ovan kommer att utföra knappåtgärden omedelbart när de anropas genom API:et, vilket kringgår eventuella bekräftelsekrav.
Svarsfält
Svar för anpassat fält
Fält | Typ | Beskrivning |
---|---|---|
id |
String! | Unik identifierare för det anpassade fältet |
name |
String! | Visningsnamn för knappen |
type |
CustomFieldType! | Alltid BUTTON för knappfält |
buttonType |
String | Inställning för bekräftelsebeteende |
buttonConfirmText |
String | Obligatorisk bekräftelsetext (om hård bekräftelse används) |
description |
String | Hjälptext för användare |
required |
Boolean! | Om fältet är obligatoriskt |
isActive |
Boolean! | Om fältet för närvarande är aktivt |
projectId |
String! | ID för projektet som detta fält tillhör |
createdAt |
DateTime! | När fältet skapades |
updatedAt |
DateTime! | När fältet senast ändrades |
Hur knappfält fungerar
Automatiseringsintegration
Knappfält är utformade för att fungera med Blues automatiseringssystem:
- Skapa knappfältet med mutation ovan
- Konfigurera automatiseringar som lyssnar efter
CUSTOM_FIELD_BUTTON_CLICKED
händelser - Användare klickar på knappen i UI
- Automatiseringar utför de konfigurerade åtgärderna
Händelseflöde
När en knapp klickas:
User Click → setTodoCustomField mutation → CUSTOM_FIELD_BUTTON_CLICKED event → Automation execution
Ingen datalagring
Viktigt: Knappfält lagrar inga värdedata. De fungerar enbart som åtgärdsutlösare. Varje klick:
- Genererar en händelse
- Utlöser associerade automatiseringar
- Registrerar en åtgärd i uppgiftshistoriken
- Modifierar inte något fältvärde
Obligatoriska behörigheter
Användare behöver lämpliga projektroller för att skapa och använda knappfält:
Åtgärd | Obligatorisk roll |
---|---|
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 |
Felmeddelanden
Behörighet nekad
{
"errors": [{
"message": "You don't have permission to edit this custom field",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Anpassat fält hittades inte
{
"errors": [{
"message": "Custom field not found",
"extensions": {
"code": "CUSTOM_FIELD_NOT_FOUND"
}
}]
}
Obs: API:et returnerar inte specifika fel för saknade automatiseringar eller bekräftelseavvikelser.
Bästa praxis
Namngivningskonventioner
- Använd åtgärdsorienterade namn: "Skicka faktura", "Skapa rapport", "Meddela teamet"
- Var specifik om vad knappen gör
- Undvik generiska namn som "Knapp 1" eller "Klicka här"
Bekräftelseinställningar
- Lämna
buttonType
tomt för säkra, reversibla åtgärder - Ställ in
buttonType
för att föreslå bekräftelsebeteende till UI-klienter - Använd
buttonConfirmText
för att specificera vad användare ska skriva i UI-bekräftelser - Kom ihåg: Dessa är endast UI-hänvisningar - API-anrop utförs alltid omedelbart
Automatiseringsdesign
- Håll knappåtgärder fokuserade på ett enda arbetsflöde
- Ge tydlig feedback om vad som hände efter klickning
- Överväg att lägga till beskrivningstext för att förklara knappens syfte
Vanliga användningsfall
-
Arbetsflödesövergångar
- "Markera som slutförd"
- "Skicka för godkännande"
- "Arkivera uppgift"
-
Externa integrationer
- "Synkronisera till CRM"
- "Generera faktura"
- "Skicka e-postuppdatering"
-
Batchoperationer
- "Uppdatera alla deluppgifter"
- "Kopiera till projekt"
- "Tillämpa mall"
-
Rapporteringsåtgärder
- "Generera rapport"
- "Exportera data"
- "Skapa sammanfattning"
Begränsningar
- Knappar kan inte lagra eller visa datavärden
- Varje knapp kan endast utlösa automatiseringar, inte direkta API-anrop (dock kan automatiseringar inkludera HTTP-begäran åtgärder för att anropa externa API:er eller Blues egna API:er)
- Knappens synlighet kan inte kontrolleras villkorsbundet
- Max en automatiseringsexekvering per klick (även om den automatiseringen kan utlösa flera åtgärder)
Relaterade resurser
- Automations API - Konfigurera åtgärder som utlöses av knappar
- Översikt över anpassade fält - Allmänna koncept för anpassade fält