Skip to content

Connect your HR system

Sync your HR system so joiners, leavers, team moves and pay changes reach Flowstate without anyone typing them in again. The forecast, budgets and effort reporting then start from the same people your HR team looks after.

You need access to integrations. Ask your Flowstate admin.

What syncing gives you

  • New starters appear with their team, job role and pay, and are costed from their start date.
  • Leavers get their last day.
  • Pay changes apply from their effective date, including changes dated in the future.
  • Team moves and changes to someone's FTE update their allocations.
  • Open and filled positions come through as vacancies.

Your HR system becomes the source of truth. Make changes to people, pay and leavers there. If you change something in Flowstate that the sync also sends, it's replaced the next time your HR system sends that person. Details the sync doesn't send stay as you set them. Agree this with your Finance lead before you connect: see Get your people data into Flowstate.

Supported HR systems

HR systemHow it connectsWhat you need from your HR system
WorkdayEvent-driven through your integration platform. A scheduled sync also works if your Workday team publishes a JSON report and your tenant accepts API calls from any IP addressAn integration system user with read access to worker data, and an API client registered for it
ADP Workforce NowEvent-driven through your integration platformAn ADP API Central project, with its client certificate
SAP SuccessFactorsEvent-driven through your integration platformAn OAuth client registered with an X.509 certificate, and an API user who can read your people
Oracle Fusion Cloud HCMEvent-driven through your integration platform, which reads Oracle's change feeds. A scheduled sync suits smaller workforcesA user with the Human Capital Management Integration Specialist role and a security profile that covers your people
BambooHRScheduled sync, or event-driven through your integration platform using BambooHR webhooksA BambooHR user who can see the fields you sync, and an API key for that user
HiBobScheduled sync, or event-driven through your integration platform using Bob webhooksA service user in a permission group that can see your people, their fields and their history
PersonioScheduled sync, or event-driven through your integration platform using Personio webhooksAPI credentials that can read people and employments
RipplingScheduled syncAn API token created by an admin whose permissions cover the entire company
DeelEvent-driven through your integration platform using Deel webhooks, or a scheduled syncAn organisation API token that can read people, contracts and departments

Each system's page lists what to set up on its side and what comes across.

Choose how changes arrive

Scheduled sync. Flowstate reads your HR system on a schedule: every 15 or 30 minutes, every hour, every 6 or 12 hours, or once a day at an hour you choose. It runs inside Flowstate as a custom integration, so there's nothing for you to host. Your technical team creates the API user in your HR system and works with your Flowstate contact, who switches custom integrations on for your organisation. It works when your HR system's API is reachable over the internet and accepts an API key, a token, or a client ID and secret.

Event-driven, through your integration platform. Your HR system sends each change as it happens to an integration platform your company runs, and the platform updates Flowstate through the REST API. Your integration team subscribes to the HR system's events, maps each change to Flowstate, and sends it with an API key from Settings → Users & Access → API Keys. Use this route when your HR system's API needs a client certificate or a signed sign-in, as ADP Workforce Now and SAP SuccessFactors do, when it only accepts calls from IP addresses you've listed, or when it's only reachable inside your network.

Scheduled syncEvent-driven
Changes showAfter the next runOnce your platform has processed the change
Who runs itFlowstateYour integration team
What you hostNothingYour integration platform
Location, resource type and line managerSet in FlowstateYour platform can send them

Use one route for each HR system, so two syncs aren't changing the same people.

What syncs, and what to set in Flowstate

Either route can bring in:

  • employees, with their name, work email, employee number, start date, last day and job role
  • each person's team allocations, with FTE and dates
  • pay changes, from their effective date
  • contractors, with their rates and rate changes
  • teams, with their parent team and manager
  • open and filled positions, as vacancies
  • if you use them, your functional groups, positions and the people in them

Leave isn't part of a sync. Add it in Flowstate.

A few details come from Flowstate's own set-up:

  • Location, resource type and line manager. A scheduled sync doesn't set them, so set them on each person in Flowstate. Your integration platform can send them on the event-driven route. Until someone has a resource type, they carry no overhead.
  • Locations and resource types need to exist before the first sync. See Organisation basics.
  • A team's manager is a Flowstate user. Invite managers before the first sync, so their teams get a manager.

Set it up

  1. Agree where the source of truth lives. See Get your people data into Flowstate.
  2. Open your HR system's page above, and get what it needs ready on your HR system's side.
  3. Choose how changes arrive.
  4. If people are already in Flowstate from a spreadsheet or added on screen, your technical team links each one to their HR system ID. A sync recognises people by that ID, not by email.
  5. Ask your Flowstate contact to set up the sync with your technical team.

Check it's working. Open a few people you know under Resourcing → People and teams, and check their team, job role and pay match your HR system. For a scheduled sync, the latest run on the hook's Execution History tab also shows Completed, with no failed records.

Other HR systems

Any other HR system with an API can sync in the same two ways: a custom integration reads it on a schedule, or your integration platform sends changes through the REST API. Tell your Flowstate contact which system you use, and they'll set it up with your technical team.

If something's not right

A sync run fails with "A record with this … already exists in your organisation". The person is already in Flowstate but isn't linked to their HR system ID yet. Your technical team can fix it: see Adopt people who are already in Flowstate.

New people have no location or resource type. A scheduled sync doesn't set them. Set them on each person in Flowstate, or ask your technical team to send them through the REST API.

A change you made in Flowstate went back. Your HR system sent its own value. Make the change in your HR system instead.

Someone who left is still in the forecast. People only get a last day when your HR system sends one. Ask your technical team to include leavers in the sync.

For your technical team

Flowstate Documentation