Schema
One schema for every sequencer
All platforms normalize into the same tables on disk. Your agent queries them directly.
Core tables
- events
- leads
- campaigns
- senders
- replies
- bounces
- lead_attributes
- lead_timeline
Event types vary by platform (Smartlead, Instantly, HeyReach, Prosp, etc.) but map into the same events and lead_timeline structures.
Example queries
Pair with prompts from the agent prompts guide.
Reply rate by sender domain (7 days)
SELECT sender_domain, COUNT(*) AS replies
FROM replies
WHERE replied_at >= date('now', '-7 days')
GROUP BY sender_domain
ORDER BY replies DESC;Bounces this week by day
SELECT date(bounced_at) AS day, COUNT(*) AS bounces
FROM bounces
WHERE bounced_at >= date('now', '-7 days')
GROUP BY day
ORDER BY day;Campaign performance summary
SELECT c.name, COUNT(DISTINCT e.lead_id) AS leads, COUNT(e.id) AS events
FROM campaigns c
LEFT JOIN events e ON e.campaign_id = c.id
GROUP BY c.id;Lead timeline for one contact
SELECT event_type, channel, occurred_at, payload
FROM lead_timeline
WHERE lead_id = ?
ORDER BY occurred_at;Segment reply rate by seniority
SELECT la.seniority, COUNT(r.id) AS replies, COUNT(DISTINCT l.id) AS leads
FROM leads l
JOIN lead_attributes la ON la.lead_id = l.id
LEFT JOIN replies r ON r.lead_id = l.id
GROUP BY la.seniority;