notifications
POST /v1/notification-connections
Connect a destination.
احراز هویت
یک کلید API را به عنوان یک توکن برbearer ارسال کنید. این نقطه پایانی مجوز خاصی را در مشخصات خود ذکر نمیکند، بنابراین به جای فرض کردن، حداقل نیازهای کلید خود را بدهید و پاسخ را بررسی کنید.
جایی که شناسه سازمان شما قرار میگیرد
این نقطه پایانی org_id را به عنوان یک پارامتر پرسوجو میپذیرد. آن را رها کنید تا فراخوانی کل زیردرخت اجارهای شما را پوشش دهد؛ آن را ارسال کنید تا فراخوانی به یک سازمان محدود شود.
شناسه سازمان شما در صفحه کلیدهای API در داشبوردتان، در کنار خود کلید قرار دارد. این شناسه در تمام درخواستهایی که ارسال میکنید یکسان است.
امتحان کنید
هر چیزی را که داخل براکتهای زاویهدار قرار دارد با مقادیر خودتان جایگزین کنید، و نگهدارنده کلید را با کلیدی از داشبورد خود جایگزین نمایید.
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> }'وارد شدهاید؟ کنسول API در داشبورد شما شناسه سازمان واقعی و کلید خودتان را پر میکند و درخواست را روی API زنده اجرا میکند تا بتوانید پاسخ واقعی را ببینید. این نقطه پایانی را در کنسول API باز کنید
جزئیات
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.
پارامترها
| نام | نوع | الزامی | چیست |
|---|---|---|---|
org_id (query) | string | خیر | 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… |
بدنه درخواست
| نام | نوع | الزامی | چیست |
|---|---|---|---|
kind | string<email, slack, telegram, webhook> | بله | SMS and push are deliberately absent - both were rejected. Offering a kind nobody can use is a placeholder with a dropdown. |
label | string | بله | — |
target | string | بله | The NON-secret half - an address, a channel name, a chat id. |
credential | string | خیر | 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 mint… |
personal | boolean | خیر | 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. |
پاسخ
| نام | نوع | الزامی | چیست |
|---|---|---|---|
id | string | خیر | — |
kind | string<email, slack, telegram, webhook> | خیر | — |
label | string | خیر | — |
target | string | خیر | — |
personal | boolean | خیر | — |
verified | boolean | خیر | 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_at | string | خیر | — |
checked_at | string | خیر | 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 your… |
awaiting_confirmation | boolean | خیر | 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"… |
verify_error | string | خیر | — |
verify_error_code | string<their_endpoint_refused, their_endpoint_unreachable, their_credential_rejected, their_recipient_refused, not_configured, our_fault, could_not_check, > | خیر | 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 wrapper… |
health | string<healthy, idle, failing, unverified> | خیر | ⚖️ 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_at | string | خیر | When a real notification was last DELIVERED here, as against verified. |
last_failure_at | string | خیر | — |
last_delivery_error | string | خیر | 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… |
last_delivery_error_code | string<their_endpoint_refused, their_endpoint_unreachable, their_credential_rejected, their_recipient_refused, not_configured, our_fault, could_not_check, > | خیر | 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… |
consecutive_failures | integer | خیر | 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 own… |
signing_secret | string | خیر | 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 the… |
signing_secret_notice | string | خیر | — |
routes | object | خیر | The FULL grid for this connection, one boolean per notification topic. |