b.rm / braid relationship manager
Agent-based sales and relationship management. Formless. Voice and chat driven.
b.rm has no records to open and no fields to fill. You state what happened or what you want; an agent calls the tools, writes to the graph, and tells you what changed.
This is the system Braid runs its own business on: pipeline, matches, integrations, outreach. It is internal software, published here as a reference so investors and customers can see exactly how the work is done: the tool surface, the orchestration layer, and the interface.
- interface
- voice, chat, mcp app
- input
- natural language. no forms, no fields
- own servers
- braid-crm, braid-messaging
- orchestrated
- apollo, unipile, calendly, make, slack, braid api
- tools
- 100 first-party + orchestrated providers
- audience
- the braid team
- status
- in production, internal. shown, not sold
- system of record
- postgres on supabase
Overview
A CRM is a database that asks you to maintain it.
The data model is not the problem; the data entry is. Every field, note, stage change, and task is work handed back to the person who already did the real work. Systems decay because nobody has time to keep them honest.
b.rm inverts it. The relationship graph stays rigorous: companies, contacts, opportunities, matches, integrations, tasks, activity. But you never touch it directly. You talk. The agent reads the live schema, picks the right tools, and applies the change.
Nothing is generated on your behalf without being stated back to you. Every write is reported in plain language, attributed, and logged.
Interface
- 01You state intentSpoken or typed, in whatever order it comes out. No required arguments.
- 02The agent resolves itIt matches names against the graph, asks only when genuinely ambiguous, and selects the tools.
- 03It reports the resultWhat was written, what it touched, and what it queued for follow-up.
you ▸ where's the pipeline this week?
b.rm ▸ 34 open opportunities · $2.1M weighted
discovery 11 · eval 9 · contracting 6 · onboarding 8
3 moved stage since Monday, 2 went quiet past 14d
you ▸ match Northlake Fintech to Cedar Valley Bank,
put Dana on the integration side
b.rm ▸ match created · bank track opened
integration owner: Dana Reyes · go-live target unset
task queued: send Cedar Valley the intake packetTools
100 first-party tools across our two servers (84 on braid-crm, 16 on braid-messaging), grouped by the work they do. Nothing here is a screen. Each entry is something you can simply ask for.
- Create and move opportunities between stages, including the demand nurture stage
- Read the funnel stage by stage
- Report ARR, MRR, and weighted value
- Snapshot the pipeline over time
- Soft delete, restore, and review deleted opportunities
- Make a match
- Track bank and integration stages separately
- Pause and resume with stage history
- Reassign to a different demand opportunity
- Soft delete and restore
- Integration worklist with owner, health, and target go-live
- Rollups for status meetings
- Bank onboarding board read live from the Knowledge Center
- Link a bank to its Knowledge Center onboarding record
- Add one lead or bulk-ingest a deduped list
- Qualify, disqualify, snooze, or reopen
- Enrich incomplete leads through Apollo
- Promote a lead into company, contact, and opportunity in one move
- Work the unassigned pool, needs-review queue, and follow-up queue
- Raise a lead from an existing contact at first outreach
- One record per bank, credit union, or fintech
- Merge duplicates without losing history
- Link a company to its LinkedIn company page
- See who at an account has been worked and in what state
- Soft delete and restore
- Create, assign, and due-date a task against any record or lead
- Complete, update, or delete
- Ask what is open, overdue, or unowned
- Log a call, note, email, meeting, or LinkedIn touch
- Read a whole thread in order
- Personal inbox of teammate mentions
- Correct, delete, or restore an entry
- Triage the mailbox, send and reply in-thread
- See which LinkedIn conversations owe a reply
- Search people and companies on LinkedIn
- Send invites, messages, and InMail
- Campaign workbench that works the queue one lead at a time
- Outreach runway showing invite-eligible contacts per segment
- Provision or resume a developer sandbox on Braid, one per developer
- Add products to an existing sandbox
- Register sandboxes set up outside the CRM
- List and inspect sandboxes by activity
- Log a completed class against an opportunity
- Remove classes that were never taught
- Checklist progress against the enrolled course
- Add, update, deactivate, and reactivate team members with per-member API keys
- Live schema description for agents
- File a capability gap as a feature request
Orchestration
First-party MCP servers, with orchestrated enrichment and channel automation.
b.rm owns the graph and the messaging surface. Apollo enriches records on demand. braid-messaging handles the conversation layer; Unipile sits behind it as the live channel provider. Make captures LinkedIn lead-gen forms and feeds them into b.rm's lead webhooks. Calendly handles meeting scheduling, with every event written back to the record, and the Braid API is called directly for developer sandboxes. Slack connects the agent to the team's own channels in both Braid workspaces.
The agent decides which server to call and in what order. One instruction, “qualify this lead and open the thread”, can enrich through Apollo, write the record, and send through the right connected identity, without anyone switching tools or copying a field.
voice / chat / mcp app
agent
selects tools, sequences calls, reports back
First-party
braid-crm
graph & access
braid-messaging
messaging surface
unipile
mailbox & linkedin accounts
Orchestrated
apollo
company & people data
calendly
scheduling
make
linkedin lead-gen forms
slack
team channels
braid api
developer sandboxes
@braid-crm
first-party · mcpThe relationship graph and everything written to it.
- Companies, contacts, opportunities, matches, integrations, tasks, activity
- Live schema introspection so new fields and stages are usable immediately
- Roles and access enforced server-side, per person
- LinkedIn lead-gen webhooks for supply and demand, fed by Make and reconciled against form submissions
- Soft delete with full restore across records
@braid-messaging
first-party · mcpEmail and LinkedIn as one conversation surface. Unipile runs behind it.
- Mailbox triage, in-thread send and reply
- LinkedIn threads, reply-owed state, invites and InMail
- Campaign execution against the same records
- Per-user channel connections and health, managed through Unipile
@apollo
orchestrated · enrichmentCompany and people data, resolved on demand.
- Enrich a company or contact the moment it enters the graph
- Search and qualify net-new accounts against our segment
- Fill firmographics and titles so nobody types them in
- Results written back as records, with the source attributed
@unipile
channel layer · behind braid-messagingThe live connection to inboxes and LinkedIn accounts, consumed through braid-messaging.
- Per-user mailbox and LinkedIn account connections
- Real-time message and connection events
- Sending under the right identity, not a shared shell account
- Connect, health-check, and reconnect handled as integration management
@make
automation · orchestratedCaptures LinkedIn lead-gen form submissions and hands them to b.rm.
- Capture LinkedIn lead form submissions as they arrive
- Route supply and demand forms to the right b.rm lead webhook
- Leads land deduped and ready to work, no manual import
- Keep ad spend tied to downstream activity
@calendly
orchestrated · schedulingMeeting scheduling written back to the record.
- Propose times and book meetings
- Single-use scheduling links
- Reschedules and no-shows recorded against the contact and opportunity
@slack
orchestrated · team channelsBraid's internal Slack workspaces, read and written by the agent.
- Covers both workspaces: BraidFI and Braid Developers
- Read and search channels and threads
- Post, reply, and draft messages
- Create and update canvases and lists
@braid api
orchestrated · platformBraid's own core platform, called for developer sandboxes.
- Provision sandboxes with tenant and program
- Attach products
- Record Braid IDs back on the sandbox record
Reference notes
- schema awareness
- The agent reads the live shape of the data before it acts, so new fields and stages are usable the moment they exist. No prompt rewrite, no release.
- roles and access
- Team membership and permissions are enforced server-side. The agent can only read and write what the person speaking is allowed to.
- campaigns
- LinkedIn outreach has a dedicated work surface: sequence, accepted-connection queue, reply state, and per-step ownership.
- voice
- Voice is a first-class input, not dictation into a form. Partial, out-of-order, and self-correcting speech is expected.
- enrichment
- Apollo is called as a tool, not synced on a schedule. Data is pulled when a record needs it, written back attributed, and cached, so the graph stays current without burning credits on noise.
- integration management
- Unipile holds the live mailbox and LinkedIn connections per person, consumed through braid-messaging. Make captures LinkedIn lead-gen forms and feeds them into b.rm's lead webhooks, reconciled against form submissions. Messages send under the real identity of the sender.
- sandboxes
- Developer sandboxes are provisioned on Braid directly from conversation: one per developer, multi-product, safe against concurrent creation.
- scheduling
- Calendly is an orchestrated MCP the agent calls to propose times, book meetings, and record reschedules directly against the contact and opportunity. No link swapping, no manual entry.
- slack
- Slack is orchestrated, not proxied: the agent reads and posts in the BraidFI and Braid Developers workspaces directly, so updates from a conversation can land in the right channel.
- status
- In production inside Braid, used daily by the founding and sales team. Published as a reference for investors and customers. Not open for sign-up.
Stack
Typed end to end, backed by a managed database, authenticated on every request.
- runtime
- Deno runtime for the MCP server layer.
- database
- Postgres on Supabase for the relationship graph, leads, and activity log.
- language
- TypeScript across servers, tools, and client.
- auth
- OAuth for agent connections, plus per-member API keys; row-level security in Postgres.
- edge functions
- Supabase Edge Functions for the MCP servers, sync jobs, and webhooks.
Who uses it
The Braid Team
The same people run marketing, sales, and operations, so the tool has to move across all three without losing context. b.rm lets us plan a campaign, source a lead, run a meeting, close a partner, and ship an integration from one conversation, not five dashboards.
Contact
See you in the token pool.
