Loading
Salesforce now sends email only from verified domains. Read More
Experience Cloud
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Migrate Peer-to-Peer Conversations to Your Experience Cloud Site

          Migrate Peer-to-Peer Conversations to Your Experience Cloud Site

          Migrating peer-to-peer conversations from other platforms can be a part of creating an Experience Cloud site. Understand the steps to take before migrating and how to use Data Loader to migrate conversations.

          Required Editions

          Available in: both Salesforce Classic and Lightning Experience
          Available in: Enterprise, Performance, Unlimited, and Developer Editions

          Before you can load your data, perform these steps.

          • Create your Experience Cloud site.
          • Create the profiles to assign to your internal and external users, as applicable.
          • Assign profiles to your site (Setup | All Sites | Workspaces [for the site you’re working on] | Administration | Members).
          • Create an Account and Contact (for B2B sites) or a Person Account (for B2C sites) before creating an external user. Internal users (employees of your company) aren’t linked to accounts and contacts. Your internal users can exist in Salesforce, so you don’t need to create them as users.
          • Put together a plan for how to migrate your data. Identify how to transform the data from your current format into the format that Salesforce uses. We recommend that you do a trial run of your data load into a full sandbox before migrating in production. Create a guide to refer to when you do the load into production.
          • As with all data migrations, do a test load of a few records first. Ensure the data looks as you expect, and then proceed with the full load. This process is especially important when loading conversations to ensure that they render the way you expect them to.
          Important
          Important
          • When you create site users during the data load, don’t send a welcome email. You can prevent this action by taking your site offline or by deactivating the welcome email option.
          • To prevent users from receiving Chatter email alerts during the data load, turn off emails for all your site members. Email notification preferences are site-specific and are stored in the NetworkMember object. Query NetworkMember (SELECT Id,NetworkId,PreferencesDisableAllFeedsEmail FROM NetworkMember WHERE NetworkId = 'ENTER YOUR 18-DIGIT SITE ID HERE') and set the PreferencesDisableAllFeedsEmail field for all users in the community to TRUE. Be sure to set it back to FALSE after the entire data load is complete so that site members get email notifications after the site is live. We advise not globally disabling all system emails from your sandbox when doing a test load. Disabling all system emails when doing the data load in production prevents other departments that also use your Salesforce instance from sending email.

          There are many dependencies between objects when migrating posts, so it’s important to pay attention to the order in which the data is loaded. Here is our recommended order and the key required fields to populate to be successful.

          1. Load Accounts
            Ensure that the Account Owner for each account has a role assigned to their user. If you aren't specifying an Account Owner, ensure that the user doing the data load has a role assigned to them. Users without an assigned role can't load users.
            • For business accounts—Account Name
            • For person accounts—First Name; Last Name
          2. Load Contacts
            If you're using person accounts, upload contacts as they're automatically created when you load their information to the Accounts object. At a minimum, load these fields:
            • AccountId
            • First Name
            • Last Name
          3. Load Users
            Required fields:
            • ContactId: Leave blank if creating a user in your Salesforce org who works for your organization. Only external users must be linked to a contact.
            • FirstName
            • LastName
            • Email
            • Username: The username in the format of an email address that members use to log in and isn't visible to anyone else in the site.
            • Alias: The alias doesn't appear anywhere in the site, but it's a globally required field in Salesforce.
            • Nickname: If you choose to use a nickname instead of first and last names, the nickname appears to users in the site.
            • ProfileId
            • LanguageLocaleKey: The user's language and locale.
            • LocaleSidKey: The two-digit ISO language code. For example, English (United States) is en_US.
            • TimeZoneId
            • EmailEncodingKey: The email encoding for the user, such as ISO-8859-1 or UTF-8.
          4. Load Collaboration Groups
            Required Field Description
            GroupName  
            OwnerId The user ID of the person who owns the group.
            CollaborationType

            Controls the visibility of the group:

            • Public: Anyone can see and post updates. Anyone can join a public group.
            • Private: Only members can see the group feed and post updates. Non-members can see only the group name and a few other details in list views, search, and on the group page. The group's owner or managers add members who request to join the group.
            • Unlisted: Only members and users with the Manage Unlisted Groups permission can see the group and post updates. Other users can't access the group or see it in lists, search, or feeds.
          5. Load Collaboration Group Members
            Required fields:
            • GroupId: The ID of the group
            • CollaborationRole: If the user is a Standard or Admin user.
            • MemberId: The user ID of the member.
          6. Load Topics
            Required fields:
            • Name
            • Description
            • NetworkId: The 18-digit Experience Cloud site ID.
          7. Load Content Documents
            For information about how to load files, see Upload Content with the Data Loader. You can leave the ParentId (for example, Library) field blank because files attached to Chatter records typically aren't stored in Libraries.
          8. Load Feed Items
            Required Field Description
            Body The main content of your post. Only specific HTML tags are supported, so make sure to clean your data before attempting to upload.
            Type

            The kind of post made. Common options include:

            • AdvancedTextPost: For announcements in groups
            • ContentPost: A post with an attached file
            • QuestionPost: Used for posting a question to a topic or group
            • PollPost: Used if the post includes a poll in groups
            • LinkPost: A post with an attached URL
            IsRichText
            • True: Use when there's HTML markup
            • False: Use if plain text
            NetworkScope The 18-digit site ID. To get the ID, query the Network object in Data Loader using: SELECT Id,Name FROM Network
            ParentId For group posts, enter the CollaborationGroup ID. For topic posts, enter the ID of the user who created the post.
            Visibility AllUsers
            Title If using type QuestionPost, enter the question title here.
          9. Load Feed Comments
            When adding feed comments, it's crucial to add attachments at the time of creation. You can't edit a comment and add an attachment to it.
            Required Field Description
            FeedItemId The parent post that the comment is related to.
            CommentBody The content in the post.
            ThreadParentId Leave empty if a comment is the first level down of comment on a post. If it is below an existing comment, enter the FeedItemId from its parent comment.
            CommentType
            • ContentComment: A comment that includes an attachment.
            • TextComment: A direct text entry on a comment.
            RelatedRecordId ID of the ContentVersion object associated with a ContentComment. This field is null for all comments except ContentComment.
          10. Load Feed Likes
            Required fields:
            • FeedItemId: If the like is related to a post, enter the FeedItemId from the post here.
            • FeedEntityId: If the like is related to a comment, enter the FeedCommentId from the comment here.
          11. Load Feed Attachments
            Required Field Description
            FeedEntityId The ID of the associated post (FeedItem) that contains this attachment.
            RecordId The ID of the record that this feed attachment contains. For inline images, RecordId is a ContentDocument ID. For content attachments, RecordId is a ContentVersion ID.
            Title The title of this feed attachment. When Type is Link, the Title value is the label for the attachment link. Otherwise, the Title value isn't used.
            Type

            The type of this feed attachment. Valid values are:

            • Content: A content attachment.
            • FeedEntity: A feed entity, such as a shared post. Available in API version 39 and later in Lightning Experience.
            • InlineImage: An inline image. The system creates an inline image attachment when an image is added to the body of the associated FeedItem. You can't add an inline image directly by using FeedAttachment.
            • Link
            Value Enter the URL here if the feed attachment is Type = Link. Otherwise, leave blank.
          12. Load Topic Assignments
            Required fields:
            • EntityId: The ID of the post (such as FeedItem) that corresponds to the topic.
            • TopicId: The ID of the topic to assign to the feed.
          13. Load Entity Subscriptions
            Required fields:
            • ParentId: The ID of the record being followed. For example, it could be the ID of a user or a topic being followed.
            • SubscriberId: The ID of the user who is following the record.
            • NetworkId: The 18-digit site ID.
          14. Update Network Members
            Member records were already created. However, if you want to migrate user email preferences or reputation points earned, update these records as a final step of your migration.

          Other Considerations

          • External IDs — You can’t add external ID fields to most of the objects, so keep your success files from each data load to track the relationship between your source data and Salesforce. You can then use VLOOKUPS to populate the Salesforce ID from the parent record created into the next file load.
          • Threaded conversations — If your current platform uses threaded conversations, load FeedComments in several batches. For example, group all top-level comments into one file and load them. Then group all the posts beneath those comments into the next data load, and so on. Only threaded conversations that are three levels deep are supported.
          • Inactive users — If you’ve had your legacy forum for some time, chances are that you have some users who are no longer active. Migrate them as active users so that you can bring over their posts and comments, and then deactivate their user record. If you’re using member-based licenses and are migrating more users than you have licenses, before starting your data load, contact your Account Executive to discuss which options are available.
          • Formatting posts — The trickiest part of this load is getting your posts into the correct format. If you can’t migrate your posts exactly the way you want with these instructions, see the Connect REST API Developer Guide for how a developer could load your posts and comments to the site.
          • Updating Chatter posts to select best answer — If your current forum has the concept of a best answer, update the BestCommentId field on the FeedItem records after loading all your FeedComments. You can’t set this value during the initial FeedItem insert, because the child FeedComment records don’t yet exist.
          • Updating the BestCommentId field — The BestCommentId field can't be updated using Workbench or Dataloader. To update the field, use the QuestionAndAnswers Class via the Connect API.
          • Uploading Chatter profile photos and Chatter polls — This upload must be done via Connect REST API. For more information, see this guide on photos and this guide on polls.
          • What can’t be migrated — For example, you can’t migrate the view count on posts or whether a user has or hasn’t viewed a post.
           
          Loading
          Salesforce Help | Article