Send Timely SMS in Adobe Journey Optimizer Using Twilio Programmable Messaging

November 17, 2025
Written by
Reviewed by
Paul Kamp
Twilion

In this post, you’ll learn how to integrate Twilio Programmable Messaging with Adobe Journey Optimizer to deliver personalized, timely SMS notifications within your customer journeys. By combining Twilio’s communications platform with Adobe’s advanced customer journey orchestration, you can engage customers in real time, increase campaign effectiveness, and create a seamless cross-channel experience. And in a second, I’ll show you how!

Prerequisites

Before you begin, make sure you have:

Building the Integration

We’ll create a Twilio messaging workflow that Adobe Journey Optimizer can call as part of a Journey. This involves configuring a Twilio Messaging Service and adding a Custom Action in Adobe Journey Optimizer.

Step 1: Set up your Twilio Messaging Service

A Twilio Messaging Service lets you manage one or more phone numbers and apply sending features around compliance. Here’s how to set one up:

  • Log in to the Twilio Console and navigate to MessagingServices.
  • Click Create Messaging Service.
  • Give your service a descriptive name (e.g., Adobe Journey Optimizer SMS).
  • Choose Transactional as the use case if you’ll be sending notifications, reminders, or updates.
  • Under Sender Pool, click Add Senders and select one or more Twilio phone numbers, toll-free numbers, short codes, or alphanumeric sender IDs.
  • (Optional) Enable features like Sticky Sender (to keep conversations consistent on one number) or Smart Encoding (to avoid delivery issues with special characters).
  • Save your Messaging Service.

Once created, you’ll see a Messaging Service SID (starts with MG). Write this down for later.

Step 2: Prepare Adobe Journey Optimizer Customer Profile

Adobe Journey Optimizer sends messages to profiles stores in its Customer Profiles service.

To update a profile from a pre-existing schema:

  1. Go to Adobe Experience CloudExperience Platform → Workflows → Map CSV to XDM Schema
  2. Select or create your schema (e.g., Owl Shoes Customers)
  3. Upload your CSV file containing customer attributes (including phone number)
  4. Once processed, go to Profiles -> Overview or Profiles -> Details to verify your new profiles
User interface of Adobe Experience Platform showing options to map or create datasets from CSV files.

Here is a sample CSV file you can modify.

Please note, AJO may take up to 24 hours to upload and update profile data into an audience.

Spreadsheet showing customer profiles with details including name, email, phone, and loyalty status.

To check that your profile was added after 24 hours:

  1. Go to Profiles → Browse → Identity Namespace → Email → Search for email you used in sample customer profile

If your profile was added successfully, you should be able to find it!

Interface of Adobe Experience Platform showing profile management options and identity selection.

Step 3: Create Adobe Journey Optimizer Audience

For the purpose of this testing, you can create an audience that includes all the profiles you just uploaded. In a real life scenario, you would create an audience based on a certain criteria, for example: upcoming birthday, Gold members only, people who have abandoned their cart, etc.

To create an audience:

  1. Go to Audiences → Create Audience
Screenshot of Adobe Experience Platform showing the Audience Segmentation Service interface.

Step 4: Create an API credential in AJO for Twilio

Start by opening your Twilio Console in a browser tab. There you will find your Twilio Account SID and Auth Token. You’ll need them in a second, along with the Messaging Service SID you saved earlier.

Then, to allow AJO to send SMS through Twilio:

  1. Go to Adobe Journey Optimizer ChannelsAPI Credentials → Create API Credentials
  2. Enter the following details:
  3. SMS Vendor: Twilio
    1. Name: Any descriptive name (i.e., Twilio SMS)
    2. Account SID: Your Twilio Account SID
    3. Message SID: Your Twilio Messaging Service SID1
    4. Auth Token: Your Twilio Auth Token

The number that will be used within the Messaging Service to actually send the message will be the number in the channel configuration.

Screen showing API credentials setup for Twilio SMS in Adobe Journey Optimizer.

Step 5: Create an SMS channel configuration in AJO

  1. Go to Channels -> Channel Configurations
  2. Click Create Channel Configuration
  3. Select SMS and choose the API credential you created in Step 3
  4. Set the Sender Number to your Twilio number (Alpha Sender ID, Toll-free, 10DLC, or short code)
    Important: Do not select a Messaging Service here as AJO requires a direct number
  5. Set To number to mobile.Phone.number (map your uploaded CSV’s phone number to this attribute)
Interface for configuring Twilio SMS with options for SMS type, sender number, and execution details.
Interface for configuring Twilio SMS with options for SMS type, sender number, and execution details.

Step 6: Orchestrate SMS through AJO Campaigns or Journeys

In this step, we’ll trigger Adobe Journey Optimizer to send a message either through a Campaign or a Journey.

Campaigns

  1. Go to Campaigns -> Create Campaign
  2. Add your audience. (See below for an example audience criteria)
  3. In Actions -> Create Content, choose the SMS channel configuration you created earlier
  4. Activate the campaign

Example Audience Criteria:

  • Any profile with CustomerID populated
  • Any profile on the waitlist
  • Anyone with an upcoming birthday

Journeys

  1. Go to Journeys -> Create Journey
  2. Add your audience and entry criteria
  3. Add an SMS Action and select your SMS channel configuration
Interface showing an automated workflow for sending back in stock notifications using SMS in a customer journey tool.

Okay, perfect! You’ve now gone through all the steps you’ll need to integrate Twilio with AJO. In the next step, I’ll show you how to test your setup (and give some hints on how you might need to debug).

Testing, troubleshooting, or product demonstration

Quick test (end-to-end):

  1. Create a tiny audience of 1–3 internal profiles (use your own number first). Remember, an audience takes 24 hours to refresh - so if you don’t see your audience refresh, please wait!
  2. Launch a Campaign with your SMS channel configuration and a simple message (e.g., Test: {{profile.firstName}}).

Voila! Now, if everything world, you should see a message on your cell phone! You can confirm delivery in Twilio: ConsoleMonitorLogsMessaging (check Message SID, status, to, from).

Monitoring and analytics

Once your integration is running, you can use Twilio Messaging Insights to monitor performance in real time.

From the Twilio Console, navigate to Monitor -> Messaging Insights to use dashboards for:

  • Delivery performance: See sent, delivered, and failed message count
  • Engagement trends: Track message volumes and response rates over time
  • Error diagnosis: Identify carrier or compliance issues

This dashboard helps you quickly detect errors, validate message delivery, and optimize your AJO journeys. Here’s a screenshot of what Messaging Insights will look like once you get it set up:

Twilio dashboard showing programmable messaging logs with various statuses and details.
Twilio dashboard showing programmable messaging logs with various statuses and details.

Conclusion

Congrats! You just connected Adobe Journey Optimizer to Twilio Programmable SMS to trigger timely, personalized texts directly from your customer journeys. You set up a Twilio Messaging Service and a dedicated SMS Channel Configuration in AJO, mapped profile data, and orchestrated sends via Campaigns or Journeys.

More resources

Mellisa Udhayananondh is a Solutions Architect at Twilio, helping enterprise customers build human-centered communication experiences. She’s passionate about making complex technology simple and practical - and about dogs, well-documented APIs, and exploring the trails and coastlines of the Pacific Northwest. She can be reached at mudhayananondh [at] twilio.com