Tango Lookups Inbound API
Generated fromTango Lookups Inbound Integration Design Specification - API V0.8.docxin SharePoint folder01 Common Integrations. OAS spec:lookups-inbound.yaml
Overview
Async REST API for posting custom-lookup dropdown values into Tango. Used to populate specific Tango custom lookups (CLOV_*) so client-defined values are available in dropdowns across Projects / Properties modules.
Owner: Tango Analytics
Spec version: 0.8
Status: Draft (auto-generated — needs review)
Base URLs
Authentication
Headersx-client + x-api-key.
Endpoints
Supported lookups
Only the following custom lookups can be loaded through this integration:CLOV_COST_CENTERCLOV_INTERNAL_ORDERCLOV_PRODUCT_LISTCLOV_PROFIT_CENTER
Integration logic
- Upsert key:
(lookup_name, lookup_code). For multi-country clients,countryis added to the key. - Existing
(name, code)combination → updates the other fields. - New
(name, code)combination → inserts a new lookup value. status = ACTIVEmakes the value selectable in UI; any other status hides it.- Duplicate records in a single payload → the latest entry wins.
Data model (required ✅)
Validations
lookup_namenull →lookup_name is missing or emptylookup_namedoes not exist →lookup_name does not existlookup_codenull →lookup_code is missing or emptylookup_valuenull →lookup_value is missing or emptystatusnull →status is missing or emptycountrynull →country is missing or empty(multi-country clients only)countryinvalid →country <> is invalidsequencenot a number →Sequence <> is invalid(whole numbers only)
Open Questions / Assumptions
- Sample JSON has mixed case for
ext_attr*— one record usesext_attr1(lowercase), another usesExt_Attr1(PascalCase) within the same payload. Mapping table uses lowercase with internal space (ext _Attr1); preserved as lowercase no-space in the schema. Confirm wire format. - Sample JSON sends
sequenceas a string ("sequence": "10") but the mapping table types it as NUMBER. Schema uses number; consumers may need to coerce. - Error response includes
lookup_codeas a top-level field within each error entry (in addition torecord_key). This differs from other Tango APIs where errors only haverecord_index/record_key/error. - Missing comma in the sample JSON between
"ext_attr6": ""and"ext_attr7": ""is preserved in the source — that’s a doc typo, not a wire format requirement. - Lookup-name expansion — only 4
CLOV_*types are supported; if new ones are added, the integration logic section needs updating.

