Email Monday + WhatsApp Tuesday + LinkedIn Friday → one chronological feed the AI reads in order.
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.
Email Monday + WhatsApp Tuesday + LinkedIn Friday → one chronological feed the AI reads in order.
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.
LeadConversationState tracks the prospect's stage (NEW → ENGAGED → QUALIFIED → ASKED_FOR_CALL → BOOKED → WON / LOST / OPTED_OUT).
Hitting the agent's goal flips paused=true so future inbounds don't trigger another auto-reply on this lead.
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.
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.
Trial on request · contact our sales team.