---
schema_version: "1"
id: f01c79e2586d463aef8128c54be10ceff2a7800495c965fc9d0b3ad9aa672a1e
title: ConnectApi.MessageSegment
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/apexref/apex_connectapi_output_msg_seg.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_msg_seg.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 9ed9b7a1aa73a6da3cfbdbb2b9381d3c3b140242bb5d7b5a62b69c9f7e3ab5f8
description: Message segment.
---
# ConnectApi.MessageSegment

Message segment.

This class is abstract.

Superclass of:

- [ConnectApi.ComplexSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_complex_msg_seg.htm "Complex segments of field changes.")
- [ConnectApi.EntityLinkSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_entityLinkSeg.htm "Entity link segment.")
- [ConnectApi.FieldChangeSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_FieldChgMsgSeg.htm "Field change segment.")
- [ConnectApi.FieldChangeNameSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_FieldChgNameMsgSeg.htm "Field change name segment.")
- [ConnectApi.FieldChangeValueSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_FieldChgValueMsgSeg.htm "Field change value segment.")
- [ConnectApi.HashtagSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_hash_msg_seg.htm "Hashtag segment.")
- [ConnectApi.InlineImageSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_inline_image_message_segment.htm "An inline image in the feed body.")
- [ConnectApi.LinkSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_link_link_seg.htm "Link segment.")
- [ConnectApi.MarkupBeginSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_markup_begin_message_segment.htm "The beginning of rich text markup.")
- [ConnectApi.MarkupEndSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_markup_end_message_segment.htm "The end of rich text markup.")
- [ConnectApi.MentionSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_mention_msg_seg.htm "Mention segment.")
- [ConnectApi.MoreChangesSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_moreChgMsgSeg.htm "In feed items with a large number of tracked changes, the message is formatted as: “changed A, B, and made X more changes.” The MoreChangesSegment contains the “X more changes.”")
- [ConnectApi.ResourceLinkSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_resourcelink.htm "Resource link segment.")
- [ConnectApi.TextSegment](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_txtMsgSeg.htm "Text segment.")

Message segments in a feed item are typed as ConnectApi.MessageSegment. Feed item capabilities are typed as ConnectApi.FeedItemCapability. Record fields are typed as ConnectApi.AbstractRecordField. These classes are all abstract and have several concrete subclasses. At runtime you can use instanceof to check the concrete types of these objects and then safely proceed with the corresponding downcast. When you downcast, you must have a default case that handles unknown subclasses.

![Important](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/images/icon_note_important.png)

#### Important

The composition of a feed can change between releases. Write your code to handle instances of unknown subclasses.

<table class="featureTable sort_table" summary="">




          <thead class="thead sorted" align="left">
            <tr>
              <th class="featureTableHeader vertical-align-top " id="d1084468e195">Name</th>

              <th class="featureTableHeader vertical-align-top " id="d1084468e198">Type</th>

              <th class="featureTableHeader vertical-align-top " id="d1084468e201">Description</th>

              <th class="featureTableHeader vertical-align-top " id="d1084468e204">Available Version</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d1084468e195" data-title="Name"><samp class="codeph apex_code">text</samp></td>

              <td class="entry" headers="d1084468e198" data-title="Type">String</td>

              <td class="entry" headers="d1084468e201" data-title="Description">Text-only rendition of this segment. If a
                client encounters an unknown message segment type,
                it can render this value.</td>

              <td class="entry" headers="d1084468e204" data-title="Available Version">28.0</td>

            </tr>

            <tr>
              <td class="entry" headers="d1084468e195" data-title="Name"><samp class="codeph apex_code">type</samp></td>

              <td class="entry" headers="d1084468e198" data-title="Type">
                <samp class="codeph apex_code">ConnectApi.​MessageSegment​Type</samp> Enum
              </td>

              <td class="entry" headers="d1084468e201" data-title="Description">The message segment type. One of these
                values: <ul class="ul bulletList">
                  <li class="li"><samp class="codeph apex_code">EntityLink</samp></li>
                  <li class="li"><samp class="codeph apex_code">FieldChange</samp></li>
                  <li class="li"><samp class="codeph apex_code">FieldChangeName</samp></li>
                  <li class="li"><samp class="codeph apex_code">FieldChangeValue</samp></li>
                  <li class="li"><samp class="codeph apex_code">Hashtag</samp></li>
                  <li class="li"><samp class="codeph apex_code">InlineImage</samp></li>
                  <li class="li"><samp class="codeph apex_code">Link</samp></li>
                  <li class="li"><samp class="codeph apex_code">MarkupBegin</samp></li>
                  <li class="li"><samp class="codeph apex_code">MarkupEnd</samp></li>
                  <li class="li"><samp class="codeph apex_code">Mention</samp></li>
                  <li class="li"><samp class="codeph apex_code">MoreChanges</samp></li>
                  <li class="li"><samp class="codeph apex_code">ResourceLink</samp></li>
                  <li class="li"><samp class="codeph apex_code">Text</samp></li>
                </ul>
              </td>

              <td class="entry" headers="d1084468e204" data-title="Available Version">28.0</td>

            </tr>

          </tbody>

        </table>

#### See Also

- [ConnectApi.AbstractMessageBody](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_connectapi_output_abstractMessageBody.htm "Abstract message body.")