agent_action_request with status proposed and return a ContactButton review_url. The visitor edits and approves the proposal in ContactButton, then verifies the represented email address.
The fixed lifecycle is:
failed, cancelled, and expired are terminal alternatives. Mutations require an Idempotency-Key; a retry with the same key and input returns the original action rather than creating a second engagement.
An external agent may initiate a request only after its user asks. Identify the agent in agent_context without including credentials or unnecessary personal data.