Sequence Stats
These tools surface email performance data at two scopes: a specific ai-email step within one sequence (get_sequence_stats, get_sequence_events), or all sequences in a funnel rolled up together (get_funnel_stats, get_funnel_events). Use the stats tools for aggregate KPIs (delivery rates, open rates) and the event tools for per-contact event records with cursor-based pagination.
Step IDs (messageId) come from get_sequence — use the id field on an ai-email step.
Tools
| Tool | Purpose | Key inputs | Returns |
|---|---|---|---|
get_sequence_stats | Aggregated email KPIs for a specific ai-email step | funnelId, sequenceId, messageId | Stat buckets: scheduled, sent, delivered, opened, failed, canceled |
get_sequence_events | Paginated event log for one event type on a specific step | funnelId, sequenceId, messageId, eventType | Event records + cursor pagination meta |
get_funnel_stats | Aggregated email KPIs across all sequences in a funnel | funnelId | Stat buckets: sent, delivered, opened, failed |
get_funnel_events | Paginated event log for one event type across all funnel sequences | funnelId, eventType | Event records + cursor pagination meta |
get_sequence_stats inputs
| Name | Type | Required | Description |
|---|---|---|---|
funnelId | string | Yes | Funnel ID — 24-character hex string |
sequenceId | string | Yes | Sequence ID |
messageId | string | Yes | ai-email step ID from get_sequence |
search | string | No | Optional search filter |
dateFrom | string | No | ISO 8601 timestamp (e.g. 2026-04-01T00:00:00Z) |
dateTo | string | No | ISO 8601 timestamp |
get_sequence_events inputs
| Name | Type | Required | Description |
|---|---|---|---|
funnelId | string | Yes | Funnel ID |
sequenceId | string | Yes | Sequence ID |
messageId | string | Yes | ai-email step ID |
eventType | string (enum) | Yes | One of: scheduled, sent, delivered, opened, failed, canceled |
cursor | string | No | Pagination cursor from the previous response |
limit | number | No | Results per page, 1–100; default 50 |
search | string | No | Optional search filter |
dateFrom | string | No | ISO 8601 timestamp |
dateTo | string | No | ISO 8601 timestamp |
get_funnel_stats inputs
| Name | Type | Required | Description |
|---|---|---|---|
funnelId | string | Yes | Funnel ID — 24-character hex string |
messageId | string | No | Optional ai-email step ID to scope to a single message |
search | string | No | Optional search filter |
dateFrom | string | No | ISO 8601 timestamp |
dateTo | string | No | ISO 8601 timestamp |
get_funnel_events inputs
| Name | Type | Required | Description |
|---|---|---|---|
funnelId | string | Yes | Funnel ID — 24-character hex string |
eventType | string (enum) | Yes | One of: scheduled, sent, delivered, opened, failed, canceled |
messageId | string | No | Optional ai-email step ID to scope |
cursor | string | No | Pagination cursor from the previous response |
limit | number | No | Results per page, 1–100; default 50 |
search | string | No | Optional search filter |
dateFrom | string | No | ISO 8601 timestamp |
dateTo | string | No | ISO 8601 timestamp |
Stat bucket shapes:
- count bucket (
scheduled,sent):{ count: number } - rate bucket (
delivered,opened,failed,canceled):{ count: number, rate: number }—rateis a fraction ofsent(0..1).
Event records contain: id, status, email, date, sequenceId, messageId.
Cursor pagination: pass meta.nextCursor back as cursor on the next call. meta.hasMore is false on the last page.