Skip to main content

Agent conversations

Every contact, company and deal has an Agent tab — a conversation with the research agent, scoped to that record.

What you can ask​

Open the tab and type. The agent answers from everything it can read about the record — emails, meetings, its own research, and your CRM history:

  • "Who is this person?"
  • "Have we talked to them before?"
  • "What should I know before this call?"
  • "Where does this deal stand?"

A contact is asked "Who is this person?", a company "What do they do?", a deal "Where does this stand?" — the questions offered on an empty thread are the tell that the panel is built into the record rather than bolted on.

It opens already knowing the record​

A conversation doesn't spend its first two answers finding out what it's looking at. A deal session starts knowing the stage, the amount, the close date and who's on it; a company session can name its own contacts, with ids. The record travels to the agent in a signed 2-minute token, never as text prepended to your message — so your question stays yours.

A conversation is a question, not a work plan​

Told nothing, the agent assumed every session was a research pass with a budget — which is how a question once got a work plan back. It now knows whether a session was opened by the dispatcher (research) or by a rep in the sheet (a conversation), and answers accordingly.

Conversations are kept​

A record accumulates conversations, and they survive a reload.

ResumeReopen the record — the tab picks up the last thread with its full history above the composer. Works across a reload or a link sent to a colleague later. Sessions are kept for 30 days.
Start newOnce a thread has clearly ended, the tab offers Start a new conversation. The old thread stays visible above; a fresh one begins below.
DeleteRemove an old conversation from the conversation picker if you don't want it kept.
Which thread is openLives in the URL (?thread=), like every other view state in the sheet — a refresh keeps your place.
Scoped to youTwo people asking about the same contact are having two separate conversations.

Offline vs. working​

An ended thread offers a button, not a locked box — it's a permanent state, not a wait of seconds. An unreachable agent reads as offline, and the transcript is served from the CRM's own event archive (which is also what keeps a thread older than 30 days readable), with the composer still usable.

Turning it on​

Same value in both the app and the API processes, from the one root .env:

AGENT_URL="http://127.0.0.1:2000"        # the default
AGENT_BRIDGE_SECRET="$(openssl rand -base64 32)"

AGENT_BRIDGE_SECRET unset means the bridge refuses rather than opens — the panel stops working, the agent keeps running its own schedule. An optional capability's absence never widens access.

SymptomCause
503, "not configured for this install"AGENT_BRIDGE_SECRET unset in the app's process
401The two processes hold different secrets
502, "not reachable"The agent isn't running, or AGENT_URL is wrong

AGENT_URL defaults to 127.0.0.1 rather than localhost on purpose: the agent listens on IPv4 only, and Node resolves localhost to ::1 first.

Hrida.ai is proprietary software of Zlabs Innovation. See the license for terms. © 2026 Zlabs Innovation.