Outbound journey
Generate, approve, and send grounded email drafts.
Drafts are the boundary between preparation and live outreach. External agents should inspect citations, safety flags, sender identity, and review state before sending.
Drafts
Generate reviewable drafts from strategy.
Draft generation uses seller claims, prospect research, strategy evidence, and style checks. It does not send email by itself.
Draft generation
$ curl -X POST https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/runs \
> -H "Authorization: Bearer vwk_live_..." \
> -H "Content-Type: application/json" \
> -d '{
> "operation": "generate_drafts",
> "inputs": {
> "limit": 4,
> "refresh": false
> }
> }'
$ curl "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/drafts?status=needs_review" \
> -H "Authorization: Bearer vwk_live_..."Edit
Update subject and HTML body before approval.
Editing a draft returns it to review. Agents should inspect quality notes, style flags, citations, and claims used before requesting approval.
Draft edit
$ curl -X PATCH https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/drafts/draft_01hx8cb9ja \
> -H "Authorization: Bearer vwk_live_..." \
> -H "Content-Type: application/json" \
> -d '{
> "subject": "Outbound workflow for your team",
> "body_html": "<p>Hi team,</p><p>I noticed your outbound process depends on manual research.</p>"
> }'Send
Send only after explicit review confirmation.
A safe send requires an approved draft, `ready_to_send` lifecycle status, a verified Gmail sender, a recipient, and `confirm_reviewed: true`.
Approved send
$ curl -X POST https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/review-decisions \
> -H "Authorization: Bearer vwk_live_..." \
> -H "Content-Type: application/json" \
> -d '{
> "target_type": "draft",
> "target_id": "draft_01hx8cb9ja",
> "decision": "approve"
> }'
$ curl -X POST https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/drafts/draft_01hx8cb9ja:send \
> -H "Authorization: Bearer vwk_live_..." \
> -H "Content-Type: application/json" \
> -d '{ "confirm_reviewed": true, "dry_run": false }'