POST
/
v2
/
outbound
/
drafts
Save the caller's outbound send draft
curl --request POST \
  --url https://api-v2.watchcollect.com/v2/outbound/drafts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "session_id": "018f06e2-4f8d-7c01-8a0d-cc6fd78f7070"
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "actor_user_id": "<string>",
  "session_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "session_name": "<string>",
  "session_label": "<string>",
  "group_ids": [
    "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  ],
  "text": "<string>",
  "media": [
    {
      "url": "https://watchatic-media.example/outbound/org_123/watch.jpg",
      "mimetype": "image/jpeg",
      "filename": "watch.jpg",
      "sha256": "9a0364b9e99bb480dd25e1f0284c8555",
      "size_bytes": 238991,
      "storage_key": "outbound/org_123/20260511T025700.000-watch.jpg"
    }
  ],
  "created_at_ms": 123,
  "updated_at_ms": 123,
  "schedule": {
    "first_run_at_ms": 1777809600000,
    "interval_ms": 3600000,
    "max_occurrences": 3
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
session_id
string<uuid>
required

Sending session id this draft belongs to. A caller can create multiple drafts for the same sending session.

group_ids
string<uuid>[]

Internal group ids from /v2/groups that are present in the selected sending session. May be empty while composing.

Maximum array length: 100
text
string

Draft text body, or image caption when media is present.

Maximum string length: 4096
media
object[]

Already-uploaded image media URLs to keep with the draft. Multipart local files are not accepted by draft saves.

Maximum array length: 10
schedule
object
Example:
{
"first_run_at_ms": 1777809600000,
"interval_ms": 3600000,
"max_occurrences": 3
}

Response

Draft saved.

id
string<uuid>
required
actor_user_id
string
required

Clerk user id that owns this draft. Only this actor can read or delete it.

session_id
string<uuid>
required
session_name
string
required
session_label
string
required
group_ids
string<uuid>[]
required
text
string
required
media
object[]
required
created_at_ms
integer<int64>
required
updated_at_ms
integer<int64>
required
schedule
object
Example:
{
"first_run_at_ms": 1777809600000,
"interval_ms": 3600000,
"max_occurrences": 3
}