Before You Start
- Publish the journey. Only an active journey accepts enrollments.
- Find the journey’s key on its Enrollment tab, such as
appointment-confirmations. The tab also shows a ready-to-copy request. - Create an API key and send it as
Authorization: Bearer YOUR_API_KEY.
Enroll a Contact
idempotencyKeyis your id for this enrollment. Sending the same key again returns the existing enrollment instead of creating a second one, so retries are safe.contactis either an existing contact’scontactId, or a phone number and details. Simple AI creates or updates the contact from those details.subjectis the record the journey is about. Your conditions and texts can use its fields, such as{{subject.appointment_number}}, and every call receives them.anchorAtis the date the journey’s steps are timed from, such as the appointment time.notBeforeis optional. Nothing goes out before this time.paramsis optional. Extra values passed to every call. They are also added tosubject.
nextTouchAt is set when a call or text is going out right away. When the first step is later, such as the day before an appointment, it is null and the step is planned when it comes due.
A contact the journey can’t take comes back with "status": "skipped" and the reason in skippedReason. Possible reasons:
- The contact has no phone number
- The anchor field is empty
- No consent for this journey
- Active in another journey
- Test mode is on and the number is not allowlisted
Cancel When Plans Change
idempotencyKey you enrolled with, or an externalId if you set one. The contact’s journey ends right away and the reason shows in their history. See Cancel a Journey Enrollment.
A Typical Integration
- When a record is created in your system, enroll the contact with your record id as the
idempotencyKey. - When the record’s date changes, cancel and enroll again with a new key. If the journey enrolls from a custom data table instead, update the row and the journey reschedules on its own.
- When the record is cancelled, cancel the enrollment.
- To learn the result, attach a post-call workflow to the journey. It runs after every journey call with the step, result, contact and record, and can update your system.
Calls placed by a journey are ordinary calls. Your call webhooks keep working as they do today.