Skip to main content
POST
Record a stewardship Work completion

Authorizations

Authorization
string
header
required

Passport bearer token authentication for legacy admin sessions.

Path Parameters

workItemId
integer
required

Workitem id in the current organization.

Body

application/json

Validated request fields for this operation.

channel
enum<string>
required

Channel. Validation: required, string; allowed values: call, text, sms, email, note, meeting, handwritten_card, letter, mailing.

Available options:
call,
text,
sms,
email,
note,
meeting,
handwritten_card,
letter,
mailing
Example:

"call"

donor_id
integer | null

Donor id. Validation: nullable, integer.

Example:

1

handwrytten_order_id
integer | null

Existing order belonging to the work action contact, or omit and supply a handwrytten draft for handwritten_card.

Example:

1

donation_ids
integer[] | null

Eligible gifts for this stewardship relationship. Direct gifts are acknowledged; relationship soft-credit gifts may be retained as completion evidence only. Replays must preserve the selection.

Donation ids item. Validation: integer.

subject
string | null

Subject. Validation: nullable, string, max:255.

Maximum string length: 255
Example:

"Subject"

note
string | null

Note. Validation: nullable, string, max:10000.

Maximum string length: 10000
Example:

"Discuss the next update with the program team."

body_plain
string | null

Body plain. Validation: nullable, string, max:10000.

Maximum string length: 10000
Example:

"Body Plain"

body_visibility
enum<string> | null

Body visibility. Validation: nullable, string; allowed values: private, metadata, shared, team.

Available options:
private,
metadata,
shared,
team,
null
Example:

"private"

outcome
string | null

Outcome. Validation: nullable, string, max:64.

Maximum string length: 64
Example:

"Outcome"

direction
enum<string> | null

Direction. Validation: nullable, string; allowed values: inbound, outbound, internal, none.

Available options:
inbound,
outbound,
internal,
none,
null
Example:

"inbound"

duration_minutes
integer | null

Duration minutes. Validation: nullable, integer, min:1, max:1440.

Required range: 1 <= x <= 1440
Example:

1

follow_up_at
string<date-time> | null

Follow up at. Validation: nullable, date.

Example:

"2026-10-20T12:00:00Z"

counts_as_touch
boolean | null

Counts as touch. Validation: nullable, boolean.

Example:

true

shared_group_id
integer | null

Shared group id. Validation: required_if:body_visibility,shared, nullable, integer.

Example:

1

occurred_at
string<date-time> | null

Occurred at. Validation: nullable, date.

Example:

"2026-10-20T12:00:00Z"

idempotency_key
string | null

Idempotency key. Validation: nullable, string, max:191.

Maximum string length: 191
Example:

"Idempotency Key"

handwrytten
object | null

Handwrytten. Validation: nullable, array.

Response

Operation result.

data
object

A handwritten draft does not complete the work or acknowledge gifts until a live provider acceptance. Replays return the existing interaction and no new acknowledgement.