Text-based interactions are powerful when running prompts with an agent, but you can get more benefits by upgrading to richer conversations with images, links, and custom components. Since the Spring ’25 release, we now have a new customization option: adaptive response formats. This feature lets agents choose how to best display responses in conversations based on the data that they return. 

In this post, we’ll give you an overview of the agent conversation customization options in Agentforce, and then explore adaptive response formats and how to use them in your applications.

Overview of agent conversation customization options

There are a number of ways to customize the user experience in agent conversations. In a previous post, we presented custom Lightning types that let you add custom Lightning web components in a conversation.

Screenshot of a custom Lightning type displaying weather information in an agent conversation

The new adaptive response formats feature is an interesting option as it does not require front-end development skills. However, this comes at the expense of flexibility when compared to custom Lightning types.

Agentforce features evolve rapidly, so the following information is bound to change over time. As of August 2025, this is a comparison of the different customization options:

Custom Lightning types Adaptive response formats
Deployment target Lightning Experience

Experience Cloud support is being considered as we write this post (forward-looking statement).

Various messaging channels, excluding Experience Cloud sites
Agent type Agentforce Employee Agents Agentforce Service Agents
Implementation Code-based (LWC) Automatic formatting based on the data returned in the agent response
Ability to customize inputs With a custom Lightning web component (editor) With rich choices
Ability to customize outputs With a custom Lightning web component (renderer) With either rich links or rich choices

The two customization options don’t overlap, so you do not need to choose between the two. Your deployment target is what will orient the technology choice.

Now that you’ve seen the big picture, let’s explore how adaptive response formats work.

Exploring adaptive response formats

Adaptive response formats are available in a number of channels, but remember that these do not include Experience Cloud sites. There are currently two adaptive response formats available: rich choice and rich link. The appearance of the response depends on the channel and any customizations you make (e.g. instructions, actions, Apex, etc).

A rich choice response is a list of items that are presented in a carousel, buttons, list selector, or text.

For example, each carousel tile contains a title, a description, a link, and an image. The maximum number of items that can be displayed in the carousel depends on the channel type and how the rich choice response is presented. Depending on the channel and conversation context, clicking a carousel tile will send the tile label in the agent conversation as an input for the agent.

Screenshot of a rich choice showing one of four Coral Cloud experiences

A rich link response is displayed as a link, a media card, or text. The card includes a link with a title, a description, and an image.

Screenshot of a rich link showing a single Coral Cloud experience

Customizing responses

The content of rich links and rich choices can both be returned from Apex actions and flow actions. What matters is the structure of the data that is returned in the agent’s response.

For a rich link, these fields must be returned:

  • linkTitle: A string that serves as the label
  • linkUrl: A string that holds the URL of the link
  • linkImageUrl: A string that holds the URL of the image
  • linkImageMimeType: An optional string that holds the MIME type of the image
  • description: An optional string that holds the text sent immediately before the rich link

For rich choice, a list of elements must be returned with these fields:

  • name: A string that serves as the label
  • imageUrl: A string that holds the URL of the image
  • mimeType: An optional string that holds the MIME type of the image
  • description: An optional string that holds the text sent immediately before the rich choice

MIME type fields are optional for both response types, but we recommend that you provide them for performance reasons.

Now that we’ve covered the data structure of adaptive responses, let’s take a look at some implementation examples.

An Apex invocable action can output the content for a rich choice by returning a list of items like this:

A flow action can return a rich link by returning variables that are marked as available for output:

Screenshot of a flow that has output variables set up for displaying a rich link

You can see complete implementation examples of adaptive responses in our Coral Cloud sample app with the List Experience Types Apex action and the Get Experience Details flow action.

Testing your customizations

You can quickly test adaptive responses from Lightning Experience by using the messaging deployment test page with these instructions:

  1. Make sure that your service agent is active.
  2. From Salesforce Setup, go to Embedded Service Deployments.
  3. Select the deployment that you’ve configured for your service agent.
  4. Click on the Test Messaging tile.
  5. Open an agent conversation by clicking on the chat icon on the lower right of the screen, and interact with your agent.

Conclusion

This concludes our tour of the different options for customizing agent conversations and our deep dive into adaptive response formats. This feature opens the door to a set of rich agentic experiences on various channels. Stay tuned as we add more adaptive response formats and customization options!

Resources

About the author

Philippe Ozil is a Principal Developer Advocate at Salesforce, where he focuses on the Salesforce Platform. He writes technical content and speaks frequently at conferences. He is a full-stack developer and enjoys working with APIs, DevOps, robotics, and VR projects. Follow him on X, LinkedIn, and Bluesky, and check out his GitHub projects.