Intervengine Docs

Intervengine App


Coaching Tutorials

Experience Building Tutorials

Pre Built Journeys


Intervengine x Sahha


Releases

Book a Demo

Report an Issue

<aside> ☝ Journeys allow you to set up automated workflows for coaching your Participants. Journeys comprise of States, connected by Transitions, which deliver Attachments to the Participant over time as the Journey progresses

</aside>

<aside> ☝

We have a range of pre built Journeys:

Pre Built Journeys

</aside>

<aside> ☝

Want to do something in a Journey but cant figure out how? Check out some common patterns you can use

Common Journey Patterns

</aside>

States

States represent a Participant's possible position within the Journey.

You can add a new State by dragging out from the output of an existing State and dropping it on the canvas.

Screen Recording 2025-10-15 at 9.40.43 AM.mov

You can also add a state in between two existing states by clicking on the Add new State button

Screen Recording 2025-10-15 at 9.31.59 AM.mov

Transitions

Transitions define how to move from one State to the next. You can add Transitions between States in two ways:

Drag a new Transition from the output of one State and connect it to the input of another State:

Screen Recording 2025-10-15 at 9.27.49 AM.mov

<aside> ☝

All Transitions have to move from one State to another State. This is controlled via the Trigger

<aside> ☝

When a Transition is executed, you can add Attachments, these will be executed as the participant moves through the Journey

Signals

<aside> ☝ There are many different use cases that require signals, usually when you are wanting to form more complex and reactive Journeys based on specific events

</aside>

Each Signal can be comprised of any combination of:

Signal Content card with a card id of 1 has been READ

code == "CONTENT_READ" && identifier == "1"

Signal Activity Cards have been REPORTED

code == "ACTIVITY_REPORTED" && identifier == "1"

Signal Health Measure has been REPORTED

code == "HEALTH_MEASURE_REPORTED" && identifier == "1" && anyOf(values.QUESTION_CODE,["Bothered","Miserable"])
i.e.
code == "HEALTH_MEASURE_REPORTED" && identifier == "1" && anyOf(values.HOW_ARE_YOU_FEELING_TODAY_1043,["Bothered","Miserable"])
Or
code == "HEALTH_MEASURE_REPORTED" && identifier == "1" && values.QUESTION_CODE>=50

<aside> 💡

The identifier is the ID of the activity which is obtained by opening an Activity from the Activitities list, and using the ID in the URL such as https://example.web.app/#/activity_types/340

The values code (values.QUESTION_CODE) is obtained by navigating to the Activities list and then clicking on one of the Questions in the Questions column and then copying the CODE of the question.

</aside>

Signal Scored Activity Cards have been RESPONDED

code == "ACTIVITY_REPORTED" && identifier == "1" && scores < 50
code == "ACTIVITY_REPORTED" && identifier == "1" && scores > 50

Signal Activity Cards have been RESPONDED to with a measure that is categorical

In the case below, Question_Name_Code is the code relating to the question (more > questions > code).

code == "ACTIVITY_REPORTED" && identifier == "136" && values.{Question_Name_Code} == "I want to make changes"
i.e.
code == "ACTIVITY_REPORTED" && identifier == "136" && values.ARE_YOU_READY_TO_MAKE_SOME_CHANGES == "I want to make changes"

To find the code for a question, highlight columns to show the code. Copy to code from column directly.

image.png

Signal Participant has been assigned specific Tags & Tag Types

code == "PARTICIPANT_TAG_ADDED" && tags.START_CAMPAIGN_JOURNEY == "true"

code == "PARTICIPANT_TAG_ADDED" && tags.{TAG_CODE} == "true" (where {TAG_CODE} is the code of the tag, not the name of the tag)

If you don't want to listen for the assignment of a tag (as above) but to simply evaluate the value of a tag, the syntax is:

tags.{tag_code} == "true"

tags.START_CAMPAIGN_CODE == "true"

You have to put this either in the condition field or as an additional && argument in an evaluation of some other code. i.e. a Signal has to begin with && code == and since you aren’t listening for the assignment of a tag, but just interested in its value, the above works.

Signal Participant has been assigned specific Groups

The syntax below can be used as a condition, once the signal code has been interpreted. I.e. the signal might be code == “ACTIVITY_REPORTED” && identifier = “1” then the syntax below can be used for conditional assessment.

code == "PARTICIPANT_GROUP_ADDED" && groups.GROUP_ONE_CODE == "true"