Skip to content

Retained replies and history

Read retained replies when you need to review a prospect’s response after outreach pauses, completes, or stops. The tools read evidence Vaam already stores. They do not fetch missing conversations from LinkedIn or email providers.

Use the sequence list to find a sequence ID. Use the sequence-progress list to find a prospect’s progress ID. You can ask your assistant to do this in plain language.

For a custom client, call list_replies with exactly one of enrollmentId or sequenceId:

{ "enrollmentId": "your-progress-id", "limit": 20 }
{ "sequenceId": "your-sequence-id", "channel": "linkedin", "limit": 20 }

The first example reads one prospect’s progress in one sequence. The second reads your retained evidence across that sequence. Both need Read enrollments. Reply lists stay limited to your own account.

Current status does not restrict these reads. Retained evidence remains accessible after completion, cancellation, or deletion of the sequence definition. Sequence reads depend on retained creation times. Missing creation times can leave evidence outside that traversal.

Pass nextCursor as cursor until hasMore is false. Keep the same target and filters. A page can contain no matching replies and still have a cursor. See Paging through data for limits and cursor errors.

Each reply request reads at most 20 prospect sequence records and 50 email evidence records, including cursor checks and lookahead. The response has a 256 KiB size limit. Read or size limits can stop a page before it reaches your requested item count.

Inspect budgetExhausted, contentTruncated, and each item’s content information. Continue from the returned cursor when the page stops early.

Optional from and to filters use UTC Unix milliseconds. The start is inclusive, and the end is exclusive. When you supply both, from must be less than to. Rows without a usable time cannot match a time filter.

Replies follow source order, not one global timeline. Sequence traversal visits newer prospect sequence records first. Within each record, it reads LinkedIn messages, latest-message evidence, unmatched status evidence, email evidence, then the latest Gmail evidence.

Each item identifies its channel and evidence source. Content can be retained text, an email preview, or unavailable. A status change can show that a reply occurred without retaining its text.

LinkedIn keeps a bounded message window of 25 messages. Returned text does not prove that Vaam stores the complete conversation or message body. Email text is a preview. Gmail evidence contains the latest stored reply and can overwrite older evidence. A pending full conversation read can also leave missing text.

Timestamps have different meanings. Check timeBasis before treating a timestamp as receipt time. LinkedIn status times can use delivery time or a detection-time fallback. Email uses a valid received time when present. Otherwise, it can use detection time. Missing or invalid times remain explicit.

Known account-user messages do not appear as prospect replies. Older LinkedIn evidence can identify only a suspected prospect reply. That does not prove human authorship. Exact LinkedIn message IDs prevent repeat items for the same retained message. Other sources and channels can describe the same detection. Items do not represent unique replies or unique people.

Stored AI analysis recommends a next action, such as continuing outreach, completing it, or asking you to intervene. It does not measure sentiment. A recommendation to continue does not mean that a reply is positive.

Older stored analysis can remain visible. Analysis can also be missing or arrive after you read the evidence. Do not infer a reason or recommendation from an absent field.

Email sentiment remains unclassified. A latest Gmail item can identify a human reply or confirmed out-of-office response when stored identity evidence matches. Otherwise, its automatic-reply status remains unknown. A separate human-reply observation does not classify the latest message body.

get_enrollment shows the last 10 status changes. Its statusLogCoverage says whether older changes exist. Use get_enrollment_history to read all retained changes in bounded pages:

{ "enrollmentId": "your-progress-id", "limit": 20 }

The tool reads stored append order, oldest first, for any current status. It includes retained reasons, notes, timestamps, and action recommendations. Missing fields remain unavailable.

These pages read live data. Appended changes can appear on later pages, and analysis can change after a read. If already-read evidence changes, the cursor can become stale. Restart without a cursor when that happens.

Reply and history responses report retained_partial coverage and known gaps. Finishing the pages means you reached the end of the available traversal. It does not establish complete provider history.

Collection after outreach stops, late replies, and replies while awaiting review can be incomplete. These tools do not extend collection after completion or cancellation. Missing evidence means unknown, not zero replies.

Use current account counts to see how many prospects wait for review now. Neither retained reply rows nor current review counts establish historical reply rates, sentiment totals, or unique-person totals.