b.rm

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
01

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.

02

Interface

  1. 01You state intentSpoken or typed, in whatever order it comes out. No required arguments.
  2. 02The agent resolves itIt matches names against the graph, asks only when genuinely ambiguous, and selects the tools.
  3. 03It reports the resultWhat was written, what it touched, and what it queued for follow-up.
example exchange
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 packet
03

Tools

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.

04

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 · mcp

The 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 · mcp

Email 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 · enrichment

Company 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-messaging

The 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 · orchestrated

Captures 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 · scheduling

Meeting 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 channels

Braid'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 · platform

Braid's own core platform, called for developer sandboxes.

  • Provision sandboxes with tenant and program
  • Attach products
  • Record Braid IDs back on the sandbox record
05

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.
06

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.
07

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.

08

Contact

See you in the token pool.