New Use Cases for Customer Engagement: iOS Live Activities, Web Push, and Persistent Messaging
Explore new surfaces and use cases for customer engagement as brands move beyond one-way, single-channel messaging. Discover how marketing and product teams can create more visible, contextual, and persistent experiences-driving continuous engagement and richer, real-time interactions across channels.
Hi everyone and welcome to Experience League Live. I’m Sandra Hausmann, Senior Technical Marketing Engineer here at Adobe and I am really excited to have you with us today. If you’re new to Experience League, Experience League is Adobe’s customer learning hub. It’s where you’ll find tutorials, best practices, product documentation, the communities and recordings of sessions like this one, all designed to help you get more value from your Adobe products. But before we jump in, a quick housekeeping note, we’d love this to be an interactive session. So please drop your questions into the live chat throughout the session. We’ll answer as many as we can. Just a reminder, you do need to be logged into YouTube to post your questions. Today’s session is all about new surfaces and new use cases for customers engagement in Adobe or with Adobe Journey Optimizer, including iOS live activities, web push notifications and message inbox. So without further ado, let me bring in my guests. To start us off, I’m joined by Don Nguyen. Don is the product manager and expert for web push notifications and message inbox. Thanks, Sandra. Definitely excited to be here. Welcome back, Don. It’s always great to have you. So next up is Robert Cadangio. He’s principal product manager and the mastermind behind iOS live activities. Hey, Robert.
Hey, Sandra. Happy to be here again.
And last but not least, Brent Kostak. Brent is principal product marketing manager here at Adobe. He helps shape how we bring these engagement capabilities to market and how we talk about the value they unlock for customers. Hey, Brent. Welcome.
Hey, everyone. Thanks for having us. Great to have you. Great to have you all back. This is, I always love having sessions with you. And as you all know, this wouldn’t be Experience League live without me introducing you with some fun facts. And let me start off with Don. I mean, Don, you told us that you have an undergraduate degree in biology and you’ve literally never used it. At what point did you realize biology wasn’t the long term plan? Yeah, I think I originally went into undergrad thinking that I was going to become a dentist and quickly realized that was not for me. But maybe a smarter move rather than starting from scratch. I obviously kind of finished off my degree, had an interesting career to get me to Adobe. But yeah, generally speaking, I definitely don’t use anything biology wise at Adobe. So yeah. But do you sometimes have the feeling that designing and managing products is like pulling teeth? You know, sometimes. Sometimes. Yeah. Nice.
I mean, I’d love to ask you a lot more questions about how you actually, how did you actually start Adobe with biology as your background? Oh, yeah. Everything from, I started out in hospital administration with that kind of background as well. Then went and got an MBA, but then slowly started transitioning into kind of medical devices in general and kind of worked in product in that situation. And that kind of slowly kind of leapfrogged me into Adobe here. And so a huge transition for sure. That’s awesome. But that also means you have some quite some industry experience there. Not bad healthcare. Yeah. So Robert, you are actually in San Jose today, which is great. And I’ll see you in the office in a bit. But you live in Switzerland in beautiful Basel. And you told me, I mean, I’ve lived in Switzerland a couple of years as well. And I know in 10 minutes you can be in France, Germany. But you told me that you actually lose your cell signal along the way. That’s weird. Do you know why? Yeah. I think because you changed the countries and you need to change the operator. But the thing is that it’s beautiful to bike or even run. There are trails around the borders, but you cannot take meetings when you do that because you lose the signal and you need to stay only in one country. Oh, wow. So if you want to take a break, you just go over to France or Germany. And it’s like, yeah, you can’t reach me. Sorry. It also feels like a great reminder of why reliability and persistent messaging matters. So yeah, I think I’m starting to get a feeling why you’re focusing on the products you’re working on. Brent, you’re fun packed. I mean, you told us that your video and photo work has been featured in a National Geographic Let’s Explore campaign. Oh my God, that’s pretty amazing. Apart from the fact that I didn’t know that you are a photographer and videographer, but how did you manage to get your work featured? I mean, I assume that’s not that easy. No, it’s a funny story, but I was just about to say like anyone working here, I’ve come to know like Don and a lot of photographers, videographers with the interest of Adobe in the background. But yeah, that was years ago and we were traveling around just doing some film work. I was doing some freelance for a couple of clients and we would just upload our content to Vimeo. If you guys are familiar with the Vimeo platform. And then we had some adventure content. We had an email from a National Geographic consultant that was doing some campaign work. We all thought it was fake. Just the three of us guys who were doing some of these videos. But they reached out and said, hey, we love the content. Can we have you sign this? We get copyrights to it and we’re going to put it into some of our campaign videos that we’re hosting for this Let’s Explore. It was for like children at the time being kind of like young explorers. And I thought it was really cool. So to this day, it’s still up on YouTube, which is neat. A lot of our videos were kind of segmented into their Let’s Explore campaign. And that was like my claim to fame for a little bit of bibliography in the real world. But it was a big fan of National Geographic. And I live in DC, so they’re installing a new base camp museum and things that are happening. So now I can pass down that to my kids. So the Nat Geo content I thought was relevant for today.
And how did you, I mean, your videos, what are they on? Is it animals or? Those were more- What are they about? There was like two or three of them. One was a product video shoot for an outdoor company, like trail walking and running. It was for like a footwear. Cool. Another one was, yeah. So some of the clips that they were interested in was Crater Lake in Pacific Northwest. We were there traveling and my buddy ran up to one of the posts and kind of jumped over. We got a small clip of the shoes running. And then he was at Crater Lake. He was on the edge. So they found that. And were probably different tags of locations, but it was a variety of work. But yeah, it’s fun to kind of reminisce on. It felt like a different life ago, but those are still out there and live, which is cool.
That’s so amazing. And it was already marketing related, right? Yeah, exactly. Product videos, marketing is in the background before the Adobe came to fruition. So good call out.
Perfect. Oh my God. Well, I could continue talking, but we want to start talking about the product and not the fun facts. So let’s get started. Brent, I’ll hand it over to you to set the stage and walk us through why the engagements, why it matters that they surface. Yeah, thank you. So for today, we’re really excited. We have some new capabilities, functionality launching in Journey Optimizer. And we kind of wanted to segment these out by different features we’re going to walk through today. So first is iOS Live activities. This is really important, a fundamental shift that we are seeing in terms of our brands and customers from notification based engagement to state-based real-time engagement. So for those interested in iOS Live activities, this is really unlocking new surfaces for Journey Optimizer, AJO customers with the mobile lock screen, the dynamic island, they’re persistent, contextual and dynamically updated while the event’s happening. So really important for, Robert’s going to run through a demo showing both of these scenarios, but broadcast use cases like sporting events or live score updates while the event is happening. I think everyone’s very familiar with the unitary individual placing an order and tracking delivery or ride share updates when you’re taking a Lyft or Uber. So there’s a lot of ways that, unlike push notifications that are more of a one-time alert style communication, these persist, and they’re very highly engageable, they’re very visible, and they’re taking over coveted real estate on the mobile app, right? The mobile lock screen, the dynamic island where you don’t even have to open the app, mobile app. So these are really exciting. We are launching also push notifications, web push. So this is expanding into web push notifications on the browser. Really, again, actively engaging customers, not even having to happen in the browser open, right? It’s not even active, but yet you can still engage with your users directly within the browser. These are very effective for, you might have the browser open, you’ve engaged with the website for a brand, but price drops, certain items back in stock, abandoned cart reminders. So this is really great in its extending of our push notification infrastructure. So Don’s going to run through an example here with these. And then the last one is inbox. This is actually really exciting. We’ve had a lot of customers interested in terms of enhancement to content cards. So content cards that has been GA launched, not speaking directly to that today, but we will show the content cards within the inbox use case. But this is an expansion within the context of first phase, enhancing content cards within Journey Optimizer as a separate channel in itself, delivering personalized messages and offers and content within the app. So it’s intuitive.
There is a seamless integration within the user experience and the interface, and they’re not embedded within some of your services. And the inbox capability is extending that. So you can store, organize your content cards within the app, and it gives users the ability to access and go back to those different messages or offers. And I know myself, it’s very important. Sometimes you see a pop-up, you’re interested in a discount, 10% off, you click out of it by accident, or maybe you’re not interested at the moment, but you go back and you’re kind of wondering, how do I engage with that discount that the brand was giving me? So these are really effective in essentially inboxes, building customized containers for storing those content cards. So this is really exciting. We’re really expanding from the center of expansion of use cases, opportunities within Journey Optimizer for our customers. And then I’m really excited, I really respect Don and Robert here pulling some of these new features together for what we’re going to present today. So the use case, you’re at a sporting event. Robert’s going to showcase the broadcast use case for iOS Live activities, and then we’ll switch over into the unitary one-to-one. But essentially the demo flow today is going to stitch these together. We’re going to see a customer ordering pizza from the Hungry App restaurant. We’re going to get a tracked iOS Live activity. Once that order is delivered, the user can see the status of that pizza order that’s going to be ready for them when they get back home after the game. And then we’ll have Don showcase how to create a channel configuration and content card, locking in and storing that inbox message that’s going to give them a discount on the next offer because they’ve become a customer, as well as a push notification web push that goes out to remind the user of that discount. So as far as examples of impacts that you can see from these new features, it’s really exciting. There’s a lot of lift of engagement, retention rates from iOS Live activities from the engagement there. And then we have a lot of customers like our own Lightroom and Photoshop and teams using this for user growth and more of a product manager, growth marketer, thinking about engaging these different tactics within AJO to drive user adoption and acquisition. So before I pass it over to Robert, the one thing I will say is a lot of our customers, when we see these additional channels or features of Journey Optimizer, it’s really great because it’s giving them the opportunity to create that customer experience. One of our large meaning entertainment brands talking about some of these new launches, it was a basketball game example, and they said the product of the game to the customers is really important. But even more important was the experience that all the audience has at the stadium, the interactions they get, some of these capabilities that we’re going to be walking through today showcases the importance that a brand puts on the actual experience for a customer versus just what they’re coming to see. It’s coming to watch a basketball game or in this case a sporting event. So really excited about the ways that brands and our customers are engaging and leveraging these capabilities and we’re going to have awesome demos today to showcase that. So I will pass it over to Robert to get us started in terms of showcasing the product. Thanks Brent. It’s amazing. We’ve covered the why and Don and Robert will cover the how. Just for our audience, as a reminder, during the demos, feel free to put in your questions into the chat. We’ll pick them up during the demo. This is your chance to interact with us and we’re happy to answer them. So if there’s any questions that come up during the demos, let us know. We’ll address them. Okay, Robert.
Cool. Thanks Brent and Sandra. So what I’m going to demo today, like Brent said, I’m going to show you two different use cases for live activities. One is the broadcast use case where I’ll demo a live game update and then I’ll switch over to the unit 31 ordering a pizza from the stadium. For the broadcast one, I have a quick recording demo so I can show you how this goes across multiple devices at once and then I’ll switch into the product for the live demo for unit 31. So I’m going to play the demo and walk you through it. The iOS live activities are exposed in Journey Optimizer in API trigger campaigns, marketing and transactional. For the broadcast use case, we’re going to use the marketing type of campaigns and we’re going to create a new campaign. We’re going to select live activity as the channel and we need a live activity configuration which points to the right app ID. Once we do that, for the broadcast use case, we can select an audience to refine the users and the devices that will actually receive this live activity. This audience comes on top of the channel ID refinement that is done. So once we create the campaign in AGO, what we need, we need the campaign ID in order to use it when we’re actually doing the API calls. So I’m going to show you in the unitary case where I’m going to put the campaign ID and what are all the fields. But now we executed a start event for the broadcast use case and the campaign started on all the devices that were part of that audience and that subscribed to channel ID here. And now we’re going to do a few score updates and we’re going to see how these updates will actually appear on all the devices at once. What’s important to know is that for the broadcast use case, what we’re doing for the updates, AGO sends a call to APNs and from APNs, it fans out across all the devices that subscribe to that channel ID. So we’re leveraging APNs capability, native capabilities for this in order to make things more efficient for the broadcast use case. So you can do multiple updates depending on, I don’t know, events of the game. You can do live score updates. You can do different events like a player was sent off or a timeout accord and things like that. And after all the updates are done, you can send an end event to end the live activity. And for the end event, I’m going to show you in a second when I’m going to do the unitary one, you can actually add a dismissal date so the card live activity goes out.
Basically you can schedule the end event as well as trigger it manually, right? Yeah. So usually the live campaign has a limit of eight hours.
APN is imposing this limit. So after eight hours, it will be automatically dismissed. You cannot have live activity running for more than eight hours, but for sure you can end it sooner or the user can actually dismiss it from the screen as well.
Cool. So let me get into the unitary demo. So let’s say I’m at the live game and during the game I remember that I don’t have anything in the fridge and when I get home, I want to have a pizza so I can enjoy my evening. So I’m going to go like as a marketer in order to facilitate this experience for the end user, I’m going to go in AGO, I’m going to create a new campaign and for the unitary one, I’m going to select the API trigger transactional type of campaign. Remember that for the broadcast type chose marketing.
For the unitary one, the difference is that, let me give it a name, the action, we’re going to select live activity and I’m going to select live activity configuration. This configuration has the app ID, which I’m going to use. And as I said earlier, as I wanted to say is that the difference between the unitary one and the broadcast one is that for the broadcast, you can select an audience. For the unitary one, the audience is not selected. The individual will be specified in the API code based on identity type. For me, the identity type chosen is the GCID. And I can schedule that to be active right now. So I’m going to do review and activate. As you noticed, probably if you’re familiar with AGO, there’s no edit content capability right now for live activity. So all the content that you want to change in the live activity will be passed through the headless API calls. And I’m going to show you in a second. So I’m going to activate this campaign.
And what I’m going to use, I’m going to use this campaign ID for my headless API calls.
So while it’s activating, I’m going to switch to my Postbuster and to my simulator. And I have here a couple of sample calls that I’m going to use. The first thing I’m going to do, I’m going to change the campaign ID here to the campaign I’ve just created. The user ID is the ECID of this simulator. And the event is start, right? So the event can be start, update, or end.
And I have this food delivery live activity that I want to trigger. I have the restaurant name and the live activity ID. So the live activity ID, I can say, okay, it’s the first order for today. What I need to pay attention to is also to have a valid token. And I have it here. Let me paste it.
This is the token that the headless API needs in order to execute the call. So as you can see, the URL of the API, it’s the unitary one for the broadcast, it’s audience one. But let’s start and let’s start the activity. So I’m going to hit start.
Let’s see first if the activity is active.
Let me go back here.
So I have the ID, I have ordered start.
So I have to do this.
I have this as my live app. One thing you can do is you can actually start it both remotely and locally. So remote start, you can do it through the APIs.
And the local start, you can do it from your app based on an event.
Basically, this is a good example for a local start. I’m assuming you’d be ordering the pizza via your app. So at that point, that would trigger it.
So I don’t seem to have a token, but let me see. One call out too is Robert’s running through this, just important to call out. A lot of the business units teams that we’re engaging with iOS Live activities currently you can see using Postbuster a little bit more on the technical developer like mobile app team. So that’s current state how we’re interacting and changing the states of these iOS Live activities with future work in terms of more marketer friendly within AJL. But I wanted to make sure that was called out in terms of like persona, who would be running some of these and executing some of these features right now. I think that’s very helpful.
Yeah, that’s a good call out.
And of course, we’re in a demo environment.
Yeah, I’ve started the Live activity. So you can see that’s one of the states of the Live activity. So the ATA, it’s 30 minutes. This is the Dynamic Island View. And you can have if I go on it to the log screen, let me do that. So if I go into the logs, this is the card that will appear on the on the log screen, right. So if I want to do like an update, and I say order accepted, I’m going to send this to me.
So as these events are happening, this would be dynamically updating within this view here. Yeah, what I what I did wrong was like, I changed the campaign ID, and I forgot to do it here.
So let’s do it again.
What you’re doing, what you’re doing manually right now would come through the API.
Yeah, yeah. But yeah, let me let me quickly do one thing. So we can start over.
I’m going to close the switch clear. I’m gonna run the simulator again.
And let me do this.
One thing that I myself as a as a consumer, a customer of certain brands, I really enjoy the this experience, like the user experience is very native. I remember even like ordering, you know, coffee and seeing an update, there’s always a natural intuitive way of seeing these live on the even for changing music and certain things on my phone. I’m a huge fan of iOS live activities. I think like the average consumer person gets like 49 to 50 push notifications daily or messages from brands on their phones. So I think this is a very effective way of communicating throughout some live event. And I mean, you also see what’s going on, right? It’s not only one push after the other, but you’re actually visually seeing what’s going on. I mean, I just had that experience recently when I ordered some food via the app, they’re using something similar as well as using this live activity looks very similar to the one that that Robert is showing us. And I find that so helpful. That’s, it’s really, it’s, yeah, it brings, brings the, the brand interaction to the next level. Yeah. Those expectations are there too. I mean, anytime I order something on a website, I’m always kind of waiting to get that confirmation on my phone and then order delivery tracking. It’s very helpful if I’m running errands that day or what it’s a great, great new opportunity for our customers using it. Yeah. So Robert, I mean, that’s, um, we know we’re in a demo environment and Murphy’s law of demos is kicking in. Um, I don’t know if, if you want to, to move on to show the other placement that you can have for these or yeah. And if the audience, if there’s any questions from the audience at apart from, um, why is my pizza not being delivered? Feel free to put them into the chat.
What, uh, yeah, what needs to happen is let’s do this.
What are accepted? So it’s not, it’s not coming through. Probably my demo environment push, push to start token. And, uh, I cannot, uh, then let’s, let’s move on. We have a lot of other things that we want to show our audience to, to Dawn’s, uh, demo and, uh, I try to, to fix it. And, uh, if we have time at the end, I can, I can show it. That’s technically real time. Dawn’s, uh, Dawn’s events would be happening while the, uh, iOS live activities are being updated. So, I mean, we’ve, we, we’ve seen the activities. We’re in a real state here, Robert. Right. We saw, we saw the score going up, so that’s great. It’s just frustrating that we’re not getting the pizza, but Don, maybe you can change that. Sure. Absolutely. Absolutely.
Um, awesome. Okay. So let’s, um, let’s move to, yeah, so I guess I’ll take over. And so kind of jumping from where, um, we were supposed to be left off with Robert, um, essentially your pizza is ordered and it’s delivered. And the next step is essentially we want to kind of do like a, an opportunity to get a additional kind of purchase afterwards or an upsell. So we’re going to actually send all the users that do this, essentially a 20% off or 30% off discount code. Um, and we want that to be sent to the individual’s inbox. And so, um, just like what, how Brent described it, where inbox is kind of like a physical bulletin board in a sense where the inbox controls or provides the specific parameters of how individual cards will show. Um, and so with those content cards being persistent, um, it allows those users to kind of hold onto that specific discount code until they can actually that second order. And then, um, yeah. And so I’ll just kind of go through those first steps of setting up the inbox. And so here, um, I have AGO pulled up and I’m going to drop in. And the first thing that we’re going to do is create a couple of, um, channel configurations. So the first one that we’ll have to make is for the actual inbox. And so here we’ll just go click into channels, then click into create new ones. Let’s just do demo. And here we will create, um, inbox or select inbox. And then we’ll select for this purpose today, we’ll do a web inbox and one for ISO as well, or obviously you can do Android, but today we’re just going to focus on those two. So the first thing that you’re going to want to do is enter in, um, the specific URLs. And so here I’m doing everything locally. Um, so I have a local host set up for the page URL for the web, and then also I have the location on the page. And so that specifically calls out, um, what surface, um, this inbox is going to hold. And then next I’ll set up the ISO side of things as well. So I have, it is standard channel configuration workflow here just for the inbox set up.
Yep, absolutely. Yeah. And so none of this should be anything new if you’ve previously had other channels set up and things like that. Now select inbox. And then once that’s in, I’ll hit submit.
And the next thing that we’ll want to do is create a separate channel configuration for the content card that you’re going to be producing just because you’ll be, you’ll have to target, um, that content card to go to, um, that new surface that you created as well as inbox. So let’s just do perfect. And then now we’ll go and create the content card section. Again, this is going to be pretty similar to what we just did as well. So selecting kind of the page, which is going to be the same local host that I’m using. And then the ISO side is going to be on the location is going to be inbox. And the preview was this one that I’ve done previously. And so it’s great that you can set both up at the same time, iOS and the web. That’s a really helpful. It’s up the channel. Yeah. Cutting down any clicks as possible. And so, yeah, that is nice for sure. All right. So the next thing that we’re going to do is, um, I’m going to jump back into the campaigns and now we’re going to create a specific inbox. So, um, the container essentially, um, we’ll give it a quick name. One second.
Now we will go to the action section and here we will select, create the inbox action.
And then we are going to select that specific configuration that we just created previously. Um, now we’ll jump into the content section. And so this is, um, this layout should feel pretty familiar. I’m going to just kind of reduce this a little bit to kind of give everyone an overall flow. Um, but, uh, we kind of have a form-based, um, authoring construct here where in the center you can see a preview and on the right, you can see the different options that we have kind of built out for you to be out of the box. And so the first option that you have is obviously you can, um, give the inbox label. And so right here, it’ll just be that inbox that I’m going to, um, we have a couple out of the box, um, uh, layouts. So we have either the horizontal or the carousel kind of style, horizontal or vertical style, um, inboxes. And then next you can go to capacity, which essentially defines how many cards you can show at a time, because obviously you can publish as many content cards as you want, but you only want 10 cards to show, you can kind of limit that as well. And then next we have settings around read status. And so, currently read status is available like on the individual device. And so if you like to use that to kind of track and allow the user to see if they’ve actually read that new message or not, um, you can enable it here. You can change the actual individual icon that is used to kind of identify what that is. Um, you can use, you know, one for light mode, one for dark mode, and then we also have some background colors, um, if you want to do it that specific way, and then also options around the specific placement. And then finally, um, I like to up here, you have the option to kind of click through and see the different previews. And right here, I’m going to click the empty state preview. And so here you can actually define, um, what is going to be shown in the inbox if you don’t have any messages published to that inbox, because the inbox actually stays persistent as well. So let’s drop that in and we will drop in a specific image. Let’s do a separate one for the dark image URL, just because some people might think that looks better dark mode. Oops. And so, yeah, you can see it up over back and forth, um, that type of thing. And so from there, once you finish kind of authoring, now you can jump into the audience, um, where by default it’s going to be all visitors, um, et cetera. And we’re just going to kind of get into the video, and if you’re not familiar, if you’re used to how campaigns works in AGO. But then finally, I’m just going to do a review to activate and publish. Once it goes through, it always takes a second. Oops. My environment is closed, but no worries. So, yeah, once again, that was kind of the quick and dirty way to create the inbox. And so now I’m going to create the content card that’s associated, um, that’s going to be going into there. And so hopefully you’ve all been able to use the content card channel before, but again, these steps are all pretty similar, but there was one update that you’ll be seeing. So if you select create new name, you’re going to go through, let’s just do, basically those titles are related, right? Don, the, the, what you did now was create the container and now you’re actually creating the content, right? Yes. Yes. And so it’s kind of that, um, analogy of like a Bolton board, right? So the Bolton board is a physical holding spot of the different messages where, you know, um, you can place what you want there, but the Bolton board defines, you know, what order and how you see things where the individual messages are the actual content cards that can be stuck onto that Bolton board that can be reviewed in future states. So, yeah. And so basically, sorry, one more question. So, um, basically for the content cards, um, I could put that, especially if it’s transactional, I could put it into a journey very nicely thinking of the bigger use case that we have here, where we say, Hey, if your team wins, we’re gonna, we’re gonna send you a message telling you, uh, congratulations. And by the way, here’s a whatever, 20% off voucher at hungry pizza. So you could do that within a journey.
Yep, absolutely. That’s a really good call out where, um, one thing that I kind of want to add on that, where for the inbox side of things, you’re only going to be using campaigns to create it just because it’s going to be a pre-created thing that you’re going to want things published. So just to have a single individual campaign for that inbox. Um, but yeah, absolutely for the content card aside, you can obviously use a lot of journeys to make a really elaborate kind of use case that triggers off specific things in that nature. So all the things that would still be applicable on the journey side of things. Okay. Yeah. Good question. But, uh, yeah, I’ll kind of jump back where, so once we went into the action section for content cards, so again, you’ll go to actions and then you’ll want to select specific configurations. So this is what’s kind of new that you’ll be seeing where the first option that you’ll see is obviously that content card channel configuration that you wanted. And so this is the one that you created that we created previously that targets that, um, specific inbox surface. And then to be able to link things together, um, there’s a second option where you’re going to be selecting the specific inbox configuration. Again, these are those two configurations that we previously built. So this kind of links everything together. And then for the sake of today’s use case, um, I’m going to actually have an additional show message if rule set up in place. So essentially once that pizza has been delivered, um, we want the message to be shown where essentially our audience is going to be everyone that has the app, but based on the specific criteria of, of having a pizza delivered, um, it’s going to be, um, that’s when this discount will be shown or not. And so here I’ll just do, um, create a specific track action that events, um, and then I’ll make kind of an equal. So let’s just do pizza. Um, business rules within the content cards settings. Absolutely. Yeah. So these are the specific, I’m gonna call them business rules, but just additional, I guess, rules that, um, either show the message or obviously we have the additional ones where you can make the message dismissed if an action is taken, such as like, if you have a click or something like that, or if you want to disqualify that message, meaning, um, and this might be actually a perfect good use case where, or, you know, maybe not, but if they actually use that specific discount and you want to add in a disqualifying message, that’ll read, um, basically if they transacted it and they’re not using that discount that they will never qualify to see that again. And so, um, really powerful kind of tools that we included as a rules engine for this piece, um, kind of similar to, uh, in app messaging rules, but this kind of allows you to provide a show if rule, then a dis-message if or a rule, and then a disqualifying message if rule as well. And so really good.
Well, let’s get in and quickly create, um, kind of add some content. Um, I’m not going to go into too much detail because again, hopefully you guys have done this before, but let’s just throw in a quick title. Um, and we’re going to want to use actually the large image template that we have available. Let’s drop in some body content, and then let’s just drop in an image into the URL. Perfect. And one additional thing that I’m going to provide, right? One additional piece, I’m going to actually add in a key value pair because, um, not in this demo I’m going to show you, but I actually, um, created an in-app message that would fire as well when clicking on it. So let’s just do an app trigger really quick. Um, and let’s do, and so this is just kind of the key value section that allows you to pass additional metadata that you can be, um, that you can also trigger additional things off of. And so in this case, I’m just going to put one because I want an in-app message to also fire from it as well. And so from there, uh, audience, like I mentioned before, is just going to be all visitors and then the schedule is just going to be, um, live right when we publish it. So again, I’m going to review to activate and then it’s going to probably show the same error because this is again that demo environment and everything’s full. But, um, generally speaking, um, I kind of prep for it because just like what Robert felt, something, it’s a hundred percent that will always go wrong. Um, but, um, yeah, so let me actually show you, um, kind of live what everything looks like really quick so far on kind of an in-app base. And so I’m going to show my screen really quick and let me show you what that looks like with specific inbox in place and the message. This is our app and we’ll go to the inbox, which is down on the right. And this is essentially, um, the message that we previously created. And so you’ll see that kind of come in place. Um, and you can see the yellow dot on the right, which is our read status. Um, I’ll click it. And because I set up that trigger, I have an additional in-app message that fires, like gives that specific, uh, discount code. So yeah, so I’m going to go ahead and there’s a quick representation of what that’ll look like. And so, um, that’ll be kind of the first section for the inbox piece. Um, yeah. Any questions, Sandra or Brent or Robert, anything like that? No, honestly, I think it’s pretty clear. Um, also how, you know, how in-app and, and how this, this message inbox works together. I think that’s, uh, to me, it’s, it’s pretty clear that you can link them and you can trigger. My understanding is what you just said, set up as well is when this, uh, this message is triggered to the inbox, you also at the same time are triggering an in-app message to appear. So you not only have it in the inbox, but you’re, you’re automatically triggering the in-app message. So when I open up my, my phone, I’ll see that I have a message that I can send to the inbox and, um, if I close it, I can then go into my inbox and, uh, and retrieve it basically. Yeah, absolutely. Where, you know, um, after spending a lot of time, like working with different customers and things there’s, there’s obviously a lot of use cases where the content card can really only show so much information. And so utilizing another channel, like our in-app channel to be actually be able to create, you know, another kind of modal overlay message that allows, um, an individual to scroll, like you saw, um, on this in-app message, it gives you the full kind of detail and context that you, you know, can’t see on the individual contact card just because it’s restricted to just space, um, that type of thing. And so, you know, um, just kind of different use cases and how you can utilize the different channels and, and take advantage of what’s available today. I can also combine that with push, right. That I could send a push message and then, you know, you click on it and maybe that brings you into the inbox. Yep. That is perfect. That is the perfect segue. It’s like we had that planned Sandra. Um, but, uh, yeah, so to kind of continue on with our use case, um, we’re going to actually trigger, um, a push notification that’s going to be sent out. And obviously, um, I want to highlight the website, but, um, pretty easy to do, um, the, the mobile side at the same time as well. And so jumping back into campaigns, um, the first thing that we’re going to want to do, um, after everything set up is, is create a new, Oh, my apologies, go back into channels and we’re going to create a new channel configuration specifically for the website of things. Um, well, and for the mobile, I guess so. So let’s just kind of create a quick channel config and there we want to do, um, push note or push as the options. And here you can create, um, a specific, a specific channel configuration that covers all the three platforms that are available. And again, um, for today’s purposes, um, I’m just going to be doing iOS and web and, um, prior to actually selecting that piece, um, you’re going to want to create and set up your specific push credentials where iOS, um, you’ll, you’ll have, um, the specific iOS credentials and the website, you’ll be using a VIP ID as those credentials as well. And just to kind of quickly highlight where that is. Um, so if we just kind of go back to channels and we’ll go down to push settings in this additional rail that pops up and there, this is where you can kind of create those specific push credentials for, for whatever surface that you’d like. But, um, I actually have a couple pre-created and so I’m just going to jump back into that channel that I had.
Perfect. Oops.
Let’s start from scratch.
All right. Perfect. Again, I’m going to select, um, push we’ll do iOS and web. And once you have your push configurations set up, um, everything should show up in these dropdown lists, um, already. And so perfect. Okay. We’ll just hit submit and that will be created. And so now we can jump back into campaigns, um, create a new campaign. Again, this will be a scheduled marketing campaign. I’ll give it a unique name. Perfect. And then actions, I’ll go back and select, um, push notifications and select that specific, um, channel configuration that we just set. And then I will jump straight into content. And so really this should be pretty familiar with, the push channel. Um, just like, um, if you’ve previously used it, but now there’s just an additional tab, um, where you have iOS and also web where, um, you can define the specific message as well. And so, um, let’s go in and send it to web. Yep, exactly. Exactly. So let me get my, let’s just get some texts. So, um, this is an example. I’ll just kind of quickly throw some things in together really quick. Um, nothing fancy, just some quick message, just as an example. And then, um, we’ll kind of go through and just add in a quick URL really quick as an example. I don’t know if the AI assistant in AJO was helpful in determining the, um, what time is it copy with the watch pizza, but I like it. Funny. I, I, I’d like that too. Yeah. And so one thing that you go through, um, so you can see that you can click through the different options and see the different available options for the specific platforms, cause they’re all a little unique, but I’m obviously kind of the title and body and I go through across, then you obviously add that specific URL as well. But there, um, here you’ll need to select for push notifications, a specific audience. And so let’s just select one.
Let’s just do one for the time being. And then, um, you can obviously again, go into schedule and specify when the specific messages can be sent out to the users. And so you can do a campaign start time. You can do triggers, um, all the additional rules that are all previously available. And so nothing new there, but then finally, I’m going to do try to publish this, but this is going to throw the specific error again, but good thing. I actually have, um, kind of a prerecorded one set up. And so because this is a web demo, I’m going to pull up the specific hungry webpage. Um, and then we are going to jump down to the inbox. So just like, um, previously on the app. So here’s those kind of configured messages where this is the specific message that we previously made, um, on the mobile side. Um, this is here it is on the website. Um, there is that message that also fires. Um, but, um, because this is push, I’m going to actually do a manual push on this to kind of make it so we can actually see what’s going on. And so once a push message is fired, um, you’ll go through the traditional prompting as well that you’re pretty used to on the mobile side, but, um, your browser will be able to, um, we’ll prompt that specific permission side, where you would click allow, um, from that piece. And then you should be able to see the message come through. So let’s just do it one more time. You see it come through and I’m not sure if you can see it on my screen, but yeah. And so yeah. And then in my notification section, which I think is cut off on the screen or no, you can see it right down here. Um, it kind of comes through in the notification section as well. And so, yeah, for the, I mean, for the, for the phone, it’s clear. I don’t have to be in the app to receive a push notification, but how does that work with web? I do have to be on the website, don’t I, or. So technically, no. So these are browser notifications. So, um, the four browsers that this works for, um, is Chrome, Safari, Edge, and Firefox. And so essentially, um, it’s going to be the browser that will push the notification, um, to your specific, um, I guess desktop in a sense where those are, um, those are desktop notifications because the browser is sending it. You saw the ones that I pulled over on the side. That’s the specific one where, um, if you have the website open, you would see it differently, um, come through at the top type of thing. Okay. So hopefully that, so we’re almost at the top of the hour. Um, Robert, I have one more question. I don’t think we’ll have time to, to, uh, go into, uh, um, the demo. I’m sure you probably sorted it by now, but, uh, actually have two questions. Um, one is can I have multiple live activities on the same device? Like I’m still watching the game and then I want to follow my pizza delivery. Yeah. You can, you can have multiple apps. Uh, I think it’s up to five, uh, uh, simultaneous, uh, live activities on, uh, on the device at the same time, you just need to toggle to them on the dynamic island. You’ll see probably only one, but on the lock screen, you can see all of them. And what about right now, it’s only, it only supports iOS, right? So is Android, when is that planned? So Android it’s a plan for the second half of the year. Uh, we’ll start working on it and, uh, we want to have a similar, uh, capability for Android, uh, so we can offer, uh, things cross platform. Okay. We have two minutes, Don, you brought us an unrelated cool tip. Let’s do it. So, um, I have, um, a six year old son and twin three-year-old daughters. So we get a lot of random invites for, for, um, friends birthday parties and that is a super mess. And so when it was time for my son’s birthday, we actually kind of set up this rule and we stole it from somewhere, but essentially what we added to the invite is like, Hey, we don’t need a gift if you want to bring one, but if you do, um, we actually attached kind of a Venmo link, um, that they can use to send, um, the same amount of money that his age is. So he, he turned six. And so essentially you can send $6 if you would like, um, to him as a present rather than actually getting one, just because, um, for us, because we go to so many of these birthday parties, it’s just nice to not have to run out, buy a present. And then ultimately that present just become crap in your home because there’s so much stuff. And so I think ideally this is hopefully helpful for the parent and also for both sets of parents. And it just kind of streamlines things just because I’m in that stage where it seems like every other weekend, there’s some kind of kid’s birthday party that we don’t have a gift yet for. And so, um, that was just kind of something that we set up in place that I think, um, some of our friends have really enjoyed and we’ve enjoyed when someone else has done it as well too. But yeah, kind of random facts. That’s awesome. I wish I would have had that idea. My parents, you know, they don’t have birthday parties anymore, but Brent, something for you to take on. Yeah, Don, I’m stealing that. I think it teaches them financial, you know, uh, investments at an early age too. Yeah, absolutely. And so yeah, they can take that money and actually buy something that they want, you know, rather than having a lot of little things that adds clutter for sure. So we’re at the top of the hour. We covered a lot. Thank you so much, um, for taking the time with us today. It was a pleasure having you on board. Also, thank you to our producer in the background, Doug Moore, who, um, made sure that, uh, the show runs smoothly and who also gives, gives us the applause and thank you to our guests for joining us. Uh, hope to see you soon. If you want to rewatch the show, it will be available soon on Experience League and, um, we’ll see you next time.
Bye. Thanks guys. See you guys.
Continue the discussion about the show in the Experience League Community Post.
We covered:
-
iOS Live Activities: Deliver real-time updates on the iPhone Lock Screen and Dynamic Island for high-value moments like order tracking, flight status, and live scores - keeping customers continuously informed as events unfold.
-
Web Push Notifications: Expand engagement beyond mobile apps by reaching customers directly in their web browser, directly engaging visitors even when websites are not actively open using the same user workflows as mobile push in Journey Optimizer
-
Message Inbox: Create a persistent, branded inbox where customers can revisit important messages, personalized content, and offers - reducing missed notifications while improving relevance and user experience.