Skip to content

Commit 5315940

Browse files
authored
Merge pull request #7304 from segmentio/journey-context-updates-unsupported-features
Update Journey Context for Public Beta
2 parents 1729574 + 4df268c commit 5315940

File tree

4 files changed

+66
-44
lines changed

4 files changed

+66
-44
lines changed

src/connections/destinations/index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,6 @@ Segment supports IP Allowlisting in [all destinations](/docs/connections/destina
230230
- [LiveRamp](/docs/connections/destinations/catalog/actions-liveramp-audiences/)
231231
- [TradeDesk](/docs/connections/destinations/catalog/actions-the-trade-desk-crm/)
232232
- [Amazon Kinesis](/docs/connections/destinations/catalog/amazon-kinesis/)
233-
- [Destination Functions](/docs/connections/functions/destination-functions/)
234233

235234
Destinations that are not supported receive traffic from randomly assigned IP addresses.
236235

src/connections/functions/index.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,12 @@ To learn more, visit [destination insert functions](/docs/connections/functions/
4646

4747
With Functions Copilot, you can instrument custom integrations, enrich and transform data, and even secure sensitive data nearly instantaneously without writing a line of code.
4848

49-
To learn more, visit the [Functions Copilot documentation](/docs/connections/functions/copilot/).
49+
To learn more, visit the [Functions Copilot documentation](/docs/connections/functions/copilot/).
50+
51+
#### IP Allowlisting
52+
53+
IP Allowlisting uses a NAT gateway to route outbound Functions traffic from Segment’s servers to your destinations through a limited range of IP addresses, which can prevent malicious actors from establishing TCP and UDP connections with your integrations.
54+
55+
IP Allowlisting is available for customers on Business Tier plans.
56+
57+
To learn more, visit [Segment's IP Allowlisting documentation](/docs/connections/destinations/#ip-allowlisting).

src/engage/journeys/event-triggered-journeys.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ Unlike traditional audience-based journeys that rely on pre-defined user segment
1010

1111
On this page, you'll learn how to create an event-triggered journey, configure entry conditions, and work with published event-triggered journeys.
1212

13-
> info "Private Beta"
14-
> Event-Triggered Journeys is in private beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. During private beta, Event-Triggered Journeys is not HIPAA eligible.
13+
> info "Public Beta"
14+
> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. Event-Triggered Journeys is not currently HIPAA eligible.
1515
1616
## Overview
1717

src/engage/journeys/journey-context.md

Lines changed: 55 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,36 @@ hidden: true
88

99
This page explains Journey context, which can help you dynamically adapt each journey to individual user interactions, creating highly relevant, real-time workflows.
1010

11-
> info "Private Beta"
12-
> Event-Triggered Journeys is in private beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. During private beta, Event-Triggered Journeys is not HIPAA eligible.
11+
> info "Public Beta"
12+
> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. Event-Triggered Journeys is not currently HIPAA eligible.
1313
1414
## Overview
1515

1616
Unlike traditional audience-based journeys, which rely solely on user progress through predefined steps, event-triggered journeys capture and store the details of user-triggered events. This shift allows you to access the data that caused users to reach a specific step and use it to make more precise decisions throughout the journey.
1717

1818
With journey context, you can:
1919

20-
- Split journeys based on event attributes or outcomes.
20+
<!-- Split journeys based on event attributes or outcomes.-->
2121
- Personalize customer experiences using real-time event data.
2222
- Enable advanced use cases like abandonment recovery, dynamic delays, and more.
2323

24+
For example:
25+
26+
- When a user cancels an appointment, send a message that includes the time and location of the appointment they just canceled.
27+
- When a user abandons a cart, send a message that includes the current contents of their cart.
28+
2429
## What is Journey context?
2530

2631
Journey context is a flexible data structure that captures key details about the events and conditions that shape a customer’s journey. Journey context provides a point-in-time snapshot of event properties, making accurate and reliable data available throughout the journey.
2732

28-
Journey context stores:
29-
- **Event properties**: Information tied to specific user actions, like `Appointment ID` or `Order ID`.
30-
- **Split evaluations**: Results of branch decisions made during the journey, enabling future steps to reference these outcomes.
33+
Journey context stores event property information tied to specific user actions, like `Appointment ID` or `Order ID`.
3134

3235
Journey context doesn't store:
3336
- **Profile traits**, which may change over time.
3437
- **Audience memberships**, which can evolve dynamically.
3538

39+
However, the up-to-date values of profile traits and audience membership can be added in a payload sent to a destination.
40+
3641
This focused approach ensures journey decisions are always based on static, reliable data points.
3742

3843
### Examples of stored context
@@ -49,7 +54,9 @@ Event properties are the foundation of Journey context. Examples of event proper
4954
- `Order ID`
5055
- An array of cart contents
5156

52-
Segment captures each event’s properties as a point-in-time snapshot when the event occurs, ensuring that the data remains consistent for use in personalization, branching, and other advanced workflow steps.
57+
Segment captures each event’s properties as a point-in-time snapshot when the event occurs, ensuring that the data remains consistent for use in personalization.
58+
59+
<!-- branching, and other advanced workflow steps. -->
5360

5461
## Using Journey context in Event-Triggered Journeys
5562

@@ -59,43 +66,47 @@ This is useful for scenarios like:
5966

6067
- **Abandonment recovery:** Checking whether a user completed a follow-up action, like a purchase.
6168
- **Customizing messages:** Using event properties to include relevant details in communications.
62-
- **Scheduling workflows:** Triggering actions based on contextual data, like the time of a scheduled appointment.
69+
<!-- - **Scheduling workflows:** Triggering actions based on contextual data, like the time of a scheduled appointment. -->
6370

6471
By incorporating event-specific data at each step, journey context helps workflows remain relevant and adaptable to user actions.
6572

6673
### Journey steps that use context
6774

6875
Journey context gets referenced and updated at various steps in an event-triggered journey. Each step plays a specific role in adapting the journey to user behavior or conditions.
6976

70-
#### Wait for event split
77+
#### Hold Until split
7178

7279
This step checks whether a user performs a specific event within a given time window. If the event occurs, Segment adds its details to journey context for use in later steps.
7380

74-
For example, a journey may wait to see if a `checkout_completed` event occurs within two hours of a user starting checkout. If the event happens, the workflow can proceed; otherwise, it may take an alternate path. The data captured includes event properties (like `Order ID`) and the results of the split evaluation.
81+
For example, a journey may wait to see if a `checkout_completed` event occurs within two hours of a user starting checkout. If the event happens, its properties are added to context and the workflow can proceed; otherwise, it may take an alternate path. The data captured includes event properties (like `Order ID`).
7582

76-
#### Context split
83+
<!-- // and the results of the split evaluation. -->
7784

78-
This step evaluates conditions using data already stored in journey context. Based on the conditions, users are routed to different branches of the journey.
85+
If a Hold Until branch is set to send profiles back to the beginning of the step when the event is performed, those events are also captured in context. Because they may or may not be performed during a journey, they will show as available in future steps but will not be guaranteed for every user's progression through the journey.
7986

80-
For example, a user who triggers an event with a property like `order_value > 100` might be routed to one branch, while other users follow a different path. The split uses attributes from journey context, like event properties or prior split outcomes, to determine the appropriate branch.
87+
<!-- // #### Context split
8188
82-
#### Profile data split
89+
// This step evaluates conditions using data already stored in journey context. Based on the conditions, users are routed to different branches of the journey.
8390
84-
This step evaluates user traits or audience memberships to determine branching. While Segment doesn't store profile data in journey context, it complements the static data available in the journey.
91+
// For example, a user who triggers an event with a property like `order_value > 100` might be routed to one branch, while other users follow a different path. The split uses attributes from journey context, like event properties or prior split outcomes, to determine the appropriate branch.
8592
86-
For example, users in a premium audience can be directed to a tailored experience, while others follow the standard flow. Segment stores the results of this split in journey context for reference in later steps.
93+
// #### Profile data split
8794
88-
#### Contextual delay
95+
// This step evaluates user traits or audience memberships to determine branching. While Segment doesn't store profile data in journey context, it complements the static data available in the journey.
8996
90-
A contextual delay introduces a wait period based on time-related data in journey context. This keeps workflows aligned with real-world events.
97+
// For example, users in a premium audience can be directed to a tailored experience, while others follow the standard flow. Segment stores the results of this split in journey context for reference in later steps.
9198
92-
For example, a journey can wait until one hour before an `Appointment Start Time` to send a reminder email. The delay reads from journey context but doesn't add any new data to it.
99+
// #### Contextual delay
93100
94-
#### Function steps
101+
// A contextual delay introduces a wait period based on time-related data in journey context. This keeps workflows aligned with real-world events.
95102
96-
Function steps process data from journey context through custom logic. The output of the function gets written back to context for use in later steps.
103+
// For example, a journey can wait until one hour before an `Appointment Start Time` to send a reminder email. The delay reads from journey context but doesn't add any new data to it.
97104
98-
For example, a function might calculate a discount percentage based on an event property, then store that value in journey context for later use. The output gets scoped to a dedicated object (`function_output`) to keep the context structured and reliable.
105+
// #### Function steps
106+
107+
// Function steps process data from journey context through custom logic. The output of the function gets written back to context for use in later steps.
108+
109+
// For example, a function might calculate a discount percentage based on an event property, then store that value in journey context for later use. The output gets scoped to a dedicated object (`function_output`) to keep the context structured and reliable. -->
99110

100111
#### Send to destination
101112

@@ -107,40 +118,44 @@ For example, a payload sent to a messaging platform might include `Order ID` and
107118

108119
The structure of journey context organizes event-specific data gets and makes it accessible throughout the journey workflow. By standardizing how data is stored, Segment makes it easier to reference, use, and send this information at different stages of a journey.
109120

110-
Journey context is organized as a collection of key-value pairs, where each key represents a data point or category, and its value holds the associated data. This structure supports various types of information, like event properties, split outcomes, and function outputs.
121+
Journey context is organized as a collection of key-value pairs, where each key represents a data point or category, and its value holds the associated data.
122+
123+
<!-- This structure supports various types of information, like event properties, split outcomes, and function outputs. -->
111124

112125
For example, when a user triggers an event like `Appointment Scheduled`, Segment stores its properties (like `Appointment ID`, `Appointment Start Time`) as key-value pairs. You can then reference these values in later journey steps or include them in external payloads.
113126

114127
The following example shows how journey context might look during a workflow. In this case, the user scheduled an appointment, and the workflow added related event data to the context:
115128

116129
```json
117130
{
118-
"appointment_scheduled": {
119-
"appointment_id": "12345",
120-
"start_time": "2024-12-06T10:00:00Z",
121-
"end_time": "2024-12-06T11:00:00Z",
122-
"provider_name": "Dr. Smith"
123-
},
124-
"split_decision": {
125-
"split_name": "appointment_type_split",
126-
"branch_chosen": "existing_patient"
127-
},
128-
"function_output": {
129-
"discount_percentage": 15
131+
"journey_context": {
132+
"appointment_scheduled": {
133+
"appointment_id": 12345,
134+
"start_time": "2024-12-06T10:00:00Z",
135+
"end_time": "2024-12-06T11:00:00Z",
136+
"provider_name": "Dr. Smith"
137+
},
138+
"appointment_rescheduled": {
139+
"appointment_id": 12345,
140+
"start_time": "2024-12-07T10:00:00Z",
141+
"end_time": "2024-12-07T11:00:00Z",
142+
"provider_name": "Dr. Jameson"
143+
}
130144
}
131145
}
132146
```
133147

134148
This payload contains:
135149

136-
- **Event properties**: Captured under the `appointment_scheduled` key.
137-
- **Split outcomes**: Documented in the `split_decision` object.
138-
- **Function results**: Stored in the `function_output` object for use in later steps.
150+
- **Entry Event properties**: Captured under the `appointment_scheduled` key.
151+
- **Hold Until Event properties**: Captured under the `appointment_rescheduled` key.
139152

140153
## Journey context and Event-Triggered Journeys
141154

142155
Journey context underpins the flexibility and precision of Event-Triggered Journeys. By capturing key details about events and decisions as they happen, journey context lets workflows respond dynamically to user actions and conditions.
143156

144-
Whether you're orchestrating real-time abandonment recovery, scheduling contextual delays, or personalizing messages with event-specific data, journey context provides the tools to make your workflows more relevant and effective.
157+
Whether you're orchestrating real-time abandonment recovery or personalizing messages with event-specific data, journey context provides the tools to make your workflows more relevant and effective.
158+
159+
To learn more about how Event-Triggered Journeys work, visit the [Event-Triggered Journeys documentation](/docs/engage/journeys/event-triggered-journeys/).
145160

146-
To learn more about how Event-Triggered Journeys work, visit the [Event-Triggered Journeys documentation](/docs/engage/journeys/event-triggered-journeys/).
161+
<!-- PW, 10 December 2024; on PM request, commented out certain sections with functionalities not yet available during public beta. -->

0 commit comments

Comments
 (0)