Notifications

Add real-time notifications to your product.

Cross-channel out of the box: in-app feeds, email, Slack, and Teams, with batching, routing, broadcasts, and per-user preferences.

Stop letting deadlines die in unread inboxes.

Free tier. No credit card. First comment in 5 minutes.

VCSales deck / Q3 review
3
Notifications3 newSearch
For YouDocumentAll
Now

Review Agent flagged 3 pricing claims on Q3 deck

“conflicts with the rate table on slide 4”

2m

Maya assigned you the contract sign-off

contract.pdf · due Friday

8m
Earlier

Sarah resolved the Q3 forecast thread

forecast.xlsx · 12 updates batched

1h
Build this

Notification feeds running inside products at

Migrating from an in-house build or another SDK?Compare·Migration guide

What it is

One feed, both actor types.

Cross-channel notifications for the review layer, out of the box: in-app feeds, email, Slack, and Microsoft Teams. By default the inbox is connected to Comments — mentions, replies, and thread activity generate notifications automatically, and only for documents the user has access to. Your backend adds custom events through the REST API, an optional pipeline batches bursts into digests, and each user sets their own preferences per channel.

VNNotifications / Inbox
both actor types
For YouDocumentAll
Inbox

Margin Review Agent flagged 3 pricing claims on the Q3 deckagent

opens to findings

2m

Maya assigned you the contract sign-off, due Fridayhuman

8m

12 updates on the Acme renewal, batcheddigest

1h

one feed, both actor types, consent where the agent’s work lands

How it works

Three steps to the first notification.

Enable Notifications in the Velt Console, drop in the tool, and comment activity flows into the inbox automatically. Email, batching, and custom events layer on from there.

01Install
terminal
npm install @veltdev/react
02Wrap
_app.tsx
<VeltProvider
  apiKey={VELT_API_KEY}>
  <YourApp />
</VeltProvider>
03Mount
app-header.tsx
// enable Notifications in the Velt Console first
<VeltNotificationsTool />
// or embed VeltNotificationsPanel
With Velt

The mechanics

By default the inbox is connected to Comments: mentions, replies, and thread activity generate notifications automatically, and only for documents the user has access to. Custom events from your backend land in the same inbox through the REST API with full CRUD. Email goes out through your SendGrid account or any email service via webhooks. An optional delay-and-batch pipeline holds notifications, suppresses delivery when the recipient already saw the activity, and groups the rest into digests. Preferences are per-user: set all, mine, or none per channel, per document or org-wide.

// comment activity flows in automatically · scoped to documents the user can access

Build it yourself

What an in-house version requires

  • event capture across every feature
  • an inbox UI with tabs and read states
  • permission filtering so users never see activity they lack access to
  • email delivery and templates
  • channel fan-out
  • batching and digest logic
  • suppression of already-seen activity
  • per-user preference storage at document and org level
  • retention rules and an API for custom events

Teams that build it budget weeks for the inbox and a quarter for the pipeline, then keep paying for the long tail. The 3 steps above replace the inbox; the capability wall below replaces the pipeline.

MCP: the faster path.

Skip the steps. Have your agent set it up.

npx -y @velt-js/mcp-installer

Launch notifications this week.

No credit card. Works with React, Next.js, Vue, Angular, and HTML.

Get Free API Key

Capabilities

Reviewers, reached in time.

Each card is the live SDK. Toggle to Code for the exact snippet that renders it.

01inbox
NotificationsFor You
For YouDocumentAll
Now

Maya mentioned you on Q3 forecastmention

“@you can you review before Friday?”

2m

Sarah replied on the Q3 threadreply

forecast.xlsx · cell B12

9m

Ethan requested your sign-offsign-off

contract.pdf · due today

1h
// inbox
<VeltNotificationsTool />
// panel opens automatically

In-app inbox

Prebuilt tool and panel components with For You, Document, and All tabs. The reviewer opens one feed and finds every mention, reply, and sign-off request waiting.

02email
EmailSendGrid
notifications@velt.devto ethan@acme.com
Sign-off requested: Q3 forecast@Ethanmentioned on Q3 forecast: “approve before Friday close?”
delivered · hasn’t opened the app
// email
// SendGrid integration: API key,
// template ID, from address in console

Email notifications

Mentions and replies fire emails through your SendGrid account or any service via webhooks. The reviewer who hasn’t opened your product today still sees the sign-off request.

03batching
Digest1 / day
40 events · 13 already seen
Q3 forecast · daily digest27 new updates, batched into one
deduplicatedAlready-seen suppressed
// batching
// delay-and-batch + already-seen
// suppression, configured in console

Batching and digests

A delay-and-batch pipeline holds bursts, drops what the recipient already saw, and delivers one digest. Deadline-day activity arrives as a summary, not forty separate pings.

04preferences
Preferencesper channel
In-appevery eventALLMINENONE
Emailmentions & assignmentsALLMINENONE
SlacksilencedALLMINENONE
settings UI · RESTPer document or org-wide
// preferences
<VeltNotificationsTool enableSettings />

Per-user preferences

Each user sets all, mine, or none per channel, per document or org-wide, through the settings UI or REST API. The reviewer decides what reaches them.

05custom
REST APIPOST
POST/v2/notifications{ type, to: userId, body }
deadlinecounterpartyworkflow step
Deadline · sign-off due 5pmin the same inbox
// custom
POST /v2/notifications
{ "type": "deadline", "to": userId }

Custom notifications via REST API

POST your app’s own events into the same inbox: deadline alerts, counterparty updates, workflow steps. One feed carries everything your reviewers need to act on.

06webhooks
Webhookscomment.*
comment.addedpayloadsent
review.approvedpayloadsent
SlackYour endpoint, your rules
// webhooks
velt.webhooks.subscribe({
  events: ["comment.*", "review.*"],
});

Webhooks to your channels

Comment and review events fire to your endpoint with full payloads; route them to Slack or any channel you run. Your pipeline, your rules, Velt supplies the events.

07agents
Agent activityovernight
Review Agent9:00 AM

Finished overnight: 3 findings ready as an approve-or-reject queue.

3 Replies
notifiedRan 02:14 · surfaced at sign-in
// agents
// agent comments + inbox auto-
// connection to Comments

Agent activity notifications

An agent is a user: its findings notify the assigned reviewer like anyone’s. The agent works overnight; the reviewer finds the approve-or-reject queue at nine.

08permissions
Scoped feedsby access
Counterparty
Their shared thread moved: reply added
Reaches their inbox
Internal
Team deliberation on the counter-offer
Never reaches them
// permissions
// notifications fetched only for
// documents the user can access

Permission-scoped feeds

Notifications generate only for documents the user can access. The counterparty sees their thread move; your team’s internal deliberation never reaches their inbox.

09self-host
Self-hostdata provider
Your servers

Mayamentioned you: “approve the revised Q3 projections?”

full content
Velt stores
userId: usr_8f21docId: doc_q3type: mention
minimal ids
// self-host
// notifications data provider →
// content on your infrastructure

Notification data on your infrastructure

The self-host data provider keeps notification content on your servers; Velt stores minimal identifiers. The deal blocked on data residency clears without a feature trade.

Approval requests used to sit unread until the deadline passed. With the inbox and email out of the box, the approver sees their turn the same day — our campaigns stopped slipping.

Marketing ops lead · content platform

Little big details

The long tail, already built.

Shipped functionality leads; draft items render after engineering sign-off. This is the part of an in-house build that never ends.

VeltNotificationsTool and VeltNotificationsPanel componentsPanel tabs: For You, Document, and AllDefault fetch limits (50 in For You, 15 per document), all configurableNotifications generated and fetched only for documents the user can accessCustom notifications via REST API with full CRUD (v1 and v2)Notification config REST API (get and set), per-user preference keysPreference values ALL, MINE, or NONE, per document or org defaultUser-facing settings on the tool or panel (enableSettings)setSettings, getSettings, and a settingsUpdated eventDelay-and-batch delivery with already-seen suppression and digestsEmail via SendGrid integration or any service via webhooksDocumented email template payload plus a sample HTML templateWireframes and primitives for the Panel and ToolSelf-host notification content via the data providerMark-as-read and read states in the panel UIComing soonFirst-party Slack, Teams, Discord, Resend, and Customer.io deliveryComing soonRouting rules and broadcastsComing soonDeadline remindersComing soonSettings scope beyond the root documentComing soon

Make it yours

Your inbox, your pipeline.

Prebuilt Tool and Panel for the fast path, wireframes and primitives for fully custom inbox UIs, and a REST surface for custom events and preferences.

Look

Prebuilt Notifications Tool and Panel for the fast path; wireframes and primitives for both for fully custom inbox UIs; template variables, global styles, dark mode. Your SendGrid email template is yours end to end.

Acme · Inboxyour theme

Maya mentioned you on Q3 forecast

“@you review before Friday?”

2m

Sarah requested your sign-off

contract.pdf · due today

9m
In-appEmailSlack

Behavior

Custom notifications via REST API; notification config API at document or org level; settings APIs with an extendable channel list; batching and delay configuration in the console; webhooks into your own channel pipeline.

Delivery configyour rules
in-appemailSlackwebhook
digestbatched · 1 / day
per-user prefsALLMINENONE
customEventsPOST/notifications
We POST our own deadline and counterparty events into the same inbox as comment activity. Reviewers have one place to look instead of five.

Staff engineer · deal management platform

In production

Reached in time, in products like yours.

Tabbed by vertical, with verified customer screenshots.

SummaryNext StepsDemoCustomer Stories

Hey Conductor!

This Digital Sales Room gives you everything you need to move forward — from proposal to plan.

Our Mutual Action Plan
Training2 / 5
Creating a new Room1
Build a working demo room
Contract sign-off
Maya2m

@Fin We need to make a working demo for Rene and his team

Brand and legal get the review request where they work: inbox, email, or their channel. The campaign deadline survives because the approver saw their turn today, not Thursday.For sales enablement

See it running in products like yours.

30 minutes, with an engineer, not a sales deck.

Book Demo
SOC 2 Type IIHIPAAEU data residencyPermission-scoped

Notification content can live on your infrastructure via the self-host data provider, with only minimal identifiers on Velt. Notifications generate only for documents a user can access, so internal deliberation never reaches the wrong inbox. See self-hosting and governance.

Book Demo

Proof

Deadlines that held.

Reviews stopped stalling on unseen requests.

0 slips

Approval requests used to die in unread inboxes. Now the approver gets it in-app and by email the same day, and our campaign deadlines stopped slipping.
Marketing ops lead, content platform

1 digest

Close week used to mean a ping per cell. Batching turned it into one digest a day, and the controller actually reads it.
Controller, FP&A platform

1 day

We had a working inbox the day we dropped in the tool. The pipeline — batching, preferences, email — was already there.
Staff Engineer, ops platform

FAQ

Questions about Notifications.

Install @veltdev/react, wrap your app in VeltProvider with your API key, enable Notifications in the Velt Console, and add the VeltNotificationsTool component where the bell belongs. The panel opens automatically; comment activity flows in with nothing else to wire.

In-app inbox components out of the box. Email through your SendGrid account or any email service via webhooks. Other channels like Slack via webhooks, with a Slack key in the per-user preference API.

Yes. POST custom notifications from your backend through the REST API and they land in the same inbox as comment activity, with full CRUD to update or remove them later.

Yes. Turn on settings on the tool or panel and each user picks all, mine, or none per channel. The same config is settable via REST API, per document or as the org-wide default, and the settings UI channel list is extendable.

Yes. An opt-in delivery pipeline holds notifications, suppresses delivery when the recipient has already seen the activity, and groups the rest into digests before sending. Configured in the Velt Console.

Yes. An agent is a user with type agent, so its comments and findings generate the same notifications as anyone’s: the assigned reviewer gets the agent’s output in their feed with the approve-or-reject step attached.

Knock is general-purpose notification infrastructure: you send it events and it orchestrates delivery across channels at scale. Velt notifications come pre-wired to the review layer: comments, mentions, and review activity generate notifications automatically, the inbox components are included, and your backend adds custom events via REST API. If you need a standalone notification platform for your whole product, that is infrastructure like Knock; if you need your review loop noticed without building the pipeline, that is Velt.

Yes. The notifications data provider keeps notification content on your infrastructure while Velt stores only minimal identifiers. See the self-hosting page.

Velt is priced on usage, not seats: you pay for documents with review activity in a month, and there is a free tier for development and early production. Notifications is part of the SDK, not a separately priced add-on.

Add real-time notifications to your product.

Free tier. No credit card. First comment in 5 minutes.

30 minutes, with an engineer, not a sales deck.