Skapa fält för landsval med validering av ISO landskoder
Anpassade fält för land gör att du kan lagra och hantera landinformation för poster. Fältet stöder både landsnamn och ISO Alpha-2 landskoder.
Viktigt: Validering och konverteringsbeteende för länder skiljer sig avsevärt mellan mutationer:
- createTodo: Validerar och konverterar automatiskt landsnamn till ISO-koder
- setTodoCustomField: Accepterar vilket värde som helst utan validering
Grundläggande exempel
Skapa ett enkelt landsfält:
mutation CreateCountryField {
createCustomField(input: {
name: "Country of Origin"
type: COUNTRY
projectId: "proj_123"
}) {
id
name
type
}
}
Avancerat exempel
Skapa ett landsfält med beskrivning:
mutation CreateDetailedCountryField {
createCustomField(input: {
name: "Customer Location"
type: COUNTRY
projectId: "proj_123"
description: "Primary country where the customer is located"
isActive: true
}) {
id
name
type
description
isActive
}
}
Inmatningsparametrar
CreateCustomFieldInput
| Parameter | Typ | Obligatorisk | Beskrivning |
|---|---|---|---|
name |
String! | ✅ Ja | Visningsnamn för landsfältet |
type |
CustomFieldType! | ✅ Ja | Måste vara COUNTRY |
description |
String | Nej | Hjälptext som visas för användare |
Notera: projectId skickas inte i inmatningen utan bestäms av GraphQL-kontexten (vanligtvis från begärningshuvuden eller autentisering).
Ställa in landsvärden
Landsfält lagrar data i två databasfält:
countryCodes: Lagrar ISO Alpha-2 landskoder som en kommaseparerad sträng i databasen (återges som array via API)text: Lagrar visningstext eller landsnamn som en sträng
Förstå parametrarna
Mutation setTodoCustomField accepterar två valfria parametrar för landsfält:
| Parameter | Typ | Obligatorisk | Beskrivning | Vad den gör |
|---|---|---|---|---|
todoId |
String! | ✅ Ja | ID för posten som ska uppdateras | - |
customFieldId |
String! | ✅ Ja | ID för det anpassade landsfältet | - |
countryCodes |
[String!] | Nej | Array av ISO Alpha-2 landskoder | Stored in the countryCodes field |
text |
String | Nej | Visningstext eller landsnamn | Stored in the text field |
Viktigt:
- I
setTodoCustomField: Båda parametrarna är valfria och lagras oberoende - I
createTodo: Systemet ställer automatiskt in båda fälten baserat på din inmatning (du kan inte styra dem oberoende)
Alternativ 1: Använda endast landskoder
Lagra validerade ISO-koder utan visningstext:
mutation SetCountryByCode {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "field_456"
countryCodes: ["US"]
})
}
Resultat: countryCodes = ["US"], text = null
Alternativ 2: Använda endast text
Lagra visningstext utan validerade koder:
mutation SetCountryByText {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "field_456"
text: "United States"
})
}
Resultat: countryCodes = null, text = "United States"
Notera: När du använder setTodoCustomField sker ingen validering oavsett vilken parameter du använder. Värdena lagras exakt som de anges.
Alternativ 3: Använda båda (Rekommenderas)
Lagra både validerade koder och visningstext:
mutation SetCountryComplete {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "field_456"
countryCodes: ["US"]
text: "United States"
})
}
Resultat: countryCodes = ["US"], text = "United States"
Flera länder
Lagra flera länder med hjälp av arrayer:
mutation SetMultipleCountries {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "field_456"
countryCodes: ["US", "CA", "MX"]
text: "North American Markets" # Can be any descriptive text
})
}
Skapa poster med landsvärden
När du skapar poster utför mutation createTodo automatiskt validering och konvertering av landsvärden. Detta är den enda mutation som utför validering av länder:
mutation CreateRecordWithCountry {
createTodo(input: {
title: "International Client"
todoListId: "list_123"
customFields: [{
customFieldId: "country_field_id"
value: "France" # Can use country name or code
}]
}) {
id
title
customFields {
id
customField {
name
type
}
text
countryCodes
}
}
}
Accepterade inmatningsformat
| Inmatningstyp | Exempel | Resultat |
|---|---|---|
| Country Name | "United States" |
Stored as US |
| ISO Alpha-2 Code | "GB" |
Stored as GB |
| Multiple (comma-separated) | "US, CA" |
Ej stöds - behandlas som ett ogiltigt värde |
| Mixed format | "United States, CA" |
Ej stöds - behandlas som ett ogiltigt värde |
Svarsfält
TodoCustomField-svar
| Fält | Typ | Beskrivning |
|---|---|---|
id |
String! | Unik identifierare för fältvärdet |
customField |
CustomField! | Den anpassade fältdefinitionen |
text |
String | Visningstext (landsnamn) |
countryCodes |
[String!] | Array av ISO Alpha-2 landskoder |
todo |
Todo! | Den post som detta värde tillhör |
createdAt |
DateTime! | När värdet skapades |
updatedAt |
DateTime! | När värdet senast modifierades |
Landsstandarder
Blue använder ISO 3166-1 Alpha-2-standarden för landskoder:
- Tvåbokstaviga landskoder (t.ex. US, GB, FR, DE)
- Validering med hjälp av
i18n-iso-countries-biblioteket sker endast i createTodo - Stöder alla officiellt erkända länder
Exempel på landskoder
| Land | ISO-kod |
|---|---|
| United States | US |
| United Kingdom | GB |
| Canada | CA |
| Germany | DE |
| France | FR |
| Japan | JP |
| Australia | AU |
| Brazil | BR |
För den kompletta officiella listan över ISO 3166-1 alpha-2 landskoder, besök ISO Online Browsing Platform.
Validering
Validering sker endast i createTodo-mutation:
- Giltig ISO-kod: Accepterar vilken giltig ISO Alpha-2-kod som helst
- Landsnamn: Konverterar automatiskt erkända landsnamn till koder
- Ogiltig inmatning: Kastade
CustomFieldValueParseErrorför oigenkända värden
Notera: setTodoCustomField-mutation utför INGEN validering och accepterar vilket strängvärde som helst.
Exempel på fel
{
"errors": [{
"message": "Invalid country value.",
"extensions": {
"code": "CUSTOM_FIELD_VALUE_PARSE_ERROR"
}
}]
}
Integrationsfunktioner
Uppslagsfält
Landsfält kan refereras av LOOKUP-anpassade fält, vilket gör att du kan hämta landsdata från relaterade poster.
Automatiseringar
Använd landsvärden i automatiseringsvillkor:
- Filtrera åtgärder efter specifika länder
- Skicka meddelanden baserat på land
- Rätta uppgifter baserat på geografiska regioner
Formulär
Landsfält i formulär validerar automatiskt användarinmatning och konverterar landsnamn till koder.
Obligatoriska behörigheter
| Åtgärd | Obligatorisk behörighet |
|---|---|
| Create country field | Project OWNER or ADMIN role |
| Update country field | Project OWNER or ADMIN role |
| Set country value | Standard record edit permissions |
| View country value | Standard record view permissions |
Felrespons
Ogiltigt landsvärde
{
"errors": [{
"message": "Invalid country value provided",
"extensions": {
"code": "CUSTOM_FIELD_VALUE_PARSE_ERROR"
}
}]
}
Typkonflikt för fält
{
"errors": [{
"message": "Field type mismatch: expected COUNTRY",
"extensions": {
"code": "INVALID_FIELD_TYPE"
}
}]
}
Bästa praxis
Inmatningshantering
- Använd
createTodoför automatisk validering och konvertering - Använd
setTodoCustomFieldmed försiktighet eftersom det kringgår validering - Överväg att validera inmatningar i din applikation innan du använder
setTodoCustomField - Visa fullständiga landsnamn i UI för tydlighet
Datakvalitet
- Validera landsinmatningar vid inmatningspunkten
- Använd konsekventa format över ditt system
- Överväg regionala grupperingar för rapportering
Flera länder
- Använd arraystöd i
setTodoCustomFieldför flera länder - Flera länder i
createTodostöds inte via värdefältet - Lagra landskoder som array i
setTodoCustomFieldför korrekt hantering
Vanliga användningsfall
-
Kundhantering
- Kundens huvudkontor
- Fraktdestinationer
- Skattejurisdiktioner
-
Projektspårning
- Projektplats
- Plats för teammedlemmar
- Marknadsmål
-
Efterlevnad och juridik
- Reglerande jurisdiktioner
- Krav på datalagring
- Exportkontroller
-
Försäljning och marknadsföring
- Territorietilldelningar
- Marknadssegmentering
- Kampanjinriktning
Begränsningar
- Stöder endast ISO 3166-1 Alpha-2-koder (2-bokstavskoder)
- Ingen inbyggd support för landsunderavdelningar (delstater/provinser)
- Inga automatiska landsflaggsikoner (endast textbaserade)
- Kan inte validera historiska landskoder
- Ingen inbyggd region- eller kontinentgruppering
- Validering fungerar endast i
createTodo, inte isetTodoCustomField - Flera länder stöds inte i
createTodovärdefält - Landskoder lagras som kommaseparerad sträng, inte som verklig array
Relaterade resurser
- Översikt över anpassade fält - Allmänna koncept för anpassade fält
- Uppslagsfält - Referera till landsdata från andra poster
- Formulär-API - Inkludera landsfält i anpassade formulär