Skip to content
SanShivaSHELL ELOS Docs
Browse the documentation

Onboard people in bulk

For administrators, engineering managers 7 min read

Bring in members from your identity provider, and register a whole cohort of joiners from an HR export with their journeys and day-one access.

Before you begin

  • A service account whose role has Manage people and Request access.

Members from your identity provider

  • On first sign-in, a person appears on Members automatically, with the role your identity provider asserts until you set an access role.
  • With SCIM 2.0, your identity provider creates members, its roles attribute sets their ELOS access role, and deactivating someone there offboards them in ELOS. SCIM is set up with our team.

A cohort of joiners from an HR export

Your HR system stays the system of record for employees. To start engineering onboarding for everyone joining next week, export them to a CSV and register them in one run.

joiners.csvcsv
name,role,team,manager,project
Lena Fischer,Backend Engineer,Payments,Daniel Ortiz,Checkout
Omar Haddad,Site Reliability Engineer,Reliability,Ana Silva,

The columns are name, role, team, manager and project; manager and project can be empty. Keep commas out of the values.

  1. Download import-joiners.sh and the example CSV. The script needs bash, curl and jq.
  2. Set ELOS_API and ELOS_KEY and run it with your file.
  3. Check Onboarding: each joiner is there with their day-one plan, and their access requests are waiting for approvers on Access requests.
Run the importshell
export ELOS_API=https://<your ELOS API address>
export ELOS_KEY=esk.…
./import-joiners.sh joiners.csv
# added Lena Fischer (Backend Engineer, Payments)
# added Omar Haddad (Site Reliability Engineer, Reliability)
# done: 2 added, 0 skipped, 0 failed

What it does for each person

The three calls per joinershell
# 1. Register the joiner (starts onboarding and the day-one plan)
curl -sS -X POST "$ELOS_API/v1/people" -H "Authorization: Bearer $ELOS_KEY" \
  -H "Content-Type: application/json" -H "Idempotency-Key: joiner-lena-fischer" \
  --data '{"name":"Lena Fischer","role":"Backend Engineer","team":"Payments","manager":"Daniel Ortiz"}'

# 2. Generate the knowledge journey for the role, team and project
curl -sS -X POST "$ELOS_API/v1/journeys" -H "Authorization: Bearer $ELOS_KEY" \
  -H "Content-Type: application/json" -H "Idempotency-Key: journey-lena-fischer" \
  --data '{"personId":"<id from step 1>","role":"Backend Engineer","team":"Payments","project":"Checkout"}'

# 3. Request the day-one access bundle (each item goes to its approver)
curl -sS -X POST "$ELOS_API/v1/access/bundle" -H "Authorization: Bearer $ELOS_KEY" \
  -H "Content-Type: application/json" -H "Idempotency-Key: bundle-lena-fischer" \
  --data '{"personId":"<id from step 1>"}'
  • Registers the joiner. Onboarding starts automatically with the day-one plan for their role.
  • Generates their knowledge journey for the role, team and project.
  • Requests the day-one access bundle. Each item goes to its approver; nothing is granted without approval.

What's next

  • Onboarding templates: ELOS proposes each engineering team's day-one plan from your tools. Approve it once, and everyone your identity provider adds to that team gets it automatically.