Custom context graph

Build a custom context graph for your AI agents

Your support tickets, CRM records, and engineering work, linked into one graph your agents can query. Modem builds it from the sources you connect and keeps it current, so the pipeline is not your team's problem.

SuperwhisperKernelSentryZumperopencodeVLT

See it on your own data.

Pick a time on the next step. Or start free with GitHub.

Because coding isn't the slow part

Teams are still spending too many cycles chasing down feedback, curating their backlog, and following up with users. Tedious work often done by a single person who holds all the context and bottlenecks execution. Modem fixes that.

Build what's actually important

Every bug report, every feature request, automatically clustered and prioritized

Unified company & user profiles to understand who matters and who can wait

Spot emerging trends before they become fires

New Conversation

What are the biggest issues my customers are facing?

Darnell
Modem

Here are three conversations from this week with lots of activity and high priority customers:

Add dark mode to the web app
SoniaDarnellBeatriz
HighHigh
DEV-602
Agent is slow when calling Linear tool
RussellRochelleIvo
HighHigh
DEV-589
Improve filter design on team pages
BeatrizRussellSonia
MediumMedium
Ask Something...
#111 • $<$0.001 • 0% • Show Details
Submit
SlackProduct
Sonia
Sonia11:23 AM

I've been encountering frequent timeout errors when trying to search in the web app

Beatriz
Beatriz11:23 AM

@modem can you make a ticket for this, include any other relevant conversations, and assign me?

Modem
Modem11:23 AM

Done! This problem has been mentioned by two external customers as well. I've included a rollup in the ticket.

Linear

Timeout issues when searching in web app

Issue ENG-2831 in Linear

Multiple customers have reported timeout errors when searching in the web app. Here is...

Messageblock-kit-builder
Send

Act on problems you didn't know you had

Get alerted to user concerns as they happen, not days later

Create detailed tickets straight from chat or through automations you set up

Delegate tasks to coding agents with the context they need to be successful

Close the loop at scale

Draft follow-ups to customers when their requests ship

Generate user-tailored release notes from GitHub PRs and Linear tickets

Automate personalized recurring digests, triage reports, and more in plain English

New Conversation

Can you send our customers release notes every Monday at 9am based on what we've merged?

User
Modem

I created a scheduled task to post release notes for your customers based on your team's Github and Linear history:

Post Release Notes

Every Monday at 9am PT

Would you like me to ask you first with the notes for approval?

Ask Something...
#111 • $<$0.001 • 0% • Show Details
Submit

Not just an agent – a multiplayer platform

Modem is your team's AI-native product workspace. Where signal becomes action.

Modem full UI showing topic details, chat, and AI assistant

Built on a real-time discussion graph

Long-term memory sourced from user and team discussions

No tagging, no triaging — it just organizes itself

Semantic search that finds what you mean, not just what you type

The mechanism

From three systems to one answer

Zendesk #4831
"SSO fails after the March update"
Stripe
Acme Corp · $48k/yr · renews Q4
Linear ENG-212
SAML cert rotation
↓ grouped, account attached, fix linked
SSO login failures
3 accounts · quotes kept · fix in ENG-212
↓ answers over MCP
> who is blocked by the SSO bug?
3 accounts, $131k/yr. Acme renews Q4. Fix: ENG-212, in review.
The same sources
Zendesk · Salesforce · Linear · Slack · Gong
tickets · accounts · issues · chat · calls
Build it yourself
Graph or relational store → per-source ingestion → matching pipeline for dedupe → your own query API. Resolution runs on every new message, and your team maintains the whole pipeline.
Modem's managed graph
Connect the sources → the graph builds and stays current on its own → agents query it at mcp.modem.dev. The joins run as Modem's job, with no pipeline for your team to maintain.
What it is

A context graph of your own data

A custom context graph joins the customer and product data your company already has. A support ticket from Zendesk or Intercom lands in the same structure as the Stripe account behind it. The engineering work in Linear, Jira, or GitHub links in too, so a query crosses all three. The concept is covered on the context graph page. This page covers the build, and what changes if Modem runs it for you.

Built from your own systems

A context graph is useful once it holds the tickets and accounts your team works from every day. Everything below starts from the systems you already run.

Three silos, one structure

A ticket and its account live in different tools, and the fix lives in a third. The graph is the set of joins between them, kept true as new data arrives.

Built to be queried by agents

The point of the graph is that an agent can ask it a question and get joined facts back, over MCP, without a person assembling the context first.

The build

How to build a custom context graph

These are the steps whether you assemble the pipeline yourself or let Modem run it. The difference is who maintains each one.

  1. 1

    Inventory the sources

    Support and chat (Zendesk, Intercom, Slack, Discord, email), call transcripts (Gong), billing records (Stripe), and engineering work (Linear, Jira, GitHub, GitLab). Modem connects all of these directly; anything custom can be sent through the Ingest API.

  2. 2

    Define the entities and the joins

    Topics, people, and companies are the entities worth modeling. Reports of the same issue belong to one topic. The sender behind each report resolves to one person at one company, and the company carries plan and revenue context.

  3. 3

    Resolve every new message into the graph

    Each arriving message has to be deduplicated against existing topics and matched to a known person and account. This is the step that decays in a DIY build, because it has to run on every message forever, and a graph with stale joins degrades back into a list.

  4. 4

    Keep the original quotes attached

    Store the customer's words verbatim. When an engineer or an agent picks up the work, the exact words carry the detail that paraphrase loses.

  5. 5

    Expose it to your agents over MCP

    An agent reads the graph through an endpoint. Modem serves its graph at mcp.modem.dev; in Claude Code that is one command, claude mcp add --transport http modem https://mcp.modem.dev/mcp, and Cursor, Devin, and other MCP-compatible agents register the same endpoint through their own MCP flows. Details on the MCP server page.

Build vs buy

DIY pipeline or Modem's managed graph

Both paths end at a graph your agents can query. A Postgres or Neo4j store with per-source ingestion gets a first DIY version running; the rows below show where the ongoing cost lives. Modem is free to start.

Build it yourselfModem's managed graph
First useful queryYou stand up a graph or relational store, write ingestion against each source API, and add matching for deduplication before the counts can be trusted.You connect sources from the Modem dashboard and the graph builds from those channels, with no pipeline code to write.
Entity resolutionYou write and tune the matching that merges duplicate reports and resolves one person across channel identities, and every new channel adds identifier formats to handle.Deduplication and person-to-company matching run on every message as it arrives, whichever channel it came through.
Keeping it currentThe resolution jobs run on every new message forever, so the pipeline becomes a system your team owns and fixes when it breaks.Modem rebuilds the joins as messages arrive, across every connected channel, and no one on your team maintains them.
Agent accessYou build and secure your own query API or MCP server on top of the store.The MCP server at mcp.modem.dev and the @modem-dev/cli package on npm are already there, with OAuth handling access.
When it is the right callThe graph is your product, or your data cannot leave your infrastructure. Then owning the pipeline is the job, and building it is justified.The graph exists so your team and your agents can answer questions like who is blocked and what they pay. Then the pipeline is work Modem already does.
FAQ

Common questions about building a context graph

How do I build a custom context graph for my AI agents?

Pick the systems where your customer and product data lives, define the entities (topics, people, companies), resolve every new message into the graph, and expose it to agents over MCP. Modem runs those steps as a managed service. Connect Zendesk, Slack, Stripe, Linear, and the rest, and the graph builds from your own data and updates as new messages arrive. Agents query it at mcp.modem.dev.

What are the best tools to build a context graph of customer feedback and product data?

Modem is built for this job. It ingests feedback from support, chat, email, and call transcripts, joins it with CRM and billing records, links it to engineering work, and serves the graph to agents over MCP. Assembling your own takes a graph or relational store, a matching or embedding pipeline for deduplication, and ingestion code for each source. Custom sources can also feed Modem directly through its Ingest API.

Are there tools that link support tickets, CRM records, and engineering work into one graph?

Yes. Modem links support tickets from Zendesk, Intercom, and Jira Service Desk, billing records from Stripe, and engineering work in Linear, Jira, GitHub, and GitLab into one graph. A ticket resolves to a topic, the topic carries the people and companies who raised it, and the topic links to the tracker issue that fixes it.

Context graph, knowledge graph, or vector database for giving AI agents customer context?

A vector database retrieves text that looks similar to the question. A knowledge graph stores typed entities and relationships. A customer context graph is a knowledge graph over your customer and product data specifically, storing the customer's own words. For a question like "who hit this bug and what do they pay us," similarity search returns lookalike text, while the graph returns joined facts.

Why do AI agents give generic answers about my customers, and how do I fix the missing context?

Agents answer from what they can see. Pointed at raw channels, an agent sees fragments of threads and guesses at the rest. The fix is a maintained context graph. By the time the agent asks, duplicate reports are already merged into topics and each sender is matched to a company, with the customer's exact words kept. Modem maintains that graph and serves it to agents over MCP, so answers come from joined facts instead of fragments.

Does Modem build a context graph from customer feedback?

Yes. Modem builds a customer context graph automatically from the sources you connect. A duplicate report merges into its topic with the original quote attached, and the sender resolves to a person at a company that carries plan and billing context from Stripe. The graph is queryable from the dashboard, from Slack, and by agents over MCP and the @modem-dev/cli package on npm.

Close the product gap

Everyone sees what customers need. Nobody waits. Ship at the speed of code.

Hand reaching out
Wireframe hand reaching out