Overview
nextneural_intel analyses call recordings after the fact. You upload audio; it
transcribes, extracts structured fields, scores the conversation, and rolls the
results into dashboards and reports.
Unlike nextneural_converse, it never places or answers a
call. Its input is a recording of a call that already happened, wherever it
came from.
How the pieces fit
Project ──► Upload ──► Call ──► Analysis ──► Dashboard / Reports
│ │ │
│ │ └─ extraction fields, scores, signals
│ └─ Customer ──► Events, phones, segments
└─ call_context: what this project's calls are about
- Projects partition the workspace; one is active at a time
- Uploads bring recordings in, singly, in bulk, or by CSV
- Calls are the analysed recordings
- Customers accumulate across calls, with their own history
- Segments group calls and customers for reporting
- Reports are generated documents you can send on
Base paths
| Surface | Base | Credential |
|---|---|---|
| Console API | /api | Session token |
| Developer API | /api/v1/sales | API key (public API) |
| Simulation judging | /api/nn-intel/simulations | API key, used by nextneural_coach |
| Auth | /api/auth | — |
Interactive API docs
nextneural_intel generates its own OpenAPI document from its live route table:
| Endpoint | What |
|---|---|
GET /openapi.json | The generated spec |
GET /docs | Swagger UI |
Generated from the real routes, so it cannot drift from what the binary actually serves. It describes paths and methods; the request and response detail is here.
The analysis pipeline
An uploaded recording moves through these statuses:
| Status | Meaning |
|---|---|
pending | Queued, not yet picked up |
awaiting_recording | The row exists but the audio has not arrived |
transcribing | Speech recognition in progress |
completed | Analysed — transcript, extraction, and scores are available |
failed | Something in the pipeline failed; the reason is on the call |
Work is queued through River (a Postgres-backed job queue), so a restart does not lose queued analyses — they resume when the binary comes back.
A failed call can be retried without re-uploading the audio.
Extraction
What gets pulled out of a transcript is configurable rather than fixed. Extraction fields define the questions asked of every call — outcome, disposition, next action, whatever your business needs. Editing them is a superadmin action, since they apply across the deployment. See Settings.
Built-in call outcomes: resolved, follow_up_scheduled, visit_scheduled,
escalated, interested, no_interest, voicemail, failed.
Requirements
| For | Requires |
|---|---|
| Building the binary | A C toolchain — the VAD binding needs cgo |
| Running it | ffmpeg on PATH (or FFMPEG_BINARY) |
| Analysis | A configured model route — see Settings |
| Reports by email | RESEND_API_KEY / RESEND_SENDER_EMAIL |
Identifiers
Unlike the other three binaries, nextneural_intel's console routes address resources
by integer id, not UUID:
GET /api/calls/1042
PATCH /api/customers/87
UUIDs still exist on the records and are what the public API returns.