> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowla.com/llms.txt
> Use this file to discover all available pages before exploring further.

# REX

> Read the deal intelligence REX builds — signals, scores, insight cards, and the evidence behind them — and write signals back.

[REX](/rex/overview) builds a continuously updated understanding of every deal from your calls, your CRM, and room activity. Over MCP, that understanding becomes queryable: Claude can pull a deal's signals, scores, and the specific evidence behind them, and write new signals back.

Everything REX exposes here reads from the room's [Knowledge Graph](/rex/knowledge-graph). Nothing is a separate or simplified copy — a score you fetch over MCP is the score on the room's Overview tab.

<Note>
  All REX data is **read-only** except signals. `upsert_signals` is the only tool that writes. Scores, insight cards, contacts, and findings are computed by REX and can't be set from outside.
</Note>

## What you can read

<CardGroup cols={2}>
  <Card title="Signals" icon="bell" href="#signals">
    The worklist for a deal — dated, actionable observations, each with an urgency level and recommended next steps.
  </Card>

  <Card title="Knowledge graph" icon="diagram-project" href="#knowledge-graph">
    One call for the whole picture: Deal Score, MEDDPICC, insight cards, and the quote-backed findings behind them.
  </Card>

  <Card title="Room contacts" icon="users" href="#room-contacts">
    Everyone on the room, including people added but never engaged.
  </Card>
</CardGroup>

***

## Signals

A [signal](/rex/signals) is one specific observation REX has made about a deal, with an urgency level, a justification, and one or more recommended actions. Signals are the most useful REX data to pull over MCP, because they're already scoped to "things worth doing something about."

### Query and triage

<CodeGroup>
  ```text One room theme={null}
  What signals are open on the Acme Corp room?
  ```

  ```text Across the pipeline theme={null}
  Show me every high-urgency signal across all my rooms, newest first.
  ```

  ```text Triage counts theme={null}
  How many open signals do I have by urgency across all rooms?
  ```

  ```text Keyword theme={null}
  Find any open signals mentioning security review.
  ```
</CodeGroup>

Leaving the room out is deliberate: `query_signals` and `aggregate_signals` both work across every room you have access to when no `roomId` is given, which is what makes a morning pipeline sweep a single call.

<Tip>
  Ask for counts before details. `aggregate_signals` returns just the urgency breakdown (for example *4 low, 2 medium, 1 high*), so Claude can tell you where to look without pulling every signal body first.
</Tip>

### Signal properties

| Property            | Values                                                                         |
| ------------------- | ------------------------------------------------------------------------------ |
| Urgency             | `HIGH` · `MEDIUM` · `LOW`                                                      |
| Status              | `TODO` · `IN_PROGRESS` · `DONE` · `DISMISSED`                                  |
| Justification       | A capture (what triggered it) and an importance (why it matters for this deal) |
| Recommended actions | One or more `{ action, actionDescription }` next steps                         |

### Writing signals

`upsert_signals` lets an external agent or workflow add its own signals to a room's feed, or update ones it created earlier. A signal you write appears in the room's feed and in the org-wide **REX's signals** view exactly like a REX-generated one.

<CodeGroup>
  ```text Create theme={null}
  Add a high-urgency signal to the Acme room: the renewal date moved up to
  September, so the security review needs to start this week.
  ```

  ```text Update theme={null}
  Update that signal to medium urgency — the review is now scheduled.
  ```
</CodeGroup>

<Warning>
  Updating requires the signal `id` you got back when you created it. There's no dedupe on title, so calling `upsert_signals` twice without an `id` creates two signals rather than replacing the first.
</Warning>

***

## Knowledge graph

[`get_knowledge_graph`](/mcp/tools#rex-knowledge-graph) returns a room's whole picture in one call: its [Deal Score](/rex/deal-score), the eight [MEDDPICC](/rex/meddpicc) dimensions, the four [insight cards](/rex/insight-cards), and the quote-backed **findings** behind all of them. There's no separate call per view, so a question that spans several of them costs the same as a question about one.

<CodeGroup>
  ```text Deal Score theme={null}
  What's the deal score on the Globex room, and what's dragging it down?
  ```

  ```text Full MEDDPICC theme={null}
  Give me the MEDDPICC breakdown for the Acme room.
  ```

  ```text One dimension theme={null}
  Why is Paper Process scored so low on the Acme deal?
  ```

  ```text Narrative read theme={null}
  Summarise where the Acme deal stands using REX's insight cards.
  ```

  ```text Across rooms theme={null}
  Compare the MEDDPICC Champion scores on my three biggest open deals.
  ```
</CodeGroup>

The eight MEDDPICC dimensions are `metrics`, `economic_buyer`, `decision_criteria`, `decision_process`, `paper_process`, `identify_pain`, `champion`, and `competition`. The four insight card categories are:

| Category     | Covers                                                                   |
| ------------ | ------------------------------------------------------------------------ |
| `motivation` | What's driving the deal — pain, problem, time pressure                   |
| `stance`     | Where you stand — competitive position, perceived value                  |
| `obstacle`   | What's putting the deal at risk — concerns, blockers, unmet requirements |
| `trajectory` | Who decides and what's next — the buying path and committed next steps   |

<Info>
  A room without enough activity yet returns `notScored` rather than a `0`. Those are different things — `notScored` means REX doesn't have the evidence to judge, while `0` is a judgment. Don't let a summary flatten one into the other.
</Info>

### Findings

Findings are the quote-backed moments REX has picked up from meetings — the raw material every score and card is built from. Each one carries a type, a description, the exact quote, and the meeting and contact it came from, which is what lets you answer questions no summary view covers.

<CodeGroup>
  ```text By type theme={null}
  List every unanswered question in the Acme room, with who asked it.
  ```

  ```text By person theme={null}
  What objections has Sarah raised across all our calls with Globex?
  ```

  ```text Commitments theme={null}
  What has the Acme buyer promised that they haven't delivered yet?
  ```

  ```text Competitive theme={null}
  Every time RoutePath came up on the Globex deal, and what was said.
  ```
</CodeGroup>

<Tip>
  The knowledge graph and signals answer different questions. The graph gives you the narrative and the evidence for a deal review; signals give you the worklist. Pull the graph when you want to understand a deal, signals when you want to act on it.
</Tip>

***

## Room contacts

[`get_contacts`](/mcp/tools#contacts) returns everyone associated with a room (pass `roomIds`), enriched with view counts and company associations — not just people who've shown up. Omit `roomIds` to get every contact in the organization instead of one room.

<CodeGroup>
  ```text Everyone theme={null}
  Who's on the Acme room, and which of them have actually opened it?
  ```

  ```text Never engaged theme={null}
  Which contacts on the Globex room have never visited?
  ```
</CodeGroup>

***

## Putting it together

REX tools compose well with the room tools. A few things worth asking for in one go:

<CodeGroup>
  ```text Pre-call prep theme={null}
  Before my Acme call: give me the open signals, the insight cards, and anything
  the buyer committed to that's still outstanding.
  ```

  ```text Pipeline sweep theme={null}
  Across all my rooms, show me high-urgency signals grouped by room, and flag any
  deal where the score is below 3.
  ```

  ```text Close the loop theme={null}
  For the Acme room, list the unanswered questions REX found and add an action
  item for each one so they don't get lost.
  ```

  ```text Stakeholder check theme={null}
  Who's on the Globex room but has never opened it, and has anyone on a call
  mentioned them?
  ```
</CodeGroup>

<Warning>
  REX's scores and statuses are AI assessments graded from evidence, not facts. Hard data like a close date or a CRM field value is captured as-is, but severity, urgency, and sentiment are judgments. Anything you pull over MCP carries its justification and source for exactly that reason — check the evidence before acting on the number.
</Warning>

## Full parameter reference

See the [REX signals](/mcp/tools#rex-signals), [Contacts](/mcp/tools#contacts), and [REX knowledge graph](/mcp/tools#rex-knowledge-graph) sections of the [tool reference](/mcp/tools).
