notifications

POST /v1/notification-connections

Connect a destination.

Gbogbo àwọn notifications endpoints

Ìfàṣẹ́pọ̀

Fi bọ́kì kọ́kọ́ (bearer token) ránṣẹ́ gẹ́gẹ́ bí àmì ìdánimọ̀ API. Ibùdó yìí kò sọ àṣẹ pàtó kan nínú àlàyé rẹ̀, nítorí náà fún kọ́kọ́ rẹ̀ ní ohun tó kéré jù lọ tí ó nílò kí o sì ṣàyẹ̀wò ìdáhùn náà dípò kí o kàn rò ó.

Ibùdó àmì ìdánimọ̀ ilé-iṣẹ́ rẹ sí

Oju-iwọle yii nlo org_id gẹgẹbi ayẹwo ibeere. Fi silẹ ni ita yoo si bo igi iyalo rẹ lapapọ; ranṣẹ si lati dín ibeere naa kù si ajọ kan.

Id àjọ rẹ wa lórí ojú-ìwákòòkò àwọn bọ́tìnnì API nínú daṣibọọdú rẹ, lẹ́gbẹ̀ẹ́ bọ́tìnnì náà gan-an. Ó jẹ́ ìd kan náà nínú gbogbo ìpè tí o bá ṣe.

Gbiyanju rẹ

Rọ́pọ̀ èyíkéyìí nínú àwọn àmì ìtọ́ka < > pẹ̀lú iye tirẹ̀, àti àmì ìdánimọ̀ bọ́tìnnì náà pẹ̀lú bọ́tìnnì kan láti inú dásibọ̀ọ̀dù rẹ.

curl -X POST https://api.zinndigital.com/v1/notification-connections \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "kind": <string<email, slack, telegram, webhook>>, "label": <string>, "target": <string> }'

Ṣé o ti wọlé? Iwọ̀n api ní nú ìgbékalẹ̀ rẹ kún id àjọ gidi rẹ ati bọtini tirẹ, o si nṣiṣẹ ibeere na lòdì si api gidi ki o le rii esi gidi na. Ṣí ojú abáná yìí sílẹ̀ nínú kọnsólù API

Àwọn kúlẹ̀kúlẹ̀

Adds a destination. Many of the same kind are supported and expected - two Telegram chats, three Slack channels, an accountant's e-mail that belongs to no platform user. A new connection is NOT usable until it has been verified: it must send a real test message first. A destination that has only been typed correctly has not been shown to work, and this whole surface exists because two channels sat configured and silent.

Àwọn ìpìlẹ̀

OrúkọIruTí a nílòKini o jẹ
org_id (query)stringBẹẹkọThe organization to act on. Omitted resolves to your own ONLY when you belong to exactly one organisation; a principal in more than one must name it, or the call is refused `422…

Akoonu ibeere naa

OrúkọIruTí a nílòKini o jẹ
kindstring<email, slack, telegram, webhook>BẹẹniSMS and push are deliberately absent - both were rejected. Offering a kind nobody can use is a placeholder with a dropdown.
labelstringBẹẹni
targetstringBẹẹniThe NON-secret half - an address, a channel name, a chat id.
credentialstringBẹẹkọThe credential itself - a Slack incoming-webhook URL, or a Telegram bot token. Required for those two kinds and refused for the others: a webhook's signing secret is ours to min…
personalbooleanBẹẹkọtrue = this is MY destination and only my own matrix addresses it. The owning user is the authenticated principal, never a value in this body.

Idahun

OrúkọIruTí a nílòKini o jẹ
idstringBẹẹkọ
kindstring<email, slack, telegram, webhook>Bẹẹkọ
labelstringBẹẹkọ
targetstringBẹẹkọ
personalbooleanBẹẹkọ
verifiedbooleanBẹẹkọUntil this is true nothing is routed here. For a machine destination it becomes true when a real test message has been delivered; for an e-mail address it becomes true only when…
verified_atstringBẹẹkọ
checked_atstringBẹẹkọWhen we last managed to LOOK, as against `verified_at` which is when we last PROVED it works. One field cannot answer both: without the pair, "we have not been able to reach you…
awaiting_confirmationbooleanBẹẹkọAn e-mail destination that has been sent its confirmation link and is waiting for the recipient. Neither verified nor failed - a third state, and showing it as "not verified" ma…
verify_errorstringBẹẹkọ
verify_error_codestring<their_endpoint_refused, their_endpoint_unreachable, their_credential_rejected, their_recipient_refused, not_configured, our_fault, could_not_check, >BẹẹkọThe TRANSLATABLE half of `verify_error`. That sentence is authored English and this payload is rendered in 57 other languages, so a German customer was shown a translated wrappe…
healthstring<healthy, idle, failing, unverified>Bẹẹkọ⚖️ Owner, 2026-09-03 - *"can you get something to check that is set up and working properly please"*. `verified` answers *did this EVER work*; this answers *is it working NOW*,…
last_delivery_atstringBẹẹkọWhen a real notification was last DELIVERED here, as against verified.
last_failure_atstringBẹẹkọ
last_delivery_errorstringBẹẹkọWhy the last delivery failed, in copy WE authored, chosen from a closed table by what failed and where it was going (`engine.notifications.failure_copy`). It is never the provid…
last_delivery_error_codestring<their_endpoint_refused, their_endpoint_unreachable, their_credential_rejected, their_recipient_refused, not_configured, our_fault, could_not_check, >BẹẹkọThe translatable half of `last_delivery_error`, on the same contract as `verify_error_code`. Classified by the adapter at the seam that knew what happened, never re-derived down…
consecutive_failuresintegerBẹẹkọReset to 0 by any success, so a destination that recovers stops reporting itself broken with nobody pressing anything. `failing` is three in a row - one `502` from somebody's ow…
signing_secretstringBẹẹkọWebhook destinations only, and returned ONCE on create. Use it to verify the `X-Zinn-Signature` header. There is no endpoint that will show it again - one would turn a read of t…
signing_secret_noticestringBẹẹkọ
routesobjectBẹẹkọThe FULL grid for this connection, one boolean per notification topic.