{
"errorDetails": "<string>"
}Contact Enrollment Result
Outcome of enrolling one imported contact into options.sequenceId. Independent of the item’s own status: a contact can be created or updated and still be refused by the sequence. Present only when the request carried options.sequenceId and the item produced a contact (created, updated or restored). An item the import skipped or failed carries null here, even when it names the contact that caused the skip.
Outcome of enrolling one imported contact into options.sequenceId. Independent of the item's own
status: a contact can be created or updated and still be refused by the sequence.
Present only when the request carried options.sequenceId and the item produced a contact
(created, updated or restored). An item the import skipped or failed carries null here, even
when it names the contact that caused the skip.
Whether the contact is now running in the sequence.
enrolled, notEnrolled null when the contact was enrolled. invalidInput when the sequence refused this particular
contact — reason then tells the refusals apart. Any other value names a failure that stopped
the enrollment for every contact of the request, in which case no contact carries a reason.
invalidInput, sequenceNotFound, noStepsInSequence, forbidden, internalError Readable statement of the same outcome, for surfacing to a person. Its wording can change;
branch on error and reason.
Stable code naming why the sequence refused this contact. null when the enrollment never ran.
contactOptedOut, contactNotFound, contactAlreadyInSequence, skippedByOwner, stepNotReachable, batchLimitExceeded, reEnrollmentBouncedOnPreviousPass, reEnrollmentInCooldown, reEnrollmentBlacklisted, unknown