sivan

sivan

sivan.

Sivan — the group's enabled companies.

add to otoauth : —prefix : sivan_*

setup & usage

⚠ sivan api key

a Sivan administrator generates an API key at the group level, then pastes it into oto. The key is sent as the X-Api-Key header.

  • byo-only: no shared oto key — these are your personnel data, each organization sets its own
  • ⚠️ it is a GROUP key: it reads every company of the group, not one in particular
  • read-only: the connector never writes into Sivan
  • the "test connection" button lists the group's companies (list_companies): no side effect
  • ▸ schedule, punches, absences and worked time
  • "the companies and their employees" → sivan_companies() — every enabled company of the group, with employees, contracts and locations
  • "the employees, with their hours counter" → sivan_salaries(with_counter=True) (and with_absences_counter=True for the absences counter)
  • "next week's planned schedule" → sivan_events(start="…", end="…") — grouped by company then employee; companies_ids / salaries_ids narrow it
  • "the clock-in/out punches" → sivan_badged_events(start="…", end="…")
  • "the pending absence requests" → sivan_absences(start="…", end="…", status="PENDING") (statuses: PENDING / ACCEPTED / REFUSED; default: all)
  • "the worked-time totals per employee" → sivan_timesheets(start="…", end="…")
  • · windows and modules
  • ⚠️ a window of at most 31 days for sivan_events, sivan_badged_events and sivan_timesheets: a wider start..end is refused. sivan_absences has no such cap
  • ⚠️ `sivan_badged_events` needs the badging module (badgeuse) enabled on the Sivan side; without it Sivan refuses (403)
  • durations are in seconds throughout
  • ⚙ multiple comptes

    this connector accepts multiple comptes: each stored credential becomes a named account (one name per compte), at your level, your team's or your org's.

  • the first one doesn't need a name; from the second on, each one carries its own (the first then takes the name "principal", renamable)
  • without specification, the agent takes the only stored compte, otherwise the one marked as default; otherwise the call is refused, naming the available comptes — never a random choice
  • target a compte for a call: _account="<name>" on the tool; list them: oto_identity(op='list', connector='sivan') (scope='org' or scope='group' for the org's or team's)
  • set the default: oto_identity(op='set', connector='sivan', identity_id='<name>'); rename: op='rename' with new_name
  • ⚠️ no tool walks through the comptes on its own: a total across several comptes is obtained by calling each one (_account) and adding up
  • outils

    chargement…

    usage

    claude code — install the oto plugin — claude plugin marketplace add otomata-tech/oto-plugin — mcp + skill configured.
    claude.ai — add mcp.oto.cx/mcp as a custom connector (guide)
    cli — pipx install oto-cli then oto sivan …