notifications

POST /v1/notification-connections

Connect a destination.

Alle notifications-eindpunten

Authenticatie

Stuur een API-sleutel mee als bearer token. Dit eindpunt vermeldt geen specifieke toestemming in de specificatie, dus geef uw sleutel de minimale rechten die nodig zijn en controleer het antwoord in plaats van zomaar wat aan te nemen.

Waar je organisatie-id komt te staan

Dit eindpunt accepteert org_id als queryparameter. Laat deze achterwege en de aanroep destilleert je gehele tenant-substructie; stuur deze mee om de aanroep te beperken tot één organisatie.

Uw organisatie-id staat op het scherm met API-sleutels in uw dashboard, naast de sleutel zelf. Dit is in elke aanroep die u doet dezelfde id.

Probeer het

Vervang alles tussen punthaakjes door uw eigen waarden en de sleutelplaatsvervanger door een sleutel uit uw dashboard.

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> }'

Ingelogd? De API-console in je dashboard vult je echte organisatie-id en je eigen sleutel in, en voert het verzoek uit tegen de live API zodat je de daadwerkelijke respons kunt zien. Open dit eindpunt in de API-console

Details

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.

Parameters

NaamTypeVerplichtWat dit is
org_id (query)stringNeeThe 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…

Aanvraaglichaam

NaamTypeVerplichtWat dit is
kindstring<email, slack, telegram, webhook>JaSMS and push are deliberately absent - both were rejected. Offering a kind nobody can use is a placeholder with a dropdown.
labelstringJa
targetstringJaThe NON-secret half - an address, a channel name, a chat id.
credentialstringNeeThe 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…
personalbooleanNeetrue = this is MY destination and only my own matrix addresses it. The owning user is the authenticated principal, never a value in this body.

Reactie

NaamTypeVerplichtWat dit is
idstringNee
kindstring<email, slack, telegram, webhook>Nee
labelstringNee
targetstringNee
personalbooleanNee
verifiedbooleanNeeUntil 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_atstringNee
checked_atstringNeeWhen 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_confirmationbooleanNeeAn 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_errorstringNee
verify_error_codestring<their_endpoint_refused, their_endpoint_unreachable, their_credential_rejected, their_recipient_refused, not_configured, our_fault, could_not_check, >NeeThe 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>Nee⚖️ 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_atstringNeeWhen a real notification was last DELIVERED here, as against verified.
last_failure_atstringNee
last_delivery_errorstringNeeWhy 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, >NeeThe 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_failuresintegerNeeReset 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_secretstringNeeWebhook 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_noticestringNee
routesobjectNeeThe FULL grid for this connection, one boolean per notification topic.