Velt Huddle adds Slack-style live audio, video, and screen sharing inside your product, scoped to the document your users are working on. A huddle starts with one click: no link, no invite, no calendar. It exists for the moment reviewers genuinely disagree: when two reviewers are three replies deep and still apart, the conversation attached to the work resolves what the thread cannot. Agents appear in the same presence row and their findings sit in the thread under discussion; the humans take the call and the consent step closes it. Agents do not join the audio or video.
Clause 7: vendor rate is 12% over the contracted schedule
ApproveReject
agent
LIVE
MASR
screen on clause 7
agent flags · humans huddle and talk it out · Approve closes it (agents never join the call)
How it works
Three steps to the first huddle.
Wrap your app, add VeltHuddle at the root, and drop VeltHuddleTool where the start button belongs. Clicking the tool starts a huddle on the current document; teammates already there join in place.
<VeltHuddle/>// place the start button anywhere:<VeltHuddleTool/>
With Velt
The mechanics
The VeltHuddleTool button starts a huddle on the current document; teammates in the same document join from where they already are. The type config sets what a huddle carries: audio, video, screen, or all (default all). An ephemeral chat is on by default and toggles by prop or API. Calls run peer-to-peer and fall back to a server-side connection automatically (serverFallback, default on). Clicking a participant’s avatar can start Follow Me mode (flockModeOnAvatarClick, default off). Every huddle created or joined fires a webhook with the acting user, document ID, and page metadata.
// VeltHuddleTool starts a huddle on the current document
Build it yourself
What an in-house version requires
WebRTC signaling and session management
STUN and TURN infrastructure
device permission UX for camera, mic, and screen capture
peer-to-peer transport with server fallback
join and leave state synced to presence
in-call chat
reconnection handling
cross-browser quirks
call quality monitoring
Teams that build live audio and video budget a quarter for the first version and keep paying for the transport long tail. The 3 steps above replace that quarter.
MCP: the faster path.
Skip the steps. Have your agent set it up.
npx -y @velt-js/mcp-installer
claude mcp add velt-installer -- npx -y @velt-js/mcp-installer
Each card is the live SDK. Toggle to Code for the exact snippet that renders it.
01audio
Voice huddlelive · audio
Maya
Sarahlistening
Notetakercapturing
one click opens a live voice channel on the document
// audio
<VeltHuddleTooltype="audio"/>
Audio huddles
One click in your toolbar opens a live voice channel on the document under review. The pricing dispute gets talked through next to the pricing table, not in another app.
02video
Video huddle2 on
Maya
Sarah
faces on, still inside the document
// video
<VeltHuddleTooltype="video"/>
Video huddles
Faces on, still inside the document. When the negotiation needs more than text, the client conversation happens where the deck is, not in a separate meeting tool.
03screen
Screen sharelive
contract.mdSHARING
7.2 The vendor rate shall not exceed 12% of base contract value.
Sarah is sharing
// screen
<VeltHuddleTooltype="screen"/>
Screen share in the huddle
Any participant shares their screen inside the huddle. Walk the reviewer through the clause, the cell, or the field record while everyone watches live.
04start
No link, no inviteone click
Start huddleeveryone in the doc is in
meeting linkcalendar invitejoin URL
// start
<VeltHuddleTool/>
No-link, no-invite start
Clicking the huddle tool starts the call on the spot. Teammates already in the document join from where they are: no URL, no invite, no calendar.
05scoped
Scoped to the docevery event
notificationSourcehuddle
documentIdcontract-114
pageInfo.pageclause-7
participants2
// scoped
// every event carries documentId// and page metadata
Huddles scoped to the document
A huddle belongs to the document it started on; every event carries the document ID and page metadata. The conversation about the filing stays attached to the filing.
06presence
In the room3 here
Mayaspeaking
Sarahspeaking
Jordanlistening
// presence
<VeltHuddle/>// renders huddle users in your app
Presence integration
Huddle users render through the same presence layer as the rest of your app. Reviewers see who is already talking about the contract before they join.
07chat
Huddle chatephemeral
Mayanow
Corrected rate: 9% - see footnote 4
Sarahnow
Dropping the doc link without talking over you
clears when the huddle ends · toggle by prop or API
// chat
velt.enableChat();
velt.disableChat();
Built-in chat
Every huddle carries an ephemeral chat, on by default, toggleable through the API. Drop the corrected number or the doc link without talking over whoever has the floor.
Every huddle created or joined fires a webhook with the user, document, and page metadata. Pipe live-conversation activity into your analytics or your audit pipeline.
The deck review used to stall, then move to a scheduled call the next day. Now the huddle starts on the slide and the claim is settled before anyone leaves the document.
Head of Product · sales enablement platform
Little big details
The long tail, already built.
Shipped functionality only. The confirmed set leads; draft items render after engineering sign-off. This wall stays short on purpose and indexes shipped truth only.
Huddle type config: audio, video, screen, or all (default all)Built-in ephemeral chat, default on, with enableChat and disableChat APIsFollow Me mode on avatar click (flockModeOnAvatarClick, default off)Peer-to-peer transport with automatic server-side fallback (serverFallback, default on)Webhooks on huddle created and joined: actionUser, document ID, locations, page infoVeltHuddleTool placeable anywhere in your UIWeb components (velt-huddle, velt-huddle-tool) for non-React frameworksUI customization via huddle wireframe parts, slots, and template variablesGlobal styles and dark modeParticipant limits per huddleComing soonMute and device-switching controlsComing soonMobile and WebView behavior for live callsComing soonHuddle behavior across page navigation within a documentComing soonLocalization coverage for huddle UI stringsComing soon
Make it yours
Your huddle UI, your call rules.
Wireframe parts, slots, and template variables for the in-call bar and chat, plus type config, chat toggles, follow mode, and webhooks underneath.
Look
Huddle wireframe customization via Parts, Slots, and Template Variables, plus global styles and dark mode. The in-call bar and chat can look nothing like Velt’s defaults.
Maya
Sarahmuted
Notetakeragent
Live
<VeltHuddleWireframe>// your in-call bar markup</VeltHuddleWireframe>
Behavior
Type config per tool instance (an audio-only button next to a full one), chat toggle by prop or API, Follow Me mode on avatar click, server fallback control, and webhooks into your pipeline.
typeaudiovideoscreen
joinRulerequest to join
scopedocumentId
serverFallbackon
webhookshuddle.created · huddle.joined → your pipeline
<VeltHuddleTooltype="audio"/>
velt.disableChat();
We restyled the in-call bar to match our editor in a day. The transport, the reconnects, the screen-capture permissions: all of that was already handled.
Staff engineer · collaborative editor
In production
Huddles, 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
M
Maya2m
@Fin We need to make a working demo for Rene and his team
The deck review stalls on the claims slide, and the huddle starts right there. Brand, legal, and the writer settle it in one conversation on the asset itself.For sales enablement
finance / receivables
Active invoices$42,125
Awaiting approval$8,400
Paid this week$31,900
Invoice IdClientCost
#20251Apex Manufacturers$4,2501
#20248Northwind Logistics$2,980
#20245Helios Energy$7,1201
#20242Cedar & Stone LLP$3,5402
#20239Bluefin Capital$5,860
M
Maya2m
Can we confirm the PO before approving this one? @Sarah
1 Reply
When the variance question is too tangled for a cell thread, the analyst and the controller talk over the live model. The forecast gets settled with the numbers on screen.For fintech and FP&A
Cotton Supplier Ltd.
Mid Weight Indigo Denim
Farm
AgriCotton Farms
Village Kheda, Gujarat, India
Cotton Yarn1
SpinCo Yarns
18 Narol Rd, Gujarat, India
Manufacturer
DyeWorks International
Calle de Mayo, Mexico
M
Maya2m
Can you attach the GOTS cert for this lot before we approve? @Sean
1 Reply
Sean
The shipment exception needs the planner and the field lead at the same moment. The huddle runs on the order record, screen share on the discrepancy itself.For operations
Privacy Risk Review
New feature processing health data
Wren discovered a feature request in Jira involving users' health data and triggered a review after analyzing the PRD in Confluence against company policy and US regulation.
JStarted by Juan Mendez
JMShare
Wren analyzed the PRD against policy and HIPAASee analysis1
Wren recommends a PIA based on the findingsStart
Route the PIA to the Privacy Office for approvalWaiting on PIA1
Discussion
Add a comment
Policy Agent2m
This feature processes PHI, so HIPAA applies. I recommend a PIA and a vendor BAA review before any data flows. @Juan
The flagged control needs the officer and the analyst at the same moment. The huddle starts on the controls register, screen share on the attestation in question, and the decision lands before filing.For compliance
Superflow
SaaS Monthly Subscription
JMShare
1 · Subscription & Fees
Customer subscribes to the Service on a monthly basis and shall pay the then-current fees in advance of each billing period. Fees are non-refundable except as expressly set out in this Agreement.
2 · Term & Auto-Renewal
The subscription renews automatically for successive one-month terms unless either party gives at least thirty (30) days' written notice of non-renewal before the end of the then-current term.
3 · Limitation of Liability
Except for breaches of confidentiality, each party's total aggregate liability under this Agreement shall not exceed the fees paid by Customer in the one (1) month preceding the event giving rise to the claim.
4 · Governing Law
This Agreement is governed by the laws of the State of Delaware, without regard to its conflict-of-laws provisions, and the parties consent to the exclusive jurisdiction of its courts.
M
Maya5m
@Jordan Auto-renewal needs 60 days' notice to match our policy, not 30.
J
Jordan2m
@Maya Liability cap is one month of fees — Legal wants 12 months before we sign.
P
Priya8m
@Maya Governing law should be New York to match the MSA.
Counsel and the deal team disagree on the liability cap, so they huddle on the clause itself. They settle the redline in one conversation on the matter, with no call scheduled.For legal
CommentShare
Make the hero headline punchier and add a primary CTA.
Done — rewrote the headline, tightened the subtext, and added a primary CTA in hero.tsx.
Add a logo strip with social proof under the CTA.
Added a five-logo trust strip below the CTA and wired it into hero.tsx.
Edit hero.tsx
Type your prompt
Ship your app in a weekend
Get started
M
Maya2m
Use our brand orange on the CTA and cut the headline to one line. @Sean
An agent flags a clause and two reviewers disagree on the fix. They huddle on the document, decide together, and the decision lands back on the finding.For AI-native SaaS
SOC 2 Type IIHIPAAEU data residencySelf-host identity
User identity behind every participant can stay on your infrastructure via the user's data provider, with Velt storing only user IDs. Huddle runs on the same SOC 2 controls and isolation guarantees as the rest of the SDK. See self-hosting and governance.
Users stopped leaving to finish the conversation somewhere else.
0 Zoom links
Our users used to bail to Zoom to finish a review. Now the huddle starts on the document and the conversation never leaves the product.
Head of Product, sales enablement platform
1 week
Live audio and video was a quarter of work we did not have. We dropped in VeltHuddle and shipped it in a week.
Founding engineer, collaborative editor
5 min
The pricing dispute that took a day of async replies now gets settled in a five-minute huddle next to the model.
Controller, FP&A platform
FAQ
Questions about Huddle.
Zoom is a meeting product: scheduled, link-based, with its own app and account model, and it is very good at that. A Velt huddle is a feature of your product: it starts with one click on the document, with no link and no calendar; participants are your existing signed-in users; and it is scoped to the work being discussed. It is also part of the same SDK as comments, presence, and recording, so there is no second vendor and no second user system.
Install @veltdev/react, wrap your app in VeltProvider with your API key, add VeltHuddle at the root, and place VeltHuddleTool where you want the start button. Clicking the tool starts a huddle. The huddle setup guide walks through it.
Yes. The type config accepts audio, video, screen, or all; the default is all. An audio-only huddle button is one prop.
From the document itself: users signed into the same document see the active huddle and join in place, without a link or an invite.
Yes. Every huddle has built-in ephemeral chat, on by default, and you can disable it by prop or through the API.
Huddles run peer-to-peer and automatically fall back to a server-side connection. The fallback is on by default and configurable.
Yes. Velt fires a webhook when a huddle is created or joined, with the acting user, document ID, and page metadata in the payload. Pipe it into analytics or your audit pipeline.
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. Huddle is part of the SDK, not a separately priced add-on.
@Jordan Auto-renewal needs 60 days' notice to match our policy, not 30.
@Maya Liability cap is one month of fees — Legal wants 12 months before we sign.
@Maya Governing law should be New York to match the MSA.