Directory

Custom attributes

Camper builds org structure from the attributes your IdP sends. department and the standard SCIM fields arrive by default, but the interesting slices of an org are usually custom: office location, cost center, product line, a list of internal teams.

Getting one into Camper is always the same two steps, whatever the IdP:

  1. Declare the attribute on the app’s SCIM schema (external name + namespace).
  2. Map a directory value into it, then push.

Camper stores the entire SCIM payload it receives. Once an attribute is on the wire, it is available to axes — you do not declare it separately in Camper first.

What to type in Camper

When you create an axis, the attribute field is the key Camper looks for:

Where the attribute livesExampleType this in Camper
Base user schema (top level)"officeLocation": "London"officeLocation
Enterprise extensionenterprise User → costCentercostCenter (or the full enterprise URN path)
Vendor / custom namespace"urn:okta:custom:1.0:User": { "badgeOffice": "London" }badgeOffice (or urn:okta:custom:1.0:User:badgeOffice)
Sub-attribute of a complex fieldname.givenNamename.givenName

Values are matched case- and whitespace-insensitively, so IT Engineering and it engineering land on the same unit.

Prefer the base User schema or the enterprise extension when the IdP lets you choose — they are portable and show up cleanly in the axis wizard. Vendor namespaces (Okta custom, etc.) also work: Camper resolves the bare attribute name and the full namespace:attr form.

Multi-value attributes

A person can sit on many units of one axis. Camper accepts:

"teams": ["BB Yoda", "Chainmakers"]

or complex values with display / value. Set the axis to multi-membership.

Nested values in a single attribute

If one field carries a path — "department": "Corporate > TechOps" — set the axis delimiter. The default Department axis already splits on >.

Okta

Custom attributes must exist on the Camper app user profile, with external name and namespace, or Okta never sends them.

1. Declare the attribute

Directory → Profile Editor → Camper (SCIM) app profile → Add Attribute:

FieldWhat to enter
Data typestring, or string array for multi-membership
Display nameHuman label (e.g. Office location)
Variable nameOkta-side name used in mappings
External nameSCIM attribute name Camper receives — this is the axis key
External namespaceBase User, enterprise extension, or a vendor custom namespace (Camper accepts all three)
Attribute typePersonal (unless the value is truly per Okta group)

Leaving External name/namespace blank creates a local attribute that never leaves Okta — the most common miss.

2. Map a value

Provisioning → To App → Attribute Mappings: map the Okta user attribute (or an expression) onto the new app attribute; update on create and update.

3. Push

Force sync or change a test user. Then open Catalog → New axis and confirm the attribute appears with sample values.

Microsoft Entra ID

  1. Enterprise app → Provisioning → Attribute Mappings → Provision Microsoft Entra ID Users.
  2. Show advanced options → Edit attribute list for customappsso.
  3. Add a row whose Name is the SCIM attribute on the wire (officeLocation or a full enterprise path). Type String, or multi-valued for multi-membership.
  4. Add New Mapping from your source attribute to that target.

Use Provision on demand to test one user. Initial full cycles can take up to ~40 minutes.

Google Workspace

Google has no native SCIM client. Custom attributes reach Camper through whichever IdP or bridge fronts Google — see Google Workspace setup.

Map Directory API fields (including customSchemas.<schema>.<field> or orgUnitPath) to flat SCIM attributes or enterprise-extension attributes in the bridge.

Other IdPs

OneLogin, JumpCloud, Rippling, and any SCIM 2.0 tool: declare the outbound SCIM attribute name, map a value, push. Prefer the base schema or enterprise extension when the tool allows it; vendor namespaces are fine when that is all the IdP offers.

Verify it arrived

After at least one user has been pushed with a value:

  1. Open Catalog → New axis.
  2. Camper lists attributes it actually found — counts, distinct values, samples.

If your attribute is missing, it never reached Camper. Check external name/namespace, mapping applied, and that the test user has a value. Rejected pushes appear under Settings → Identity Providers.