Skip to main content

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.

status
enum<string>

Whether the contact is now running in the sequence.

Available options:
enrolled,
notEnrolled
error
enum<string> | null

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.

Available options:
invalidInput,
sequenceNotFound,
noStepsInSequence,
forbidden,
internalError
errorDetails
string | null

Readable statement of the same outcome, for surfacing to a person. Its wording can change; branch on error and reason.

reason
enum<string> | null

Stable code naming why the sequence refused this contact. null when the enrollment never ran.

Available options:
contactOptedOut,
contactNotFound,
contactAlreadyInSequence,
skippedByOwner,
stepNotReachable,
batchLimitExceeded,
reEnrollmentBouncedOnPreviousPass,
reEnrollmentInCooldown,
reEnrollmentBlacklisted,
unknown