Mapping Thinkific Custom Fields from SSO Provider

By default, WooNinja SSO sends each learner's email address, first name, and last name to Thinkific when they sign in. You can also send other information your identity provider (IdP) knows about the learner, such as country, job title, department, office location, or employee ID. Each value goes into a Thinkific custom profile field.

This works with every connection type we support: SAML and OIDC/OAuth (Microsoft Entra ID / Azure AD, Okta, Auth0, OneLogin, Salesforce, and generic OIDC/OAuth2).

How it works

  1. A learner signs in through your SSO connection as usual.
  2. Your identity provider sends WooNinja SSO a set of attributes (also called claims) about the learner.
  3. For each custom profile field you have mapped, WooNinja SSO looks up the matching attribute and copies its value to the learner's Thinkific profile.

Things to know:

  • Timing: custom fields are updated about one minute after sign-in, in the background. The learner is not slowed down. If you check the profile in Thinkific immediately after a test login, wait a minute and refresh.
  • Kept in sync: the fields are updated on every sign-in. If someone's job title changes in your directory, Thinkific picks up the new value the next time they sign in.
  • Your IdP is the source of truth: a mapped field is overwritten with the IdP's value on each sign-in. This includes any edit the learner or an admin made in Thinkific.
  • Blank values don't erase data: if the IdP sends an empty value or leaves the attribute out, the existing Thinkific value stays as it is.
  • Unmapped fields are left alone: WooNinja SSO only changes the fields you ask us to map. Any other custom profile fields in Thinkific stay as they are.
  • Multi-value attributes: if an attribute contains several values (for example, a list of groups), only the first value is used.

Setting it up

Step 1: Create the fields in Thinkific

In your Thinkific admin, create a custom profile field (custom sign-up field) for each piece of data you want to capture, for example Country and Job Title.

Tip: Use text fields where you can. The IdP sends a plain value such as Germany or Senior Engineer. With a dropdown or checkbox field, that value must exactly match one of the field's options.

Step 2: Make sure your identity provider sends the attributes

Your IdP must include the extra data in what it sends at sign-in. How to do this depends on your connection type.

SAML (e.g. Microsoft Entra ID enterprise application, Okta SAML, OneLogin)

Add the extra attributes/claims to your SAML application. For example, in Microsoft Entra ID go to Enterprise applications → your app → Single sign-on → Attributes & Claims → Add new claim:

Claim name (example) Source attribute
country user.country
jobtitle user.jobtitle
department user.department

You choose the claim name. You'll need the exact full name, including any namespace, in Step 4. For example, a claim named country with the namespace http://schemas.xmlsoap.org/ws/2005/05/identity/claims arrives as http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country.

OIDC / OAuth (e.g. Microsoft, Okta, Auth0)

WooNinja SSO can map any field in the user profile that your provider returns. With the Microsoft connection, the following attributes are available with no extra setup:

jobTitle, department, officeLocation, employeeId, mobilePhone, businessPhones, preferredLanguage, displayName

Other attributes, such as country, are not returned by default. If you need one of them, contact us; it may need an extra configuration step on our side. For Okta, Auth0, and other OIDC providers, add the claim to the ID token or userinfo response in your provider's settings (for example, an Okta profile attribute, or an Auth0 Action that adds a custom claim).

Note: The data must be filled in for the learner in your directory. If a user has no country set in Entra ID, for example, there is nothing to send.

Step 3: Import your Thinkific fields into WooNinja SSO

WooNinja SSO needs a copy of your Thinkific custom profile field list before you can map anything.

  1. Sign in to the WooNinja SSO Backoffice.
  2. In the left-hand menu, click Custom Profile Fields.
  3. Open the Actions menu (the ⋯ button at the top of the list) and choose Sync Custom Profile Fields from Thinkific.
  4. Click Run Action.

Your Thinkific fields now appear in the list, with their Thinkific ID, label, and type. If you add more fields in Thinkific later, run the sync again. Existing mappings are kept.

Step 4: Map each field to an attribute

  1. In the Backoffice, click Applications and open your SSO connection.
  2. Scroll down to the Custom Profile Fields panel and click Attach Custom Profile Field.
  3. In Custom Profile Field, select the Thinkific field, for example Country.
  4. In Mapping Value, enter the exact attribute or claim name your IdP sends (see Step 2), for example http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country (SAML) or country (OIDC).
  5. Click Attach.
  6. Repeat for each field.

Attribute names must match exactly and are case-sensitive: jobTitle and jobtitle are different names. If an attribute is nested inside another one (common with OIDC, for example "address": { "country": "DE" }), join the names with a dot: address.country. If you're not sure of the exact names, contact WooNinja support after a test sign-in and we'll confirm them for you.

For example, a finished mapping might look like this:

Custom Profile Field Mapping Value
Country http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country
Job Title jobTitle
Department department

To change a mapping, click the edit (pencil) icon on its row in the Custom Profile Fields panel and update the Mapping Value. To stop mapping a field, click the detach (trash) icon on its row. Detaching a field doesn't remove any values already saved in Thinkific.

If you have several SSO connections (for example, separate SAML tenants for different regions), set up the mapping on each connection that should send the data.

Prefer that we set it up? Contact WooNinja support with the connection name and a list of Thinkific fields and attribute names, and we'll configure it for you.

Step 5: Test

  1. Sign in through SSO with a test user who has the attributes filled in in your directory.
  2. Wait about a minute.
  3. In Thinkific, open that user's profile and check the custom profile fields.

Troubleshooting

Symptom Likely cause
Field stays empty The IdP isn't sending the attribute, the user has no value set in your directory, or the Mapping Value doesn't match the attribute name exactly (check capitalization and SAML namespace).
Thinkific field isn't in the list when attaching Run Sync Custom Profile Fields from Thinkific again (Step 3).
Value appears after a delay Expected. Updates run about one minute after sign-in.
Value reverted after a learner edited it in Thinkific Expected. Mapped fields are refreshed from your IdP on every sign-in. Update the value in your directory instead.
Dropdown/checkbox field not updating The value from your IdP doesn't exactly match one of the field's allowed options. Consider switching to a text field.
Only one value shows for a multi-value attribute Expected. Only the first value is used.

FAQ

Does this apply to existing learners?
Yes. The fields are filled in the next time each learner signs in through SSO. Learners who don't sign in are not updated.

Can the same IdP attribute go to more than one Thinkific field?
Yes. Attach each Thinkific field to the connection and use the same Mapping Value for both.

Do we need a different setup for each SSO connection?
Yes. Mappings are set per connection, so repeat Step 4 on each connection that should send the data.

Is any extra personal data stored?
The mapped values are saved to the learner's Thinkific profile. Only map the attributes you need.

Still need help? Contact Us Contact Us