It feels like forever since I first wrote about Journey Orchestration Engines (JOEs), although it is just one year. Orchestration was already a hot term when I started, so I take neither credit nor blame for its continued popularity. I will say that I’ve now seen enough orchestration systems to start making subtle distinctions among them.
Subtle distinctions are needed because the systems are basically similar. They all ingest data from multiple sources; convert it into unified customer profiles; apply rules and analytics to find the best message for each customer in each situation; and, send those messages to external systems for delivery. Unified customer profiles make these products look like Customer Data Platforms. JOEs that expose their profiles for external access really are CDPs; JOEs that keep the profiles for their own use, are not. In theory, a JOE could connect to an external customer database rather than building its own, but I haven’t seen that configuration in practice.
The main ways that JOEs differ include:
- Channel scope. Some systems are largely limited to online interactions, while others are built to combine online and offline channels. Some systems that look like JOEs work with only Web or email. But orchestration pretty much implies multiple channels so I’d probably exclude those from the JOE tribe.
- Decision methods. JOEs can work with conventional, rule-driven campaign structures or use automated techniques to customize the path followed by each customer. There’s also considerable variation in exactly what gets automated: some automate campaign assignments but use static content; some automatically run a/b tests and pick the winners; some automatically create customer segments that receive different content; some use machine learning to dynamically generate custom content.
- Journey framework. My original definition of JOE was quite rigorous: journey orchestration meant all campaigns were defined relative to a master model of the customer journey. This really means that stages in the journey are “states” that customers flow between, and campaigns are chosen in part based on each customer’s current state. I still think of JOEs that way and definitely see some systems organized along those lines. But when you start looking at some of the more automated decision methods, it’s harder to apply concepts of fixed states or journey flows. So I still check whether a system has a journey framework but don’t necessarily require a JOE to use it. I realize this means you could have a journey orchestration system without journeys. If that’s the silliest thing you’ve been asked to accept recently, you haven’t been watching the news.
This is all a very long-winded introduction to CrossEngage, a Berlin-based firm that released its product about six months ago. CrossEngage works in online channels, using its own tags to capture Web interactions and API connections to ingest data from email providers, mobile apps, and other sources. It can also load CSV files if necessary.
CrossEngage treats most data as either a customer attribute or event, using Cassandra and Elastic Search to store inputs and to allow data access with minimal schema design. The system also stores some information that’s neither attribute nor event, such as products and locations. The vendor maps new sources into the system and can define logic to create custom events. (A self-service event builder is planned by July.) Customer data from different sources is stitched together using deterministic matching only (that is, CrossEngage will only connect different identifiers to the same person if an external source provides the relationship).
A dashboard lets users see Web site events as they stream into the system. Users can apply filters to see only certain events. Campaigns also make heavy use of events, referencing them as entry and exclusion conditions, in combination with user-defined segments; as campaign goals (which may be one or several events); and, as campaign steps (each step being a different event). Event definitions can reference other events and can include brain-bending logic such as checking whether a second train fare request specified the same departure city as the first request and happened within ten minutes. In that example, the first request would be first event in the campaign. This is tremendously powerful and, as the vendor points out with some understatement, poses a substantial technical challenge to do in real time.
Each event in a campaign can be assigned a message, which will be delivered by an external system such as an email vendor. CrossEngage can map its data to delivery systems so they can use the data in their own message templates. Alternatively, messages can be created in CrossEngage’s own templates, which can include conditional scripts for dynamic content generation. The system has external integrations for email, direct mail, mobile push, text messages, and Facebook Customer Audiences, with more on the way. It has its own connectors for Web site and Web browser messages, Web hooks, and file extracts. Users can also attach discount coupons to messages.
Campaigns can be assigned frequency caps that limit the number of messages each person receives in different time periods (per minute, per hour, per day, per week, or per month). Caps are defined separately for each campaign. Another set of caps applies across all campaigns on a per channel basis. Campaigns that generate transactional messages can be exempted from the frequency caps to ensure their messages are always sent. People can also be excluded from campaigns based on whether they were recently in that same campaign or a different one.
CrossEngage also has user journeys, which involve a set of related events. Journeys can exist within a campaign or be used outside a campaign to analyze customer behavior. If you’re keeping track, this is a different use of the term “journey” from the one I described earlier.
This is a pretty mature set of features, especially for such a young system. But nuances also include noticing what CrossEngage doesn’t do. There is no machine learning to recommend the right campaign, right message, or right message timing, although the system does support a/b tests. There’s also no visual flow chart to lay out campaigns. This is a choice made by CrossEngage based on its designers’ previous experience that flow charts quickly become too complicated to be understood or maintained over time.
Speaking of nuance, CrossEngage also has a mature approach to user rights management, allowing administrators to specify which users can perform which actions on each object. Team-based rights are on the roadmap.
CrossEngage currently has about fifteen major clients, spread across travel, ecommerce, fashion, dataing, and other industries. Pricing is based on the number of events tracked in the system, not the number of messages sent. It starts as low as $2,500 per month although average client pays about twice that.