Organizasyon API
Organizasyon modülünün tüm işlemleri (17) ve veri modelleri (1): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.
İşletmeniz, çalışma alanları, markanız ve ekibiniz.
Modül kodu organizations · 17 işlem · 1 veri modeli · 19 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ı: organizations (hepsi), organizations:read (yalnız okuma) ya da organizations:<yetenek>.
Kaynaklar
| Kaynak | Tablo | Listeleme ve okuma | POST | PATCH | DELETE |
|---|---|---|---|---|---|
employees | employee | /api/v1/employees |
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
| İşlem | Gereken izin | Ne yapar |
|---|---|---|
organizations.create_workspace | organizations:manage | Çalışma alanı oluştur |
organizations.delete_workspace | organizations:manage | Çalışma alanını sil |
organizations.invite_member | organizations:manage | Üye davet et |
organizations.remove_member | organizations:manage | Üyeyi çıkar |
organizations.reorder_employees | organizations:manage | Ekibi yeniden sırala |
organizations.resend_invite | organizations:manage | Daveti yeniden gönder |
organizations.revoke_invite | organizations:manage | Daveti geri al |
organizations.save_first_run | organizations:manage | İlk kurulum ilerlemesini kaydet |
organizations.save_onboarding_progress | organizations:manage | Kurulum ilerlemesini kaydet |
organizations.set_employee_visible | organizations:manage | Personel profilini göster veya gizle |
organizations.set_era_preferences | organizations:read | Era tercihlerini seç |
organizations.set_interface_language | organizations:read | Arayüz dilini seç |
organizations.set_member_status | organizations:manage | Üyeyi askıya al veya geri al |
organizations.transfer_ownership | organizations:manage | Sahipliği devret |
organizations.update | organizations:manage | Organizasyonu güncelle |
organizations.update_employee_profile | organizations:write | Personel profilini düzenle |
organizations.update_workspace | organizations:manage | Çalışma alanını güncelle |
organizations.create_workspace
Çalışma alanı oluştur — Bu organizasyonda altı sistem rolüyle yeni bir çalışma alanı açar.
Gereken izin organizations:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/actions/organizations.create_workspaceGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
name | string | evet | Ad · en çok 120 |
slug | string | evet | URL adı · Küçük harf, rakam ve kısa çizgi. Bağlantılarda kullanılır. · en çok 40 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
slug_format | URL adı bir harfle başlamalı ve yalnızca küçük harf, rakam ve tire içermeli. |
slug_taken | Bu organizasyondaki başka bir çalışma alanı bu URL adını zaten kullanıyor. |
Yayımladığı olaylar: organizations.workspace_created
Neye yazar: workspace (insert) — Creates the workspace, its six system roles and its first member
curl -X POST https://app.getera.io/api/v1/actions/organizations.create_workspace \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"name":"Name","slug":"URL name"}'{
"ok": true,
"result": "…",
"events": [
"organizations.workspace_created"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.create_workspace", {
name: "Name",
slug: "URL name"
})era organizations create_workspace \
--name "Name" \
--slug "URL name"{
"name": "era__organizations__create_workspace",
"arguments": {
"name": "Name",
"slug": "URL name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 slug_format, slug_taken · 429 çok sık istek
organizations.delete_workspace
Çalışma alanını sil — Çalışma alanını ve içindeki her şeyi siler.
Gereken izin organizations:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/actions/organizations.delete_workspaceGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
workspace_id | uuid | evet | Çalışma alanı |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
last_workspace_protected | Bir organizasyonun en az bir çalışma alanı olmalı. |
Yayımladığı olaylar: organizations.workspace_deleted
Neye yazar: workspace (delete) — Deletes the workspace and cascades to its data
curl -X POST https://app.getera.io/api/v1/actions/organizations.delete_workspace \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"workspace_id":"WORKSPACE_ID"}'{
"ok": true,
"result": "…",
"events": [
"organizations.workspace_deleted"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.delete_workspace", {
workspace_id: "WORKSPACE_ID"
})era organizations delete_workspace \
--workspace-id "WORKSPACE_ID"{
"name": "era__organizations__delete_workspace",
"arguments": {
"workspace_id": "WORKSPACE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 last_workspace_protected · 429 çok sık istek
organizations.invite_member
Üye davet et — Henüz hesabı olması gerekmeyen bir adrese davet gönderir.
Gereken izin organizations:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/actions/organizations.invite_memberGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
email | evet | E-posta | |
org_role | string (enum) | evet | Organizasyon rolü · Faturalandırmayı ve üyeliği belirler. Nelere erişebileceğini çalışma alanı rolü belirler. · İzin verilen değerler: member, admin, owner |
role_id | uuid | evet | Çalışma alanı rolü · kimliği: role |
expires_in_days | number | Geçerlilik süresi · en az 1 · en çok 30 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
already_member | Bu adres zaten bu organizasyona ait. |
invite_open | Bu adres için bekleyen bir davet zaten var. |
role_not_in_workspace | Bu rol başka bir çalışma alanına ait. |
seat_limit_reached | Organizasyonun planında boş bir kullanıcı yeri olmalı. |
Yayımladığı olaylar: organizations.member_invited
Neye yazar: invitation (insert) — Creates the invitation and its single-use token
curl -X POST https://app.getera.io/api/v1/actions/organizations.invite_member \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"email":"[email protected]","org_role":"member","role_id":"ROLE_ID"}'{
"ok": true,
"result": "…",
"events": [
"organizations.member_invited"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.invite_member", {
email: "[email protected]",
org_role: "member",
role_id: "ROLE_ID"
})era organizations invite_member \
--email "[email protected]" \
--org-role "member" \
--role-id "ROLE_ID"{
"name": "era__organizations__invite_member",
"arguments": {
"email": "[email protected]",
"org_role": "member",
"role_id": "ROLE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 already_member, invite_open, role_not_in_workspace, seat_limit_reached · 429 çok sık istek
organizations.remove_member
Üyeyi çıkar — Birini organizasyondan çıkarır ve işlerini başka birine devreder.
Gereken izin organizations:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/actions/organizations.remove_memberGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
user_id | uuid | evet | Üye |
reassign_to | uuid | İşlerini devret: · Hâlâ sahibi olduğu kayıtlar varsa gerekir. Hiçbir kayıt atanmamış kalamaz. · kimliği: app_user |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
cannot_remove_self | Kendinizi çıkaramazsınız. Başka bir sahipten isteyin. |
not_a_member | Bu kişi bu organizasyonun üyesi değil. |
last_owner_protected | Bir organizasyonun en az bir aktif sahibi olmalı. |
transfer_target_invalid | İşleri yalnızca başka bir aktif üyeye devredilebilir. |
Yayımladığı olaylar: organizations.member_removed, organizations.member_offboarded
Neye yazar: membership (delete) — Removes them from the organization and from every workspace in it; hands on or switches off what they own
curl -X POST https://app.getera.io/api/v1/actions/organizations.remove_member \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"user_id":"USER_ID"}'{
"ok": true,
"result": "…",
"events": [
"organizations.member_removed",
"organizations.member_offboarded"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.remove_member", {
user_id: "USER_ID"
})era organizations remove_member \
--user-id "USER_ID"{
"name": "era__organizations__remove_member",
"arguments": {
"user_id": "USER_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 cannot_remove_self, not_a_member, last_owner_protected, transfer_target_invalid · 429 çok sık istek
organizations.reorder_employees
Ekibi yeniden sırala — Personelin herkese açık ekip sayfasındaki sırasını belirler.
Gereken izin organizations:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/employees/actions/reorder_employees- Asıl adres:
POST /api/v1/actions/organizations.reorder_employees
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
order | object / array | evet | Sipariş · Üye kimlikleri, ilkinden sonuncusuna. |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
unknown_member | Her kimlik burada personel profili olan birine ait olmalı. |
duplicate_position | Aynı kişi bir sıralamada iki kez yer alamaz. |
Yayımladığı olaylar: organizations.profile_updated
Neye yazar: employee (update) — Rewrites sort_order for the listed profiles
curl -X POST https://app.getera.io/api/v1/employees/actions/reorder_employees \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"order":{}}'{
"ok": true,
"result": "…",
"events": [
"organizations.profile_updated"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.employees.reorderEmployees({
order: {}
})era employees reorder_employees --data '{"order":{}}'{
"name": "era__organizations__reorder_employees",
"arguments": {
"order": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 unknown_member, duplicate_position · 429 çok sık istek
organizations.resend_invite
Daveti yeniden gönder — Bekleyen davet için yeni bir bağlantı üretir ve süresini baştan başlatır. Eski bağlantı çalışmaz olur.
Gereken izin organizations:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/actions/organizations.resend_inviteGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
invitation_id | uuid | evet | Davetiye |
expires_in_days | number | Geçerlilik süresi · en az 1 · en çok 30 |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
invite_not_found | Davet bu organizasyonda bulunmalı. |
already_accepted | Bu davet zaten kabul edilmiş. |
invite_revoked | Geri alınmış bir davet yeniden gönderilmez; bunun yerine yeniden davet edin. |
Yayımladığı olaylar: organizations.invite_resent
Neye yazar: invitation (update) — Replaces the token and restarts the expiry
curl -X POST https://app.getera.io/api/v1/actions/organizations.resend_invite \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"invitation_id":"INVITATION_ID"}'{
"ok": true,
"result": "…",
"events": [
"organizations.invite_resent"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.resend_invite", {
invitation_id: "INVITATION_ID"
})era organizations resend_invite \
--invitation-id "INVITATION_ID"{
"name": "era__organizations__resend_invite",
"arguments": {
"invitation_id": "INVITATION_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invite_not_found, already_accepted, invite_revoked · 429 çok sık istek
organizations.revoke_invite
Daveti geri al — Kabul edilmemiş bir daveti geri çeker.
Gereken izin organizations:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/actions/organizations.revoke_inviteGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
invitation_id | uuid | evet | Davetiye |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
already_accepted | Bu davet zaten kabul edilmiş. |
Yayımladığı olaylar: organizations.invite_revoked
Neye yazar: invitation (update) — Marks the invitation revoked
curl -X POST https://app.getera.io/api/v1/actions/organizations.revoke_invite \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"invitation_id":"INVITATION_ID"}'{
"ok": true,
"result": "…",
"events": [
"organizations.invite_revoked"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.revoke_invite", {
invitation_id: "INVITATION_ID"
})era organizations revoke_invite \
--invitation-id "INVITATION_ID"{
"name": "era__organizations__revoke_invite",
"arguments": {
"invitation_id": "INVITATION_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 already_accepted · 429 çok sık istek
organizations.save_first_run
İlk kurulum ilerlemesini kaydet — Era’nın ilk kurulumunda hangi adımların sonraya bırakıldığını ya da bittiğini saklar; aynı ilerleme web’de, bilgisayarda ve telefonda görünür.
Gereken izin organizations:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/actions/organizations.save_first_runGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
skip | object / array | Ertelenen aşamalar | |
unskip | object / array | Yeniden açılan aşamalar | |
set | object / array | Değerler · { eraChatId } | |
finished | boolean | Bitti | |
host | string | Sunucu · en çok 20 |
Yayımladığı olaylar: organizations.first_run_saved
Neye yazar: org_onboarding (update) — Saves the first-run journey beside the setup draft
curl -X POST https://app.getera.io/api/v1/actions/organizations.save_first_run \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"skip":{}}'{
"ok": true,
"result": "…",
"events": [
"organizations.first_run_saved"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.save_first_run", {
skip: {}
})era organizations save_first_run --data '{"skip":{}}'{
"name": "era__organizations__save_first_run",
"arguments": {
"skip": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 429 çok sık istek
organizations.save_onboarding_progress
Kurulum ilerlemesini kaydet — Kurulumun her cihazda kaldığı yerden sürmesi için açık ekranı ve verilen yanıtları saklar.
Gereken izin organizations:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/actions/organizations.save_onboarding_progressGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
step | string | evet | Adım · en çok 40 |
code | string | İşletme hazır kurulumu · en çok 80 | |
choices | object / array | Yanıtlar | |
done | boolean | Tamamlandı |
Yayımladığı olaylar: organizations.onboarding_progress_saved
Neye yazar: org_onboarding (update) — Saves or completes the organization setup draft
curl -X POST https://app.getera.io/api/v1/actions/organizations.save_onboarding_progress \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"step":"Step"}'{
"ok": true,
"result": "…",
"events": [
"organizations.onboarding_progress_saved"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.save_onboarding_progress", {
step: "Step"
})era organizations save_onboarding_progress \
--step "Step"{
"name": "era__organizations__save_onboarding_progress",
"arguments": {
"step": "Step"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 429 çok sık istek
organizations.set_employee_visible
Personel profilini göster veya gizle — Bu kişinin herkese açık ekip sayfasında ve personel seçicilerde görünüp görünmediği.
Gereken izin organizations:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/employees/actions/set_employee_visible- Asıl adres:
POST /api/v1/actions/organizations.set_employee_visible
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
user_id | uuid | evet | Üye |
is_active | boolean | evet | Gösteriliyor |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
member_not_found | Kişinin bu çalışma alanında bir personel profili olmalı. |
no_change | Zaten bu durumdalar. |
Yayımladığı olaylar: organizations.employee_hidden, organizations.employee_shown
Neye yazar: employee (update) — Flips the profile’s visibility
curl -X POST https://app.getera.io/api/v1/employees/actions/set_employee_visible \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"user_id":"USER_ID","is_active":true}'{
"ok": true,
"result": "…",
"events": [
"organizations.employee_hidden",
"organizations.employee_shown"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.employees.setEmployeeVisible({
user_id: "USER_ID",
is_active: true
})era employees set_employee_visible \
--user-id "USER_ID" \
--is-active true{
"name": "era__organizations__set_employee_visible",
"arguments": {
"user_id": "USER_ID",
"is_active": true
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 member_not_found, no_change · 429 çok sık istek
organizations.set_era_preferences
Era tercihlerini seç — Era’nın sesi, yanıtları sesli okuma, hangi yapay zekânın yanıtlayacağı, kodlama izinleri ve tema — bilgisayarında ve webde aynı.
Gereken izin organizations:read · veriyi değiştirir
https://app.getera.io/api/v1/actions/organizations.set_era_preferencesGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
prefs | object / array | Tercihler · { voice, speak, source, permissionMode, theme } — null forgets a key. | |
language | string (enum) | Dil · İzin verilen değerler: en, tr |
Yayımladığı olaylar: organizations.era_preferences_changed
Neye yazar: app_user (update) — Remembers your Era preferences for every device
curl -X POST https://app.getera.io/api/v1/actions/organizations.set_era_preferences \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"prefs":{}}'{
"ok": true,
"result": "…",
"events": [
"organizations.era_preferences_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.set_era_preferences", {
prefs: {}
})era organizations set_era_preferences --data '{"prefs":{}}'{
"name": "era__organizations__set_era_preferences",
"arguments": {
"prefs": {}
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 429 çok sık istek
organizations.set_interface_language
Arayüz dilini seç — Menülerin, düğmelerin ve mesajların size gösterildiği dil. Çalışma alanını izlemek için boş bırakın.
Gereken izin organizations:read · veriyi değiştirir
https://app.getera.io/api/v1/actions/organizations.set_interface_languageGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
locale | string (enum) | Arayüz dili · İzin verilen değerler: en, tr |
Yayımladığı olaylar: organizations.interface_language_changed
Neye yazar: app_user (update) — Remembers your interface language
curl -X POST https://app.getera.io/api/v1/actions/organizations.set_interface_language \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"locale":"en"}'{
"ok": true,
"result": "…",
"events": [
"organizations.interface_language_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.set_interface_language", {
locale: "en"
})era organizations set_interface_language \
--locale "en"{
"name": "era__organizations__set_interface_language",
"arguments": {
"locale": "en"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:read izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 429 çok sık istek
organizations.set_member_status
Üyeyi askıya al veya geri al — Birini çıkarmadan erişimini kilitler ve yeniden açar.
Gereken izin organizations:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/actions/organizations.set_member_statusGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
user_id | uuid | evet | Üye |
status | string (enum) | evet | Durum · Askıya almak kayıtlarını ve geçmişini korur; kaldırmak korumaz. · İzin verilen değerler: active, suspended |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
cannot_suspend_self | Kendinizi askıya alamazsınız. Başka bir sahipten isteyin. |
not_a_member | Bu kişi bu organizasyonun üyesi değil. |
last_owner_protected | Bir organizasyonun en az bir aktif sahibi olmalı. |
already_set | Zaten bu durumdalar. |
Yayımladığı olaylar: organizations.member_status_changed
Neye yazar: membership (update) — Sets the organization membership status
curl -X POST https://app.getera.io/api/v1/actions/organizations.set_member_status \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"user_id":"USER_ID","status":"active"}'{
"ok": true,
"result": "…",
"events": [
"organizations.member_status_changed"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.set_member_status", {
user_id: "USER_ID",
status: "active"
})era organizations set_member_status \
--user-id "USER_ID" \
--status "active"{
"name": "era__organizations__set_member_status",
"arguments": {
"user_id": "USER_ID",
"status": "active"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 cannot_suspend_self, not_a_member, last_owner_protected, already_set · 429 çok sık istek
organizations.transfer_ownership
Sahipliği devret — Organizasyonu başka bir üyeye devreder. Siz yönetici olursunuz.
Gereken izin organizations:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır
https://app.getera.io/api/v1/actions/organizations.transfer_ownershipGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
user_id | uuid | evet | Yeni sahip |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_a_member | Yeni sahip zaten aktif bir üye olmalı. |
already_owner | Zaten sahip. |
not_owner | Organizasyonu yalnızca mevcut sahip devredebilir. |
Yayımladığı olaylar: organizations.ownership_transferred
Neye yazar: membership (update) — Swaps the two organization roles
curl -X POST https://app.getera.io/api/v1/actions/organizations.transfer_ownership \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"user_id":"USER_ID"}'{
"ok": true,
"result": "…",
"events": [
"organizations.ownership_transferred"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.transfer_ownership", {
user_id: "USER_ID"
})era organizations transfer_ownership \
--user-id "USER_ID"{
"name": "era__organizations__transfer_ownership",
"arguments": {
"user_id": "USER_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_a_member, already_owner, not_owner · 429 çok sık istek
organizations.update
Organizasyonu güncelle — Adı, yasal bilgileri, fatura adresi ve her çalışma alanının devraldığı varsayılanlar.
Gereken izin organizations:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/actions/organizations.updateGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
name | string | Ad · Uygulamada adı. · en çok 120 | |
description | string | Açıklama · en çok 500 | |
legal_name | string | Yasal ad · Faturalarda ve sözleşmelerde kullanılan resmi şirket adı. · en çok 200 | |
tax_id | string | Vergi numarası · en çok 64 | |
primary_email | İletişim e-postası | ||
billing_email | Fatura e-postası | ||
phone | phone | Telefon | |
address_line1 | string | Adres · en çok 200 | |
address_line2 | string | Adres satırı 2 · en çok 200 | |
city | string | Şehir · en çok 100 | |
postal_code | string | Posta kodu · en çok 20 | |
region | string | Bölge · en çok 100 | |
default_country | string | Ülke · İki harfli kod. Vergi ve kargo kuralları buna göre belirlenir. · en çok 2 | |
default_currency | string | Para birimi · Üç harfli kod. Bir satış kanalı bunu değiştirebilir. · en çok 3 | |
default_locale | string | Dil · en çok 10 | |
timezone | string | Saat dilimi · en çok 64 | |
logo_file_id | uuid | Logo · Geniş bir görsel. E-postalarda ve sitenin kendi görseli yoksa sitede gösterilir. · kimliği: file | |
icon_file_id | uuid | Simge · Kare bir görsel. Kenar çubuğunda ve Ana sayfada gösterilir. · kimliği: file |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_an_image | Logo ya da simge bu çalışma alanındaki bir görsel dosyası olmalı. |
invalid_country | Ülke iki harfli bir kod olmalı; örneğin TR veya DE. |
invalid_currency | Para birimi üç harfli bir kod olmalı; örneğin TRY veya EUR. |
nothing_to_change | Hiçbir alan verilmedi. |
Yayımladığı olaylar: organizations.updated
Neye yazar: organization (update) — Updates the organization profile
curl -X POST https://app.getera.io/api/v1/actions/organizations.update \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"name":"Name"}'{
"ok": true,
"result": "…",
"events": [
"organizations.updated"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.update", {
name: "Name"
})era organizations update \
--name "Name"{
"name": "era__organizations__update",
"arguments": {
"name": "Name"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_an_image, invalid_country, invalid_currency, nothing_to_change · 429 çok sık istek
organizations.update_employee_profile
Personel profilini düzenle — Kişi için gösterilen pozisyon, biyografi, deneyim, eğitim, bağlantılar ve uzmanlıklar.
Gereken izin organizations:write · veriyi değiştirir
https://app.getera.io/api/v1/employees/actions/update_employee_profile- Asıl adres:
POST /api/v1/actions/organizations.update_employee_profile
Girdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
user_id | uuid | evet | Üye |
position | string | Pozisyon / unvan · en çok 100 | |
bio | string | Biyografi · en çok 4000 | |
experience_years | number | Deneyim yılı · en çok 80 | |
education | string | Eğitim · en çok 2000 | |
social_links | object / array | Sosyal bağlantılar · Adreslenecek platform, her seferinde bir çift — linkedin, instagram, x. | |
expertise_areas | object / array | Uzmanlıklar · Herkese açık ekip sayfası için serbest metin etiketler. Kişinin hangi hizmetleri verebileceğiyle aynı şey değildir. |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
member_not_found | Kişi bu çalışma alanının üyesi olmalı. |
not_self_without_manage | Başkasının profilini düzenlemek Yapılandırma yetkisi gerektirir. |
experience_negative | Deneyim yılı negatif olamaz. |
social_links_not_object | Sosyal bağlantılar liste değil, platform–adres çiftleridir. |
social_link_url_invalid | Her sosyal bağlantı bir http veya https adresi olmalı. |
Yayımladığı olaylar: organizations.profile_updated
Neye yazar: employee (upsert) — Creates or updates the staff profile
curl -X POST https://app.getera.io/api/v1/employees/actions/update_employee_profile \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"user_id":"USER_ID"}'{
"ok": true,
"result": "…",
"events": [
"organizations.profile_updated"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.employees.updateEmployeeProfile({
user_id: "USER_ID"
})era employees update_employee_profile \
--user-id "USER_ID"{
"name": "era__organizations__update_employee_profile",
"arguments": {
"user_id": "USER_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 member_not_found, not_self_without_manage, experience_negative, social_links_not_object, social_link_url_invalid · 429 çok sık istek
organizations.update_workspace
Çalışma alanını güncelle — Adı, URL adı ve çalıştığı para birimi, dil ve saat dilimi.
Gereken izin organizations:manage · siler ya da geri alınamaz
https://app.getera.io/api/v1/actions/organizations.update_workspaceGirdi
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
workspace_id | uuid | evet | Çalışma alanı |
name | string | Ad · en çok 120 | |
slug | string | URL adı · Küçük harf, rakam ve kısa çizgi. Değiştirirseniz mevcut bağlantılar da değişir. · en çok 40 | |
description | string | Açıklama · en çok 500 | |
currency | string | Para birimi · Üç harf. Organizasyonunkini kullanmak için boş bırakın. · en çok 3 | |
locale | string | Dil · en çok 10 | |
timezone | string | Saat dilimi · en çok 64 | |
logo_file_id | uuid | Logo · Geniş bir görsel. E-postalarda ve sitenin kendi görseli yoksa sitede gösterilir. · kimliği: file | |
icon_file_id | uuid | Simge · Kare bir görsel. Kenar çubuğunda ve Ana sayfada gösterilir. · kimliği: file |
Ön koşullar
Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:
| Kod | Ne zaman reddedilir |
|---|---|
not_an_image | Logo ya da simge bu çalışma alanındaki bir görsel dosyası olmalı. |
not_found | Bu çalışma alanı bu organizasyonda değil. |
slug_format | URL adı bir harfle başlamalı ve yalnızca küçük harf, rakam ve tire içermeli. |
slug_taken | Bu organizasyondaki başka bir çalışma alanı bu URL adını zaten kullanıyor. |
invalid_currency | Para birimi üç harfli bir kod olmalı; örneğin TRY veya EUR. |
nothing_to_change | Hiçbir alan verilmedi. |
Yayımladığı olaylar: organizations.workspace_updated
Neye yazar: workspace (update) — Updates the workspace profile
curl -X POST https://app.getera.io/api/v1/actions/organizations.update_workspace \
-H "Authorization: Bearer $ERA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"workspace_id":"WORKSPACE_ID"}'{
"ok": true,
"result": "…",
"events": [
"organizations.workspace_updated"
]
}import { createEra } from "@getera/sdk"
const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("organizations.update_workspace", {
workspace_id: "WORKSPACE_ID"
})era organizations update_workspace \
--workspace-id "WORKSPACE_ID"{
"name": "era__organizations__update_workspace",
"arguments": {
"workspace_id": "WORKSPACE_ID"
}
}Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde organizations:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 not_an_image, not_found, slug_format, slug_taken, invalid_currency, nothing_to_change · 429 çok sık istek
Veri modelleri
Employee
Tablo employee · Kaynak employees
GET /api/v1/employeesGET /api/v1/employees/{id}
| Sütun | Tür | Boş olabilir | İzin verilen değerler | Bağlı olduğu tablo |
|---|---|---|---|---|
organization_id | string (uuid) · uuid | organization | ||
workspace_id | string (uuid) · uuid | workspace | ||
user_id | string (uuid) · uuid | app_user | ||
bio | string · text | evet | ||
position | string · text | evet | ||
social_links | object · jsonb | |||
expertise_areas | string[] · text[] | |||
experience_years | integer · int4 | |||
education | string · text | evet | ||
is_active | boolean · bool | |||
sort_order | integer · int4 | |||
updated_at | string (date-time) · timestamptz |
Birincil anahtar: workspace_id, user_id
Denetimler:
CHECK ((experience_years >= 0))CHECK ((jsonb_typeof(social_links) = 'object'::text))
Olaylar
İş akışları ve webhook'lar bu olaylara tepki verir.
| Olay | Ne olur | Taşıdığı alanlar |
|---|---|---|
organizations.employee_hidden | Bir personel profili herkese açık ekip sayfasından kaldırıldı. | user_id |
organizations.employee_shown | Bir personel profili herkese açık ekip sayfasına geri kondu. | user_id |
organizations.era_preferences_changed | Biri Era tercihlerini değiştirdi (ses, konuşma, yapay zekâ kaynağı, izinler, tema). | user_id, keys |
organizations.first_run_saved | Era’nın ilk kurulumu kaydedildi: sonraya bırakılan, yeniden ele alınan ya da biten adımlar. | skipped, finished |
organizations.interface_language_changed | Biri arayüz dilini değiştirdi. | user_id, locale |
organizations.invite_resent | Bekleyen bir davet yeni bir bağlantıyla yeniden gönderildi. | email, invitation_id |
organizations.invite_revoked | Bir davet geri çekildi. | email |
organizations.member_invited | Bir davet gönderildi. | email, org_role |
organizations.member_joined | Biri bir daveti kabul etti. | user_id, org_role |
organizations.member_offboarded | Ayrılan bir üyenin sahip olduğu şeyler devredildi ya da kapatıldı. | user_id, transferred_to, ownerUserId, result |
organizations.member_removed | Biri kuruluştan çıkarıldı. | user_id |
organizations.member_status_changed | Biri askıya alındı ya da yeniden etkinleştirildi. | user_id, status |
organizations.onboarding_progress_saved | İlk işletme kurulumu kaydedildi ya da tamamlandı. | step, completed |
organizations.ownership_transferred | Kuruluş el değiştirdi. | from, to |
organizations.profile_updated | Birinin personel profili yazıldı. | user_id |
organizations.updated | Kuruluş profili değiştirildi. | field |
organizations.workspace_created | Yeni bir çalışma alanı oluşturuldu. | workspace_id, name |
organizations.workspace_deleted | Bir çalışma alanı silindi. | workspace_id |
organizations.workspace_updated | Bir çalışma alanı profili değiştirildi. | workspace_id, field |