Skip to main content
PATCH
Update a donor through Zapier

Authorizations

Authorization
string
header
required

Passport bearer token authentication for legacy admin sessions.

Path Parameters

id
integer
required

Identifier of the existing record in the authenticated organization.

Body

application/json

Validated input accepted by this Zapier transport.

email
string<email> | null

Profile email address. Validation: nullable|email.

Example:

"jane@example.org"

username
string | null

Donor portal username. Validation: nullable|string|max:255.

Maximum string length: 255
Example:

"jane.doe"

first_name
string | null

Individual donor given name. Validation: nullable|string|max:255.

Maximum string length: 255
Example:

"Jane"

last_name
string | null

Individual donor family name. Validation: nullable|string|max:255.

Maximum string length: 255
Example:

"Doe"

organization_name
string | null

Organization donor display name. Validation: nullable|string|max:255.

Maximum string length: 255
Example:

"Example Foundation"

phone
string | null

Profile telephone number. Validation: nullable|string|max:50.

Maximum string length: 50
Example:

"+12565550123"

household_id
integer | null

Household membership for the donor. Validation: nullable|integer.

Example:

88

do_not_email
boolean | null

Whether the donor has opted out of email. Validation: nullable|boolean.

Example:

false

json_fields
object | null

Custom-field values keyed by the configured form field names. Validation: nullable|array.

Response

Created, updated or replayed record; this transport unwraps the primitive success envelope.

A donor record. Donors give one-time donations and recurring commitments, and may be linked to entities (recipients) via sponsorships. Standardized profile columns (first_name, phone, address, etc.) coexist with arbitrary custom fields stored in json_fields and defined per hysform_id. The username/email/password columns also let donors sign in to the donor portal.

id
integer<int64>
required

Internal donor ID.

Example:

12345

client_id
integer<int64>
required

Owning Gratona client (multi-tenant scope). All donor queries MUST filter by this.

Example:

207

hysform_id
integer<int64> | null

HysForm that defines this donor's profile fields (custom + standardized) — controls which keys appear in json_fields.

Example:

42

donorprogram_id
integer<int64> | null

Program the donor signed up under, if applicable. Mostly informational.

Example:

11

household_id
integer<int64> | null

Household this donor is linked to, when joint giving / partner records are tracked together.

Example:

88

type
enum<string> | null

Canonical donor identity type is INDIVIDUAL or ORGANIZATION. Compatibility serializers/callers may retain the lower-case aliases.

Available options:
INDIVIDUAL,
ORGANIZATION,
individual,
organization,
null
Example:

"INDIVIDUAL"

username
string | null

Login username for the donor portal. Must be unique across donors when set.

Example:

"janedoe"

email
string<email> | null

Donor email — used for receipts, statements, and donor-portal login.

Example:

"jane@example.com"

organization_name
string | null

For type=organization donors. Standardized field; mirrored in json_fields.organization for legacy clients.

Example:

"Acme Foundation"

first_name
string | null

Donor first / given name. Standardized field.

Example:

"Jane"

last_name
string | null

Donor last / family name. Standardized field.

Example:

"Doe"

preferred_contact_method
enum<string> | null

How the donor prefers to be contacted.

Available options:
email,
phone,
sms,
mail,
null
Example:

"email"

phone
string | null

Phone number as entered by the user (display format).

Example:

"(555) 123-4567"

phone_e164
string | null

Phone normalized to E.164 for SMS/dialing. Populated by the phone normalization pipeline.

Example:

"+15551234567"

can_receive_sms
boolean

Whether SMS opt-in is granted for this donor.

Example:

true

street
string | null

Street address line 1 (standardized).

Example:

"123 Main St"

address_line2
string | null

Street address line 2 (apartment, unit, suite).

Example:

"Apt 4B"

city
string | null

City.

Example:

"Springfield"

state
string | null

State / region (free-form display value).

Example:

"IL"

zip
string | null

Postal / ZIP code.

Example:

"62704"

country
string | null

Country display name.

Example:

"United States"

country_code
string | null

ISO 3166-1 alpha-2 country code.

Example:

"US"

subdivision_code
string | null

ISO 3166-2 country subdivision code.

Example:

"US-IL"

json_fields

Custom profile/record fields. Raw model responses retain the encoded JSON string; projection endpoints may return a decoded map or list. Use the record form definition to interpret field keys.

year_to_date
object | null

Cached YTD giving totals (per year and per program), refreshed by background jobs.

has_artifacts
boolean

Whether the donor has any uploads/photos attached.

Example:

false

batch_id
integer<int64> | null

Set when the donor was created via a CSV import batch; ties together donors imported in the same run.

Example:

null

created_at
string<date-time>
Example:

"2025-03-15T19:42:00Z"

updated_at
string<date-time>
Example:

"2026-01-02T08:11:00Z"

deleted_at
string<date-time> | null

Soft-delete timestamp; donors with a non-null value are excluded from default queries.

Example:

null