Skip to main content

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).
If the 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_status right after send_email will usually show status: "queued" or "sent" — wait a few seconds and re-check for delivered.
  • 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.