Developer docs / inbox automation
Inbound replies
Import a connected Gmail inbox, ground triage in persisted evidence, and let a person approve every customer reply.
Sync never sends. Unsubscribe and bounce signals suppress automatically. Agents cannot approve or send, and ambiguous provider outcomes are never retried automatically.
Conversation lifecycle
new → needs_triage → needs_reply → waiting_approval → approved → sending → sent
Safe terminal states are resolved, suppressed, and snoozed. Every transition has an append-only event and a conversation version.
Start the guided workflow
Use the key-filtered catalog for the exact schemas. The workflow is handle_inbound_reply; it validates the thread, records evidence, applies safety policy, creates a preview, waits for a human decision, and verifies the result.
curl --fail-with-body -X POST \
https://api.synthcrew.io/api/v2/agent/workflow-runs \
-H "Authorization: Bearer $SYNTHCREW_AGENT_KEY" \
-H "X-API-Version: 2" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "X-Agent-Run-Id: $AGENT_RUN_ID" \
-H "Content-Type: application/json" \
--data @inbound-reply.jsonReuse the same idempotency key for an exact retry. Inspect the persisted run until it reports succeeded; HTTP 201/202 alone is not completion.
Human checkpoint
A signed-in owner reviews the evidence, edits the draft if needed, and then approves, rejects, or sends from the console. Any edit invalidates the prior approval. A send requires a connected, approved Google mailbox, remaining capacity, an RFC Message-ID, and the original Gmail thread references.
Safety outcomes
Read the contract
Agent API V2 ↗ · Campaign workflows ↗ · Errors and retries ↗