Skip to main content
Field sources let you decide which system is the source of truth for each piece of employee information in Windmill. You might sync job titles and managers from your HRIS (Human Resources Information System), pull profile pictures from Slack, and manage job levels by hand. Windmill enforces your choices: only a field’s assigned source can update it, so a sync never overwrites data you manage elsewhere. You set sources in two places:
  • Company defaults apply to every employee. For example, “BambooHR owns job titles.”
  • Per-person overrides apply to a single employee and take priority over the defaults. For example, “manage this employee’s first name manually.”

How field sources work

Every field on an employee profile (name, job title, manager, start date, and so on) has a source. The source is either a connected integration (your HRIS, Slack, Google Workspace, Outlook, or SCIM) or manual, meaning the field is edited by hand in Windmill. The source controls who can write the field:
  • An integration source updates the field automatically on each sync. If you edit the field in Windmill, the edit becomes a manual override for that employee.
  • SCIM source updates the field each time your identity provider pushes a change. Windmill also stores every value SCIM sends for fields another source owns, and applies the latest stored value when you switch the field to SCIM.
  • A manual field is yours to edit in Windmill. No other sources will ever write to it.
  • A field with no source set behaves like a manual field until you assign a source or a connected integration starts supplying it.
You can see each field’s source on the employee’s Info tab in Settings > Org Chart. Each field shows the logo of the integration that manages the value, a pencil icon for manually managed fields, or a spinner while a sync is in progress. Hover over the icon to see details, like “Managed by Rippling” or “Managed manually.”
Windmill keeps a history of every source change and field update, including who made the change and where the value came from.

Setting company defaults

Company defaults define the org-wide source of truth for each field.
1

Go to Settings > Org Chart

Open the Org Chart.
2

Open the Company defaults tab

You’ll see every employee field grouped into Personal, Role & reporting, Employment, and Contact.
3

Choose a source for each field

Each field lists the connected systems that can supply it. Pick one, or select Not set to clear the source and manage the field manually.
Changes apply on the next sync, not immediately. HRIS data syncs daily, so a new source can take up to a day to bring its values in. See Data Sync and Freshness for timing by integration. When you update a source from an integration, a sync will be triggered immediately, but can take up to 10 minutes to propagate.
The Company defaults tab shows sources once you’ve connected an integration that can supply employee fields. Until then, every field is managed manually.

Overriding sources for one employee

Sometimes one person is the exception: a contractor who isn’t in your HRIS, or an executive whose title you want to control directly. Per-person overrides handle these cases without changing your company defaults.
1

Go to Settings > Org Chart

Open the Org Chart.
2

Open the employee

Select the employee row to open the employee details.
3

Open the Sources tab

Each field shows its current source. Fields that differ from the company default are labeled as overrides.
4

Choose a source for the field

Pick the system that should manage this field for this employee. To clear an override and fall back to the company default, select Clear next to the field.
To undo all of an employee’s overrides at once, select Reset overrides on the Sources tab. The fields fall back to your company defaults on the next sync.

Editing a synced field

Fields owned by an integration show the integration’s logo on the employee’s Info tab. Hover over the logo to see which integration manages the field. You can still edit the field. When you save, Windmill switches that field to manual for that employee (a per-person override), and the integration stops updating it. This is useful when your HRIS has a stale value and you need the fix in Windmill now. To hand the field back to the integration later, clear the override on the employee’s Sources tab. The integration takes over again on its next sync.
A manual override sticks until you clear it. If you fix a value in Windmill, also fix it in the source system, or the two will stay out of sync.

Which sources can manage which fields

Not every system can supply every field. Windmill only offers sources that actually provide the data. SCIM (System for Cross-domain Identity Management) appears as a source if your identity provider provisions users into Windmill. Job level, start date, pronouns, and gender require the Windmill extension attributes in your identity provider. See SCIM attributes and field sources for the attribute names and how stored values are applied.

Who can manage field sources

Only Admins and HR Admins can change company defaults and per-person overrides. Team Members, Integration Managers, and Data Analysts can’t view or edit field sources. See Permissions and Access for the full role breakdown.

FAQs

Nothing is deleted. The current value stays in place, and the new source brings in its value on its next sync. Changes apply on the next sync, not immediately.
The field’s icon shows which integration manages it. You can still edit it. Saving the change creates a manual override for that employee, and the integration stops updating that field.
Fields on manually created employees start without a source. When you connect an HRIS that includes the employee, it picks up those fields on its first sync. Fields you’ve edited by hand in Windmill stay manual until you assign them a source.
Yes, that’s the main use case. Set each field’s company default independently. For example, sync managers and titles from your HRIS and manage job levels by hand in Windmill.
No. Without a connected integration, every field is managed manually and there’s nothing to configure. Sources appear once you connect an integration that can supply employee data.