Ekip API

Ekip modülünün tüm işlemleri (4) ve veri modelleri (1): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Ekip rehberi ve personel dosyaları — işe alım, oryantasyon ve ayrılış.

Modül kodu employees · 4 işlem · 1 veri modeli · 4 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: employees (hepsi), employees:read (yalnız okuma) ya da employees:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
employmentsemployment/api/v1/employments

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
employees.activateemployees:manageOryantasyonu bitir
employees.end_employmentemployees:manageİşten ayrılışı kaydet
employees.hireemployees:manageİşe al
employees.updateemployees:manageİstihdam bilgilerini düzenle

employees.activate

Oryantasyonu bitir — Oryantasyondaki bir çalışanı aktif yapar.

Gereken izin employees:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/employments/actions/activate
API anahtarı ya da OAuth token · employees:manage
  • Asıl adres: POST /api/v1/actions/employees.activate

Girdi

AlanTürZorunluAçıklama
userIduuidevetÜye · kimliği: app_user

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_employedBir istihdam kaydı olmalı.
not_onboardingYalnızca oryantasyondaki bir çalışan aktifleştirilebilir.

Yayımladığı olaylar: employees.activated

Neye yazar: employment (update) — Sets the status to active

curl -X POST https://app.getera.io/api/v1/employments/actions/activate \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"userId":"APP_USER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "employees.activated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.employments.activate({
  userId: "APP_USER_ID"
})
era employments activate \
  --user-id "APP_USER_ID"
tools/call
{
  "name": "era__employees__activate",
  "arguments": {
    "userId": "APP_USER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde employees:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_employed, not_onboarding · 429 çok sık istek

employees.end_employment

İşten ayrılışı kaydet — Son günü ve nedeni kaydeder; devredilebilmesi için hâlâ üzerinde olan her şeyi listeler.

Gereken izin employees:manage · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır) · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/employments/actions/end_employment
API anahtarı ya da OAuth token · employees:manage
  • Asıl adres: POST /api/v1/actions/employees.end_employment

Girdi

AlanTürZorunluAçıklama
userIduuidevetÜye · kimliği: app_user
endDatedateevetSon gün
reasonstring (enum)evetNeden · İzin verilen değerler: resigned, terminated, retired, contract_ended, other
notestringNot · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
cannot_end_selfKendi işten ayrılışınızı kaydedemezsiniz.
not_employedBir istihdam kaydı olmalı.
already_endedİstihdamları zaten sona ermiş olmamalı.
end_before_hireSon gün işe giriş tarihinden önce olamaz.

Yayımladığı olaylar: employees.employment_ended

Neye yazar: employment (update) — Closes the personnel file

curl -X POST https://app.getera.io/api/v1/employments/actions/end_employment \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"userId":"APP_USER_ID","endDate":"2026-11-02","reason":"resigned"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "employees.employment_ended"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.employments.endEmployment({
  userId: "APP_USER_ID",
  endDate: "2026-11-02",
  reason: "resigned"
})
era employments end_employment \
  --user-id "APP_USER_ID" \
  --end-date "2026-11-02" \
  --reason "resigned"
tools/call
{
  "name": "era__employees__end_employment",
  "arguments": {
    "userId": "APP_USER_ID",
    "endDate": "2026-11-02",
    "reason": "resigned"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde employees:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 cannot_end_self, not_employed, already_ended, end_before_hire · 429 çok sık istek

employees.hire

İşe al — Bir çalışma alanı üyesi için özlük dosyası açar — önce oryantasyon ya da doğrudan aktif.

Gereken izin employees:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/employments/actions/hire
API anahtarı ya da OAuth token · employees:manage
  • Asıl adres: POST /api/v1/actions/employees.hire

Girdi

AlanTürZorunluAçıklama
userIduuidevetÜye · kimliği: app_user
hireDatedateevetİşe başlama tarihi
employmentTypestring (enum)İstihdam türü · İzin verilen değerler: full_time, part_time, contractor, intern, temporary
startActivebooleanKurulumu atla
workPhonestringİş telefonu · en çok 40
emergencyContactNamestringAcil durumda aranacak kişi · en çok 120
emergencyContactPhonestringAcil durum telefonu · en çok 40
notesstringNotlar · en çok 4000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_a_memberZaten bu çalışma alanının üyesi olmalılar.
already_employedAçık bir istihdam kaydı olmamalı.

Yayımladığı olaylar: employees.hired

Neye yazar: employment (upsert) — Opens (or re-opens) the personnel file

curl -X POST https://app.getera.io/api/v1/employments/actions/hire \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"userId":"APP_USER_ID","hireDate":"2026-11-02"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "employees.hired"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.employments.hire({
  userId: "APP_USER_ID",
  hireDate: "2026-11-02"
})
era employments hire \
  --user-id "APP_USER_ID" \
  --hire-date "2026-11-02"
tools/call
{
  "name": "era__employees__hire",
  "arguments": {
    "userId": "APP_USER_ID",
    "hireDate": "2026-11-02"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde employees:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_a_member, already_employed · 429 çok sık istek

employees.update

İstihdam bilgilerini düzenle — İşe giriş tarihi, çalışma türü ve iş iletişim bilgisi.

Gereken izin employees:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/employments/actions/update
API anahtarı ya da OAuth token · employees:manage
  • Asıl adres: POST /api/v1/actions/employees.update

Girdi

AlanTürZorunluAçıklama
userIduuidevetÜye · kimliği: app_user
hireDatedateİşe başlama tarihi
employmentTypestring (enum)İstihdam türü · İzin verilen değerler: full_time, part_time, contractor, intern, temporary
workPhonestringİş telefonu · en çok 40
emergencyContactNamestringAcil durumda aranacak kişi · en çok 120
emergencyContactPhonestringAcil durum telefonu · en çok 40
notesstringNotlar · en çok 4000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
not_employedBir istihdam kaydı olmalı.

Yayımladığı olaylar: employees.updated

Neye yazar: employment (update) — Rewrites the given fields

curl -X POST https://app.getera.io/api/v1/employments/actions/update \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"userId":"APP_USER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "employees.updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.employments.update({
  userId: "APP_USER_ID"
})
era employments update \
  --user-id "APP_USER_ID"
tools/call
{
  "name": "era__employees__update",
  "arguments": {
    "userId": "APP_USER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde employees:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_employed · 429 çok sık istek

Veri modelleri

Employment

Tablo employment · Kaynak employments

  • GET /api/v1/employments
  • GET /api/v1/employments/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
user_idstring (uuid) · uuidapp_user
statusstring · textonboarding, active, terminated
employment_typestring · textfull_time, part_time, contractor, intern, temporary
hire_datestring (date) · date
activated_atstring (date-time) · timestamptzevet
end_datestring (date) · dateevet
end_reasonstring · textevet
end_notestring · textevet
ended_by_user_idstring (uuid) · uuidevetapp_user
work_phonestring · textevet
emergency_contact_namestring · textevet
emergency_contact_phonestring · textevet
notesstring · textevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: workspace_id, user_id

Denetimler:

  • CHECK (((end_date IS NULL) OR (end_date >= hire_date)))
  • CHECK (((status = 'terminated'::text) = ((end_date IS NOT NULL) AND (end_reason IS NOT NULL))))
  • CHECK (((end_reason IS NULL) OR (end_reason = ANY (ARRAY['resigned'::text, 'terminated'::text, 'retired'::text, 'contract_ended'::text, 'other'::text]))))

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
employees.activatedBir çalışanın oryantasyonu tamamlandı.user_id, recipientUserId
employees.employment_endedBirinin istihdamı sona erdi. Üzerindeki kayıtlar devredilecek kişiye yönlendirilir (dosyasındaki Devir sekmesi).user_id, name, endDate, reason, ownerUserId, recipientUserId
employees.hiredBiri için personel dosyası açıldı.user_id, status, hireDate, recipientUserId
employees.updatedİstihdam bilgileri değiştirildi.user_id
Bu sayfa yardımcı oldu mu?