Notifications
The bell for the acting account and member
The bell for the acting account and member (?unread=1, per_page); meta.unread_count
Unread count
Unread count
Mark all read
Mark all read
Mark read
Mark read
Remove from your bell
Remove from your bell
Types x channels
Types x channels (in_app, email) for you, plus can_manage_channels. Each type has a group (Runs, Automation, Billing, Actor development, Team, Listening, Support); billing.out_of_credit, usage.anomaly, integration.failing and developer.monthly_summary (email only by default) among them
Save settings
Save settings: [{ type, in_app, email }]
Chat channels
Owner/admin: chat channels (Slack, Discord, generic JSON webhook, Telegram, Zalo OA, Zalo ZNS, email list); address shown as a preview only, tokens never (`has_token`). Zalo: `auto_refresh` (Lantfly refreshes the OA token), `token_expires_at`, `broken_at` (refresh failed: needs a new token). ZNS: `zns { sender, operator_template, template_id, template_params, phones (masked), verified (per phone) }`
Add a channel
Owner/admin: add a channel. kind slack|discord|webhook: url (private addresses refused); telegram: bot_token + chat_id, optional thread_id (topic id of a forum group, message_thread_id; null = the General topic, returned as `thread_id`); zalo: access_token (OA) + recipient_id + recipient_type user|group (OA message/cs or group message), optional refresh_token + app_id + app_secret for auto-refresh; zalo_zns: phones (1-10, VN numbers, normalised to +84) and sender lantfly | own. lantfly (only when offered, see /notifications/zns/templates): operator_template (a key; template id and parameters are Lantfly staff's, fixed), each phone must be verified (phones/{index}/send-code + verify), capped per account per day. own: access_token + app_secret (optional refresh_token + app_id), template_id (approved ZNS template), template_params { param: source } (title, body, url, type, account, date, time, datetime, data.⟨key⟩, text:⟨fixed⟩); email: emails (1-20). Stored encrypted. A generic webhook gets a signing secret, returned once as `secret` (each delivery: X-Lantfly-Timestamp, X-Lantfly-Signature: sha256=HMAC(secret, timestamp + '.' + body)); `signed` says whether a channel has one
Update channel (notifications)
Owner/admin: update
Delete channel (notifications)
Owner/admin: delete
Send a sample now
Owner/admin: send a sample now (ok, status, error). Telegram checks the bot token with getMe first
Generic webhook
Owner/admin: generic webhook: new signing secret, returned once as `secret` (the old one stops working). Telegram/Zalo/own-OA ZNS: body { secret, refresh_token? } replaces the token (never returned) and clears `broken_at`. 422 for Slack/Discord/email and ZNS through Lantfly's OA
ZNS channel
Owner/admin: ZNS channel: the last 50 messages tried, newest first: id, notification_id (null = test), phone (masked), template_id, sender, status sent|failed|limited|unverified, msg_id, error_code, error, created_at
List templates (notifications › zns)
Owner/admin: `operator_oa` (ZNS through Lantfly's OA is offered: Lantfly staff switch, verification template, at least one template) and `templates` [{ key, label, params }]
Send code phone
Owner/admin, ZNS on Lantfly's OA: send a 6-digit code to phone `index` (order of zns.phones) through Lantfly staff's verification template. Valid 10 min; one per minute per phone; at most 10 per account per day. 6/min
Confirm the code
Owner/admin: confirm the code; 5 tries per code. 10/min