Skip to content

Put up to 200 planned touches on reps' desks in one call, each with its own person, copy and due_at, and an optional shared sequence. Each card is answered on its own: created, updated (same external_key) or refused with the reason POST /desk/cards would give, so one bad card never stops the rest. A body that fails the schema (a missing field, more than 200 cards) is refused whole and writes nothing. A later card with the same external_key as an earlier one is refused as duplicate_in_batch. Nothing is charged. Needs deals:write

POST
/desk/cards/batch

Per item, not all or nothing: every card runs the single route’s own checks and service (create_workflow_card), in order, so the same external_key updates its open card instead of adding a second one, the per-rep ceiling holds per card, the org’s daily card limit holds per card that names no sequence (a sequence’s cards wait for the rep’s Start instead), and a refused card is reported beside the cards that landed. Zero credits.

A card that fails for an unexpected reason is answered batch_item_failed and the rest still run, never a 500 for the whole call.

Authorizations

Parameters

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body required

object
cards
required

Up to 200 card bodies, each exactly the body of POST /desk/cards.

Array<object>
>= 1 items <= 200 items
object
account_id
Any of:
integer
> 0 <= 9223372036854776000
channel
required

Email, linkedin or call.

string
>= 1 characters <= 32 characters
contact_id
required

The contact the touch is for.

integer
> 0 <= 9223372036854776000
context
Any of:
object
facts

Bullets under what we know. Empty ones are dropped.

Array<string>
<= 20 items
fields

The columns the card was built from, shown as chips.

object
<= 40 properties
key
additional properties
string
persona
Any of:
string
<= 200 characters
why
Any of:
string
<= 1000 characters
draft
Any of:

Shaped by the channel. email: subject, body. linkedin: kind (connect or message), message, a connect note at most 300 characters. call: talking_points, questions, handoff_line.

object
body
Any of:
string
<= 20000 characters
handoff_line
Any of:
string
<= 1000 characters
kind
Any of:
string
<= 32 characters
Allowed values: connect message
message
Any of:
string
<= 8000 characters
questions
Array<string>
<= 20 items
subject
Any of:
string
<= 300 characters
talking_points
Array<string>
<= 20 items
due_at
Any of:
string format: date-time
external_key
Any of:
string
<= 200 characters
list_id
Any of:
integer
> 0 <= 9223372036854776000
origin
Any of:
object
kind
Any of:
string
<= 100 characters
mapping
Any of:
string
<= 300 characters
owner_id
required

Whose desk: a team member’s email, id or user id. Only an org admin (Admin or Owner) may name another rep: an admin’s personal key or OAuth connection, an org key an admin created, or an org key with no recorded creator. Any other key may name only its own person (a personal key’s holder, an org key’s creator); anyone else is 403 owner_not_self.

string
>= 1 characters <= 320 characters
priority

Low, normal, high or urgent.

string
default: normal <= 16 characters
sender
Any of:
object
linkedin_seat_id
Any of:
string
<= 200 characters
mailbox
Any of:
string
<= 320 characters
mailbox_id
Any of:
string
<= 200 characters
sequence
Any of:
string
<= 80 characters
touch
Any of:
integer
>= 1 <= 1000
sequence
Any of:
string
<= 80 characters

Responses

200

Successful Response

object
data
required
object
created
integer
refused
integer
results
Array<object>
object
card_id
Any of:
string
copy_kept

True when the rep had edited the card, so their copy was kept.

boolean
created
boolean
due_at
Any of:
string
external_key
Any of:
string
index
required

The item’s position in cards, from 0.

integer
message
Any of:
string
reason
Any of:
string
retry_at
Any of:
string
status
Any of:
string
updated
boolean
url
Any of:
string
updated
integer
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
notes
Any of:
Array<string>
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer
total_available
Any of:
integer
total_is_lower_bound
Any of:
boolean

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string