Bildirimler API

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

Kimin neden haberdar edileceği — e-posta, SMS, WhatsApp veya uygulama içi.

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

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
notification_channelsnotification_channel/api/v1/notification_channels
notification_deliveriesnotification_delivery/api/v1/notification_deliveries
notification_email_templatesnotification_email_template/api/v1/notification_email_templates
notification_inboxesnotification_inbox/api/v1/notification_inboxes
notification_preferencesnotification_preference/api/v1/notification_preferences
notification_rulesnotification_rule/api/v1/notification_rules
notification_user_settingsnotification_user_setting/api/v1/notification_user_settings

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
notifications.create_channelnotifications:manageTeslimat kanalı ekle
notifications.create_rulenotifications:manageBildirim kuralı ekle
notifications.delete_channelnotifications:deleteTeslimat kanalını kaldır
notifications.delete_rulenotifications:deleteBildirim kuralını kaldır
notifications.mark_readnotifications:readBildirimleri okundu işaretle
notifications.purge_historynotifications:deleteTeslimat geçmişini temizle
notifications.queue_deliverynotifications:handleBildirimi sıraya koy
notifications.record_site_emailnotifications:handleSite e-postasını kaydet
notifications.reset_email_templatenotifications:manageVarsayılan metni geri yükle
notifications.retry_deliverynotifications:manageBildirimi yeniden dene
notifications.save_email_templatenotifications:manageMüşteri e-postasını kaydet
notifications.send_customer_messagenotifications:handleMüşteriye mesaj gönder
notifications.send_emailnotifications:handleE-posta gönder
notifications.send_testnotifications:manageTest bildirimi gönder
notifications.send_test_email_templatenotifications:manageTest e-postası gönder
notifications.set_preferencenotifications:readBildirim tercihini ayarla
notifications.set_rule_activenotifications:manageKuralı aç veya kapat
notifications.set_user_settingsnotifications:readBildirim programımı ayarla
notifications.settle_deliverynotifications:handleTeslimat sonucunu kaydet
notifications.update_rulenotifications:manageBildirim kuralını düzenle

notifications.create_channel

Teslimat kanalı ekle — Bildirimlerin gittiği yer: bir webhook, bir adres listesi, bir Slack kanalı veya bir push uç noktası.

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

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

Girdi

AlanTürZorunluAçıklama
typestring (enum)evetKanal · İzin verilen değerler: webhook, email, slack, push
namestringevetAd · en çok 120
urlstringURL · Webhook ve anlık bildirim kanalları. · en çok 2000
recipientsstringAlıcılar · E-posta kanalları. Virgülle ayrılmış. · en çok 2000
configstringYapılandırma · JSON. Slack kanalları hesabı ve kanal kimliğini burada taşır. · en çok 8000
credential_iduuidKimlik bilgisi · İmzalama gizli anahtarını ya da OAuth anahtarını tutar. Hiçbir zaman kanalın kendisinde saklanmaz.

Ön koşullar

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

KodNe zaman reddedilir
invalid_urlBu bir web adresine benzemiyor.
insecure_urlAdres https kullanmalı.
url_requiredWebhook veya push kanalı bir URL gerektirir.
recipients_requiredE-posta kanalı en az bir adres gerektirir.
too_many_recipientsE-posta kanalı en fazla on adres taşıyabilir.
invalid_configYapılandırma bir JSON nesnesi olmalı.
name_takenBu çalışma alanında bu türde ve bu adda bir kanal zaten var.

Yayımladığı olaylar: notifications.channel_created

Neye yazar: notification_channel (insert) — Adds the channel, unverified until something has reached it

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationChannels.createChannel({
  type: "webhook",
  name: "Name"
})
era notification_channels create_channel \
  --type "webhook" \
  --name "Name"
tools/call
{
  "name": "era__notifications__create_channel",
  "arguments": {
    "type": "webhook",
    "name": "Name"
  }
}

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

notifications.create_rule

Bildirim kuralı ekle — Hangi olayların hangi kanala veya kişiye, hangi sözlerle ve ne sıklıkta ulaşacağı.

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

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

Girdi

AlanTürZorunluAçıklama
channel_iduuidKanal · Bir kanal kuralı için. · kimliği: notification_channel
namestringevetAd · en çok 120
eventsstringEtkinlikler · Virgülle ayrılmış. Her olay için boş bırakın. · en çok 2000
conditionstringKoşul · JSON. Eşleşen her olayda tetiklenmesi için boş bırakın. · en çok 4000
cooldown_minutesnumberSessiz süre (dakika)
include_outputbooleanSonucu ekle
include_tracebooleanİzlemeyi ekle · Yalnızca webhook kanalları — izleme e-posta ve Slack için fazla büyük.
recipientstring (enum)Kime haber verilsin · Bir kanal ya da olayda geçen kişiler (sahip, atanan, bahsedilen…) veya burada seçilenler. · İzin verilen değerler: channel, owner, assignee, mentioned, recipient, member, role, capability, customer
recipient_user_iduuidÜye · “Belirli bir üye” için.
recipient_rolestringRol · “Bir role sahip herkes” için: rol anahtarı. · en çok 80
recipient_capabilitystringİzin · “Bir izne sahip herkes” için: module:capability. · en çok 80
mediumsstringUlaşma yolu · Virgülle ayrılmış: in_app, email, sms, whatsapp. · en çok 200
categorystringKategori · Kişinin açıp kapattığı şey. Boş, olayın modülü demektir. · en çok 41
title_templatestringBaşlık · Değişkenler: {{event_label}}, {{recipient.name}}, {{workspace.name}} ya da {{person}} gibi herhangi bir veri anahtarı. · en çok 300
body_templatestringMesaj · en çok 4000
link_templatestringBağlantı · Uygulama içinde bir yol. Boş, olayın ilgili olduğu kayıt demektir. · en çok 500

Ön koşullar

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

KodNe zaman reddedilir
channel_not_foundBu çalışma alanında böyle bir kanal yok.
trace_needs_webhookYalnızca webhook kanalı iz taşıyabilir.
invalid_conditionKoşul bir JSON nesnesi olmalı.
cooldown_out_of_rangeBekleme süresi 0 dakika ile 7 gün arasında olmalı.
name_takenBu çalışma alanında bu adda bir kural zaten var.
rule_limit_reachedBu çalışma alanı bu kanaldaki kural sınırına ulaştı.
recipient_incompleteKural kime haber verdiğini tam olarak belirtmeli: bir kanal ya da kişiler ve onlara nasıl ulaşılacağı.

Yayımladığı olaylar: notifications.rule_created

Neye yazar: notification_rule (insert) — Adds the rule, active

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationRules.createRule({
  name: "Name"
})
era notification_rules create_rule \
  --name "Name"
tools/call
{
  "name": "era__notifications__create_rule",
  "arguments": {
    "name": "Name"
  }
}

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

notifications.delete_channel

Teslimat kanalını kaldır — Bir kural hâlâ ona bağlıyken reddedilir; hiçbir kural sessizce sahipsiz kalmaz.

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

POSThttps://app.getera.io/api/v1/notification_channels/actions/delete_channel
API anahtarı ya da OAuth token · notifications:delete
  • Asıl adres: POST /api/v1/actions/notifications.delete_channel

Girdi

AlanTürZorunluAçıklama
channel_iduuidevetKanal

Ön koşullar

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

KodNe zaman reddedilir
channel_not_foundBu çalışma alanında böyle bir kanal yok.
channel_in_useBir kural hâlâ bu kanala gönderiyor.

Yayımladığı olaylar: notifications.channel_deleted

Neye yazar: notification_channel (delete) — Removes the channel

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationChannels.deleteChannel({
  channel_id: "CHANNEL_ID"
})
era notification_channels delete_channel \
  --channel-id "CHANNEL_ID"
tools/call
{
  "name": "era__notifications__delete_channel",
  "arguments": {
    "channel_id": "CHANNEL_ID"
  }
}

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

notifications.delete_rule

Bildirim kuralını kaldır — Kuralı ve teslimat geçmişini kaldırır. Kanal kalır.

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

POSThttps://app.getera.io/api/v1/notification_rules/actions/delete_rule
API anahtarı ya da OAuth token · notifications:delete
  • Asıl adres: POST /api/v1/actions/notifications.delete_rule

Girdi

AlanTürZorunluAçıklama
rule_iduuidevetKural

Ön koşullar

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

KodNe zaman reddedilir
rule_not_foundBu çalışma alanında böyle bir kural yok.

Yayımladığı olaylar: notifications.rule_deleted

Neye yazar: notification_rule (delete) — Removes the rule; its deliveries cascade

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationRules.deleteRule({
  rule_id: "RULE_ID"
})
era notification_rules delete_rule \
  --rule-id "RULE_ID"
tools/call
{
  "name": "era__notifications__delete_rule",
  "arguments": {
    "rule_id": "RULE_ID"
  }
}

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

notifications.mark_read

Bildirimleri okundu işaretle — Uygulama içi bildirimlerinizin bir kısmını veya tamamını okundu işaretler (ya da birini yeniden okunmadı yapar).

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

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

Girdi

AlanTürZorunluAçıklama
idsstringBildirimler · Virgülle ayrılmış kimlikler. · en çok 8000
allbooleanHepsi
unreadbooleanBunun yerine okunmamış olarak işaretle

Ön koşullar

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

KodNe zaman reddedilir
notification_not_foundBu bildirimlerin hiçbiri sizin değil.

Yayımladığı olaylar: notifications.inbox_read

Neye yazar: notification_inbox (update) — Stamps read_at on your notifications

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationInboxes.markRead({
  ids: "Notifications"
})
era notification_inboxes mark_read \
  --ids "Notifications"
tools/call
{
  "name": "era__notifications__mark_read",
  "arguments": {
    "ids": "Notifications"
  }
}

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

notifications.purge_history

Teslimat geçmişini temizle — Saklama süresinden eski tamamlanmış teslimatları kaldırır. Bekleyenlere asla dokunulmaz.

Gereken izin notifications:delete · siler ya da geri alınamaz

POSThttps://app.getera.io/api/v1/notification_deliveries/actions/purge_history
API anahtarı ya da OAuth token · notifications:delete
  • Asıl adres: POST /api/v1/actions/notifications.purge_history

Girdi

AlanTürZorunluAçıklama
daysnumberSaklama süresi (gün) · en çok 3650

Ön koşullar

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

KodNe zaman reddedilir
retention_too_shortSaklama süresi en az bir gün olmalı.

Yayımladığı olaylar: notifications.history_purged

Neye yazar: notification_delivery (delete) — Removes delivered, failed and suppressed rows older than the window

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationDeliveries.purgeHistory({
  days: 1
})
era notification_deliveries purge_history \
  --days 1
tools/call
{
  "name": "era__notifications__purge_history",
  "arguments": {
    "days": 1
  }
}

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

notifications.queue_delivery

Bildirimi sıraya koy — Teslimatı yazar ya da neden bilerek gönderilmediğini yazar.

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

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

Girdi

AlanTürZorunluAçıklama
rule_iduuidevetKural
event_namestringevetEtkinlik · en çok 120
source_idstringKaynak · Bunun kaynağı olan olay ya da çalıştırma. · en çok 200
recipient_user_iduuidAlıcı · Bildirim tek bir kişiye yönelikse, tercihine uyulabilsin diye.
payloadstringYük · JSON. Mesajın yazıldığı olay verisi. · en çok 100000

Ön koşullar

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

KodNe zaman reddedilir
rule_not_foundBu çalışma alanında böyle bir kural yok.
event_not_matchedBu kural bu olayı kapsamıyor.

Yayımladığı olaylar: notifications.queued, notifications.suppressed

Neye yazar: notification_delivery (insert) — Writes the delivery as pending, or as suppressed with a reason; notification_rule (update) — Stamps the rule’s quiet period when it fires; notification_inbox (insert) — Puts an in-app notification in each person’s bell

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationDeliveries.queueDelivery({
  rule_id: "RULE_ID",
  event_name: "Event"
})
era notification_deliveries queue_delivery \
  --rule-id "RULE_ID" \
  --event-name "Event"
tools/call
{
  "name": "era__notifications__queue_delivery",
  "arguments": {
    "rule_id": "RULE_ID",
    "event_name": "Event"
  }
}

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

notifications.record_site_email

Site e-postasını kaydet — Web sitesinin müşteriye hemen gönderdiği e-posta, gönderim kaydına yazılır.

Gereken izin notifications: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/notification_deliveries/actions/record_site_email
API anahtarı ya da OAuth token · notifications:handle
  • Asıl adres: POST /api/v1/actions/notifications.record_site_email

Girdi

AlanTürZorunluAçıklama
tostringevetBitiş · en çok 320
subjectstringevetKonu · en çok 300
textstringMesaj · en çok 20000
htmlstringHTML bölümü · en çok 300000
event_namestringevetEtkinlik · en çok 120
source_idstringKaynak · en çok 200
deliveredbooleanevetTeslim edildi
errorstringHata · en çok 2000
redactedbooleanİçerik saklanmadı

Ön koşullar

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

KodNe zaman reddedilir
invalid_recipientAdres geçerli bir e-posta adresi olmalı.

Neye yazar: notification_delivery (insert) — Writes the delivered (or failed) email row

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

notifications.reset_email_template

Varsayılan metni geri yükle — Bu çalışma alanının müşteri e-postası metnini bırakır; varsayılan yeniden geçerli olur.

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

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

Girdi

AlanTürZorunluAçıklama
kindstringevetE-posta · en çok 40

Ön koşullar

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

KodNe zaman reddedilir
unknown_email_templateE-posta, müşteri e-postalarından biri olmalı.

Yayımladığı olaylar: notifications.email_template_changed

Neye yazar: notification_email_template (delete) — Removes the workspace’s wording

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationEmailTemplates.resetEmailTemplate({
  kind: "Email"
})
era notification_email_templates reset_email_template \
  --kind "Email"
tools/call
{
  "name": "era__notifications__reset_email_template",
  "arguments": {
    "kind": "Email"
  }
}

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

notifications.retry_delivery

Bildirimi yeniden dene — Başarısız bir teslimatı, deneme sayısı sıfırlanmış olarak hemen gönderilmek üzere sıraya geri koyar.

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

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

Girdi

AlanTürZorunluAçıklama
delivery_iduuidevetTeslimat

Ön koşullar

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

KodNe zaman reddedilir
delivery_not_foundBu çalışma alanında böyle bir teslimat yok.
delivery_not_failedYalnızca başarısız bir teslimat yeniden denenebilir.

Yayımladığı olaylar: notifications.delivery_retried

Neye yazar: notification_delivery (update) — Returns the delivery to pending, due now

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationDeliveries.retryDelivery({
  delivery_id: "DELIVERY_ID"
})
era notification_deliveries retry_delivery \
  --delivery-id "DELIVERY_ID"
tools/call
{
  "name": "era__notifications__retry_delivery",
  "arguments": {
    "delivery_id": "DELIVERY_ID"
  }
}

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

notifications.save_email_template

Müşteri e-postasını kaydet — Bu çalışma alanı için bir müşteri e-postasının metnini değiştirir.

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

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

Girdi

AlanTürZorunluAçıklama
kindstringevetE-posta · en çok 40
subjectstringevetKonu · en çok 300
bodystringevetGövde · en çok 20000

Ön koşullar

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

KodNe zaman reddedilir
unknown_email_templateE-posta, müşteri e-postalarından biri olmalı.

Yayımladığı olaylar: notifications.email_template_changed

Neye yazar: notification_email_template (upsert) — Writes the workspace’s wording

curl -X POST https://app.getera.io/api/v1/notification_email_templates/actions/save_email_template \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"kind":"Email","subject":"Subject","body":"Body"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "notifications.email_template_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationEmailTemplates.saveEmailTemplate({
  kind: "Email",
  subject: "Subject",
  body: "Body"
})
era notification_email_templates save_email_template \
  --kind "Email" \
  --subject "Subject" \
  --body "Body"
tools/call
{
  "name": "era__notifications__save_email_template",
  "arguments": {
    "kind": "Email",
    "subject": "Subject",
    "body": "Body"
  }
}

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

notifications.send_customer_message

Müşteriye mesaj gönder — Bir müşteriye tek bir mesaj sıraya koyar — bağlı gelen kutusundan WhatsApp ya da SMS, markalı e-posta, ya da üçünün en uygunu.

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

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

Girdi

AlanTürZorunluAçıklama
customer_iduuidevetMüşteri
mediumstring (enum)evetYapan · İzin verilen değerler: sms, whatsapp, email, auto
textstringevetMesaj · en çok 1600
subjectstringKonu · en çok 300
event_namestringevetEtkinlik · en çok 120
source_idstringKaynak · en çok 200

Yayımladığı olaylar: notifications.queued

Neye yazar: notification_delivery (insert) — Writes a pending delivery to one customer on one medium

curl -X POST https://app.getera.io/api/v1/notification_deliveries/actions/send_customer_message \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"customer_id":"CUSTOMER_ID","medium":"sms","text":"Message","event_name":"Event"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "notifications.queued"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationDeliveries.sendCustomerMessage({
  customer_id: "CUSTOMER_ID",
  medium: "sms",
  text: "Message",
  event_name: "Event"
})
era notification_deliveries send_customer_message \
  --customer-id "CUSTOMER_ID" \
  --medium "sms" \
  --text "Message" \
  --event-name "Event"
tools/call
{
  "name": "era__notifications__send_customer_message",
  "arguments": {
    "customer_id": "CUSTOMER_ID",
    "medium": "sms",
    "text": "Message",
    "event_name": "Event"
  }
}

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

notifications.send_email

E-posta gönder — Bir e-posta kanalı ve gerçek gönderici üzerinden tek bir adrese tek bir mesaj sıraya koyar.

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

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

Girdi

AlanTürZorunluAçıklama
tostringevetBitiş · en çok 320
subjectstringevetKonu · en çok 300
textstringevetMesaj · en çok 20000
htmlstringHTML bölümü · en çok 300000
event_namestringevetEtkinlik · en çok 120
source_idstringKaynak · en çok 200
channel_iduuidKanal · kimliği: notification_channel
from_connectionstringGönderen · mine = adına çalışılan kişinin kendi Gmail/Outlook hesabı · workspace = şirketin hesabı · ya da bir bağlantı kimliği. Boş = platformun gönderici adresi. · en çok 64

Ön koşullar

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

KodNe zaman reddedilir
invalid_recipientAdres bir e-posta adresi değil.
no_email_channelGönderim yapılacak aktif bir e-posta kanalı yok.
bad_connectionGönderen “mine”, “workspace” ya da bir bağlantı kimliği olmalı.

Yayımladığı olaylar: notifications.queued

Neye yazar: notification_delivery (insert) — Writes a pending delivery addressed to one recipient

curl -X POST https://app.getera.io/api/v1/notification_deliveries/actions/send_email \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"to":"To","subject":"Subject","text":"Message","event_name":"Event"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "notifications.queued"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationDeliveries.sendEmail({
  to: "To",
  subject: "Subject",
  text: "Message",
  event_name: "Event"
})
era notification_deliveries send_email \
  --to "To" \
  --subject "Subject" \
  --text "Message" \
  --event-name "Event"
tools/call
{
  "name": "era__notifications__send_email",
  "arguments": {
    "to": "To",
    "subject": "Subject",
    "text": "Message",
    "event_name": "Event"
  }
}

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

notifications.send_test

Test bildirimi gönder — Gerçek gönderici üzerinden kanala tek bir mesaj sıraya koyar ve sonucu kaydeder.

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

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

Girdi

AlanTürZorunluAçıklama
channel_iduuidevetKanal · kimliği: notification_channel

Ön koşullar

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

KodNe zaman reddedilir
channel_not_foundBu çalışma alanında böyle bir kanal yok.

Yayımladığı olaylar: notifications.test_queued

Neye yazar: notification_delivery (insert) — Writes a pending test delivery

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationDeliveries.sendTest({
  channel_id: "NOTIFICATION_CHANNEL_ID"
})
era notification_deliveries send_test \
  --channel-id "NOTIFICATION_CHANNEL_ID"
tools/call
{
  "name": "era__notifications__send_test",
  "arguments": {
    "channel_id": "NOTIFICATION_CHANNEL_ID"
  }
}

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

notifications.send_test_email_template

Test e-postası gönder — Örnek değerlerle doldurulmuş bir müşteri e-postasını seçtiğiniz adrese gönderir.

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

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

Girdi

AlanTürZorunluAçıklama
kindstringevetE-posta · en çok 40
tostringevetGönderilecek adres · en çok 320
subjectstringKonu · en çok 300
bodystringGövde · en çok 20000

Ön koşullar

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

KodNe zaman reddedilir
unknown_email_templateE-posta, müşteri e-postalarından biri olmalı.
invalid_recipientAdres bir e-posta adresi değil.
no_email_channelGönderim yapılacak aktif bir e-posta kanalı yok.

Yayımladığı olaylar: notifications.test_queued

Neye yazar: notification_delivery (insert) — Writes a pending test delivery to one address

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationDeliveries.sendTestEmailTemplate({
  kind: "Email",
  to: "Send to"
})
era notification_deliveries send_test_email_template \
  --kind "Email" \
  --to "Send to"
tools/call
{
  "name": "era__notifications__send_test_email_template",
  "arguments": {
    "kind": "Email",
    "to": "Send to"
  }
}

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

notifications.set_preference

Bildirim tercihini ayarla — Birinin haberdar edilip edilmeyeceği, hangi kanal türünden ve ne zamana kadar sessize alındığı.

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

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

Girdi

AlanTürZorunluAçıklama
user_iduuidKişi · Kendinizinkini değiştirmek için boş bırakın.
channel_typestring (enum)evetKanal · İzin verilen değerler: webhook, email, slack, push, in_app
event_namestringOlay ya da kategori · O kanal türündeki her olayı kapsaması için boş bırakın; nokta içermeyen bir anahtar bir kategoridir. · en çok 120
enabledbooleanevetBana haber ver
muted_untildate-timeSessize alma bitişi · Bir erteleme. Kendiliğinden kalkar.

Ön koşullar

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

KodNe zaman reddedilir
not_your_preferenceBaşkasının tercihlerini değiştirmek yönetim yetkisi gerektirir.
not_a_memberBu kişi bu çalışma alanının üyesi değil.
mute_in_pastSessize alma süresi zaten geçmiş.

Yayımladığı olaylar: notifications.preference_changed

Neye yazar: notification_preference (upsert) — Writes the person’s preference for that channel type and event

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationPreferences.setPreference({
  channel_type: "webhook",
  enabled: true
})
era notification_preferences set_preference \
  --channel-type "webhook" \
  --enabled true
tools/call
{
  "name": "era__notifications__set_preference",
  "arguments": {
    "channel_type": "webhook",
    "enabled": true
  }
}

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

notifications.set_rule_active

Kuralı aç veya kapat — Kapalı bir kural hiçbir şeyle eşleşmez ve hiçbir şey sıraya koymaz.

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

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

Girdi

AlanTürZorunluAçıklama
rule_iduuidevetKural
activebooleanevetAktif

Ön koşullar

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

KodNe zaman reddedilir
rule_not_foundBu çalışma alanında böyle bir kural yok.
no_changeKural zaten bu durumda.

Yayımladığı olaylar: notifications.rule_enabled, notifications.rule_disabled

Neye yazar: notification_rule (update) — Flips the active flag and clears the quiet period

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationRules.setRuleActive({
  rule_id: "RULE_ID",
  active: true
})
era notification_rules set_rule_active \
  --rule-id "RULE_ID" \
  --active true
tools/call
{
  "name": "era__notifications__set_rule_active",
  "arguments": {
    "rule_id": "RULE_ID",
    "active": true
  }
}

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

notifications.set_user_settings

Bildirim programımı ayarla — Bir kişi için saat dilimi, dil, sessiz saatler ve e-posta özeti.

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

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

Girdi

AlanTürZorunluAçıklama
user_iduuidKişi · Kendinizinkini değiştirmek için boş bırakın.
timezonestringSaat dilimi · IANA adı, ör. Europe/Istanbul. Boş, çalışma alanınınki demektir. · en çok 64
localestringDil · en çok 16
quiet_startstringSessiz saat başlangıcı · SS:DD. Sessiz saat istemiyorsanız boş bırakın. · en çok 5
quiet_endstringSessiz saat bitişi · en çok 5
digeststring (enum)E-posta özeti · İzin verilen değerler: off, hourly, daily
digest_hournumberGünlük özet saati · en az 0 · en çok 23

Ön koşullar

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

KodNe zaman reddedilir
not_your_preferenceBaşkasının ayarlarını değiştirmek yönetim yetkisi gerektirir.
not_a_memberBu kişi bu çalışma alanının üyesi değil.
invalid_timezoneSaat dilimi Europe/Istanbul gibi bir IANA adı olmalı.
invalid_quiet_hoursSessiz saatler SS:DD biçiminde bir başlangıç ve bitiş gerektirir ve ikisi farklı olmalı.

Yayımladığı olaylar: notifications.settings_changed

Neye yazar: notification_user_setting (upsert) — Writes the person’s schedule

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationUserSettings.setUserSettings({
  user_id: "USER_ID"
})
era notification_user_settings set_user_settings \
  --user-id "USER_ID"
tools/call
{
  "name": "era__notifications__set_user_settings",
  "arguments": {
    "user_id": "USER_ID"
  }
}

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

notifications.settle_delivery

Teslimat sonucunu kaydet — Teslimatı tamamlandı işaretler ya da sonraki denemeyi planlar.

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

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

Girdi

AlanTürZorunluAçıklama
delivery_iduuidevetTeslimat
successbooleanevetBaşarılı
response_statusnumberYanıt durumu · en az 100 · en çok 599
error_messagestringHata · en çok 2000
duration_msnumberSüre (ms) · en az 0
response_bodystringSağlayıcı yanıtı · en çok 2000
permanentbooleanYeniden denenmesin · Gönderen, yeniden denemenin işe yaramayacağını biliyor — sağlayıcı ayarlanmamış, kanal desteklenmiyor.

Ön koşullar

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

KodNe zaman reddedilir
delivery_not_foundBu çalışma alanında böyle bir teslimat yok.
delivery_already_settledBu teslimat zaten bitmiş.

Yayımladığı olaylar: notifications.delivered, notifications.delivery_failed

Neye yazar: notification_delivery (update) — Records the outcome and, on a retryable failure, when to try again; notification_channel (update) — Stamps verified_at the first time something reaches the channel

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationDeliveries.settleDelivery({
  delivery_id: "DELIVERY_ID",
  success: true
})
era notification_deliveries settle_delivery \
  --delivery-id "DELIVERY_ID" \
  --success true
tools/call
{
  "name": "era__notifications__settle_delivery",
  "arguments": {
    "delivery_id": "DELIVERY_ID",
    "success": true
  }
}

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

notifications.update_rule

Bildirim kuralını düzenle — Kuralın olaylarını, alıcılarını, metnini veya bekleme süresini değiştirir.

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

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

Girdi

AlanTürZorunluAçıklama
rule_iduuidevetDoldurulduğu yer: adresteki {id} · Kural · kimliği: notification_rule
namestringAd · en çok 120
channel_iduuidKanal · kimliği: notification_channel
eventsstringEtkinlikler · en çok 2000
cooldown_minutesnumberSessiz süre (dakika)
recipientstring (enum)Kime haber verilsin · Bir kanal ya da olayda geçen kişiler (sahip, atanan, bahsedilen…) veya burada seçilenler. · İzin verilen değerler: channel, owner, assignee, mentioned, recipient, member, role, capability, customer
recipient_user_iduuidÜye · “Belirli bir üye” için.
recipient_rolestringRol · “Bir role sahip herkes” için: rol anahtarı. · en çok 80
recipient_capabilitystringİzin · “Bir izne sahip herkes” için: module:capability. · en çok 80
mediumsstringUlaşma yolu · Virgülle ayrılmış: in_app, email, sms, whatsapp. · en çok 200
categorystringKategori · Kişinin açıp kapattığı şey. Boş, olayın modülü demektir. · en çok 41
title_templatestringBaşlık · Değişkenler: {{event_label}}, {{recipient.name}}, {{workspace.name}} ya da {{person}} gibi herhangi bir veri anahtarı. · en çok 300
body_templatestringMesaj · en çok 4000
link_templatestringBağlantı · Uygulama içinde bir yol. Boş, olayın ilgili olduğu kayıt demektir. · en çok 500

Ön koşullar

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

KodNe zaman reddedilir
rule_not_foundBu çalışma alanında böyle bir kural yok.
channel_not_foundBu çalışma alanında böyle bir kanal yok.
name_takenBu çalışma alanında bu adda bir kural zaten var.
cooldown_out_of_rangeBekleme süresi 0 dakika ile 7 gün arasında olmalı.
recipient_incompleteKural kime haber verdiğini tam olarak belirtmeli.

Yayımladığı olaylar: notifications.rule_updated

Neye yazar: notification_rule (update) — Rewrites the rule’s events, recipients and wording

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

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.notificationRules.updateRule("NOTIFICATION_RULE_ID", {
  name: "Name"
})
era notification_rules update_rule NOTIFICATION_RULE_ID \
  --name "Name"
tools/call
{
  "name": "era__notifications__update_rule",
  "arguments": {
    "rule_id": "NOTIFICATION_RULE_ID",
    "name": "Name"
  }
}

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

Veri modelleri

NotificationChannel

Tablo notification_channel · Kaynak notification_channels

  • GET /api/v1/notification_channels
  • GET /api/v1/notification_channels/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
typestring · notification_channel_typewebhook, email, slack, push, in_app
namestring · text
configobject · jsonb
activeboolean · bool
verified_atstring (date-time) · timestamptzevet
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, type, name

NotificationDelivery

Tablo notification_delivery · Kaynak notification_deliveries

  • GET /api/v1/notification_deliveries
  • GET /api/v1/notification_deliveries/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
rule_idstring (uuid) · uuidevetnotification_rule
channel_idstring (uuid) · uuidevetnotification_channel
event_namestring · text
source_idstring · textevet
statestring · notification_delivery_statepending, in_progress, delivered, failed, suppressed
attemptsinteger · int4
last_attempt_atstring (date-time) · timestamptzevet
next_attempt_atstring (date-time) · timestamptzevet
response_statusinteger · int4evet
error_messagestring · textevet
suppressed_reasonstring · textevet
duration_msinteger · int4evet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
payloadobject · jsonb
response_bodystring · textevet
is_testboolean · bool
recipient_user_idstring (uuid) · uuidevetapp_user
mediumstring · textchannel, in_app, email, sms, whatsapp
digestboolean · bool

Birincil anahtar: id

Denetimler:

  • CHECK (((attempts >= 0) AND (attempts <= 10)))
  • CHECK (((medium <> 'channel'::text) OR (channel_id IS NOT NULL)))
  • CHECK (((rule_id IS NOT NULL) OR is_test OR (payload ? 'to'::text) OR (payload ? 'customerId'::text)))
  • CHECK (((response_status IS NULL) OR ((response_status >= 100) AND (response_status < 600))))
  • CHECK (((state = 'suppressed'::os.notification_delivery_state) = (suppressed_reason IS NOT NULL)))

NotificationEmailTemplate

Tablo notification_email_template · Kaynak notification_email_templates

  • GET /api/v1/notification_email_templates
  • GET /api/v1/notification_email_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
kindstring · textorder_confirmed, fulfilment_created, tracking_updated, invoice, gift_card, quote, appointment_reminder
subjectstring · text
bodystring · text
updated_by_user_idstring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, kind

Denetimler:

  • CHECK (((length(body) >= 1) AND (length(body) <= 20000)))
  • CHECK (((length(subject) >= 1) AND (length(subject) <= 300)))

NotificationInbox

Tablo notification_inbox · Kaynak notification_inboxes

  • GET /api/v1/notification_inboxes
  • GET /api/v1/notification_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
user_idstring (uuid) · uuidapp_user
delivery_idstring (uuid) · uuidevetnotification_delivery
rule_idstring (uuid) · uuidevetnotification_rule
event_namestring · text
categorystring · text
titlestring · text
bodystring · textevet
linkstring · textevet
read_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

NotificationPreference

Tablo notification_preference · Kaynak notification_preferences

  • GET /api/v1/notification_preferences
  • GET /api/v1/notification_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
channel_typestring · notification_channel_typewebhook, email, slack, push, in_app
event_namestring · text
enabledboolean · bool
muted_untilstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, user_id, channel_type, event_name

NotificationRule

Tablo notification_rule · Kaynak notification_rules

  • GET /api/v1/notification_rules
  • GET /api/v1/notification_rules/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
channel_idstring (uuid) · uuidevetnotification_channel
namestring · text
eventsstring[] · text[]
conditionobject · jsonbevet
include_outputboolean · bool
include_traceboolean · bool
include_rate_limitsboolean · bool
include_usageboolean · bool
cooldown_minutesinteger · int4
last_fired_atstring (date-time) · timestamptzevet
activeboolean · bool
created_bystring (uuid) · uuidevetapp_user
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz
recipientstring · textchannel, owner, assignee, mentioned, recipient, member, role, capability, customer
recipient_user_idstring (uuid) · uuidevetapp_user
recipient_rolestring · textevet
recipient_capabilitystring · textevet
mediumsstring[] · text[]
categorystring · text
title_templatestring · textevet
body_templatestring · textevet
link_templatestring · textevet

Birincil anahtar: id

Tekil: workspace_id, name

Denetimler:

  • CHECK (((category = ''::text) OR (category ~ '^[a-z][a-z0-9_]{1,40}$'::text)))
  • CHECK (((recipient = 'channel'::text) = (channel_id IS NOT NULL)))
  • CHECK (((cooldown_minutes >= 0) AND (cooldown_minutes <= 10080)))
  • CHECK ((mediums <@ ARRAY['in_app'::text, 'email'::text, 'sms'::text, 'whatsapp'::text]))

NotificationUserSetting

Tablo notification_user_setting · Kaynak notification_user_settings

  • GET /api/v1/notification_user_settings
  • GET /api/v1/notification_user_settings/{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
timezonestring · textevet
localestring · textevet
quiet_startstring (time) · timeevet
quiet_endstring (time) · timeevet
digeststring · text
digest_hourinteger · int4
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: workspace_id, user_id

Denetimler:

  • CHECK (((digest = ANY (ARRAY['off'::text, 'hourly'::text, 'daily'::text])) AND ((digest_hour >= 0) AND (digest_hour <= 23))))
  • CHECK (((quiet_start IS NULL) = (quiet_end IS NULL)))

Olaylar

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

OlayNe olurTaşıdığı alanlar
notifications.channel_createdBir teslim kanalı eklendi.channel_id, type
notifications.channel_deletedBir teslim kanalı kaldırıldı.channel_id
notifications.deliveredBir bildirim kanalına ulaştı.delivery_id, response_status
notifications.delivery_failedBir bildirim teslim edilemedi.delivery_id, error
notifications.delivery_retriedBaşarısız bir bildirim elle kuyruğa geri kondu.delivery_id
notifications.email_template_changedBir müşteri e-postası yeniden yazıldı ya da varsayılanına döndürüldü.kind, customised
notifications.history_purgedTamamlanan teslimler temizlendi.days, removed
notifications.inbox_readBiri gelen kutusundaki bildirimleri okundu olarak işaretledi.user_id, count
notifications.preference_changedBiri neyden haberdar edilmek istediğini değiştirdi.user_id, channel_type, enabled
notifications.queuedBir bildirim teslim için sıraya alındı.delivery_id, rule_id
notifications.rule_createdBir bildirim kuralı eklendi.rule_id, channel_id
notifications.rule_deletedBir bildirim kuralı kaldırıldı.rule_id
notifications.rule_disabledBir bildirim kuralı kapatıldı.rule_id
notifications.rule_enabledBir bildirim kuralı açıldı.rule_id
notifications.rule_updatedBir bildirim kuralının olayları, alıcıları ya da metni değişti.rule_id
notifications.settings_changedBiri saat dilimini, sessiz saatlerini ya da özetini değiştirdi.user_id
notifications.suppressedBir bildirim kasıtlı olarak gönderilmedi.delivery_id, reason
notifications.test_queuedBir kanal için test bildirimi sıraya alındı.delivery_id, channel_id
Bu sayfa yardımcı oldu mu?