Gelen kutusu API

Gelen kutusu modülünün tüm işlemleri (63) ve veri modelleri (22): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Tüm kanallar tek gelen kutusunda — konuşmalar, yanıtlar, ekipler ve kimin yanıtladığı.

Modül kodu inbox · 63 işlem · 22 veri modeli · 45 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ı: inbox (hepsi), inbox:read (yalnız okuma) ya da inbox:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
agent_bot_inboxesagent_bot_inbox/api/v1/agent_bot_inboxes
agent_botsagent_bot/api/v1/agent_botsinbox.save_agent_botinbox.delete_agent_bot
applied_slasapplied_sla/api/v1/applied_slas
assignment_policiesassignment_policy/api/v1/assignment_policiesinbox.save_assignment_policy
canned_responsescanned_response/api/v1/canned_responsesinbox.save_canned_responseinbox.delete_canned_response
conversation_mentionsconversation_mention/api/v1/conversation_mentions
conversation_participantsconversation_participant/api/v1/conversation_participants
conversationsconversation/api/v1/conversationsinbox.open_conversation
csat_survey_responsescsat_survey_response/api/v1/csat_survey_responses
inbox_member_preferencesinbox_member_preference/api/v1/inbox_member_preferences
inbox_membersinbox_member/api/v1/inbox_members
inbox_working_hoursinbox_working_hour/api/v1/inbox_working_hours
inboxesinbox/api/v1/inboxesinbox.create_inboxinbox.update_inbox
macrosmacro/api/v1/macrosinbox.save_macroinbox.delete_macro
message_attachmentsmessage_attachment/api/v1/message_attachments
messagesmessage/api/v1/messagesinbox.delete_message
reporting_eventsreporting_event/api/v1/reporting_events
sla_eventssla_event/api/v1/sla_events
sla_policiessla_policy/api/v1/sla_policiesinbox.save_sla_policyinbox.delete_sla_policy
team_membersteam_member/api/v1/team_members
teamsteam/api/v1/teamsinbox.save_teaminbox.delete_team
whatsapp_message_templateswhatsapp_message_template/api/v1/whatsapp_message_templates

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
inbox.add_participantinbox:writeTakipçi ekle
inbox.add_private_noteinbox:commentÖzel not ekle
inbox.apply_slainbox:writeSLA uygula
inbox.assigninbox:writeKonuşmayı ata
inbox.assign_botinbox:writeKonuşmayı bota devret
inbox.assign_erainbox:writeBir konuşmayı Era’ya ver
inbox.assign_teaminbox:writeKonuşmayı ekibe taşı
inbox.auto_assigninbox:writeOtomatik ata
inbox.bot_replyinbox:handleBot yanıtlar
inbox.bot_set_statusinbox:handleBot devreder ya da çözer
inbox.bulk_updateinbox:writeBirden çok konuşmayı değiştir
inbox.change_customerinbox:writeKonuşmayı başka bir kişiye taşı
inbox.create_inboxinbox:manageKanal bağla
inbox.deactivate_inboxinbox:manageKanalı hizmetten çıkar
inbox.delete_agent_botinbox:manageBotu kaldır
inbox.delete_canned_responseinbox:manageHazır yanıtı sil
inbox.delete_macroinbox:writeMakroyu sil
inbox.delete_messageinbox:deleteMesajı sil
inbox.delete_sla_policyinbox:manageSLA politikasını sil
inbox.delete_teaminbox:manageEkibi sil
inbox.edit_messageinbox:writeMesajı düzenle
inbox.evaluate_slainbox:handleSLA’yı kontrol et
inbox.ingestinbox:handleGelen mesajı al
inbox.mark_readinbox:readOkundu işaretle
inbox.mark_unreadinbox:readOkunmadı olarak işaretle
inbox.muteinbox:writeSessize al
inbox.open_conversationinbox:writeKonuşma başlat
inbox.record_bot_deliveryinbox:handleBot teslimatını kaydet
inbox.record_channel_healthinbox:handleBağlantı testini kaydet
inbox.record_deliveryinbox:handleKanalın bildirdiğini kaydet
inbox.record_poll_stateinbox:handlePosta kutusu imlecini kaydet
inbox.record_visitor_seeninbox:handleZiyaretçinin konuşmayı gördüğünü kaydet
inbox.remove_participantinbox:writeTakipçiyi kaldır
inbox.reopeninbox:writeKonuşmayı yeniden aç
inbox.replyinbox:writeYanıtla
inbox.reset_agent_bot_credentialsinbox:manageBotun anahtarını sıfırla
inbox.resolveinbox:writeKonuşmayı çöz
inbox.retry_deliveryinbox:writeYeniden göndermeyi dene
inbox.review_csatinbox:writePuanı incele
inbox.run_macroinbox:writeMakroyu çalıştır
inbox.save_agent_botinbox:manageBot kaydet
inbox.save_assignment_policyinbox:manageYönlendirme kuralını kaydet
inbox.save_canned_responseinbox:manageHazır yanıtı kaydet
inbox.save_macroinbox:writeMakroyu kaydet
inbox.save_reply_from_messageinbox:manageBunu hazır yanıt olarak kaydet
inbox.save_sla_policyinbox:manageSLA politikasını kaydet
inbox.save_teaminbox:manageEkibi kaydet
inbox.send_transcriptinbox:writeDökümü e-postala
inbox.set_auto_resolveinbox:manageOtomatik çözmeyi ayarla
inbox.set_inbox_botinbox:manageKanalın botunu seç
inbox.set_inbox_membersinbox:manageGelen kutusunda kimin çalışacağını belirle
inbox.set_inbox_policyinbox:manageGelen kutusunun yönlendirme kuralını belirle
inbox.set_mailboxinbox:managePosta kutusunu Gmail ya da Outlook ile bağla
inbox.set_member_preferenceinbox:readGelen kutusu tercihlerini kaydet
inbox.set_priorityinbox:writeÖnceliği belirle
inbox.set_team_membersinbox:manageEkip üyelerini belirle
inbox.set_working_hoursinbox:manageÇalışma saatlerini belirle
inbox.snoozeinbox:writeKonuşmayı ertele
inbox.submit_csatinbox:handlePuanı al
inbox.sync_whatsapp_templatesinbox:manageWhatsApp şablonlarını eşitle
inbox.translate_messageinbox:writeMesajı çevir
inbox.unmuteinbox:writeSesi aç
inbox.update_inboxinbox:manageGelen kutusunu düzenle

inbox.add_participant

Takipçi ekle — Birinin atanmadan konuşmayı takip etmesini sağlar.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversation_participants/actions/add_participant
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.add_participant

Girdi

AlanTürZorunluAçıklama
iduuidevetKonuşma · kimliği: conversation
userIduuidevetKişi

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
not_a_memberKişi çalışma alanının aktif bir üyesi olmalı.
already_participatingKişi bunu zaten takip ediyor olmamalı.

Yayımladığı olaylar: inbox.participant_added

Neye yazar: conversation_participant (insert) — Adds the follower

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversationParticipants.addParticipant({
  id: "CONVERSATION_ID",
  userId: "USER_ID"
})
era conversation_participants add_participant \
  --id "CONVERSATION_ID" \
  --user-id "USER_ID"
tools/call
{
  "name": "era__inbox__add_participant",
  "arguments": {
    "id": "CONVERSATION_ID",
    "userId": "USER_ID"
  }
}

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

inbox.add_private_note

Özel not ekle — Konuşmaya müşterinin asla görmediği bir not bırakır.

Gereken izin inbox:comment · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/add_private_note
API anahtarı ya da OAuth token · inbox:comment
  • Asıl adres: POST /api/v1/actions/inbox.add_private_note

Girdi

AlanTürZorunluAçıklama
conversationIduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
contentstringMesaj · en çok 150000
contentTypestring (enum)Tür · İzin verilen değerler: text, input_text, input_textarea, input_email, input_select, cards, form, article, incoming_email, input_csat, integrations, sticker, voice_call
attachmentsobject / arrayEkler
cannedResponseIduuidKayıtlı yanıt · kimliği: canned_response
templateIduuidWhatsApp şablonu · kimliği: whatsapp_message_template
templateVariablesobject / arrayŞablon değerleri
ccobject / arrayCc · Yalnızca e-posta: yanıtı alacak diğer adresler.
bccobject / arrayBcc · Yalnızca e-posta: yanıtı gizli olarak alacak adresler.
replyToMessageIduuidYanıtlanan mesaj · kimliği: message

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
empty_messageMesaj metin veya ek gerektirir.
too_many_attachmentsBir mesaj en fazla on beş ek taşır.
too_many_messagesBir konuşmada bir dakikada çok fazla mesaj.
canned_response_not_foundHazır yanıt hâlâ bulunmalı.
mentioned_cannot_readAnılan herkes gelen kutusunda çalışır veya onu yönetir; böylece konuşmayı açabilirler.

Yayımladığı olaylar: inbox.note_added, inbox.mentioned, inbox.user_mentioned

Neye yazar: message (insert) — Writes the private note; message_attachment (insert) — Attaches files; conversation (update) — Touches the activity clock; conversation_mention (upsert) — Records who was mentioned; conversation_participant (insert) — Makes the people mentioned followers

curl -X POST https://app.getera.io/api/v1/conversations/CONVERSATION_ID/actions/add_private_note \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"content":"Message"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.note_added",
    "inbox.mentioned",
    "inbox.user_mentioned"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.addPrivateNote("CONVERSATION_ID", {
  content: "Message"
})
era conversations add_private_note CONVERSATION_ID \
  --content "Message"
tools/call
{
  "name": "era__inbox__add_private_note",
  "arguments": {
    "conversationId": "CONVERSATION_ID",
    "content": "Message"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde inbox:comment izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 conversation_not_found, empty_message, too_many_attachments, too_many_messages, canned_response_not_found, mentioned_cannot_read · 429 çok sık istek

inbox.apply_sla

SLA uygula — Bir konuşmayı bir yanıt süresi politikasına göre ölçer.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/applied_slas/actions/apply_sla
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.apply_sla

Girdi

AlanTürZorunluAçıklama
conversationIduuidevetKonuşma · kimliği: conversation
policyIduuidevetPolitika · kimliği: sla_policy

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
sla_policy_not_foundPolitika bulunmalı.
sla_already_appliedBir konuşma kendisine verilen ilk SLA’yı korur.

Yayımladığı olaylar: inbox.sla_applied, inbox.sla_missed

Neye yazar: applied_sla (insert) — Starts measuring; sla_event (insert) — Records a target already missed

curl -X POST https://app.getera.io/api/v1/applied_slas/actions/apply_sla \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"conversationId":"CONVERSATION_ID","policyId":"SLA_POLICY_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.sla_applied",
    "inbox.sla_missed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appliedSlas.applySla({
  conversationId: "CONVERSATION_ID",
  policyId: "SLA_POLICY_ID"
})
era applied_slas apply_sla \
  --conversation-id "CONVERSATION_ID" \
  --policy-id "SLA_POLICY_ID"
tools/call
{
  "name": "era__inbox__apply_sla",
  "arguments": {
    "conversationId": "CONVERSATION_ID",
    "policyId": "SLA_POLICY_ID"
  }
}

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

inbox.assign

Konuşmayı ata — Konuşmayı o gelen kutusunda çalışan birine verir ya da kuyruğa geri koyar.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/assign
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.assign

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
userIduuidAjan

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
not_a_memberTemsilci çalışma alanının aktif bir üyesi olmalı.
not_an_inbox_memberTemsilci o gelen kutusunda çalışmalı.
not_in_conversation_teamKonuşmanın ekibi dışındaki bir temsilciye verilemez.

Yayımladığı olaylar: inbox.assigned

Neye yazar: conversation (update) — Sets the assignee

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.assign("CONVERSATION_ID", {
  userId: "USER_ID"
})
era conversations assign CONVERSATION_ID \
  --user-id "USER_ID"
tools/call
{
  "name": "era__inbox__assign",
  "arguments": {
    "id": "CONVERSATION_ID",
    "userId": "USER_ID"
  }
}

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

inbox.assign_bot

Konuşmayı bota devret — Konuşmayı o gelen kutusuna bağlı bir bota verir ya da geri alır.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/assign_bot
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.assign_bot

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
agentBotIduuidBot · kimliği: agent_bot

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
bot_not_on_inboxBot o gelen kutusuna bağlı ve aktif olmalı.

Yayımladığı olaylar: inbox.assigned, inbox.bot_handoff

Neye yazar: conversation (update) — Sets or clears the bot; reporting_event (insert) — Writes the report clock reading (sql/126)

curl -X POST https://app.getera.io/api/v1/conversations/CONVERSATION_ID/actions/assign_bot \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"agentBotId":"AGENT_BOT_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.assigned",
    "inbox.bot_handoff"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.assignBot("CONVERSATION_ID", {
  agentBotId: "AGENT_BOT_ID"
})
era conversations assign_bot CONVERSATION_ID \
  --agent-bot-id "AGENT_BOT_ID"
tools/call
{
  "name": "era__inbox__assign_bot",
  "arguments": {
    "id": "CONVERSATION_ID",
    "agentBotId": "AGENT_BOT_ID"
  }
}

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

inbox.assign_era

Bir konuşmayı Era’ya ver — Era her yanıtı özel not olarak taslak yazar ya da yanıtlar — izin vermediysen yanıt yine onayını bekler.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/assign_era
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.assign_era

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
modestring (enum)evetEra · İzin verilen değerler: draft, answer, off

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
era_offEra (yapay zekâ modülü) bu çalışma alanında açık olmalı.

Yayımladığı olaylar: inbox.era_assigned

Neye yazar: conversation (update) — Gives the conversation to Era, or takes it back

curl -X POST https://app.getera.io/api/v1/conversations/CONVERSATION_ID/actions/assign_era \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"mode":"draft"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.era_assigned"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.assignEra("CONVERSATION_ID", {
  mode: "draft"
})
era conversations assign_era CONVERSATION_ID \
  --mode "draft"
tools/call
{
  "name": "era__inbox__assign_era",
  "arguments": {
    "id": "CONVERSATION_ID",
    "mode": "draft"
  }
}

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

inbox.assign_team

Konuşmayı ekibe taşı — Konuşmayı bir ekibe yönlendirir; ekipte olmayan atananı çıkarır.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/assign_team
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.assign_team

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
teamIduuidEkip · kimliği: team

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
team_not_foundEkip bulunmalı.

Yayımladığı olaylar: inbox.team_assigned

Neye yazar: conversation (update) — Sets the team

curl -X POST https://app.getera.io/api/v1/conversations/CONVERSATION_ID/actions/assign_team \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"teamId":"TEAM_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.team_assigned"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.assignTeam("CONVERSATION_ID", {
  teamId: "TEAM_ID"
})
era conversations assign_team CONVERSATION_ID \
  --team-id "TEAM_ID"
tools/call
{
  "name": "era__inbox__assign_team",
  "arguments": {
    "id": "CONVERSATION_ID",
    "teamId": "TEAM_ID"
  }
}

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

inbox.auto_assign

Otomatik ata — Sıradaki temsilciyi gelen kutusunun yönlendirme kuralına göre, adil payı içinde seçer.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/auto_assign
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.auto_assign

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
inbox_not_foundGelen kutusu bulunmalı.
auto_assignment_offGelen kutusu için otomatik atama açık olmalı.
policy_disabledGelen kutusunun yönlendirme kuralı etkin olmalı.

Yayımladığı olaylar: inbox.assigned

Neye yazar: conversation (update) — Sets the assignee; inbox_member (update) — Moves the agent to the back of the queue

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.autoAssign("CONVERSATION_ID")
era conversations auto_assign CONVERSATION_ID
tools/call
{
  "name": "era__inbox__auto_assign",
  "arguments": {
    "id": "CONVERSATION_ID"
  }
}

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

inbox.bot_reply

Bot yanıtlar — Botun müşteriye söyledikleri, bot API’si üzerinden.

Gereken izin inbox:handle · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/bot_reply
API anahtarı ya da OAuth token · inbox:handle
  • Asıl adres: POST /api/v1/actions/inbox.bot_reply

Girdi

AlanTürZorunluAçıklama
agentBotIduuidevetBot · kimliği: agent_bot
conversationIduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
contentstringMesaj · en çok 150000
contentTypestringMesaj türü · en çok 40
contentAttributesobject / arraySeçenekler, kartlar veya form

Ön koşullar

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

KodNe zaman reddedilir
agent_bot_not_foundBot var olmalı.
conversation_not_foundKonuşma bulunmalı.
bot_not_on_inboxKonuşma botta olmalı ya da bot o kanalda yanıtlıyor olmalı.
unsupported_content_typeBot metin, seçenek, kart, form, makale ya da giriş isteği gönderir.
empty_messageMetin mesajı boş olamaz.
conversation_resolvedÇözülmüş konuşma, yalnızca kanal izin veriyorsa mesaj alır.
too_many_messagesDakika başına sınır botlar için de geçerlidir.

Yayımladığı olaylar: inbox.message_sent

Neye yazar: message (insert) — Writes the bot’s message, queued for delivery; conversation (update) — Clears the waiting clock

curl -X POST https://app.getera.io/api/v1/conversations/CONVERSATION_ID/actions/bot_reply \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"agentBotId":"AGENT_BOT_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.message_sent"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.botReply("CONVERSATION_ID", {
  agentBotId: "AGENT_BOT_ID"
})
era conversations bot_reply CONVERSATION_ID \
  --agent-bot-id "AGENT_BOT_ID"
tools/call
{
  "name": "era__inbox__bot_reply",
  "arguments": {
    "conversationId": "CONVERSATION_ID",
    "agentBotId": "AGENT_BOT_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde inbox:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 agent_bot_not_found, conversation_not_found, bot_not_on_inbox, unsupported_content_type, empty_message, conversation_resolved, too_many_messages · 429 çok sık istek

inbox.bot_set_status

Bot devreder ya da çözer — Bot konuşmayı ekibe verir ya da kapatır.

Gereken izin inbox:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/bot_set_status
API anahtarı ya da OAuth token · inbox:handle
  • Asıl adres: POST /api/v1/actions/inbox.bot_set_status

Girdi

AlanTürZorunluAçıklama
agentBotIduuidevetBot · kimliği: agent_bot
conversationIduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
statusstring (enum)evetDurum · İzin verilen değerler: open, resolved
reasonstringNeden · en çok 40

Ön koşullar

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

KodNe zaman reddedilir
agent_bot_not_foundBot var olmalı.
conversation_not_foundKonuşma bulunmalı.
bot_not_on_inboxKonuşma botta olmalı ya da bot o kanalda yanıtlıyor olmalı.
already_openZaten ekipte olan konuşma yeniden devredilmez.
already_resolvedÇözülmüş bir konuşma iki kez çözülmez.

Yayımladığı olaylar: inbox.bot_handoff, inbox.resolved, inbox.message_sent

Neye yazar: conversation (update) — Opens it for people, or resolves it; message (insert) — The rating request, when resolving asks for one; reporting_event (insert) — Writes the report clock reading (sql/126)

curl -X POST https://app.getera.io/api/v1/conversations/CONVERSATION_ID/actions/bot_set_status \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"agentBotId":"AGENT_BOT_ID","status":"open"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.bot_handoff",
    "inbox.resolved",
    "inbox.message_sent"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.botSetStatus("CONVERSATION_ID", {
  agentBotId: "AGENT_BOT_ID",
  status: "open"
})
era conversations bot_set_status CONVERSATION_ID \
  --agent-bot-id "AGENT_BOT_ID" \
  --status "open"
tools/call
{
  "name": "era__inbox__bot_set_status",
  "arguments": {
    "conversationId": "CONVERSATION_ID",
    "agentBotId": "AGENT_BOT_ID",
    "status": "open"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde inbox:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 agent_bot_not_found, conversation_not_found, bot_not_on_inbox, already_open, already_resolved · 429 çok sık istek

inbox.bulk_update

Birden çok konuşmayı değiştir — Bir seçimi tek seferde çözer, erteler, atar, yönlendirir veya önceliklendirir — hepsi ya da hiçbiri.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/messages/actions/bulk_update
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.bulk_update

Girdi

AlanTürZorunluAçıklama
idsobject / arrayevetKonuşmalar
statusstring (enum)Durum · İzin verilen değerler: open, resolved, pending, snoozed
snoozedUntildate-timeŞu zamana kadar ertele
assigneeUserIduuidŞuna ata
unassignbooleanKuyruğa geri gönder
teamIduuidEkip · kimliği: team
clearTeambooleanEkipten çıkar
prioritystring (enum)Öncelik · İzin verilen değerler: low, medium, high, urgent, none

Ön koşullar

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

KodNe zaman reddedilir
invalid_selectionBir ile yüz arasında konuşma seçilir.
nothing_to_changeDeğiştirilecek bir şey seçilir.

Yayımladığı olaylar: inbox.assigned, inbox.team_assigned, inbox.resolved, inbox.reopened, inbox.snoozed, inbox.priority_changed, inbox.message_sent

Neye yazar: conversation (update) — Applies the change to each conversation; inbox_member (update) — Moves an assignee to the back of the queue; message (insert) — A rating request, when resolving asks for one; reporting_event (insert) — Writes the report clock reading (sql/126)

curl -X POST https://app.getera.io/api/v1/messages/actions/bulk_update \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"ids":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.assigned",
    "inbox.team_assigned",
    "inbox.resolved",
    "inbox.reopened",
    "inbox.snoozed",
    "inbox.priority_changed",
    "inbox.message_sent"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.messages.bulkUpdate({
  ids: {}
})
era messages bulk_update --data '{"ids":{}}'
tools/call
{
  "name": "era__inbox__bulk_update",
  "arguments": {
    "ids": {}
  }
}

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

inbox.change_customer

Konuşmayı başka bir kişiye taşı — Konuşmanın kiminle olduğunu düzeltir; geldiği kanal adresini korur.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/change_customer
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.change_customer

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
customerIduuidevetKişi · kimliği: customer

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
customer_not_foundKişi zaten kayıtlı olmalı.
customer_archivedArşivlenmiş bir kişiye yazılamaz.

Yayımladığı olaylar: inbox.customer_changed

Neye yazar: conversation (update) — Repoints the conversation

curl -X POST https://app.getera.io/api/v1/conversations/CONVERSATION_ID/actions/change_customer \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"customerId":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.customer_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.changeCustomer("CONVERSATION_ID", {
  customerId: "CUSTOMER_ID"
})
era conversations change_customer CONVERSATION_ID \
  --customer-id "CUSTOMER_ID"
tools/call
{
  "name": "era__inbox__change_customer",
  "arguments": {
    "id": "CONVERSATION_ID",
    "customerId": "CUSTOMER_ID"
  }
}

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

inbox.create_inbox

Kanal bağla — Desteklenen kanallardan birinde yeni bir gelen kutusu açar.

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

POSThttps://app.getera.io/api/v1/inboxes/actions/create_inbox
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: POST /api/v1/inboxes
  • Asıl adres: POST /api/v1/actions/inbox.create_inbox

Girdi

AlanTürZorunluAçıklama
namestringevetAd · en çok 200
channelTypestring (enum)evetKanal · İzin verilen değerler: web_widget, api, email, whatsapp, sms, twilio_sms, facebook_page, instagram, telegram, line, tiktok, twitter, voice
identifierstringNumara veya hesap · Bu kanalın yanıt verdiği telefon numarası, sayfa kimliği, bot adı veya erişim anahtarı. · en çok 200
channelConfigobject / arrayKanal ayarları
credentialIduuidKimlik bilgisi
memberUserIdsobject / arrayKimin ilgilendiği

Ön koşullar

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

KodNe zaman reddedilir
identifier_takenBir numara veya hesap yalnızca bir gelen kutusuna hizmet edebilir.
channel_config_incompleteBir kanal bağlanmadan önce sağlayıcısının ihtiyaç duyduğu her şey verilmeli.
not_a_memberOna atanan herkes aktif bir üye olmalı.
mailbox_connection_requiredGmail ya da Outlook ile bağlanan bir posta kutusu, hesabı belirtmeli.
mailbox_not_mail_appBu hesap bir Gmail ya da Outlook bağlantısı olmalı.
connection_not_usableBu hesap bu kişinin, şirketin ya da onunla paylaşılmış olmalı.
connection_not_foundHesap bu çalışma alanında hâlâ bağlı olmalı.
connection_inactiveHesap etkin olmalı; duraklatılmış ya da iptal edilmiş olamaz.

Yayımladığı olaylar: inbox.channel_connected

Neye yazar: inbox (insert) — Opens the channel; inbox_member (insert) — Records who works it

curl -X POST https://app.getera.io/api/v1/inboxes/actions/create_inbox \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name","channelType":"web_widget"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.channel_connected"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxes.create({
  name: "Name",
  channelType: "web_widget"
})
era inboxes create \
  --name "Name" \
  --channel-type "web_widget"
tools/call
{
  "name": "era__inbox__create_inbox",
  "arguments": {
    "name": "Name",
    "channelType": "web_widget"
  }
}

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

inbox.deactivate_inbox

Kanalı hizmetten çıkar — Gelen kutusunun yeni konuşma almasını durdurur; içindekileri korur.

Gereken izin inbox: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/inboxes/{id}/actions/deactivate_inbox
API anahtarı ya da OAuth token · inbox:manage
  • Asıl adres: POST /api/v1/actions/inbox.deactivate_inbox

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Gelen kutusu · kimliği: inbox

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
inbox_has_open_conversationsBir kanal kapatılmadan önce açık konuşmalar çözülür veya taşınır.

Yayımladığı olaylar: inbox.channel_deactivated

Neye yazar: inbox (update) — Marks the channel inactive

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxes.deactivateInbox("INBOXE_ID")
era inboxes deactivate_inbox INBOXE_ID
tools/call
{
  "name": "era__inbox__deactivate_inbox",
  "arguments": {
    "id": "INBOXE_ID"
  }
}

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

inbox.delete_agent_bot

Botu kaldır — Botu kaldırır; elindeki konuşmalar ekibe geçer.

Gereken izin inbox:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/agent_bots/{id}/actions/delete_agent_bot
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: DELETE /api/v1/agent_bots/{id}
  • Asıl adres: POST /api/v1/actions/inbox.delete_agent_bot

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Bot · kimliği: agent_bot

Ön koşullar

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

KodNe zaman reddedilir
agent_bot_not_foundBot var olmalı.

Yayımladığı olaylar: inbox.agent_bot_changed

Neye yazar: conversation (update) — Hands its pending conversations to people; agent_bot (delete) — Removes the bot and its inbox bindings

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.agentBots.deleteAgentBot("AGENT_BOT_ID")
era agent_bots delete_agent_bot AGENT_BOT_ID
tools/call
{
  "name": "era__inbox__delete_agent_bot",
  "arguments": {
    "id": "AGENT_BOT_ID"
  }
}

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

inbox.delete_canned_response

Hazır yanıtı sil — Bir kısa kodu yazma alanından kaldırır.

Gereken izin inbox:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/canned_responses/{id}/actions/delete_canned_response
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: DELETE /api/v1/canned_responses/{id}
  • Asıl adres: POST /api/v1/actions/inbox.delete_canned_response

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Kayıtlı yanıt · kimliği: canned_response

Ön koşullar

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

KodNe zaman reddedilir
canned_response_not_foundHazır yanıt bulunmalı.

Yayımladığı olaylar: inbox.canned_response_changed

Neye yazar: canned_response (delete) — Removes the saved reply

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.cannedResponses.deleteCannedResponse("CANNED_RESPONSE_ID")
era canned_responses delete_canned_response CANNED_RESPONSE_ID
tools/call
{
  "name": "era__inbox__delete_canned_response",
  "arguments": {
    "id": "CANNED_RESPONSE_ID"
  }
}

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

inbox.delete_macro

Makroyu sil — Bir makroyu kaldırır.

Gereken izin inbox:write · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/macros/{id}/actions/delete_macro
API anahtarı ya da OAuth token · inbox:write
  • REST kısayolu: DELETE /api/v1/macros/{id}
  • Asıl adres: POST /api/v1/actions/inbox.delete_macro

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Makro · kimliği: macro

Ön koşullar

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

KodNe zaman reddedilir
macro_not_foundMakro bulunmalı ve size görünür olmalı.
not_macro_ownerMakroyu yalnızca yazarı veya bir yönetici siler.

Yayımladığı olaylar: inbox.macro_changed

Neye yazar: macro (delete) — Removes the macro

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.macros.deleteMacro("MACRO_ID")
era macros delete_macro MACRO_ID
tools/call
{
  "name": "era__inbox__delete_macro",
  "arguments": {
    "id": "MACRO_ID"
  }
}

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

inbox.delete_message

Mesajı sil — Mesajı konuşmadan kaldırır; denetim kaydı için satırı saklar.

Gereken izin inbox:delete · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/messages/{id}/actions/delete_message
API anahtarı ya da OAuth token · inbox:delete
  • REST kısayolu: DELETE /api/v1/messages/{id}
  • Asıl adres: POST /api/v1/actions/inbox.delete_message

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Mesaj · kimliği: message

Ön koşullar

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

KodNe zaman reddedilir
message_not_foundMesaj bulunmalı.

Yayımladığı olaylar: inbox.message_deleted

Neye yazar: message (update) — Writes the tombstone

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.messages.deleteMessage("MESSAGE_ID")
era messages delete_message MESSAGE_ID
tools/call
{
  "name": "era__inbox__delete_message",
  "arguments": {
    "id": "MESSAGE_ID"
  }
}

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

inbox.delete_sla_policy

SLA politikasını sil — Hiçbir şeyin ona göre ölçülmediği bir politikayı kaldırır.

Gereken izin inbox:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/sla_policies/{id}/actions/delete_sla_policy
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: DELETE /api/v1/sla_policies/{id}
  • Asıl adres: POST /api/v1/actions/inbox.delete_sla_policy

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Politika · kimliği: sla_policy

Ön koşullar

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

KodNe zaman reddedilir
sla_policy_not_foundPolitika bulunmalı.
sla_policy_in_useKonuşmalara uygulanmış bir politika geçmişini korur.

Yayımladığı olaylar: inbox.sla_policy_changed

Neye yazar: sla_policy (delete) — Deletes the policy

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.slaPolicies.deleteSlaPolicy("SLA_POLICY_ID")
era sla_policies delete_sla_policy SLA_POLICY_ID
tools/call
{
  "name": "era__inbox__delete_sla_policy",
  "arguments": {
    "id": "SLA_POLICY_ID"
  }
}

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

inbox.delete_team

Ekibi sil — Bir ekibi kaldırır; konuşmaları ekipsiz kalır.

Gereken izin inbox:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/teams/{id}/actions/delete_team
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: DELETE /api/v1/teams/{id}
  • Asıl adres: POST /api/v1/actions/inbox.delete_team

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Ekip · kimliği: team
forcebooleanYine de sil

Ön koşullar

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

KodNe zaman reddedilir
team_not_foundEkip bulunmalı.
team_has_open_conversationsEkip kaldırılmadan önce ekipteki açık konuşmalar sayılır.

Yayımladığı olaylar: inbox.team_changed

Neye yazar: team (delete) — Removes the team

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.teams.deleteTeam("TEAM_ID", {
  force: true
})
era teams delete_team TEAM_ID \
  --force true
tools/call
{
  "name": "era__inbox__delete_team",
  "arguments": {
    "id": "TEAM_ID",
    "force": true
  }
}

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

inbox.edit_message

Mesajı düzenle — Gönderdiğiniz bir mesajı düzeltir.

Gereken izin inbox:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)

POSThttps://app.getera.io/api/v1/messages/{id}/actions/edit_message
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.edit_message

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Mesaj · kimliği: message
contentstringevetMesaj · en çok 150000

Ön koşullar

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

KodNe zaman reddedilir
message_not_foundMesaj bulunmalı.
message_not_editableYalnızca giden bir mesaj düzenlenebilir.
empty_messageMesaj metin veya ek gerektirir.

Yayımladığı olaylar: inbox.message_edited

Neye yazar: message (update) — Rewrites the message and marks it edited

curl -X POST https://app.getera.io/api/v1/messages/MESSAGE_ID/actions/edit_message \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"content":"Message"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.message_edited"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.messages.editMessage("MESSAGE_ID", {
  content: "Message"
})
era messages edit_message MESSAGE_ID \
  --content "Message"
tools/call
{
  "name": "era__inbox__edit_message",
  "arguments": {
    "id": "MESSAGE_ID",
    "content": "Message"
  }
}

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

inbox.evaluate_sla

SLA’yı kontrol et — Konuşmanın kaçırdığı hedefleri kaydeder ve çözüldüğünde tutuldu veya kaçırıldı olarak kesinleştirir.

Gereken izin inbox:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/applied_slas/{id}/actions/evaluate_sla
API anahtarı ya da OAuth token · inbox:handle
  • Asıl adres: POST /api/v1/actions/inbox.evaluate_sla

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Uygulanan SLA · kimliği: applied_sla

Ön koşullar

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

KodNe zaman reddedilir
applied_sla_not_foundUygulanan SLA bulunmalı.

Yayımladığı olaylar: inbox.sla_missed, inbox.sla_closed

Neye yazar: applied_sla (update) — Writes the status and the next deadline; sla_event (insert) — One row per missed target

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.appliedSlas.evaluateSla("APPLIED_SLA_ID")
era applied_slas evaluate_sla APPLIED_SLA_ID
tools/call
{
  "name": "era__inbox__evaluate_sla",
  "arguments": {
    "id": "APPLIED_SLA_ID"
  }
}

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

inbox.ingest

Gelen mesajı al — Bir kanala gelen mesajı kaydeder; yeniyse konuşmayı açar.

Gereken izin inbox:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/actions/ingest
API anahtarı ya da OAuth token · inbox:handle
  • Asıl adres: POST /api/v1/actions/inbox.ingest

Girdi

AlanTürZorunluAçıklama
inboxIduuidevetGelen kutusu · kimliği: inbox
customerIduuidevetKişi · kimliği: customer
sourceIdstringevetSağlayıcının bu mesaja verdiği kimlik · Yeniden gelen bir webhook’un iki değil tek mesaj sayılmasını sağlayan değer. · en çok 200
contentstringNe dediler · en çok 150000
senderNamestringSağlayıcıdaki adı · en çok 200
customerIdentityIduuidKanal adresi · kimliği: customer_identity
channelAddressstringKanal adresi değeri · channel türündeki customer_identity değeri — konuşma bu değere göre eşleştirilir. · en çok 300
contentTypestring (enum)Mesaj türü · İzin verilen değerler: text, input_text, input_textarea, input_email, input_select, cards, form, article, incoming_email, input_csat, integrations, sticker, voice_call
attachmentsobject / arrayEkler
inReplyToobject / arrayYanıtladığı e-postalar (kimlikler)
newThreadbooleanYanıt değilse yeni konuşma başlat

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
inbox_inactiveKanal hâlâ hizmette olmalı.
no_source_idGelen mesaj sağlayıcının ona verdiği kimliği taşımalı.
empty_messageMesaj metin veya ek gerektirir.
malformed_messageEkler ve yanıtlanan mesajlar liste olarak gelmeli.
duplicate_messageAynı teslimat yalnızca bir kez kaydedilir.
customer_not_foundKişi zaten kayıtlı olmalı.
customer_archivedArşivlenmiş bir kişiye yazılamaz.

Yayımladığı olaylar: inbox.message_received, inbox.conversation_opened, inbox.reopened, inbox.message_sent

Neye yazar: conversation (upsert) — Finds the thread, or opens a new one; message (insert) — Files what arrived; message_attachment (insert) — Files what came with it; reporting_event (insert) — Writes the report clock reading (sql/126)

curl -X POST https://app.getera.io/api/v1/conversations/actions/ingest \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"inboxId":"INBOX_ID","customerId":"CUSTOMER_ID","sourceId":"The provider’s id for this message"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.message_received",
    "inbox.conversation_opened",
    "inbox.reopened",
    "inbox.message_sent"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.ingest({
  inboxId: "INBOX_ID",
  customerId: "CUSTOMER_ID",
  sourceId: "The provider’s id for this message"
})
era conversations ingest \
  --inbox-id "INBOX_ID" \
  --customer-id "CUSTOMER_ID" \
  --source-id "The provider’s id for this message"
tools/call
{
  "name": "era__inbox__ingest",
  "arguments": {
    "inboxId": "INBOX_ID",
    "customerId": "CUSTOMER_ID",
    "sourceId": "The provider’s id for this message"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde inbox:handle izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 inbox_not_found, inbox_inactive, no_source_id, empty_message, malformed_message, duplicate_message, customer_not_found, customer_archived · 429 çok sık istek

inbox.mark_read

Okundu işaretle — Konuşmanın görüldüğünü kaydeder.

Gereken izin inbox:read · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/mark_read
API anahtarı ya da OAuth token · inbox:read
  • Asıl adres: POST /api/v1/actions/inbox.mark_read

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.

Neye yazar: conversation (update) — Stamps the read marks

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.markRead("CONVERSATION_ID")
era conversations mark_read CONVERSATION_ID
tools/call
{
  "name": "era__inbox__mark_read",
  "arguments": {
    "id": "CONVERSATION_ID"
  }
}

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

inbox.mark_unread

Okunmadı olarak işaretle — Okundu işaretini ilk gelen mesajın gerisine çeker; böylece konuşma okunmamışlar listesine döner.

Gereken izin inbox:read · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/mark_unread
API anahtarı ya da OAuth token · inbox:read
  • Asıl adres: POST /api/v1/actions/inbox.mark_unread

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.

Neye yazar: conversation (update) — Moves the read marker back

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.markUnread("CONVERSATION_ID")
era conversations mark_unread CONVERSATION_ID
tools/call
{
  "name": "era__inbox__mark_unread",
  "arguments": {
    "id": "CONVERSATION_ID"
  }
}

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

inbox.mute

Sessize al — Konuşmayı çözer ve kişinin sonra göndereceklerini konuşmayı yeniden açmadan kaydeder.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/mute
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.mute

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
already_mutedZaten sessizde olmamalı.

Yayımladığı olaylar: inbox.muted

Neye yazar: conversation (update) — Mutes and resolves it; reporting_event (insert) — Writes the report clock reading (sql/126)

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.mute("CONVERSATION_ID")
era conversations mute CONVERSATION_ID
tools/call
{
  "name": "era__inbox__mute",
  "arguments": {
    "id": "CONVERSATION_ID"
  }
}

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

inbox.open_conversation

Konuşma başlat — Kanallarınızdan birinde biriyle konuşma başlatır.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/actions/open_conversation
API anahtarı ya da OAuth token · inbox:write
  • REST kısayolu: POST /api/v1/conversations
  • Asıl adres: POST /api/v1/actions/inbox.open_conversation

Girdi

AlanTürZorunluAçıklama
inboxIduuidevetGelen kutusu · kimliği: inbox
customerIduuidevetKişi · kimliği: customer
customerIdentityIduuidKanal adresi · kimliği: customer_identity
teamIduuidEkip · kimliği: team
prioritystring (enum)Öncelik · İzin verilen değerler: low, medium, high, urgent
externalIdentifierstringKanal referansı · en çok 200

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
inbox_inactiveKanal hâlâ hizmette olmalı.
customer_not_foundKişi zaten kayıtlı olmalı.
customer_archivedArşivlenmiş bir kişiye yazılamaz.
identity_not_theirsKanal adresi o kişiye ait olmalı.
conversation_already_openKişi başına tek konuşmaya kilitli bir gelen kutusu ikincisini reddeder.
team_not_foundEkip bulunmalı.

Yayımladığı olaylar: inbox.conversation_opened

Neye yazar: conversation (insert) — Opens the conversation

curl -X POST https://app.getera.io/api/v1/conversations/actions/open_conversation \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"inboxId":"INBOX_ID","customerId":"CUSTOMER_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.conversation_opened"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.create({
  inboxId: "INBOX_ID",
  customerId: "CUSTOMER_ID"
})
era conversations create \
  --inbox-id "INBOX_ID" \
  --customer-id "CUSTOMER_ID"
tools/call
{
  "name": "era__inbox__open_conversation",
  "arguments": {
    "inboxId": "INBOX_ID",
    "customerId": "CUSTOMER_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde inbox:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 inbox_not_found, inbox_inactive, customer_not_found, customer_archived, identity_not_theirs, conversation_already_open, team_not_found · 429 çok sık istek

inbox.record_bot_delivery

Bot teslimatını kaydet — Yalnızca sistem: bota gönderilen son olayın sonucu.

Gereken izin inbox:handle · veriyi değiştirir

Era’nın kendi çalıştırdığı bir işlem. Başvuru eksiksiz olsun diye listelenir; API anahtarı ya da token ile istek reddedilir (403 machine_only).
POSThttps://app.getera.io/api/v1/agent_bots/{id}/actions/record_bot_delivery
API anahtarı ya da OAuth token · inbox:handle
  • Asıl adres: POST /api/v1/actions/inbox.record_bot_delivery

Girdi

AlanTürZorunluAçıklama
agentBotIduuidevetDoldurulduğu yer: adresteki {id} · Bot · kimliği: agent_bot
errorstringNe ters gitti · en çok 2000

Ön koşullar

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

KodNe zaman reddedilir
agent_bot_not_foundBot var olmalı.

Neye yazar: agent_bot (update) — Stamps the last delivery and its error

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

inbox.record_channel_health

Bağlantı testini kaydet — Kanalın şu anda sağlayıcısına ulaşıp ulaşamadığını yazar.

Gereken izin inbox:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/inboxes/{id}/actions/record_channel_health
API anahtarı ya da OAuth token · inbox:handle
  • Asıl adres: POST /api/v1/actions/inbox.record_channel_health

Girdi

AlanTürZorunluAçıklama
inboxIduuidevetDoldurulduğu yer: adresteki {id} · Gelen kutusu · kimliği: inbox
statusstring (enum)evetDurum · İzin verilen değerler: healthy, degraded, reauth_required
errorstringNeden · en çok 2000
detailsobject / arraySağlayıcı bilgileri

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.

Yayımladığı olaylar: inbox.channel_health_changed

Neye yazar: inbox (update) — Writes the health status, reason and provider details (quality rating, tier)

curl -X POST https://app.getera.io/api/v1/inboxes/INBOXE_ID/actions/record_channel_health \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"status":"healthy"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.channel_health_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxes.recordChannelHealth("INBOXE_ID", {
  status: "healthy"
})
era inboxes record_channel_health INBOXE_ID \
  --status "healthy"
tools/call
{
  "name": "era__inbox__record_channel_health",
  "arguments": {
    "inboxId": "INBOXE_ID",
    "status": "healthy"
  }
}

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

inbox.record_delivery

Kanalın bildirdiğini kaydet — Giden bir mesajı, kanalın bildirdiği gibi gönderildi, teslim edildi, okundu veya başarısız durumuna taşır.

Gereken izin inbox:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/messages/{id}/actions/record_delivery
API anahtarı ya da OAuth token · inbox:handle
  • Asıl adres: POST /api/v1/actions/inbox.record_delivery

Girdi

AlanTürZorunluAçıklama
messageIduuidDoldurulduğu yer: adresteki {id} · Mesaj · kimliği: message
inboxIduuidGelen kutusu · kimliği: inbox
sourceIdstringSağlayıcı mesaj kimliği · en çok 300
statusstring (enum)evetDurum · İzin verilen değerler: queued, sent, delivered, read, failed
generationnumberDeneme sırası · en az 0
providerMessageIdstringSağlayıcı mesaj kimliği · en çok 300
errorstringNeden · en çok 2000
attemptsnumberDenemeler · en az 0 · en çok 100

Ön koşullar

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

KodNe zaman reddedilir
message_not_foundMesaj bulunmalı.
message_not_outgoingYalnızca giden bir mesajın teslimat durumu olur.

Yayımladığı olaylar: inbox.message_delivered, inbox.message_failed

Neye yazar: message (update) — Writes the delivery state and the provider id

curl -X POST https://app.getera.io/api/v1/messages/MESSAGE_ID/actions/record_delivery \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"status":"queued"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.message_delivered",
    "inbox.message_failed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.messages.recordDelivery("MESSAGE_ID", {
  status: "queued"
})
era messages record_delivery MESSAGE_ID \
  --status "queued"
tools/call
{
  "name": "era__inbox__record_delivery",
  "arguments": {
    "messageId": "MESSAGE_ID",
    "status": "queued"
  }
}

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

inbox.record_poll_state

Posta kutusu imlecini kaydet — E-posta okuyucunun hangi mesajları zaten kaydettiğini hatırlar.

Gereken izin inbox:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/inboxes/{id}/actions/record_poll_state
API anahtarı ya da OAuth token · inbox:handle
  • Asıl adres: POST /api/v1/actions/inbox.record_poll_state

Girdi

AlanTürZorunluAçıklama
inboxIduuidevetDoldurulduğu yer: adresteki {id} · Gelen kutusu · kimliği: inbox
pollStateobject / arrayevetCursor

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
invalid_poll_stateİmleç bir nesnedir.

Neye yazar: inbox (update) — Writes the poll cursor

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxes.recordPollState("INBOXE_ID", {
  pollState: {}
})
era inboxes record_poll_state INBOXE_ID --data '{"pollState":{}}'
tools/call
{
  "name": "era__inbox__record_poll_state",
  "arguments": {
    "inboxId": "INBOXE_ID",
    "pollState": {}
  }
}

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

inbox.record_visitor_seen

Ziyaretçinin konuşmayı gördüğünü kaydet — Web sitesi ziyaretçisinin neyi okuduğunu işler ve o yanıtları okundu yapar.

Gereken izin inbox:handle · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/record_visitor_seen
API anahtarı ya da OAuth token · inbox:handle
  • Asıl adres: POST /api/v1/actions/inbox.record_visitor_seen

Girdi

AlanTürZorunluAçıklama
conversationIduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.

Neye yazar: conversation (update) — Stamps contact_last_seen_at; message (update) — Marks the replies it covered read

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.recordVisitorSeen("CONVERSATION_ID")
era conversations record_visitor_seen CONVERSATION_ID
tools/call
{
  "name": "era__inbox__record_visitor_seen",
  "arguments": {
    "conversationId": "CONVERSATION_ID"
  }
}

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

inbox.remove_participant

Takipçiyi kaldır — Birinin konuşmayı takip etmesini durdurur.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversation_participants/actions/remove_participant
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.remove_participant

Girdi

AlanTürZorunluAçıklama
iduuidevetKonuşma · kimliği: conversation
userIduuidevetKişi

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
not_participatingKişi şu anda bunu takip ediyor olmalı.

Neye yazar: conversation_participant (delete) — Removes the follower

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversationParticipants.removeParticipant({
  id: "CONVERSATION_ID",
  userId: "USER_ID"
})
era conversation_participants remove_participant \
  --id "CONVERSATION_ID" \
  --user-id "USER_ID"
tools/call
{
  "name": "era__inbox__remove_participant",
  "arguments": {
    "id": "CONVERSATION_ID",
    "userId": "USER_ID"
  }
}

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

inbox.reopen

Konuşmayı yeniden aç — Çözülmüş veya ertelenmiş bir konuşmayı kuyruğa geri getirir.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/reopen
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.reopen

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
already_openZaten açık olmamalı.

Yayımladığı olaylar: inbox.reopened

Neye yazar: conversation (update) — Reopens it; reporting_event (insert) — Writes the report clock reading (sql/126)

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.reopen("CONVERSATION_ID")
era conversations reopen CONVERSATION_ID
tools/call
{
  "name": "era__inbox__reopen",
  "arguments": {
    "id": "CONVERSATION_ID"
  }
}

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

inbox.reply

Yanıtla — Müşteriye teslim edilmek üzere bir mesajı sıraya koyar; ilk yanıtsa ilk yanıt zamanını işler.

Gereken izin inbox:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/reply
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.reply

Girdi

AlanTürZorunluAçıklama
conversationIduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
contentstringMesaj · en çok 150000
contentTypestring (enum)Tür · İzin verilen değerler: text, input_text, input_textarea, input_email, input_select, cards, form, article, incoming_email, input_csat, integrations, sticker, voice_call
attachmentsobject / arrayEkler
cannedResponseIduuidKayıtlı yanıt · kimliği: canned_response
templateIduuidWhatsApp şablonu · kimliği: whatsapp_message_template
templateVariablesobject / arrayŞablon değerleri
ccobject / arrayCc · Yalnızca e-posta: yanıtı alacak diğer adresler.
bccobject / arrayBcc · Yalnızca e-posta: yanıtı gizli olarak alacak adresler.
replyToMessageIduuidYanıtlanan mesaj · kimliği: message

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
empty_messageMesaj metin veya ek gerektirir.
too_many_attachmentsBir mesaj en fazla on beş ek taşır.
too_many_messagesBir konuşmada bir dakikada çok fazla mesaj.
canned_response_not_foundHazır yanıt hâlâ bulunmalı.
conversation_resolvedÇözülmüş bir konuşma yalnızca gelen kutusu izin veriyorsa yanıt alır.

Yayımladığı olaylar: inbox.message_sent, inbox.reopened

Neye yazar: message (insert) — Writes the message; message_attachment (insert) — Attaches files and locations; conversation (update) — Clears the waiting clock and stamps the first reply; reporting_event (insert) — Writes the report clock reading (sql/126)

curl -X POST https://app.getera.io/api/v1/conversations/CONVERSATION_ID/actions/reply \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"content":"Message"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.message_sent",
    "inbox.reopened"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.reply("CONVERSATION_ID", {
  content: "Message"
})
era conversations reply CONVERSATION_ID \
  --content "Message"
tools/call
{
  "name": "era__inbox__reply",
  "arguments": {
    "conversationId": "CONVERSATION_ID",
    "content": "Message"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde inbox:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 conversation_not_found, empty_message, too_many_attachments, too_many_messages, canned_response_not_found, conversation_resolved · 429 çok sık istek

inbox.reset_agent_bot_credentials

Botun anahtarını sıfırla — Yeni bir API anahtarı oluşturur ya da olayların imzalandığı anahtarı değiştirir.

Gereken izin inbox: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/agent_bots/{id}/actions/reset_agent_bot_credentials
API anahtarı ya da OAuth token · inbox:manage
  • Asıl adres: POST /api/v1/actions/inbox.reset_agent_bot_credentials

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Bot · kimliği: agent_bot
whatstring (enum)evetSıfırlanacak olan · İzin verilen değerler: token, secret

Ön koşullar

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

KodNe zaman reddedilir
agent_bot_not_foundBot var olmalı.

Yayımladığı olaylar: inbox.agent_bot_changed

Neye yazar: agent_bot (update) — Replaces the token hash, or moves the secret on a generation

curl -X POST https://app.getera.io/api/v1/agent_bots/AGENT_BOT_ID/actions/reset_agent_bot_credentials \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"what":"token"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.agent_bot_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.agentBots.resetAgentBotCredentials("AGENT_BOT_ID", {
  what: "token"
})
era agent_bots reset_agent_bot_credentials AGENT_BOT_ID \
  --what "token"
tools/call
{
  "name": "era__inbox__reset_agent_bot_credentials",
  "arguments": {
    "id": "AGENT_BOT_ID",
    "what": "token"
  }
}

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

inbox.resolve

Konuşmayı çöz — Konuşmayı kapatır ve bekleme sayacını durdurur.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/resolve
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.resolve

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
already_resolvedZaten çözülmüş olmamalı.

Yayımladığı olaylar: inbox.resolved, inbox.message_sent

Neye yazar: conversation (update) — Resolves it and clears the clock; message (insert) — Queues the rating request, when the inbox asks for one; reporting_event (insert) — Writes the report clock reading (sql/126)

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.resolve("CONVERSATION_ID")
era conversations resolve CONVERSATION_ID
tools/call
{
  "name": "era__inbox__resolve",
  "arguments": {
    "id": "CONVERSATION_ID"
  }
}

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

inbox.retry_delivery

Yeniden göndermeyi dene — Başarısız bir mesajı yeniden gönderir ya da çok uzun süre sırada kalanı iter.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/messages/{id}/actions/retry_delivery
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.retry_delivery

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Mesaj · kimliği: message

Ön koşullar

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

KodNe zaman reddedilir
message_not_foundMesaj bulunmalı.
message_not_outgoingYalnızca giden bir mesaj yeniden gönderilebilir.
not_retryableYalnızca başarısız ya da on dakikadır sırada bekleyen mesaj yeniden denenir.

Yayımladığı olaylar: inbox.delivery_retried

Neye yazar: message (update) — Queues it again under a new generation

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.messages.retryDelivery("MESSAGE_ID")
era messages retry_delivery MESSAGE_ID
tools/call
{
  "name": "era__inbox__retry_delivery",
  "arguments": {
    "id": "MESSAGE_ID"
  }
}

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

inbox.review_csat

Puanı incele — Müşterinin puanına ekibin notlarını bırakır.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/csat_survey_responses/{id}/actions/review_csat
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.review_csat

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Puan · kimliği: csat_survey_response
notesstringİnceleme notları · en çok 5000

Ön koşullar

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

KodNe zaman reddedilir
csat_not_foundPuan bulunmalı.

Neye yazar: csat_survey_response (update) — Writes the review notes

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.csatSurveyResponses.reviewCsat("CSAT_SURVEY_RESPONSE_ID", {
  notes: "Review notes"
})
era csat_survey_responses review_csat CSAT_SURVEY_RESPONSE_ID \
  --notes "Review notes"
tools/call
{
  "name": "era__inbox__review_csat",
  "arguments": {
    "id": "CSAT_SURVEY_RESPONSE_ID",
    "notes": "Review notes"
  }
}

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

inbox.run_macro

Makroyu çalıştır — Bir makronun her adımını seçilen konuşmalarda çalıştırır — hepsi ya da hiçbiri.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/messages/actions/run_macro
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.run_macro

Girdi

AlanTürZorunluAçıklama
iduuidevetMakro · kimliği: macro
conversationIdsobject / arrayevetKonuşmalar

Ön koşullar

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

KodNe zaman reddedilir
macro_not_foundMakro bulunmalı ve size görünür olmalı.
invalid_selectionBir ile yüz arasında konuşma seçilir.
invalid_macro_actionsAdımları artık okunamayan kayıtlı bir makro reddedilir.

Yayımladığı olaylar: inbox.assigned, inbox.team_assigned, inbox.resolved, inbox.reopened, inbox.snoozed, inbox.priority_changed, inbox.message_sent, inbox.note_added, inbox.mentioned, inbox.user_mentioned, inbox.macro_executed, inbox.muted, inbox.transcript_requested

Neye yazar: conversation (update) — Applies the macro’s conversation steps; message (insert) — Writes the macro’s messages and notes; inbox_member (update) — Moves an assignee to the back of the queue; conversation_mention (upsert) — Records mentions in a note step; conversation_participant (insert) — Adds the people mentioned; reporting_event (insert) — Writes the report clock reading (sql/126)

curl -X POST https://app.getera.io/api/v1/messages/actions/run_macro \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"MACRO_ID","conversationIds":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.assigned",
    "inbox.team_assigned",
    "inbox.resolved",
    "inbox.reopened",
    "inbox.snoozed",
    "inbox.priority_changed",
    "inbox.message_sent",
    "inbox.note_added",
    "inbox.mentioned",
    "inbox.user_mentioned",
    "inbox.macro_executed",
    "inbox.muted",
    "inbox.transcript_requested"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.messages.runMacro({
  id: "MACRO_ID",
  conversationIds: {}
})
era messages run_macro --data '{"id":"MACRO_ID","conversationIds":{}}'
tools/call
{
  "name": "era__inbox__run_macro",
  "arguments": {
    "id": "MACRO_ID",
    "conversationIds": {}
  }
}

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

inbox.save_agent_bot

Bot kaydet — Önce yanıtlayan ve yardımcı olamadığında devreden bir bot ekler ya da düzenler.

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

POSThttps://app.getera.io/api/v1/agent_bots/{id}/actions/save_agent_bot
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: PATCH /api/v1/agent_bots/{id}
  • Asıl adres: POST /api/v1/actions/inbox.save_agent_bot

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Bot · kimliği: agent_bot
namestringevetAd · en çok 200
descriptionstringAçıklama · en çok 2000
outgoingUrlstringOlaylarının gönderileceği adres · en çok 2048

Ön koşullar

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

KodNe zaman reddedilir
agent_bot_not_foundDeğiştirilen bot var olmalı.
bot_name_takenBot adları bir çalışma alanında benzersizdir.
invalid_outgoing_urlBotun adresi en fazla 2048 karakterlik bir http(s) adresidir.

Yayımladığı olaylar: inbox.agent_bot_changed

Neye yazar: agent_bot (upsert) — Registers the bot; a new one gets its API token

curl -X POST https://app.getera.io/api/v1/agent_bots/AGENT_BOT_ID/actions/save_agent_bot \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.agent_bot_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.agentBots.saveAgentBot("AGENT_BOT_ID", {
  name: "Name"
})
era agent_bots save_agent_bot AGENT_BOT_ID \
  --name "Name"
tools/call
{
  "name": "era__inbox__save_agent_bot",
  "arguments": {
    "id": "AGENT_BOT_ID",
    "name": "Name"
  }
}

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

inbox.save_assignment_policy

Yönlendirme kuralını kaydet — Konuşmaların nasıl paylaştırılacağına ve bir kişiye ne kadar düşeceğine karar verir.

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

POSThttps://app.getera.io/api/v1/assignment_policies/{id}/actions/save_assignment_policy
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: PATCH /api/v1/assignment_policies/{id}
  • Asıl adres: POST /api/v1/actions/inbox.save_assignment_policy

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Kural · kimliği: assignment_policy
namestringevetAd · en çok 200
descriptionstringAçıklama · en çok 2000
assignmentOrderstring (enum)Sipariş · İzin verilen değerler: round_robin, balanced
conversationPrioritystring (enum)Sıra · İzin verilen değerler: earliest_created, longest_waiting
fairDistributionLimitnumberSüre içinde temsilci başına en fazla · en az 1
fairDistributionWindownumberSüre (saniye) · en az 1
enabledbooleanEtkin

Ön koşullar

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

KodNe zaman reddedilir
invalid_policy_nameKuralın bir adı olmalı.
policy_name_takenKural adları çalışma alanında benzersizdir.
policy_not_foundDüzenlenen kural bulunmalı.

Yayımladığı olaylar: inbox.assignment_policy_changed

Neye yazar: assignment_policy (upsert) — Writes the routing rule

curl -X POST https://app.getera.io/api/v1/assignment_policies/ASSIGNMENT_POLICY_ID/actions/save_assignment_policy \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.assignment_policy_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.assignmentPolicies.saveAssignmentPolicy("ASSIGNMENT_POLICY_ID", {
  name: "Name"
})
era assignment_policies save_assignment_policy ASSIGNMENT_POLICY_ID \
  --name "Name"
tools/call
{
  "name": "era__inbox__save_assignment_policy",
  "arguments": {
    "id": "ASSIGNMENT_POLICY_ID",
    "name": "Name"
  }
}

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

inbox.save_canned_response

Hazır yanıtı kaydet — Temsilcilerin kısa kodunu yazarak ekleyebileceği bir yanıt ekler veya düzenler.

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

POSThttps://app.getera.io/api/v1/canned_responses/{id}/actions/save_canned_response
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: PATCH /api/v1/canned_responses/{id}
  • Asıl adres: POST /api/v1/actions/inbox.save_canned_response

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Kayıtlı yanıt · kimliği: canned_response
shortCodestringevetKısayol · Mesaj kutusunda eğik çizgiden sonra yazılan tek kelime. · en çok 60
contentstringevetYanıtla · en çok 150000

Ön koşullar

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

KodNe zaman reddedilir
invalid_short_codeKısa kod boşluksuz tek bir kelimedir.
empty_canned_responseHazır yanıt boş olamaz.
short_code_takenKısa kodlar çalışma alanında benzersizdir.
canned_response_not_foundDüzenlenen yanıt bulunmalı.

Yayımladığı olaylar: inbox.canned_response_changed

Neye yazar: canned_response (upsert) — Writes the saved reply

curl -X POST https://app.getera.io/api/v1/canned_responses/CANNED_RESPONSE_ID/actions/save_canned_response \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"shortCode":"Shortcut","content":"Reply"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.canned_response_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.cannedResponses.saveCannedResponse("CANNED_RESPONSE_ID", {
  shortCode: "Shortcut",
  content: "Reply"
})
era canned_responses save_canned_response CANNED_RESPONSE_ID \
  --short-code "Shortcut" \
  --content "Reply"
tools/call
{
  "name": "era__inbox__save_canned_response",
  "arguments": {
    "id": "CANNED_RESPONSE_ID",
    "shortCode": "Shortcut",
    "content": "Reply"
  }
}

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

inbox.save_macro

Makroyu kaydet — Temsilcinin bir konuşmada tek tıkla çalıştırdığı kayıtlı bir adım dizisini ekler veya düzenler.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/macros/{id}/actions/save_macro
API anahtarı ya da OAuth token · inbox:write
  • REST kısayolu: PATCH /api/v1/macros/{id}
  • Asıl adres: POST /api/v1/actions/inbox.save_macro

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Makro · kimliği: macro
namestringevetAd · en çok 200
visibilitystring (enum)Kimler kullanabilir · İzin verilen değerler: personal, global
actionsobject / arrayevetAdımlar

Ön koşullar

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

KodNe zaman reddedilir
invalid_macro_nameMakronun bir adı olmalı.
invalid_macro_actionsHer adım bu gelen kutusunun çalıştırabileceği bir adım olmalı ve değerini taşımalı.
global_macro_needs_manageMakroyu herkesle paylaşmak yönetim yetkisi gerektirir.
macro_not_foundDüzenlenen makro bulunmalı ve size görünür olmalı.
not_macro_ownerMakroyu yalnızca yazarı veya bir yönetici değiştirir.

Yayımladığı olaylar: inbox.macro_changed

Neye yazar: macro (upsert) — Writes the macro

curl -X POST https://app.getera.io/api/v1/macros/MACRO_ID/actions/save_macro \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name","actions":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.macro_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.macros.saveMacro("MACRO_ID", {
  name: "Name",
  actions: {}
})
era macros save_macro MACRO_ID --data '{"name":"Name","actions":{}}'
tools/call
{
  "name": "era__inbox__save_macro",
  "arguments": {
    "id": "MACRO_ID",
    "name": "Name",
    "actions": {}
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde inbox:write izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_macro_name, invalid_macro_actions, global_macro_needs_manage, macro_not_found, not_macro_owner · 429 çok sık istek

inbox.save_reply_from_message

Bunu hazır yanıt olarak kaydet — İşe yarar bir mesajı ortak hazır yanıt kitaplığına kopyalar.

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

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

Girdi

AlanTürZorunluAçıklama
iduuidevetMesaj · kimliği: message
shortCodestringevetKısayol · en çok 60

Ön koşullar

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

KodNe zaman reddedilir
message_not_foundMesaj bulunamadı.
invalid_short_codeKısa kod boşluksuz tek bir kelimedir.
empty_canned_responseHazır yanıta dönüştürmek için mesajda metin olmalı.
short_code_takenKısa kodlar çalışma alanında benzersizdir.

Yayımladığı olaylar: inbox.canned_response_changed

Neye yazar: canned_response (insert) — Adds the copied reply

curl -X POST https://app.getera.io/api/v1/canned_responses/actions/save_reply_from_message \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"MESSAGE_ID","shortCode":"Shortcut"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.canned_response_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.cannedResponses.saveReplyFromMessage({
  id: "MESSAGE_ID",
  shortCode: "Shortcut"
})
era canned_responses save_reply_from_message \
  --id "MESSAGE_ID" \
  --short-code "Shortcut"
tools/call
{
  "name": "era__inbox__save_reply_from_message",
  "arguments": {
    "id": "MESSAGE_ID",
    "shortCode": "Shortcut"
  }
}

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

inbox.save_sla_policy

SLA politikasını kaydet — Bir yanıt süresi hedefi oluşturur veya değiştirir.

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

POSThttps://app.getera.io/api/v1/sla_policies/{id}/actions/save_sla_policy
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: PATCH /api/v1/sla_policies/{id}
  • Asıl adres: POST /api/v1/actions/inbox.save_sla_policy

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Politika · kimliği: sla_policy
namestringevetAd · en çok 200
descriptionstringAçıklama · en çok 2000
firstResponseSecondsnumberİlk yanıt süresi (saniye) · en az 0
nextResponseSecondsnumberSonraki yanıt süresi (saniye) · en az 0
resolutionSecondsnumberÇözüm süresi (saniye) · en az 0
onlyDuringBusinessHoursbooleanYalnızca çalışma saatlerini say

Ön koşullar

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

KodNe zaman reddedilir
sla_threshold_requiredÜç hedeften en az biri belirlenmeli.
sla_name_takenPolitika adları çalışma alanında benzersizdir.
sla_policy_not_foundDeğiştirilen politika bulunmalı.

Yayımladığı olaylar: inbox.sla_policy_changed

Neye yazar: sla_policy (upsert) — Writes the policy

curl -X POST https://app.getera.io/api/v1/sla_policies/SLA_POLICY_ID/actions/save_sla_policy \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.sla_policy_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.slaPolicies.saveSlaPolicy("SLA_POLICY_ID", {
  name: "Name"
})
era sla_policies save_sla_policy SLA_POLICY_ID \
  --name "Name"
tools/call
{
  "name": "era__inbox__save_sla_policy",
  "arguments": {
    "id": "SLA_POLICY_ID",
    "name": "Name"
  }
}

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

inbox.save_team

Ekibi kaydet — Konuşmaların yönlendirilebileceği bir ekip ekler veya düzenler.

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

POSThttps://app.getera.io/api/v1/teams/{id}/actions/save_team
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: PATCH /api/v1/teams/{id}
  • Asıl adres: POST /api/v1/actions/inbox.save_team

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Ekip · kimliği: team
namestringevetAd · en çok 200
descriptionstringAçıklama · en çok 2000
allowAutoAssignbooleanEkip içinde otomatik ata · Kapalıysa buraya yönlendirilen konuşmalar birinin üstlenmesini bekler.

Ön koşullar

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

KodNe zaman reddedilir
invalid_team_nameEkibin bir adı olmalı.
team_name_takenEkip adları çalışma alanında benzersizdir.
team_not_foundDüzenlenen ekip bulunmalı.

Yayımladığı olaylar: inbox.team_changed

Neye yazar: team (upsert) — Writes the team

curl -X POST https://app.getera.io/api/v1/teams/TEAM_ID/actions/save_team \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.team_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.teams.saveTeam("TEAM_ID", {
  name: "Name"
})
era teams save_team TEAM_ID \
  --name "Name"
tools/call
{
  "name": "era__inbox__save_team",
  "arguments": {
    "id": "TEAM_ID",
    "name": "Name"
  }
}

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

inbox.send_transcript

Dökümü e-postala — Konuşmanın herkese açık tüm mesajlarını bir e-posta adresine gönderir.

Gereken izin inbox:write · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)

POSThttps://app.getera.io/api/v1/actions/inbox.send_transcript
API anahtarı ya da OAuth token · inbox:write

Girdi

AlanTürZorunluAçıklama
iduuidevetKonuşma · kimliği: conversation
emailemailGönderilecek adres

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
no_email_addressBir adres olmalı — verilen ya da kişinin kendi adresi.
transcript_emptyKonuşmada herkese açık bir şey olmalı.

Yayımladığı olaylar: inbox.transcript_requested

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.actions.run("inbox.send_transcript", {
  id: "CONVERSATION_ID"
})
era inbox send_transcript \
  --id "CONVERSATION_ID"
tools/call
{
  "name": "era__inbox__send_transcript",
  "arguments": {
    "id": "CONVERSATION_ID"
  }
}

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

inbox.set_auto_resolve

Otomatik çözmeyi ayarla — Bu gelen kutusunda hareketsiz kalan açık konuşmaları seçilen saat sayısından sonra çözer.

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

POSThttps://app.getera.io/api/v1/inboxes/{id}/actions/set_auto_resolve
API anahtarı ya da OAuth token · inbox:manage
  • Asıl adres: POST /api/v1/actions/inbox.set_auto_resolve

Girdi

AlanTürZorunluAçıklama
inboxIduuidevetDoldurulduğu yer: adresteki {id} · Gelen kutusu · kimliği: inbox
hoursnumberHareketsizlik süresi (saat) · en az 1 · en çok 8760
messagestringEtkinlik notu · en çok 2000

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.

Yayımladığı olaylar: inbox.auto_resolve_changed

Neye yazar: inbox (update) — Writes the inactivity policy

curl -X POST https://app.getera.io/api/v1/inboxes/INBOXE_ID/actions/set_auto_resolve \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"hours":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.auto_resolve_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxes.setAutoResolve("INBOXE_ID", {
  hours: 1
})
era inboxes set_auto_resolve INBOXE_ID \
  --hours 1
tools/call
{
  "name": "era__inbox__set_auto_resolve",
  "arguments": {
    "inboxId": "INBOXE_ID",
    "hours": 1
  }
}

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

inbox.set_inbox_bot

Kanalın botunu seç — Bir botu kanalda önce yanıtlayan yapar ya da kaldırır.

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

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

Girdi

AlanTürZorunluAçıklama
inboxIduuidevetGelen kutusu · kimliği: inbox
agentBotIduuidBot · kimliği: agent_bot

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
agent_bot_not_foundBot var olmalı.

Yayımladığı olaylar: inbox.agent_bot_changed

Neye yazar: agent_bot_inbox (upsert) — One active bot per inbox, or none

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.agentBotInboxes.setInboxBot({
  inboxId: "INBOX_ID"
})
era agent_bot_inboxes set_inbox_bot \
  --inbox-id "INBOX_ID"
tools/call
{
  "name": "era__inbox__set_inbox_bot",
  "arguments": {
    "inboxId": "INBOX_ID"
  }
}

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

inbox.set_inbox_members

Gelen kutusunda kimin çalışacağını belirle — Bu kanalı gören ve ona atanabilen kişilerin listesini değiştirir.

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

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

Girdi

AlanTürZorunluAçıklama
iduuidevetGelen kutusu · kimliği: inbox
userIdsobject / arrayevetKişiler

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
not_a_memberListelenen herkes çalışma alanının aktif bir üyesi olmalı.

Yayımladığı olaylar: inbox.members_changed

Neye yazar: inbox_member (upsert) — Replaces the rota

curl -X POST https://app.getera.io/api/v1/inbox_members/actions/set_inbox_members \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"INBOX_ID","userIds":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.members_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxMembers.setInboxMembers({
  id: "INBOX_ID",
  userIds: {}
})
era inbox_members set_inbox_members --data '{"id":"INBOX_ID","userIds":{}}'
tools/call
{
  "name": "era__inbox__set_inbox_members",
  "arguments": {
    "id": "INBOX_ID",
    "userIds": {}
  }
}

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

inbox.set_inbox_policy

Gelen kutusunun yönlendirme kuralını belirle — Bir kanala bir yönlendirme kuralı bağlar ya da kaldırır.

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

POSThttps://app.getera.io/api/v1/inboxes/{id}/actions/set_inbox_policy
API anahtarı ya da OAuth token · inbox:manage
  • Asıl adres: POST /api/v1/actions/inbox.set_inbox_policy

Girdi

AlanTürZorunluAçıklama
inboxIduuidevetDoldurulduğu yer: adresteki {id} · Gelen kutusu · kimliği: inbox
policyIduuidKural · kimliği: assignment_policy

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
policy_not_foundKural bulunmalı.

Yayımladığı olaylar: inbox.assignment_policy_changed

Neye yazar: inbox (update) — Points the inbox at the rule

curl -X POST https://app.getera.io/api/v1/inboxes/INBOXE_ID/actions/set_inbox_policy \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"policyId":"ASSIGNMENT_POLICY_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.assignment_policy_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxes.setInboxPolicy("INBOXE_ID", {
  policyId: "ASSIGNMENT_POLICY_ID"
})
era inboxes set_inbox_policy INBOXE_ID \
  --policy-id "ASSIGNMENT_POLICY_ID"
tools/call
{
  "name": "era__inbox__set_inbox_policy",
  "arguments": {
    "inboxId": "INBOXE_ID",
    "policyId": "ASSIGNMENT_POLICY_ID"
  }
}

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

inbox.set_mailbox

Posta kutusunu Gmail ya da Outlook ile bağla — Bir e-posta gelen kutusunu şifreli sunucu yerine bağlı bir Gmail ya da Outlook hesabıyla okur ve yanıtlar.

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

POSThttps://app.getera.io/api/v1/inboxes/{id}/actions/set_mailbox
API anahtarı ya da OAuth token · inbox:manage
  • Asıl adres: POST /api/v1/actions/inbox.set_mailbox

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Gelen kutusu · kimliği: inbox
credentialIduuidevetHesap

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
not_an_email_inboxYalnız e-posta gelen kutusunun bağlanacak bir posta kutusu vardır.
mailbox_connection_requiredGiriş yapılacak hesap belirtilmeli.
connection_not_foundHesap bu çalışma alanında hâlâ bağlı olmalı.
mailbox_not_mail_appHesap bir Gmail ya da Outlook bağlantısı olmalı.
connection_not_usableHesap bu kişinin, şirketin ya da onunla paylaşılmış olmalı.
connection_inactiveHesap etkin olmalı; duraklatılmış ya da iptal edilmiş olamaz.

Yayımladığı olaylar: inbox.channel_updated

Neye yazar: inbox (update) — Points the channel at the account and restarts its mail cursor

curl -X POST https://app.getera.io/api/v1/inboxes/INBOXE_ID/actions/set_mailbox \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"credentialId":"CREDENTIAL_ID"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.channel_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxes.setMailbox("INBOXE_ID", {
  credentialId: "CREDENTIAL_ID"
})
era inboxes set_mailbox INBOXE_ID \
  --credential-id "CREDENTIAL_ID"
tools/call
{
  "name": "era__inbox__set_mailbox",
  "arguments": {
    "id": "INBOXE_ID",
    "credentialId": "CREDENTIAL_ID"
  }
}

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

inbox.set_member_preference

Gelen kutusu tercihlerini kaydet — Gelen kutusu için müsaitlik durumunuzu, imzanızı ve ses tercihinizi belirler.

Gereken izin inbox:read · veriyi değiştirir

POSThttps://app.getera.io/api/v1/inbox_member_preferences/actions/set_member_preference
API anahtarı ya da OAuth token · inbox:read
  • Asıl adres: POST /api/v1/actions/inbox.set_member_preference

Girdi

AlanTürZorunluAçıklama
availabilitystring (enum)Müsaitlik · İzin verilen değerler: online, busy, offline
messageSignaturestringMesaj imzası · en çok 2000
audioAlertsbooleanSesli uyarıları çal

Yayımladığı olaylar: inbox.member_preference_changed

Neye yazar: inbox_member_preference (upsert) — Writes the member preference

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxMemberPreferences.setMemberPreference({
  availability: "online"
})
era inbox_member_preferences set_member_preference \
  --availability "online"
tools/call
{
  "name": "era__inbox__set_member_preference",
  "arguments": {
    "availability": "online"
  }
}

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

inbox.set_priority

Önceliği belirle — Konuşmayı önceliklendirir ya da önceliksiz bırakır.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/set_priority
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.set_priority

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
prioritystring (enum)Öncelik · İzin verilen değerler: low, medium, high, urgent

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.

Yayımladığı olaylar: inbox.priority_changed

Neye yazar: conversation (update) — Sets the priority

curl -X POST https://app.getera.io/api/v1/conversations/CONVERSATION_ID/actions/set_priority \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"priority":"low"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.priority_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.setPriority("CONVERSATION_ID", {
  priority: "low"
})
era conversations set_priority CONVERSATION_ID \
  --priority "low"
tools/call
{
  "name": "era__inbox__set_priority",
  "arguments": {
    "id": "CONVERSATION_ID",
    "priority": "low"
  }
}

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

inbox.set_team_members

Ekip üyelerini belirle — Ekipte kimlerin olduğunu değiştirir.

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

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

Girdi

AlanTürZorunluAçıklama
iduuidevetEkip · kimliği: team
userIdsobject / arrayevetKişiler

Ön koşullar

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

KodNe zaman reddedilir
team_not_foundEkip bulunmalı.
not_a_memberListelenen herkes çalışma alanının aktif bir üyesi olmalı.

Yayımladığı olaylar: inbox.team_changed

Neye yazar: team_member (upsert) — Replaces the membership

curl -X POST https://app.getera.io/api/v1/team_members/actions/set_team_members \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"id":"TEAM_ID","userIds":{}}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.team_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.teamMembers.setTeamMembers({
  id: "TEAM_ID",
  userIds: {}
})
era team_members set_team_members --data '{"id":"TEAM_ID","userIds":{}}'
tools/call
{
  "name": "era__inbox__set_team_members",
  "arguments": {
    "id": "TEAM_ID",
    "userIds": {}
  }
}

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

inbox.set_working_hours

Çalışma saatlerini belirle — Kanalın ne zaman yanıt verdiğini ve kimse yokken ne söylediğini ayarlar.

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

POSThttps://app.getera.io/api/v1/inboxes/{id}/actions/set_working_hours
API anahtarı ya da OAuth token · inbox:manage
  • Asıl adres: POST /api/v1/actions/inbox.set_working_hours

Girdi

AlanTürZorunluAçıklama
inboxIduuidevetDoldurulduğu yer: adresteki {id} · Gelen kutusu · kimliği: inbox
daysobject / arrayevetHafta
workingHoursEnabledbooleanÇalışma saatlerini kullan
outOfOfficeMessagestringMesai dışı mesajı · en çok 10000
timezonestringSaat dilimi · en çok 100

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
invalid_working_hoursHer gün kapalı, tüm gün açık ya da bir saatten daha geç bir saate kadar açıktır.
unknown_timezoneSaat dilimi sunucunun bildiği bir saat dilimi olmalı.

Yayımladığı olaylar: inbox.working_hours_changed

Neye yazar: inbox_working_hour (upsert) — Writes the week; inbox (update) — Switches hours on or off and sets the out-of-office text

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxes.setWorkingHours("INBOXE_ID", {
  days: {}
})
era inboxes set_working_hours INBOXE_ID --data '{"days":{}}'
tools/call
{
  "name": "era__inbox__set_working_hours",
  "arguments": {
    "inboxId": "INBOXE_ID",
    "days": {}
  }
}

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

inbox.snooze

Konuşmayı ertele — Konuşmayı seçtiğiniz ana kadar bir kenara koyar.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/snooze
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.snooze

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation
untildate-timeevetBitiş

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
snooze_not_in_futureErteleme gelecekte bitmeli.

Yayımladığı olaylar: inbox.snoozed

Neye yazar: conversation (update) — Snoozes it

curl -X POST https://app.getera.io/api/v1/conversations/CONVERSATION_ID/actions/snooze \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"until":"2026-11-02T09:00:00Z"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.snoozed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.snooze("CONVERSATION_ID", {
  until: "2026-11-02T09:00:00Z"
})
era conversations snooze CONVERSATION_ID \
  --until "2026-11-02T09:00:00Z"
tools/call
{
  "name": "era__inbox__snooze",
  "arguments": {
    "id": "CONVERSATION_ID",
    "until": "2026-11-02T09:00:00Z"
  }
}

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

inbox.submit_csat

Puanı al — Müşterinin çözülmüş bir konuşma için verdiği 1–5 puanı ve yorumu kaydeder.

Gereken izin inbox:handle · dışarıya ulaşır (gönderir, yayımlar ya da ücret alır)

POSThttps://app.getera.io/api/v1/csat_survey_responses/actions/submit_csat
API anahtarı ya da OAuth token · inbox:handle
  • Asıl adres: POST /api/v1/actions/inbox.submit_csat

Girdi

AlanTürZorunluAçıklama
conversationIduuidevetKonuşma · kimliği: conversation
ratingnumberevetPuan · en az 1 · en çok 5
feedbackMessagestringYorum · en çok 5000

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
no_csat_surveyPuan, onu isteyen bir anket gerektirir.
csat_lockedAnket gönderildikten on dört gün sonra kilitlenir.

Yayımladığı olaylar: inbox.csat_received

Neye yazar: csat_survey_response (upsert) — Files or replaces the rating; message (update) — Keeps the answer on the survey message

curl -X POST https://app.getera.io/api/v1/csat_survey_responses/actions/submit_csat \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"conversationId":"CONVERSATION_ID","rating":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.csat_received"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.csatSurveyResponses.submitCsat({
  conversationId: "CONVERSATION_ID",
  rating: 1
})
era csat_survey_responses submit_csat \
  --conversation-id "CONVERSATION_ID" \
  --rating 1
tools/call
{
  "name": "era__inbox__submit_csat",
  "arguments": {
    "conversationId": "CONVERSATION_ID",
    "rating": 1
  }
}

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

inbox.sync_whatsapp_templates

WhatsApp şablonlarını eşitle — Onaylı şablonları bağlı Meta işletme hesabından, erişim anahtarını göstermeden okur.

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

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

Girdi

AlanTürZorunluAçıklama
inboxIduuidevetWhatsApp gelen kutusu · kimliği: inbox

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
whatsapp_not_connectedGelen kutusu, işletme hesabı tanımlı bağlı bir WhatsApp kanalı olmalı.

Yayımladığı olaylar: inbox.whatsapp_templates_synced

Neye yazar: whatsapp_message_template (upsert) — Refreshes the approved template catalogue

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.whatsappMessageTemplates.syncWhatsappTemplates({
  inboxId: "INBOX_ID"
})
era whatsapp_message_templates sync_whatsapp_templates \
  --inbox-id "INBOX_ID"
tools/call
{
  "name": "era__inbox__sync_whatsapp_templates",
  "arguments": {
    "inboxId": "INBOX_ID"
  }
}

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

inbox.translate_message

Mesajı çevir — Çalışma alanının yapay zekâ sağlayıcısını kullanır ve çeviriyi asıl mesajla birlikte saklar.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/messages/{id}/actions/translate_message
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.translate_message

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Mesaj · kimliği: message
languagestringevetDil · en çok 80

Ön koşullar

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

KodNe zaman reddedilir
message_not_foundMesaj bulunamadı.

Yayımladığı olaylar: inbox.message_translated

Neye yazar: message (update) — Stores the translation in message metadata

curl -X POST https://app.getera.io/api/v1/messages/MESSAGE_ID/actions/translate_message \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"language":"Language"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.message_translated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.messages.translateMessage("MESSAGE_ID", {
  language: "Language"
})
era messages translate_message MESSAGE_ID \
  --language "Language"
tools/call
{
  "name": "era__inbox__translate_message",
  "arguments": {
    "id": "MESSAGE_ID",
    "language": "Language"
  }
}

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

inbox.unmute

Sesi aç — Sonraki mesajın konuşmayı yeniden açmasına izin verir.

Gereken izin inbox:write · veriyi değiştirir

POSThttps://app.getera.io/api/v1/conversations/{id}/actions/unmute
API anahtarı ya da OAuth token · inbox:write
  • Asıl adres: POST /api/v1/actions/inbox.unmute

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Konuşma · kimliği: conversation

Ön koşullar

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

KodNe zaman reddedilir
conversation_not_foundKonuşma bulunmalı.
not_mutedSessizde olmalı.

Yayımladığı olaylar: inbox.unmuted

Neye yazar: conversation (update) — Clears the mute

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.conversations.unmute("CONVERSATION_ID")
era conversations unmute CONVERSATION_ID
tools/call
{
  "name": "era__inbox__unmute",
  "arguments": {
    "id": "CONVERSATION_ID"
  }
}

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

inbox.update_inbox

Gelen kutusunu düzenle — Kanalın karşılama mesajını, saatlerini, anketlerini ve yanıt kurallarını değiştirir.

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

POSThttps://app.getera.io/api/v1/inboxes/{id}/actions/update_inbox
API anahtarı ya da OAuth token · inbox:manage
  • REST kısayolu: PATCH /api/v1/inboxes/{id}
  • Asıl adres: POST /api/v1/actions/inbox.update_inbox

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Gelen kutusu · kimliği: inbox
namestringAd · en çok 200
greetingEnabledbooleanKarşılama gönder
greetingMessagestringKarşılama · en çok 2000
outOfOfficeMessagestringMesai dışı mesajı · en çok 2000
workingHoursEnabledbooleanYalnızca çalışma saatlerinde yanıtla
timezonestringSaat dilimi · en çok 64
enableAutoAssignmentbooleanOtomatik ata
enableEmailCollectbooleanE-posta adresi iste
csatSurveyEnabledbooleanÇözüldüğünde puan iste
allowMessagesAfterResolvedbooleanÇözüldükten sonra yanıtlara izin ver
lockToSingleConversationbooleanKişi başına bir konuşma
senderNameTypestring (enum)Gönderen adı · İzin verilen değerler: friendly, professional
businessNamestringİşletme adı · en çok 200
helpSiteIduuidYardım merkezi · kimliği: site
channelConfigobject / arrayKanal ayarları
csatConfigobject / arrayAnket ayarları

Ön koşullar

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

KodNe zaman reddedilir
inbox_not_foundGelen kutusu bulunmalı.
invalid_csat_configAnketin gösterim ve etiket kuralı bilinen seçeneklerden olmalı.
unknown_timezoneSaat dilimi bu sunucunun bildiği bir saat dilimi olmalı.

Yayımladığı olaylar: inbox.channel_updated

Neye yazar: inbox (update) — Updates the channel’s settings

curl -X POST https://app.getera.io/api/v1/inboxes/INBOXE_ID/actions/update_inbox \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "inbox.channel_updated"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.inboxes.updateInbox("INBOXE_ID", {
  name: "Name"
})
era inboxes update_inbox INBOXE_ID \
  --name "Name"
tools/call
{
  "name": "era__inbox__update_inbox",
  "arguments": {
    "id": "INBOXE_ID",
    "name": "Name"
  }
}

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

Veri modelleri

AgentBotInbox

Tablo agent_bot_inbox · Kaynak agent_bot_inboxes

  • GET /api/v1/agent_bot_inboxes
  • GET /api/v1/agent_bot_inboxes/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
inbox_idstring (uuid) · uuidinbox
agent_bot_idstring (uuid) · uuidagent_bot
statusstring · textactive, inactive
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

AgentBot

Tablo agent_bot · Kaynak agent_bots

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
descriptionstring · textevet
bot_typestring · text
outgoing_urlstring · textevet
bot_configobject · jsonb
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
last_delivery_atstring (date-time) · timestamptzevet
last_delivery_errorstring · textevet

Birincil anahtar: id

Denetimler:

  • CHECK ((bot_type = 'webhook'::text))
  • CHECK (((last_delivery_error IS NULL) OR (length(last_delivery_error) <= 2000)))
  • CHECK (((name = btrim(name)) AND (length(name) > 0)))
  • CHECK (((outgoing_url IS NULL) OR ((length(outgoing_url) <= 2048) AND (outgoing_url ~ '^https?://'::text))))

AppliedSla

Tablo applied_sla · Kaynak applied_slas

  • GET /api/v1/applied_slas
  • GET /api/v1/applied_slas/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
conversation_idstring (uuid) · uuidconversation
sla_policy_idstring (uuid) · uuidsla_policy
sla_statusstring · textactive, hit, missed, active_with_misses
evaluated_atstring (date-time) · timestamptzevet
next_deadline_atstring (date-time) · timestamptzevet
next_deadline_typestring · textevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((next_deadline_type IS NULL) OR (next_deadline_type = ANY (ARRAY['frt'::text, 'nrt'::text, 'rt'::text]))))

AssignmentPolicy

Tablo assignment_policy · Kaynak assignment_policies

  • GET /api/v1/assignment_policies
  • GET /api/v1/assignment_policies/{id}
  • PATCH /api/v1/assignment_policies/{id} → inbox.save_assignment_policy
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
descriptionstring · textevet
assignment_orderstring · textround_robin, balanced
conversation_prioritystring · textearliest_created, longest_waiting
fair_distribution_limitinteger · int4
fair_distribution_windowinteger · int4
enabledboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((fair_distribution_limit > 0))
  • CHECK ((fair_distribution_window > 0))
  • CHECK (((name = btrim(name)) AND (length(name) > 0)))

CannedResponse

Tablo canned_response · Kaynak canned_responses

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
short_codestring · text
contentstring · text
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((length(btrim(content)) > 0) AND (length(content) <= 150000)))
  • CHECK (((short_code = lower(btrim(short_code))) AND (length(short_code) > 0) AND (short_code !~ '\s'::text)))

ConversationMention

Tablo conversation_mention · Kaynak conversation_mentions

  • GET /api/v1/conversation_mentions
  • GET /api/v1/conversation_mentions/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
conversation_idstring (uuid) · uuidconversation
user_idstring (uuid) · uuidapp_user
message_idstring (uuid) · uuidevetmessage
mentioned_bystring (uuid) · uuidevetapp_user
mentioned_atstring (date-time) · timestamptz
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

ConversationParticipant

Tablo conversation_participant · Kaynak conversation_participants

  • GET /api/v1/conversation_participants
  • GET /api/v1/conversation_participants/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
conversation_idstring (uuid) · uuidconversation
user_idstring (uuid) · uuidapp_user
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Conversation

Tablo conversation · Kaynak conversations

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
inbox_idstring (uuid) · uuidinbox
customer_idstring (uuid) · uuidcustomer
customer_identity_idstring (uuid) · uuidevetcustomer_identity
statusstring · textopen, resolved, pending, snoozed
prioritystring · textevet
assignee_user_idstring (uuid) · uuidevetapp_user
assignee_agent_bot_idstring (uuid) · uuidevetagent_bot
assignee_set_atstring (date-time) · timestamptzevet
team_idstring (uuid) · uuidevetteam
campaign_idstring (uuid) · uuidevet
display_nostring (int64) · int8
external_identifierstring · textevet
additional_attributesobject · jsonb
custom_attributesobject · jsonb
contact_last_seen_atstring (date-time) · timestamptzevet
agent_last_seen_atstring (date-time) · timestamptzevet
assignee_last_seen_atstring (date-time) · timestamptzevet
first_reply_created_atstring (date-time) · timestamptzevet
waiting_sincestring (date-time) · timestamptzevet
snoozed_untilstring (date-time) · timestamptzevet
last_activity_atstring (date-time) · timestamptz
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
muted_atstring (date-time) · timestamptzevet
era_modestring · textevet
era_assigned_bystring (uuid) · uuidevetapp_user
era_assigned_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Denetimler:

  • CHECK (((assignee_user_id IS NULL) OR (assignee_agent_bot_id IS NULL)))
  • CHECK (((era_mode IS NULL) OR (era_mode = ANY (ARRAY['draft'::text, 'answer'::text]))))
  • CHECK (((priority IS NULL) OR (priority = ANY (ARRAY['low'::text, 'medium'::text, 'high'::text, 'urgent'::text]))))
  • CHECK (((snoozed_until IS NULL) OR (status = 'snoozed'::text)))

CsatSurveyResponse

Tablo csat_survey_response · Kaynak csat_survey_responses

  • GET /api/v1/csat_survey_responses
  • GET /api/v1/csat_survey_responses/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
conversation_idstring (uuid) · uuidconversation
message_idstring (uuid) · uuidmessage
customer_idstring (uuid) · uuidevetcustomer
assigned_agent_user_idstring (uuid) · uuidevetapp_user
ratinginteger · int4
feedback_messagestring · textevet
csat_review_notesstring · textevet
review_notes_updated_atstring (date-time) · timestamptzevet
review_notes_updated_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((csat_review_notes IS NULL) OR (length(csat_review_notes) <= 5000)))
  • CHECK (((feedback_message IS NULL) OR (length(feedback_message) <= 5000)))
  • CHECK (((rating >= 1) AND (rating <= 5)))

InboxMemberPreference

Tablo inbox_member_preference · Kaynak inbox_member_preferences

  • GET /api/v1/inbox_member_preferences
  • GET /api/v1/inbox_member_preferences/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
user_idstring (uuid) · uuidapp_user
availability_statusstring · textonline, busy, offline
message_signaturestring · textevet
audio_alertsboolean · bool
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, user_id

Denetimler:

  • CHECK (((message_signature IS NULL) OR (length(message_signature) <= 2000)))

InboxMember

Tablo inbox_member · Kaynak inbox_members

  • GET /api/v1/inbox_members
  • GET /api/v1/inbox_members/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
inbox_idstring (uuid) · uuidinbox
user_idstring (uuid) · uuidapp_user
last_assigned_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz

Birincil anahtar: id

InboxWorkingHour

Tablo inbox_working_hour · Kaynak inbox_working_hours

  • GET /api/v1/inbox_working_hours
  • GET /api/v1/inbox_working_hours/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
inbox_idstring (uuid) · uuidinbox
weekdayinteger · int2
closed_all_dayboolean · bool
open_all_dayboolean · bool
opens_atstring (time) · timeevet
closes_atstring (time) · timeevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((NOT (closed_all_day AND open_all_day)))
  • CHECK ((closed_all_day OR open_all_day OR ((opens_at IS NOT NULL) AND (closes_at IS NOT NULL) AND (closes_at > opens_at))))
  • CHECK (((weekday >= 0) AND (weekday <= 6)))

Inbox

Tablo inbox · Kaynak inboxes

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
channel_typestring · textweb_widget, api, email, whatsapp, sms, twilio_sms, facebook_page, instagram, telegram, line, tiktok, twitter, voice
identifierstring · textevet
channel_configobject · jsonb
needs_reauthboolean · bool
is_activeboolean · bool
enable_auto_assignmentboolean · bool
assignment_policy_idstring (uuid) · uuidevetassignment_policy
greeting_enabledboolean · bool
greeting_messagestring · textevet
email_addressstring · textevet
working_hours_enabledboolean · bool
out_of_office_messagestring · textevet
timezonestring · text
enable_email_collectboolean · bool
csat_survey_enabledboolean · bool
csat_configobject · jsonb
allow_messages_after_resolvedboolean · bool
lock_to_single_conversationboolean · bool
sender_name_typestring · textfriendly, professional
business_namestring · textevet
help_site_idstring (uuid) · uuidevetsite
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
health_statusstring · textunknown, healthy, degraded, reauth_required
health_checked_atstring (date-time) · timestamptzevet
health_errorstring · textevet
poll_stateobject · jsonb
auto_resolve_after_hoursinteger · int4evet
auto_resolve_messagestring · textevet
health_detailsobject · jsonb

Birincil anahtar: id

Denetimler:

  • CHECK (((auto_resolve_after_hours IS NULL) OR ((auto_resolve_after_hours >= 1) AND (auto_resolve_after_hours <= 8760))))
  • CHECK (((health_error IS NULL) OR (length(health_error) <= 2000)))
  • CHECK (((identifier IS NULL) OR ((identifier = btrim(identifier)) AND (length(identifier) > 0))))
  • CHECK (((name = btrim(name)) AND (length(name) > 0)))
  • CHECK ((jsonb_typeof(poll_state) = 'object'::text))
  • CHECK (((channel_type <> ALL (ARRAY['sms'::text, 'twilio_sms'::text])) OR (COALESCE((channel_config ->> 'provider'::text), 'twilio'::text) = ANY (ARRAY['twilio'::text, 'netgsm'::text]))))

Macro

Tablo macro · Kaynak macros

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
visibilitystring · textpersonal, global
actionsobject · jsonb
created_bystring (uuid) · uuidevetapp_user
updated_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((jsonb_typeof(actions) = 'array'::text))
  • CHECK (((name = btrim(name)) AND ((length(name) >= 1) AND (length(name) <= 200))))

MessageAttachment

Tablo message_attachment · Kaynak message_attachments

  • GET /api/v1/message_attachments
  • GET /api/v1/message_attachments/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
message_idstring (uuid) · uuidmessage
conversation_idstring (uuid) · uuidconversation
kindstring · textimage, audio, video, file, location, fallback, share, story_mention, contact, ig_reel, ig_post, ig_story, embed
file_idstring (uuid) · uuidevetfile
external_urlstring · textevet
coordinates_latnumber · float8evet
coordinates_longnumber · float8evet
fallback_titlestring · textevet
metaobject · jsonb
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((kind <> ALL (ARRAY['image'::text, 'audio'::text, 'video'::text, 'file'::text])) OR (file_id IS NOT NULL)))
  • CHECK (((kind <> 'location'::text) OR ((coordinates_lat IS NOT NULL) AND (coordinates_long IS NOT NULL))))

Message

Tablo message · Kaynak messages

  • GET /api/v1/messages
  • GET /api/v1/messages/{id}
  • DELETE /api/v1/messages/{id} → inbox.delete_message
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
conversation_idstring (uuid) · uuidconversation
inbox_idstring (uuid) · uuidinbox
message_typestring · textincoming, outgoing, activity, template
content_typestring · texttext, input_text, input_textarea, input_email, input_select, cards, form, article, incoming_email, input_csat, integrations, sticker, voice_call
statusstring · textqueued, sent, delivered, read, failed
contentstring · textevet
processed_message_contentstring · textevet
is_privateboolean · bool
sender_kindstring · textuser, customer, agent_bot, system
sender_user_idstring (uuid) · uuidevetapp_user
sender_customer_idstring (uuid) · uuidevetcustomer
sender_agent_bot_idstring (uuid) · uuidevetagent_bot
source_idstring · textevet
content_attributesobject · jsonb
external_source_idsobject · jsonb
additional_attributesobject · jsonb
sentimentobject · jsonb
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
deleted_atstring (date-time) · timestamptzevet
delivery_attemptsinteger · int4
delivery_generationinteger · int4
delivery_errorstring · textevet
status_changed_atstring (date-time) · timestamptzevet

Birincil anahtar: id

Denetimler:

  • CHECK (((content IS NULL) OR (length(content) <= 150000)))
  • CHECK ((delivery_attempts >= 0))
  • CHECK (((delivery_error IS NULL) OR (length(delivery_error) <= 2000)))
  • CHECK (((delivery_error IS NULL) OR (status = ANY (ARRAY['queued'::text, 'failed'::text]))))
  • CHECK ((delivery_generation >= 0))
  • CHECK (((NOT is_private) OR (message_type = ANY (ARRAY['outgoing'::text, 'activity'::text]))))
  • CHECK (((processed_message_content IS NULL) OR (length(processed_message_content) <= 150000)))
  • CHECK (((status <> 'queued'::text) OR ((message_type = ANY (ARRAY['outgoing'::text, 'template'::text])) AND (NOT is_private))))
  • CHECK ( CASE sender_kind WHEN 'user'::text THEN ((sender_user_id IS NOT NULL) AND (sender_customer_id IS NULL) AND (sender_agent_bot_id IS NULL)) WHEN 'customer'::text THEN ((sender_customer_id IS NOT NULL) AND (sender_user_id IS NULL) AND (sender_agent_bot_id IS NULL)) WHEN 'agent_bot'::text THEN ((sender_agent_bot_id IS NOT NULL) AND (sender_user_id IS NULL) AND (sender_customer_id IS NULL)) ELSE ((sender_user_id IS NULL) AND (sender_customer_id IS NULL) AND (sender_agent_bot_id IS NULL)) END)

ReportingEvent

Tablo reporting_event · Kaynak reporting_events

  • GET /api/v1/reporting_events
  • GET /api/v1/reporting_events/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · textconversation_opened, first_response, reply_time, conversation_resolved, conversation_bot_resolved, conversation_bot_handoff
valueinteger · int4
value_in_business_hoursinteger · int4evet
inbox_idstring (uuid) · uuidinbox
conversation_idstring (uuid) · uuidconversation
user_idstring (uuid) · uuidevetapp_user
team_idstring (uuid) · uuidevetteam
event_start_timestring (date-time) · timestamptz
event_end_timestring (date-time) · timestamptz
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((event_end_time >= event_start_time))
  • CHECK ((value >= 0))
  • CHECK (((value_in_business_hours IS NULL) OR (value_in_business_hours >= 0)))

SlaEvent

Tablo sla_event · Kaynak sla_events

  • GET /api/v1/sla_events
  • GET /api/v1/sla_events/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
applied_sla_idstring (uuid) · uuidapplied_sla
conversation_idstring (uuid) · uuidconversation
inbox_idstring (uuid) · uuidinbox
sla_policy_idstring (uuid) · uuidsla_policy
event_typestring · textfrt, nrt, rt
metaobject · jsonb
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((jsonb_typeof(meta) = 'object'::text))

SlaPolicy

Tablo sla_policy · Kaynak sla_policies

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
descriptionstring · textevet
first_response_secondsinteger · int4evet
next_response_secondsinteger · int4evet
resolution_secondsinteger · int4evet
only_during_business_hoursboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((first_response_seconds IS NOT NULL) OR (next_response_seconds IS NOT NULL) OR (resolution_seconds IS NOT NULL)))
  • CHECK (((description IS NULL) OR (length(description) <= 2000)))
  • CHECK (((first_response_seconds IS NULL) OR (first_response_seconds > 0)))
  • CHECK (((name = btrim(name)) AND ((length(name) >= 1) AND (length(name) <= 200))))
  • CHECK (((next_response_seconds IS NULL) OR (next_response_seconds > 0)))
  • CHECK (((resolution_seconds IS NULL) OR (resolution_seconds > 0)))

TeamMember

Tablo team_member · Kaynak team_members

  • GET /api/v1/team_members
  • GET /api/v1/team_members/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
team_idstring (uuid) · uuidteam
user_idstring (uuid) · uuidapp_user
created_atstring (date-time) · timestamptz

Birincil anahtar: id

Team

Tablo team · Kaynak teams

SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
descriptionstring · textevet
allow_auto_assignboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((name = btrim(name)) AND (length(name) > 0)))

WhatsappMessageTemplate

Tablo whatsapp_message_template · Kaynak whatsapp_message_templates

  • GET /api/v1/whatsapp_message_templates
  • GET /api/v1/whatsapp_message_templates/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
inbox_idstring (uuid) · uuidinbox
provider_idstring · text
namestring · text
languagestring · text
categorystring · textevet
statusstring · textapproved, pending, rejected, paused, disabled
bodystring · text
componentsobject · jsonb
variable_countinteger · int4
synced_atstring (date-time) · timestamptz
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: inbox_id, provider_id

Denetimler:

  • CHECK ((variable_count >= 0))

Olaylar

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

OlayNe olurTaşıdığı alanlar
inbox.agent_bot_changedBir bot kaydedildi, değiştirildi, kaldırıldı ya da bir kanala konuldu.id
inbox.assignedBir konuşma başka birine atandı.id, userId, automatic
inbox.assignment_policy_changedBir yönlendirme kuralı değişti.id
inbox.auto_resolve_changedGelen kutusunun hareketsizlik kuralı değişti.id, hours
inbox.bot_handoffBir bot konuşmayı insanlara geri devretti.id
inbox.canned_response_changedHazır yanıtlar değişti.id
inbox.channel_connectedBir kanal bağlandı.id, channelType
inbox.channel_deactivatedBir kanal hizmetten çıkarıldı.id
inbox.channel_health_changedBir kanal erişilebilir ya da erişilemez oldu veya yeniden bağlanması gerekiyor.id, status
inbox.channel_updatedBir kanalın ayarları değişti.id
inbox.conversation_openedBir konuşma açıldı.id, inboxId, customerId, status
inbox.csat_receivedBir müşteri bir konuşmayı puanladı.id, responseId, rating, customerId
inbox.customer_changedBir konuşma başka bir kişiye taşındı.id, customerId
inbox.delivery_retriedBiri başarısız bir yanıtın yeniden gönderilmesini istedi.id, conversationId, generation
inbox.era_assignedBir konuşma Era’ya verildi (taslak ya da yanıt için) ya da geri alındı.id, mode
inbox.macro_changedBir makro değişti.id
inbox.macro_executedBir makro çalıştırıldı.id, conversationIds
inbox.member_preference_changedBir temsilci gelen kutusu durumunu ya da yanıt tercihlerini değiştirdi.id, userId
inbox.members_changedBir gelen kutusunda kimlerin çalıştığı değişti.id, count
inbox.mentionedÖzel bir notta biri anıldı.id, messageId, userIds
inbox.message_deletedBir mesaj silindi.id, conversationId
inbox.message_deliveredBir kanal bir yanıtı kabul etti, teslim etti ya da gösterdi.id, conversationId, status
inbox.message_editedGönderilmiş bir mesaj düzeltildi.id, conversationId
inbox.message_failedBir yanıt teslim edilemedi.id, conversationId, reason
inbox.message_receivedBir kanala mesaj geldi.id, conversationId, inboxId, customerId
inbox.message_sentBir yanıt yazıldı ve teslim için sıraya alındı.id, conversationId, firstReply, generation
inbox.message_translatedBir mesajın çevirisi aslının yanına kaydedildi.id, language
inbox.mutedBir konuşmanın sesi kapatıldı.id
inbox.note_addedÖzel bir not bırakıldı.id, conversationId
inbox.participant_addedBiri bir konuşmayı takip etmeye başladı.id, userId
inbox.priority_changedBir konuşmanın önceliği belirlendi.id, priority
inbox.reopenedBir konuşma yeniden açıldı.id
inbox.resolvedBir konuşma çözüldü.id, customerId, csatRequested
inbox.sla_appliedBir konuşma bir SLA’ya göre ölçülmeye başladı.id, appliedSlaId, policyId
inbox.sla_closedÇözülmüş bir konuşmanın SLA sonucu (karşılandı ya da kaçırıldı) kesinleşti.id, appliedSlaId, status
inbox.sla_missedBir konuşma bir SLA hedefini kaçırdı.id, appliedSlaId, type, policy
inbox.sla_policy_changedBir SLA politikası değişti.id
inbox.snoozedBir konuşma sonraya ertelendi.id, until
inbox.team_assignedBir konuşma başka bir ekibe geçti.id, teamId, assigneeDropped
inbox.team_changedBir ekip değişti.id
inbox.transcript_requestedBir konuşmanın dökümü e-postayla istendi.id, email
inbox.unmutedBir konuşmanın sesi açıldı.id
inbox.user_mentionedÖzel bir notta bir kişi anıldı — bildirim kuralları bu olayı dinler.id, messageId, userId, recipientUserId
inbox.whatsapp_templates_syncedOnaylı WhatsApp şablonları yenilendi.id, count
inbox.working_hours_changedBir kanalın çalışma saatleri değişti.id
Bu sayfa yardımcı oldu mu?