Tango User Provisioning (non-BU) — File
Generated fromTango User Provisioning Integration Design Specification_non BU V1.4.docxin SharePoint folder01 Common Integrations. OAS spec:user-provisioning-nonbu-file.yaml
Overview
SFTP file-based inbound for clients without a Business Unit layer. Client drops a JSON file (note: not pipe-delimited like other Tango file integrations) on Tango’s SFTP server; Tango processes the file and creates / updates / inactivates user accounts. Owner: Tango Analytics Spec version: 1.4 Status: Draft (auto-generated — needs review)Transport
Integration logic
Same as the API variants:- New user → create.
- Existing user → update.
status = Nonly → inactivate (other fields ignored).- GENERAL_USER → only
first_name,last_name,email,user_type,statushonored; SSO always enabled. Country = ALL→ access to all countries in the Brand/Region.- Inactive users cannot be created from scratch.
user-provisioning-nonbu-api.md and user-provisioning-bu-api.md for the detailed integration logic — this file integration shares all semantics with the API variants, only the transport differs.
Data model
Same shape as the non-BU API spec:- Root:
{ "records": [ <UserRecord>, ... ] } UserRecord: user_name, first_name, last_name, email, user_type, sso, status, title, location, default_country, default_brand, data_access_level, brands[]BrandAssignment(no business_unit): brand_name, country, region, roles, entity_security[]
Open Questions / Assumptions
- File format is JSON, not pipe-delimited — this is the only Tango file-based integration in the suite that uses JSON. Confirm the wrapping (single object with
records[]per the sample) and whether the file may contain multiplerecords[]blocks or just one. - SFTP credentials are
<TBD>. - Timing/frequency is
<TBD>. -
default_business_unitfield appears in the source’s Integration Logic (“User access to brands, business units, countries, and regions will be assigned based on the client’s environment setup”) even though this is the non-BU spec. Likely copy-paste from the BU variant — confirmdefault_buis genuinely absent here.

