<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1703665079923990&amp;ev=PageView&amp;noscript=1">
Skip to main content

Messaging for In-App and Web (MIAW) is a powerful new Salesforce product with many moving parts and setup dependencies across the platform. While Salesforce documentation provides the basics, this step-by-step guide offers key tips, configuration insights, and routing strategies—including Omni-Channel and skills-based flows to help admins get MIAW up and running faster and more smoothly.

 

Why Move to MIAW?

Salesforce is retiring all legacy chat products, including Live Agent, which has long enabled real-time support conversations between customers and service reps. Live Agent will reach end-of-life on February 14, 2026. Its successor—Messaging for In-App and Web (MIAW)—builds on the foundational concepts of Live Agent but introduces powerful enhancements like persistent conversation history, Agentforce compatibility, and support for a pre-chat Application Programming Interface (API).

 

Before You Start: Prerequisites

Even when configuring Messaging for In-App and Web (MIAW) as close to out-of-the-box as possible, there are still many critical steps to follow, and understanding the purpose and order of these steps is key to avoiding confusion.

Before diving in, make sure the following prerequisites are in place:

  • Messaging for In-App & Web licenses
  • Omni-Channel enabled (Setup → Omni-Channel Settings)
  • Routing Configurations and Queues created
  • Agents assigned with correct Permission Sets, Presence Configurations, and optionally, Skills
  • Lightning Console App with the Omni-Channel Utility added
  • A test webpage or Experience Cloud site is ready

In addition to licensing, admins should be comfortable working with Flows, as these are essential for building dynamic, intelligent routing. To make MIAW available to customers, you’ll either embed the messaging component on a public webpage or add it to a Salesforce Experience Cloud page.

 

Step-by-Step: Setting Up MIAW

This is not intended to be all-inclusive of the setup steps, but calling out some time savers by executing in this order.

1. Create Queues

Start by setting up the necessary Salesforce queues, such as:

  • Assignment Queues (e.g., Tier 1 Support, Billing)
  • Fallback Queue for overflow or after-hours coverage
  • Any other queues based on your team structure

These are standard Salesforce queues, but be sure to include relevant objects like Messaging Session, Case, and any others involved in your messaging workflow.

 
2. Set Up Service Channels

Navigate to:

  • Setup → Feature Settings → Service → Omni-Channel → Service Channels

Create a Service Channel for the Messaging Session object. When configuring Capacity Settings, it’s recommended to use the Status-Based model—this is the most commonly used approach and is better supported in Salesforce documentation.

Service Channels

 

3. Routing Configurations

Go to:

  • Setup → Feature Settings → Service → Omni-Channel → Routing Configurations

When creating your Routing Configuration, be sure to leave the “Use with Skills-Based Routing Rules” checkbox unchecked if you plan to use an Omni-Channel Flow.

Using an Omni-Flow gives you greater flexibility to apply advanced logic, such as checking agent availability, dynamically assigning skills, or re-routing messages based on conditions.

Routing Configurations

 

4. Messaging Settings

Navigate to:

  • Setup → Feature Settings → Service → Messaging → Messaging Settings
  • Custom Parameters:
    • Define any values you want to capture on the pre-chat form—these can be visible fields (e.g., name, issue type) or hidden fields (e.g., page source, campaign ID).
  • Parameter Mappings:
    • For each custom parameter, map it to a corresponding Flow variable name. This allows the data to be passed into your Omni-Channel Flow for routing logic, case creation, or other processing steps.

Messaging Settings

5. Embedded Service Deployment

 

This is where you configure the look, feel, and behavior of your messaging experience. Go to:

  • Setup → Embedded Service Deployments

Your deployment will include settings for:

  • Settings:
    • Assign appropriate Business Hours—these impact agent availability and when users see the chat widget as online or offline.
  • Branding:
    • Customize the chat appearance with your company’s colors, fonts, and logos to create a cohesive user experience.
  • Pre-Chat Form:
    • Add and arrange custom fields (from your Messaging parameters) to capture user input before the conversation begins.
  • Custom Labels:
    • Override default variable names with user-friendly labels to improve form clarity.
    • For example,  instead of showing a field named orderNumber, use a label like “Order Number” so it’s more intuitive for users.

Tip: For dropdown fields, API values cannot include spaces (e.g., Billing_Inquiry). However, Custom Labels allow you to present clean, grammatically correct display values like "Billing Inquiry".

Be sure to publish your Embedded Service Deployment after making changes and embed the component on your website or Experience Cloud page to activate it.

Custom Labels

  • Code Snippet:
    • For non-Salesforce websites, use the provided JavaScript code snippet to embed the messaging widget. Place this code in your site's HTML—typically just before the closing </body> tag.
  • Experience Cloud Sites:
    • If using Salesforce Experience Cloud, be sure to add the Messaging component to any pages where the chat experience should be available. Use Experience Builder to drag and drop the component onto your desired page layout.

⚠️ Don't Forget to Publish!

After making any changes, you must publish the Embedded Service Deployment to make them live.

Changes won’t appear on your site or Experience Cloud page until publishing is complete.

Embedded Messaging

For internal use of MIAW, add the Omni-Channel utility item to the appropriate app or in ‘App Options’ select the ‘Use Omni-Channel sidebar’ option.

 
6. Build an Omni-Channel Flow for Routing

An Omni-Channel Flow allows you to intelligently route Messaging Sessions based on custom logic, such as agent availability, skills, or customer responses. This flow will automatically trigger AFTER the pre-chat form is submitted, and a Messaging Session (or Case, if configured) is created.

Distinguish New VS. Existing Sessions

Incorporate logic to identify whether the user is starting a new conversation or following up on an existing conversation.

Pro Tip: Add a pre-chat field asking, “Do you have an existing Case Number?”. If provided, search for that Case and link the new message to it. Otherwise, proceed with creating a new Case or interaction.

Routing Logic Structure

After initial processing, use the following pattern to handle skills-based routing:

Routing Logic Structure

Add Skill Requirement Element

  • This element serves as a dynamic placeholder for the skill set based on pre-chat inputs or business logic.

Check Availability for Routing Element

  • Use the “Check Availability for Routing” element to determine if any agents are currently available who match the required skills.
    • Reference the skill collection created by the Add Skill Requirement.
    • Do not use static skill lists or run routing rules directly—these methods are unreliable in this use case.

Decision Element

  • Use the results of the ‘Check Availability for Routing’ element in a decision element to either route to an agent or to send the inquiry to a general queue.

 

Common Issues & FAQs

1. Skill Lookup Bug in Omni-Channel Flows

There is a known issue when using the “Add Skill Requirement” element in a Flow. When attempting to select a skill in the “Search Skill” field, the dropdown list may appear blank, even if skills are properly configured.

Add Skill Requirement

WorkaroundLook for a subtle blue line under the field—it indicates that the list has technically opened. Try one of the following:

  • Press the arrow keys to scroll through the list
  • Click outside the field and re-enter
  • Press Enter to trigger the skill search

This UI glitch can be confusing, but it won’t block functionality once the skill is properly selected.

2. Can I Add Conditional Logic to the Pre-Chat Form?

Unfortunately, no—Salesforce’s default pre-chat form does not support conditional visibility or dynamic logic between questions.

If you need a more interactive or “wizard” experience, you’ll need to:

  • Build a custom Lightning Web Component (LWC) to replace the default form
  • Handle form branching and conditional logic manually within the component

The out-of-the-box pre-chat form is static by design and best suited for simple field collection.

 

What's Next for MIAW?

While MIAW is a promising and powerful solution, the product still has room to mature. Routing configurations can be more streamlined, and the setup spans multiple areas that could benefit from consolidation. The manager dashboard, while helpful, lacks the level of interactivity many admins would expect. That said, Salesforce is actively iterating on MIAW, and future releases are poised to make it an even more intuitive and impactful tool for modern support teams.

 

Final Thoughts

There are certainly a few “gotchas” when configuring MIAW for the first time, but don’t let that deter you. With thoughtful planning and a step-by-step approach, you can unlock a highly scalable and flexible messaging solution.

Even with solid documentation, MIAW requires patience and testing. Our recommendation? Tackle setup in phases—validate each layer (routing, permissions, pre-chat, flows) incrementally to minimize confusion and maximize confidence.

Once in place, MIAW can elevate your customer engagement strategy across channels, bringing chat, mobile, and web conversations into a unified, intelligent support experience.

 

Appendix A: Entity Relationship Diagram (ERD)

Entity Relationship Diagram

 

Written by Jennie Kennedy (Solution Architect Lead) and Dennis Scott (Senior Solution Consultant)



New call-to-action