closehunt
Feature · CloseHunt

One memory across every channel a prospect uses

CloseHunt keeps one cross-channel transcript per prospect. Every inbound and outbound on every channel writes a ConversationTurn row, so when the AI generates the next reply, it sees the full thread, regardless of channel.

What you get

The pieces that make cross-channel memory work.

One thread · every channel

Email Monday + WhatsApp Tuesday + LinkedIn Friday → one chronological feed the AI reads in order.

Token-aware summarisation

Old turns are collapsed into a single summary row once the context grows past a threshold. The AI never sees more than ~4000 tokens of history.

Stage tracking

LeadConversationState tracks the prospect's stage (NEW → ENGAGED → QUALIFIED → ASKED_FOR_CALL → BOOKED → WON / LOST / OPTED_OUT).

Pause on goal

Hitting the agent's goal flips paused=true so future inbounds don't trigger another auto-reply on this lead.

FAQ · Questions, answered

About cross-channel memory

How does CloseHunt handle context across channels?

Every inbound + outbound writes a ConversationTurn row keyed on (orgId, leadId). When the AI generates a reply, lib/conversation-memory.ts reads the full chronological feed across every channel, summarises older turns, and ships a token-bounded context to the LLM.

What happens if context grows too large?

Once a lead's transcript exceeds ~16 turns, older turns are AI-summarised into one synthetic 'isSummary' row. The AI never receives more than ~4000 tokens regardless of how long the relationship is.

3 minutes to your first agent

Ready to see cross-channel memory in action?

Trial on request · contact our sales team.