HR: Open engagement
hr_open_engagementTake somebody ON — open a PERIOD of employment for a person in this workspace. This is the row every turnover, headcount and hire-retention number is computed from; without it a hired candidate exists in the funnel and nowhere in the staff. A period, not a status: re-hiring the same person opens a SECOND engagement and both stay readable, which is exactly what makes 'how long do people last' answerable. Opening one for somebody who already has an open period is therefore allowed on purpose (two roles at once) — check hr_list_people / the person's engagements first if you meant to CORRECT the existing one, and use hr_update_engagement for that instead. 'started_on' defaults to today; every id (position, org unit, location, manager) is bounded to this workspace and refused otherwise. Opening an engagement never creates a .NET seat — granting system access is a separate decision. Requires confirmation. CONFIRMATION: this tool is PROPOSED, never performed directly. You get status='confirmation_required' with an action_id and a plan_token, and the write happens only after confirm_action.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"person_id": "<person_id>"
},
"name": "hr_open_engagement"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| status | No | ||
| schedule | No | ||
| person_id | Yes | ||
| started_on | No | ||
| location_id | No | ||
| org_unit_id | No | ||
| position_id | No | ||
| employment_type | No | ||
| probation_until | No | ||
| personnel_number | No | ||
| manager_person_id | No |