Fügen Sie neue benutzerdefinierte Felder hinzu, um die Datenstruktur Ihres Projekts mit typenspezifischen Konfigurationen zu erweitern


Erstellen eines benutzerdefinierten Feldes

Benutzerdefinierte Felder ermöglichen es Ihnen, Blue an Ihre spezifischen Geschäftsbedürfnisse anzupassen, indem Sie strukturierte Datenfelder zu Ihren Datensätzen hinzufügen. Dieser Endpunkt erstellt ein neues benutzerdefiniertes Feld mit konfigurationsspezifischen Einstellungen für jeden Feldtyp.

Einfaches Beispiel

mutation CreateTextField {
  createCustomField(input: {
    name: "Customer Name"
    type: TEXT_SINGLE
    description: "Primary customer contact name"
  }) {
    id
    uid
    name
    type
    position
  }
}

Fortgeschrittenes Beispiel

mutation CreateAdvancedField {
  createCustomField(input: {
    name: "Project Budget"
    type: CURRENCY
    description: "Total allocated budget for this project"
    currency: "USD"
    min: 0
    max: 1000000
  }) {
    id
    uid
    name
    type
    currency
    min
    max
    position
    createdAt
  }
}

Eingabeparameter

CreateCustomFieldInput

Parameter Typ Erforderlich Beschreibung
name String! ✅ Ja Der Anzeigename des benutzerdefinierten Feldes
type CustomFieldType! ✅ Ja Der Feldtyp (siehe Typen unten)
description String Nein Optionale Beschreibung, die den Zweck des Feldes erklärt
min Float Nein Mindestwert für NUMBER-, RATING-, PERCENT-Felder
max Float Nein Höchstwert für NUMBER-, RATING-, PERCENT-Felder
currency String Nein ISO-Währungs-Code für CURRENCY-Felder
prefix String Nein Textpräfix für UNIQUE_ID-Felder
isDueDate Boolean Nein Ob das DATUM-Feld ein Fälligkeitsdatum darstellt
formula JSON Nein Formelkonfiguration für FORMEL-Felder
referenceProjectId String Nein Zielprojekt-ID für REFERENZ-Felder
referenceMultiple Boolean Nein Erlaubt mehrere Auswahlen in REFERENZ-Feldern
referenceFilter TodoFilterInput Nein Filteroptionen für REFERENZ-Felder
lookupOption CustomFieldLookupOptionInput Nein Konfiguration für LOOKUP-Felder
timeDurationDisplay CustomFieldTimeDurationDisplayType Nein Anzeigeformat für TIME_DURATION
timeDurationTargetTime Float Nein Zielzeit in Sekunden für TIME_DURATION
timeDurationStartInput CustomFieldTimeDurationInput Nein Startauslöser für TIME_DURATION
timeDurationEndInput CustomFieldTimeDurationInput Nein Endauslöser für TIME_DURATION
buttonType String Nein Schaltflächenaktionstyp für BUTTON-Felder
buttonConfirmText String Nein Bestätigungsaufforderung für BUTTON-Felder
useSequenceUniqueId Boolean Nein Verwenden Sie eine fortlaufende Nummerierung für UNIQUE_ID
sequenceDigits Int Nein Anzahl der Ziffern in der Sequenz (z. B. 5 → 00001)
sequenceStartingNumber Int Nein Startnummer für die Sequenz
currencyFieldId String Nein Referenzwährungsfeld für CURRENCY_CONVERSION
conversionDate String Nein Umrechnungsdatum für CURRENCY_CONVERSION
conversionDateType String Nein Art des Umrechnungsdatums für CURRENCY_CONVERSION
metadata JSON Nein Zusätzliche Metadaten für das benutzerdefinierte Feld

CustomFieldType-Werte

Wert Beschreibung Erforderliche Parameter
TEXT_SINGLE Eingabe für einzeiliges Textfeld Keine
TEXT_MULTI Mehrzeiliges Textfeld Keine
SELECT_SINGLE Dropdown mit einfacher Auswahl Create options separately
SELECT_MULTI Dropdown mit Mehrfachauswahl Create options separately
CHECKBOX Boolesches Kontrollkästchen Keine
RATING Sternebewertungsfeld Optional: max (default: 5)
PHONE Telefonnummer mit Validierung Keine
NUMBER Numerische Eingabe Optional: min, max
CURRENCY Währungsbetrag Optional: currency, min, max
PERCENT Prozentsatz (0-100) Optional: min, max
EMAIL E-Mail mit Validierung Keine
URL Web-URL mit Validierung Keine
UNIQUE_ID Automatisch generierte Kennung Optional: prefix, useSequenceUniqueId
LOCATION Geografische Koordinaten Keine
FILE Dateianhang Keine
DATE Datumswähler Optional: isDueDate
COUNTRY Länderauswahl Keine
FORMULA Berechnetes Feld Required: formula
REFERENCE Link zu anderen Datensätzen Required: referenceProjectId
LOOKUP Daten aus Referenzen abrufen Required: lookupOption
TIME_DURATION Zeiterfassung Required: duration inputs (see below)
BUTTON Aktionsschaltfläche Optional: buttonType, buttonConfirmText
CURRENCY_CONVERSION Währungsumrechner Special configuration

Beispiele zur Feldtypkonfiguration

Zahlenfeld mit Einschränkungen

mutation CreateQuantityField {
  createCustomField(input: {
    name: "Quantity"
    type: NUMBER
    description: "Number of items"
    min: 1
    max: 999
  }) {
    id
    name
    min
    max
  }
}

Währungsfeld

mutation CreateBudgetField {
  createCustomField(input: {
    name: "Budget"
    type: CURRENCY
    currency: "EUR"
    min: 0
  }) {
    id
    name
    currency
    min
  }
}

Datumsfeld mit Fälligkeitsflag

mutation CreateDeadlineField {
  createCustomField(input: {
    name: "Project Deadline"
    type: DATE
    isDueDate: true
    description: "When this project must be completed"
  }) {
    id
    name
    isDueDate
  }
}

Referenzfeld

mutation CreateRelatedTasksField {
  createCustomField(input: {
    name: "Dependencies"
    type: REFERENCE
    referenceProjectId: "proj_abc123"
    referenceMultiple: true
    referenceFilter: {
      statusIds: ["status_open", "status_inprogress"]
    }
  }) {
    id
    name
    referenceProjectId
    referenceMultiple
  }
}

Lookup-Feld

mutation CreateLookupField {
  createCustomField(input: {
    name: "Customer Email"
    type: LOOKUP
    lookupOption: {
      referenceId: "field_customer_ref"
      lookupId: "field_email"
      lookupType: TODO_CUSTOM_FIELD
    }
  }) {
    id
    name
    customFieldLookupOption {
      referenceId
      lookupId
      lookupType
    }
  }
}

Eindeutige ID mit Sequenz

mutation CreateOrderNumberField {
  createCustomField(input: {
    name: "Order Number"
    type: UNIQUE_ID
    prefix: "ORD-"
    useSequenceUniqueId: true
    sequenceDigits: 6
    sequenceStartingNumber: 1000
  }) {
    id
    name
    prefix
  }
}

Zeitdauerfeld

mutation CreateTimeTrackingField {
  createCustomField(input: {
    name: "Time to Resolution"
    type: TIME_DURATION
    timeDurationDisplay: FULL_DATE_STRING
    timeDurationStartInput: {
      type: TODO_CREATED_AT
      condition: FIRST
    }
    timeDurationEndInput: {
      type: TODO_MARKED_AS_COMPLETE
      condition: FIRST
    }
  }) {
    id
    name
  }
}

Gültige Zeitdauer-Typen

  • TODO_CREATED_AT - Wann der Datensatz erstellt wurde
  • TODO_CUSTOM_FIELD - Wann sich ein benutzerdefiniertes Feld ändert
  • TODO_DUE_DATE - Wann das Fälligkeitsdatum festgelegt/geändert wird
  • TODO_MARKED_AS_COMPLETE - Wann der Datensatz als abgeschlossen markiert wird
  • TODO_MOVED - Wann der Datensatz in eine andere Liste verschoben wird
  • TODO_TAG_ADDED - Wann ein Tag hinzugefügt wird
  • TODO_ASSIGNEE_ADDED - Wann ein Zuweiser hinzugefügt wird

Erstellen von Auswahloptionen

Nach dem Erstellen eines SELECT_SINGLE- oder SELECT_MULTI-Feldes fügen Sie Optionen hinzu:

mutation CreateSelectOptions {
  createCustomFieldOptions(input: {
    customFieldId: "field_xyz789"
    customFieldOptions: [
      { title: "High", color: "#FF0000", position: 1 }
      { title: "Medium", color: "#FFA500", position: 2 }
      { title: "Low", color: "#00FF00", position: 3 }
    ]
  }) {
    id
    title
    color
    position
  }
}

Antwortfelder

CustomField

Feld Typ Beschreibung
id String! Eindeutige Kennung
uid String! Benutzerfreundliche eindeutige ID
name String! Anzeigename
type CustomFieldType! Feldtyp
description String Feldbeschreibung
position Float! Anzeigeordnungsposition
createdAt DateTime! Erstellungszeitstempel
updatedAt DateTime! Letzter Aktualisierungszeitstempel
min Float Mindestwert (falls zutreffend)
max Float Höchstwert (falls zutreffend)
currency String Währungs-Code (CURRENCY-Typ)
prefix String ID-Präfix (UNIQUE_ID-Typ)
isDueDate Boolean Fälligkeitsflag (DATE-Typ)
formula JSON Formelkonfiguration (FORMULA-Typ)
referenceProjectId String Referenziertes Projekt (REFERENCE-Typ)
customFieldLookupOption CustomFieldLookupOption Lookup-Konfiguration (LOOKUP-Typ)

Erforderliche Berechtigungen

Das Erstellen benutzerdefinierter Felder erfordert Projektzugriff:

Rolle Kann benutzerdefinierte Felder erstellen
OWNER ✅ Ja
ADMIN ✅ Ja
MEMBER ✅ Ja
CLIENT ❌ Nein

Hinweis: Benutzerdefinierte Rollen können zusätzliche Einschränkungen bei der Feldverwaltung haben.

Fehlermeldungen

Ungültiger Feldtyp

{
  "errors": [{
    "message": "Variable \"$input\" got invalid value \"INVALID\" at \"input.type\"; Value \"INVALID\" does not exist in \"CustomFieldType\" enum.",
    "extensions": {
      "code": "GRAPHQL_VALIDATION_FAILED"
    }
  }]
}

Referenzprojekt nicht gefunden

{
  "errors": [{
    "message": "Reference project not found or access denied",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

Fehlende erforderliche Konfiguration

{
  "errors": [{
    "message": "REFERENCE fields require referenceProjectId",
    "extensions": {
      "code": "VALIDATION_ERROR"
    }
  }]
}

Wichtige Hinweise

  • Feldposition: Automatisch berechnet, um am Ende der vorhandenen Felder angezeigt zu werden
  • Feldgrenzen: Projekte können Grenzen für die Anzahl der benutzerdefinierten Felder haben
  • Sofortige Verfügbarkeit: Erstellte Felder sind sofort verfügbar
  • Nebenwirkungen: Das Erstellen eines Feldes löst aus:
    • Eintrag im Aktivitätsprotokoll
    • Echtzeit-Updates für verbundene Benutzer
    • Webhook-Benachrichtigungen
    • Hintergrundjobs für FORMULA-, LOOKUP- und UNIQUE_ID-Felder
  • Besondere Überlegungen:
    • REFERENZ-Felder erfordern Zugriff auf das Zielprojekt
    • LOOKUP-Felder hängen von vorhandenen REFERENZ-Feldern ab
    • FORMULA-Felder können sich nicht selbst referenzieren
    • UNIQUE_ID-Sequenzen werden asynchron verarbeitet
    • SELECT-Felder benötigen separat erstellte Optionen
  • Benennung: Feldnamen sollten klar und beschreibend sein, wie sie in der Benutzeroberfläche erscheinen

Verwandte Endpunkte

KI-Assistent

Antworten werden mit KI generiert und können Fehler enthalten.

Wie kann ich Ihnen helfen?

Fragen Sie mich alles über Blue oder diese Dokumentation.

Eingabe zum Senden • Shift+Eingabe für neue Zeile • ⌘I zum Öffnen