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

# Model routers

> Integrate DataVibe after model routing and before customer dispatch.

A router selects a model and returns completion text. DataVibe then evaluates
the completed send-bound payload:

```text theme={null}
Application → model router → completed output → DataVibe gate → CRM / sequencer
```

Normalize router output to `recipient`, `subject`, `body_text`, `body_html`, and
`source_model`, then call `POST /v1/gate/outbound`.

```json theme={null}
{
  "recipient": "prospect@example.com",
  "subject": "Following up",
  "body_text": "Hi Jordan, thanks for the conversation.",
  "body_html": "<p>Hi Jordan, thanks for the conversation.</p>",
  "source_model": "router/selected-model",
  "idempotency_key": "send-abc123"
}
```

The production integration belongs after routing because DataVibe must evaluate
the exact content that would reach the customer. Keep router provider keys in
your own infrastructure.

<Note>
  Use the persisted gate for outbound. `POST /v1/check` is a stateless preview and
  cannot create a queue item or review URL.
</Note>
