check_email_status
Returns the current delivery state of a previously-sent email along with a chronologically-ordered timeline of every event we have for it (accepted, sent, delivered, bounced, complained, delayed, opened, clicked) and a short, deterministic piece of advice on what to do next. The agent should call this whenever the user asks “did my email go through?” or whenever a follow-up flow depends on knowing whether the recipient actually got the previous message.Scoping
- Each agent can only read back its own emails.
- If a subscriber is calling, they can only read back emails that were sent during their own session. Owner-issued emails are invisible to subscribers.
Parameters
Returns
On success:status is one of queued, sent, delivered, bounced, complained, failed:
queued— the platform accepted the call but the email provider hasn’t confirmed yet.sent— the provider has the email and is attempting delivery.delivered— the recipient mail server accepted the message.bounced— delivery failed (the timeline event distinguishes hard vs. soft).complained— the recipient flagged the message as spam.failed— the call never reached the provider (tool-level failure).
message_id is unknown to this agent (or belongs to a different subscriber), the tool returns:
Advice — what it says, and when
advice is deterministic — purely a function of the persisted state, not LLM output. The agent can surface it directly.
Call from your own custom tool
Notes
- Provider events arrive asynchronously. An immediate
check_email_statusright aftersend_emailwill usually showstatus: "queued"or"sent"— wait a few seconds and re-check fordelivered. - The full event timeline is preserved permanently — historical lookups remain accurate for old emails.
- For destructive retry decisions (re-sending after a soft bounce), gate with
confirm_action+commit_action.