# mulesoft API Experience Hub - Full Documentation --- product: API Experience Hub --- # Accessing an API Portal > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Users can sign up to get access to a portal when the portal administrator enables self-registration. The following is an example portal: The signup process includes the following steps: 1. Enter the URL of the portal in a browser window. 2. Enter your first name, last name, and email address. 3. Click **Sign Up**. All self-registrations are automatically approved. Ensure that the link to the portal is only accessible to trusted parties. 4. From the portal, click **Log in** and enter your username and password. # Advanced Styling with CSS API Experience Hub offers advanced styling functionality with editable community site Cascading Style Sheets (CSS) for API Experience Hub common components. The following sections summarize the available options. For detailed information, refer to [Override Template Elements with Custom CSS](https://developer.salesforce.com/docs/atlas.en-us.communities_dev.meta/communities_dev/communities_dev_customize_css.htm) in the Experience Cloud Developer Guide. ## [](#edit-the-css)Edit the CSS 1. In the **Builder**, click the paintbrush icon to open the **Theme** menu. 2. Click the drop-down arrow of the menu and click **Edit CSS**. 3. Edit the CSS file in the **Edit CSS** dialog box. 4. When you’re finished with your changes, click **Save**. ## [](#example)Example You can use CSS to change the colors of the API Experience Hub Theme: ```css search-bar-container { background: #342b4a!important; } ``` ## [](#css-classes)CSS Classes ### [](#api-card)API Card This component is in the API carousel and API catalog. The API card shows basic information about the asset: name, description, icon, type, and last updated date.
Class Description

.asset-card-container

Main container for asset card.

.asset-card-header-icon

Asset icon container.

.asset-card-type

Asset card type text. For example, HTTP-API, REST-API, or SOAP-API.

.asset-card-name

Asset card name text.

.asset-card-description

Asset card description text.

.asset-card-last-updated

Asset card last updated text.

### [](#api-carousel)API Carousel This component is on the home page. The API Carousel shows the API cards as a carousel with a maximum of five assets displaying at a time.

Class

Description

.assets-carousel-container

Main carousel container.

.assets-carousel-title

Assets carousel title.

.assets-carousel-sub-title

Assets carousel subtitle.

.assets-carousel-view-all-link

View all assets link.

.base-carousel-arrow-button-left

Left carousel button.

.base-carousel-arrow-button-right

Right carousel button.

.base-carousel-dots-container

Container of the bottom navigation dots.

.base-carousel-dot

Navigation dot.

.base-carousel-dot-selected

Selected navigation dot.

### [](#api-catalog)API Catalog This component shows all the assets in the site. You can search assets and filter by asset type.

Class

Description

.assets-catalog-container

Main catalog container. This contains the header with filters and body with asset cards.

.assets-catalog-header-container

Header catalog container. This contains the filters.

.assets-catalog-header-search

Search input container.

.assets-catalog-header-filters-container

Container for asset type filter and clear all button in the right.

.assets-catalog-header-filter-type-container

Container for asset type filter.

.assets-catalog-header-clear-all

Clear all button.

.assets-catalog-body-container

Body container with all the asset cards.

### [](#application-detail)Application Detail This component shows the application information: name, description, application URL, redirect URIs, and grant types.

Class

Description

.application-details-header-name

Application name.

.application-details-header-description-container

Application description.

.application-details-header-application-url-container

Application URL container.

.application-details-header-application-url

Application URL label.

.applications-details-cards

Container for Client Credentials, Redirect URIs, and Grant types cards.

.application-details-card

Card container.

.application-details-card-header-title

Card title.

.application-details-card-content

Card content.

.application-details-card-content-data .label

Client credentials card: Client ID and Client Secret labels.

.application-details-card-content-data .value

Client credentials card: Client ID and Client Secret values.

.application-details-card-uri

Redirect URIs card: application URI.

.application-details-grant-type

Grant type card: application grant type.

### [](#application-listing)Application Listing This component shows the application created by the user. Applications can be filtered by name and description.

Class

Description

.applications-listing-search-container

Application listing search input container.

.applications-listing-table-container

Applications table container.

.applications-listing-table .name-column

Application name table header label.

.applications-listing-table

.description-column

Application description table header label.

.applications-listing-table .credentials-column

Application credentials table header label.

.applications-listing-table-row

Each table element that contains the application row.

.applications-listing-table-row

.name-cell

Application name.

.applications-listing-table-row

.description-cell

Application description.

.applications-listing-table-row

.credentials-icon

View credentials icon.

.applications-listing-table-row

.credentials-label

View credentials label.

.applications-listing-table-row-credentials

Credentials popup container.

.applications-listing-table-row-credentials `

`.credentials-tooltip-title

Client ID and client secret label.

.applications-listing-table-row-credentials `

`.credentials-tooltip-code

Application client ID and secret code.

### [](#asset-documentation-viewer-api-overview)Asset Documentation Viewer (API Overview) (Public component) This component is in the API detail page. It shows pages from an asset. These pages are requested from Exchange.

Class

Description

.asset-documentation-viewer-container

Principal container for the asset documentation viewer.

.asset-documentation-viewer-spinner-container

Spinner container that’s executed while the documentation request gets information since the last time listed in the asset detail header.

.asset-documentation-viewer-spinner-container

.asset-documentation-viewer-spinner

Spinner that’s executed while the documentation request gets information since the last time listed in the asset detail header.

.asset-documentation-viewer-pages-container

Container for asset documentation viewer pages container. This container can be used with or without the navigation bar.

.asset-documentation-viewer-pages-tabs

Navigation bar for showing asset documentation pages.

.asset-documentation-viewer-pages-spinner-container

Spinner container that is executed when the page content is requested from Exchange.

.asset-documentation-viewer-pages-spinner-container

.asset-documentation-viewer-pages-spinner

Spinner that is executed while the page content is requested from Exchange.

.asset-documentation-pages-base-error

Container that displays when request content from Exchange fails.

View c-base-error.

.asset-documentation-viewer-pages-one-page-container

Container that displays when the asset has only one page. In this case, the navigation bar doesn’t display.

.asset-documentation-viewer-markdown

Div element where markdown is rendered.

### [](#asset-detail-header)Asset Detail Header (Public component) This component is on the API detail page. It shows basic information about an asset (logo, name, asset type, information contact, combo box version, status, instances, clients, spec download, and request access button)

Class

Description

.asset-detail-header-container

Principal container for asset detail header.

.asset-detail-header-spinner-container

Spinner container that is executed when page is loaded.

.asset-version-header-index-information-collapsible

Collapsible button for asset information.

.asset-version-header-index-information-icon

.asset-type-{assetType}-background-color

Background color of asset icon. assetType:

rest-api

evented-api

http-api

soap-api

.asset-version-header-index-information-icon

.asset-type-{this.assetType}-border-color

Border color of asset icon. assetType:

rest-api

evented-api

http-api

soap-api

.asset-version-header-index-information-title-container

.asset-version-header-index-information-title

Title of asset.

.asset-detail-header-index-content-version-action-buttons

.asset-detail-header-index-content-version-download-button-button

Download spec button.

.asset-detail-header-index-content-version-action-buttons

.asset-detail-header-index-content-version-download-button-modal

Modal with options that opens when the user clicks Download.

.asset-version-header-index-information-detail

.asset-type

Asset type.

.asset-version-header-index-information-detail

.name

Contact name.

.asset-version-header-index-information-detail

.email-link

Contact email.

.asset-version-header-index-information-description

.description

Description of asset.

.asset-detail-header-index-content-version-main-container

.asset-detail-header-index-content-version-spinner-container

Spinner container that is executed when user changes the version selected.

.asset-detail-header-index-content-version-element-detail

.header

Title for action in content version. Asset Version, Version state, Instances, and Clients. Apply for all elements.

.asset-detail-header-index-content-version-element-detail

.body

Body for action in content version. Asset Version, Version state, Instances, and Clients. Apply for all elements.

.asset-detail-header-index-content-version-element-detail

.status

Show status of an asset.

.asset-detail-header-index-content-version-element-detail

.instances

Number of instances for an asset.

.asset-detail-header-index-content-version-element-detail

.number-contracts

Number of contracts for an asset.

.asset-detail-header-index-content-version-element-detail

.asset-detail-header-index-content-version-select-container

Container to select a version for an asset.

View c-base-title-selector

### [](#base-error)Base Error (Private component) This component is used by other public components as asset detail header or asset documentation viewer to show a message for an error or empty state.

Class

Description

.base-error-container

Main container for component.

.base-error-svg-icon-container

Element that contains main icon.

.base-error-text

Title for an error or empty state message.

.base-error-sub-text

Subtitle for an error or empty state message.

.base-error-request-id

In some errors, it shows the request ID.

.base-error-try-again

In some errors, it shows a button to execute the failed action again.

### [](#request-access)Request Access (Private component) This component is used by other public components as an asset detail header or asset documentation viewer to show a message for an error or empty state.

Class

Description

.request-access-container

Container for the request access button.

.request-access-button

Request access button in the asset detail header.

.request-access-button-label

Label for the request access button.

.request-access-modal-content

Container for request access modal content.

.request-access-modal-footer

Container for request access modal footer.

.request-access-field-label

Label of the request access modal form inputs.

.request-access-field-subtitle

Subtitle of the request access modal form inputs.

.request-access-field-content

Content of the request access modal form inputs.

.request-access-modal-new-application

Container for the new application form.

.request-access-new-application-form-title

Create new application title.

.request-access-input-content.name

New application input name.

.request-access-input-content.description

New application input description.

.request-access-input-content.url

New application URL input.

.request-access-input-content.redirectUri

New application redirect URI input.

.request-access-modal-button

Cancel and request access modal buttons.

.request-access-modal-button.confirm

Request access modal button.

## [](#see-also)See Also - [Previewing and Publishing Your Portal](https://docs.mulesoft.com/api-experience-hub/previewing-and-publishing-your-portal) --- product: API Experience Hub --- # API Experience Hub Lightning Components > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can design the pages of your API Experience Hub portal by adding and configuring Lightning components in the Builder. These Lightning components include both the Lightning components available in all Salesforce Digital Experiences and the API Experience Hub Lightning components available only in API Experience Hub. Each API Experience Hub Lightning component has different configuration options and adds different functionality to the portal. API Experience Hub supports custom components in English only. To add API Experience Hub components: 1. Click the **Components** lightning bolt icon to display the component palette. 2. Drag any component from the component palette to the current page. 3. Click the component on the page to show the component’s configuration options. 4. Edit the values by entering or selecting values in the component property fields. To delete a component, click the delete icon and click **Delete** in the dialog. ## API Console The interactive API Console component shows information about your APIs and their methods. Endpoints are displayed in alphabetical order. Console components include API Console, API Console Documentation, API Console Instances, API Console Specification, and API Console Request Panel. In the Builder, you can add multiple console components to the same page. Changes to a console component are visible in all other console components on that page that display the same API. For example, selecting the Summary tab in an API Console results in Summary tab selection in all API Consoles on the same page that display the same API. The component shows the public API instances and documentation from Anypoint Exchange. Select **Expand endpoints** to show in the API Console. ## Asset Detail Header The Asset Details Header component displays the API header, including icon, name, contact email, and description. The API icon, name, and description shown are set in the API Experience Hub control panel when you add an API version to your community. The contact email is set in Anypoint Exchange. Enter or select these properties to show in the **API details** page: - Record ID - Show API Contact - Show API Clients - Show instance URL - Show categories - Show tags - Show Request access button - Show Download spec button - Show lifecycle state ## Asset Version Shows the API version from Exchange when only one version is visible. ## Version State Shows the API version lifecycle state. - Asset Documentation Viewer The API Documentation Viewer component shows an API’s documentation from Anypoint Exchange. The documentation can have multiple pages, and each page can have multiple sections. ## Assets Carousel The API Carousel component shows a horizontally scrollable set of API cards that displays on the **Home** page. Each card shows an API. You can specify values for these Assets Carousel properties: - Title Title of the carousel. - Subtitle A subtitle that displays after the title of the carousel. - Cards to display The number of API cards to display in the carousel. The carousel can display a minimum of three cards and a maximum of fifteen cards. If the number of cards to display is five and the portal has only three APIs, then the carousel displays three cards instead of five. ### Change the Titles in the API Carousel You can modify the title and subtitle that appear in the API Carousel. You can also show the number of cards in the subtitle by entering the `{numberOfAssets}` variable in the **Subtitle** field. For example, **Latest APIs added {numberOfAssets}**. The following image shows the subtitle as **Latest APIs added 5** because the variable displays the number selected in the **Cards to display** field. ![Image of Asset Carousel Subtitle option](/mulesoft/current/en-us/api-experience-hub/_images/aeh-builder-carousel-subtitle.png) 1. On the **Manage your API portal** page, click **Preview and publish your portal**. 2. On the **Home** page, click the **Asset Carousel** area to edit the Assets Carousel component. 3. Complete the fields and include any necessary information. 4. Click the **Preview** button to review your changes. 5. Click the **Publish** button to publish your changes. ### Change the Number of Cards to Display in the API Carousel To change the number of API cards that display in the API Carousel: 1. On the **Manage your API portal** page, click **Preview and publish your portal**. 2. On the **Home** page, click the **Asset Carousel** area to edit the Assets Carousel component. 3. In the **Cards to display** field, select a number from three to fifteen from the list. 4. Click the **Preview** button to confirm your changes. 5. Click the **Publish** button to publish your changes. ## Assets Catalog The API Catalog component offers API consumers an interactive way to explore all the available APIs in an API portal. The API Catalog shows API cards in rows and columns, divided into pages, and shows controls to search the displayed APIs by categories and search terms. Each card shows an API. With the catalog, users can view and explore large numbers of API versions. Select the properties to show in the API Catalog: - Show filter display layout: - Dropdown below search box - Dropdown beside search box - Side panel - Show asset type filter - Show categories filter - Show category pills - Show asset layout button ## Existing User Request Access The Existing User Request Access component enables existing Salesforce users to access the portal by entering their username and clicking a button to request access. Enter the properties to show in the component: - Label - Placeholder - Redirect to - Button Label ## Search Box The API Experience Hub Search Box component enables users to search for content that exists in Salesforce Experience Cloud (such as knowledge articles, support cases, and announcements) and content that exists in Anypoint Platform (such as APIs and client applications). Knowledge articles, support cases, and announcements are currently not available. ## Search Results The API Experience Hub Search Results component shows results after a user enters a search in the Search Box component. ## See Also - [Experience Builder](https://help.salesforce.com/s/articleView?id=sf.community_designer_overview.htm&type=5) - [https://docs.mulesoft.com/exchange/](https://docs.mulesoft.com/exchange/) --- product: API Experience Hub --- # API Experience Hub Overview > For the full documentation index, see: https://docs.mulesoft.com/llms.txt API Experience Hub provides a unified portal for discovering and consuming APIs and AI agents. You can use it as an internal user, a partner, or an external developer. Service providers can share, promote, and engage with their developer community. Developers and partners can find, explore, and consume services designed anywhere from a single place. API Experience Hub is the next-generation evolution of API Community Manager for creating and managing portals. The portal administrator can use out-of-the-box templates to build developer portals in minutes and publish services like agents, APIs, LLMs, and MCP servers from Anypoint Exchange to any audience. Anypoint Platform fully manages the portal deployment, administration, and the catalog and user management options so you don’t need any Salesforce knowledge to start. API Experience Hub provides the following advantages for: **Portal administrators**: - Set up portals quickly and easily - Onboard services and setting version visibility - Manage users and access requests from guest users - Preview and iterate on the portal - Perform advanced customizations using Salesforce Experience Builder - Enable Chatter Feed tracking to engage with your portal community - Use Google Analytics to gain valuable insights into how consumers are using your services and portal **Developers**: - Self-service experience to discover services and build applications - Request access to an instance to register a client application - Interactive documentation to understand how to use and integrate services - Customized and connected hub to interact with services - Collaborate with members of the portal community Watch the API Experience Hub Product Spotlight video to see a quick overview. ![](https://play.vidyard.com/T4bQEfxC74Qg3k92wRgt7b.jpg) ## Steps to Create a Portal An administrator can create a custom portal using these steps: 1. Connect to a Salesforce instance. The instance can be a new or existing Salesforce organization. To connect, specify the environment type and enter the custom Salesforce domain if you have one, log in, allow the permissions, and confirm the account. 2. Set up your portal. Once you connect to Salesforce, choose how to set up the portal and style the portal’s out of the box pages with logos, fonts, color schemes, and more. 3. Manage your portal. Manage the catalog by adding services from Exchange and setting the visibility for the versions. Manage users by approving access requests from guest users. 4. Publish the portal. Publish the portal to make it available to your community. ## Portal Pages Each API Experience Hub portal includes a Home, Services page, and an Service Details page. The portal administrator can customize each page to fit the organization’s needs. For more information, see [Setting Up the Portal](https://docs.mulesoft.com/api-experience-hub/setting-up-the-api-portal). The portal includes these template pages: - Home The Home page includes the banner image, portal title, Carousel, and navigation to services by type and serves as the landing page of the portal. The Carousel offers consumers a preview of the most recent services added to the portal. Each card contains the service name, icon, type, and description. When selected, developers can view all the information about a service on the Service Details page. - Services The Services page contains a catalog of all the services in the portal. Developers can search and filter the catalog. When selected, each card in the catalog shows the Service Details page. - Service Details The Service Details page shows the metadata about the service, including the name, description, type, version, lifecycle states, and the email of the contact for the service. The details page includes the overview and the service documentation. The overview panel reflects the overview page created by the admin of the service in Anypoint Exchange. The documentation panel includes an interactive console for developers to read the service documentation and test the service. Developers can read the summary, methods, endpoints, and authorization sections as defined in the API specification. ## Product Integration API Experience Hub is integrated with the following products: - Anypoint Exchange Exchange is a catalog of reusable assets such as services, policies, agents, APIs, LLMs, and MCP servers, API spec fragments, API groups, templates, examples, custom assets, and integration assets such as connectors. Within API Experience Hub, portal admins can curate their portals by importing services from Exchange. For more information, see the [Anypoint Exchange](https://docs.mulesoft.com/exchange/). - Salesforce Experience Cloud API Experience Hub is powered by Salesforce Experience Cloud and provides customization and branding capabilities your developer audiences. For more information, see [Customizing Your Portal Using Experience Builder](https://docs.mulesoft.com/api-experience-hub/customizing-your-portal). ## Supported Browsers See the following topics for information about supported browsers: - [Browser Support for Anypoint Platform](https://docs.mulesoft.com/general/browser-support) - [Supported Browsers for Experience Cloud Sites](https://help.salesforce.com/s/articleView?id=sf.networks_communities_browser_support.htm&type=5) ## API Experience Hub on Control Planes All features of API Experience Hub are supported on Japan and Canada control planes. ## See Also - [User Roles, Permissions, and Profiles](https://docs.mulesoft.com/api-experience-hub/user-roles-permissions-and-profiles) - [Getting Started with API Experience Hub](https://docs.mulesoft.com/api-experience-hub/getting-started-with-api-experience-hub) --- product: API Experience Hub --- # API Experience Hub Release Notes > For the full documentation index, see: https://docs.mulesoft.com/llms.txt API Experience Hub is an API management platform and digital experience that enables organizations to create vibrant API ecosystems within and outside the enterprise. API providers can share, promote, and engage with their developer community. Developers and partners can find, explore, and consume APIs designed anywhere from a single place. The following release notes are provided for API Experience Hub: - [Anypoint API Experience Hub Release Notes](https://docs.mulesoft.com/release-notes/api-experience-hub/api-experience-hub-release-notes) ## See Also - [API Experience Hub Overview](https://docs.mulesoft.com/api-experience-hub/) - [Known Issues](https://help.salesforce.com/s/issues) --- product: API Experience Hub --- # API Versioning in API Experience Hub > For the full documentation index, see: https://docs.mulesoft.com/llms.txt When an API specification requires nonbreaking corrections, such as changing the text, these changes are given a patch version change, such as from `3.0.0` to `3.0.1`. API Experience Hub automatically and immediately imports these updates to all portals in which the API is published, without requiring any action from the API Experience Hub portal administrator. ## Major Updates to an API Version When a new version of the API with breaking changes is created, the API Experience Hub portal administrator controls when and how to publish the new version in the site. The new version appears in the API edition modal with no visibility, so no one is available to access this API information in the community. The administrator can set the visibility to the old and the new API versions. For example, suppose a developer on the API team adds a new resource to an API. 1. In Design Center, the developer opens the API project, adds the resource to the specification, and clicks **Publish to Exchange**. 2. Because this is a breaking change, the developer changes the API version information in Publish API specification to Exchange. For example, if the API version is v3, it becomes v4. If the Asset version is 3.0.1, it becomes 4.0.0. Name and Main file don’t change. 3. The developer clicks **Publish**. 4. The previous API version remains in all portals where it was published without any changes. The portal administrator must then review and publish the changes: 1. In API Experience Hub, go to **Catalog management**. The API is still listed in **Services in the portal**. The new version has visibility **None**. 2. Next to the API name, click the more options icon. 3. Change the visibility to **Administrators only**. 4. Click **Preview in Salesforce Builder** and review the API. 5. Go to Catalog management. 6. Next to the API name, click the more options icon. 7. Change the visibility of the new version. Change **Administrators only** to **Everyone** if you want it to be publicly available and **Members only** if you want it to be seen only by logged-in members. If the visibility is Everyone or Members only, then consumer developers can now see the new API version in the Carousel on the portal. --- product: API Experience Hub --- # Assigning Permissions > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Platform comes with predefined permissions that you can set in Anypoint Platform access management to provide users with different access levels. You configure the permissions for administrators and Exchange viewers. The Salesforce platform uses the System Administrator profile, which includes permissions to perform specific tasks in Salesforce. For API Experience Hub, this profile or the AEH\_Anypoint permission set is required for the user who performs the Salesforce linking. ## Before You Begin - You must be an Organization Administrator or an existing API Experience Hub Administrator. - Consider the permission strategy for users in the Anypoint organization and Salesforce organization. See [User Roles, Permissions, and Profiles](https://docs.mulesoft.com/api-experience-hub/user-roles-permissions-and-profiles) for more information. - The Salesforce user who is assigned the AEH\_Anypoint permission set must have the Salesforce license and the Standard User profile. ## Grant the API Experience Hub Administrator Permission and the Exchange Viewer Permission The Organization Administration and API Experience Hub Administrator can perform all of the functions to create a portal. Only the Organization Administrator or an existing API Experience Hub Administrator can grant a user the API Experience Hub Administrator permission. Grant this permission when you want another user in your organization to perform the Salesforce linking process, create and curate the portal, manage the portal, and manage users. To add APIs to the portal, administrators must have Exchange Viewer permissions for those APIs. When APIs are added to the portal, all administrators are automatically assigned the Exchange Viewer permission for the APIs added in the portal. To grant the permissions to an administrator: 1. Go to **Access Management**. 2. Click **Users**, and then select the username of the user that you want to add the API Experience Hub Administrator permission. 3. Select **Permissions** and click **Add permissions**. 4. In the **Select permissions to add for this user** search box, enter **API Experience Hub Admin** and select the checkbox. 5. Enter **Exchange viewer** in the search box and select the checkbox, and then click **Next**. 6. Select the **MuleSoft** checkbox, and then click **Next**. 7. Click **Add Permissions**. ## Create the AEH\_Anypoint Permission Set with the Minimum Permissions for the Salesforce User to Perform the Linking Process A Salesforce user with the System Administrator profile is required to connect Salesforce Experience Cloud and link the Salesforce organization with the Anypoint Platform organization. The System Administrator profile might have more permissions than necessary. For users with an existing Salesforce organization and potentially sensitive data, ensure the security of that data by following the principle of least privilege. Use the AEH\_Anypoint permission set to configure only those permissions for the user who performs the linking process. The Salesforce user with the System Administrator profile creates the AEH\_Anypoint permission set with all the necessary permissions and assigns the permission set to a Salesforce user. Create the permission set manually in Salesforce or deploy it via the CI/CD pipeline using the `AEH_Anypoint.permissionset-meta.xml` metadata file. You can downgrade the permissions for the System Administrator using the permissions set before or after connecting to Salesforce. If the Salesforce user is the same user who created the connection, you can assign that user to the AEH\_Anypoint permission set without disconnecting the portal and recreating the connection. To assign the permission set to the Salesforce user who didn’t create the connection, you must disconnect the portal and recreate the connection. For example, the original Salesforce user who connected to Salesforce left the company. Perform the following steps to manually create the permission set, add the necessary permissions, and assign a user to the permission set: 1. Create the AEH\_Anypoint permission set: 1. Log in to Salesforce as the System Administrator. 2. In **Setup**, enter `permission sets` in the **Quick Find** box and click **Permission Sets**. 3. Click **New**. 4. Enter `AEH_Anypoint` exactly as it appears in both the **Label** and **API Name** fields. 5. Click **Save**. 2. Add the necessary permissions to the permission set: 1. In the **Systems** section, click **System Permissions**. 2. Click **Edit**. 3. In the **Systems** section, enable the following _required_ permissions: Required permissions - Apex REST Services - API Enabled - Assign Topics - Author Apex - Connect Organization to Environment Hub - Create and Customize Dashboards - Create and Customize List Views - Create and Customize Reports - Create and Set Up Experiences - Create Dashboard Folders - Create Report Folders - Create Topics - Customize Application - Delete Topics - Download AppExchange Packages - Edit Events - Edit HTML Templates - Edit My Dashboards - Edit My Reports - Edit Tasks - Edit Topics - Manage Auth. Providers - Manage Connected Apps - Manage Custom Permissions - Manage Dashboards in Public Folders - Manage Letterheads - Manage Multi-Factor Authentication in User Interface - Manage Public Classic Email Templates - Manage Public Documents - Manage Public List Views - Manage Reports in Public Folders - Manage Session Permission Set Activations - Modify All Data - Modify Metadata Through Metadata API Functions - Run Reports - Transfer Record - View All Data - View Dashboards in Public Folders - View Event Log Files - View Reports in Public Folders - View Roles and Role Hierarchy - View Setup and Configuration 4. In the **User** section, enable the following _required_ permissions: Required permissions - Assign Permission Sets - Manage Internal Users - Manage IP Addresses - Manage Login Access Policies - Manage Password Policies - Manage Profiles and Permission Sets - Manage Roles - Manage Sandboxes - Manage Sharing - Manage Users - Reset User Passwords and Unlock Users - View All Users 5. Enable any other permissions that you want to add to the permission set. 6. Click **Save**. 3. Assign the permission set to a Salesforce user: This user must have the Salesforce license and the Standard User profile. 1. In **Setup**, enter `Users` in the **Quick Find** box and click **Permission Sets**, and click **Users**. 2. In the **Full Name** column, select the name of the user. 3. In **Permission Set Assignments** section, click **Edit Assignments**. 4. Select **AEH\_Anypoint** from the **Available Permission Sets** list and move the set to the **Enabled Permission Sets** list. 5. Click **Save**. To deploy the permission set via your CI/CD, use the following `AEH_Anypoint.permissionset-meta.xml metadata` file, then assign the permission set to a Salesforce user: 1. Copy the metadata file and create a file named `AEH_Anypoint.permissionset-meta.xml`. ```xml false true ApexRestServices true ApiEnabled true AssignPermissionSets true AssignTopics true AuthorApex true ConnectOrgToEnvironmentHub true ConvertLeads true CreateCustomizeDashboards true CreateCustomizeFilters true CreateCustomizeReports true CreateDashboardFolders true CreateReportFolders true CreateTopics true CustomizeApplication true DelegatedTwoFactor true DeleteTopics true EditBrandTemplates true EditEvent true EditHtmlTemplates true EditMyDashboards true EditMyReports true EditPublicDocuments true EditPublicFilters true EditPublicTemplates true EditTask true EditTopics true ImportLeads true InstallPackaging true ManageAuthProviders true ManageCategories true ManageCustomPermissions true ManageDashbdsInPubFolders true ManageInternalUsers true ManageIpAddresses true ManageLoginAccessPolicies true ManageNetworks true ManagePasswordPolicies true ManageProfilesPermissionsets true ManageQuotas true ManageRemoteAccess true ManageReportsInPubFolders true ManageRoles true ManageSandboxes true ManageSessionPermissionSets true ManageSharing true ManageTerritories true ManageTranslation true ManageUsers true ModifyAllData true ModifyDataClassification true ModifyMetadata true OverrideForecasts true ResetPasswords true RunReports true SolutionImport true TransferAnyEntity true TransferAnyLead true UseTeamReassignWizards true ViewAllData true ViewAllForecasts true ViewAllUsers true ViewEventLogFiles true ViewPublicDashboards true ViewPublicReports true ViewRoles true ViewSetup true CanApproveUninstalledApps ``` 2. Run the following command and replace `path/to/permissionset/` and `orgAlias` variables with your path and org alias: ```code sf project deploy start --source-dir path/to/permissionset/ -o orgAlias ``` 3. To verify that the permission set was created: 1. Log in to Salesforce as the System Administrator. 2. In **Setup**, enter `permission sets` in the **Quick Find** box and click **Permission Sets**. 3. Locate **AEH\_Anypoint** in the list. ## Assign API Experience Hub Users Approver Permission Assign the API Experience Hub Users Approver permission to enable a user to approve or reject pending registration requests and enable or disable member users only. This permission grants access to the following **User Management** pages in **Manage your API portal**: - Portal members Enable or disable a user’s access to the portal. - Pending registration requests Approve or reject a user’s registration request. - Settings View information about the Salesforce account and portal. To assign this permission to a user: 1. Go to **Access Management**. 2. Click **Users** and select a username. 3. Select **Permissions** and click **Add permissions**. 4. In the **Select permissions to add for this user** search box, enter **API Experience Hub Users Approver** and select the checkbox. 5. Click **Next**. 6. Select the **Mulesoft** checkbox and click **Next**. 7. Click **Add Permissions**. ## See Also - [User Roles, Permissions, and Profiles](https://docs.mulesoft.com/api-experience-hub/user-roles-permissions-and-profiles) - [Connecting to Salesforce](https://docs.mulesoft.com/api-experience-hub/connecting-to-salesforce) --- product: API Experience Hub --- # Best Practices > For the full documentation index, see: https://docs.mulesoft.com/llms.txt API adoption relies heavily on well-written documentation and maintenance. Ensure that you have a good API strategy. For optimal performance and experience, follow these best practices from MuleSoft: - [API Development Best Practices - MuleSoft](https://www.mulesoft.com/api/development-best-practices) - [Best Practices for Planning, Designing, and Managing APIs](https://blogs.mulesoft.com/dev-guides/api-design/best-practices-for-building-apis/) - [Best Practices to Design Your First API Specification](https://developer.mulesoft.com/tutorials-and-howtos/getting-started/best-practices-first-api-spec/) - [How to Design and Manage APIs - MuleSoft](https://www.mulesoft.com/lp/whitepaper/api/design-apis) --- product: API Experience Hub --- # Catalog Management > For the full documentation index, see: https://docs.mulesoft.com/llms.txt From the **Catalog management** page, curate your portal by viewing information about an asset from Exchange, adding or removing assets, and changing the visibility of a version. The portal supports these service types: - Agents - AsyncAPI - GraphQL - gRPC - HTTP - LLM - MCP server - REST - SOAP The **Catalog management** page shows this information: - **Services in the portal** Shows the services that have been added to your portal. Administrators can add only those services for which they have Exchange Viewer permission. For more information, see [Assigning Permissions](https://docs.mulesoft.com/api-experience-hub/assigning-permissions). All administrators are automatically assigned the Exchange Viewer permission for all the services added to the portal. By default, the visibility of the services is set to Administrators. The portal administrator can change the visibility or remove services in the **Services in the portal** tab. - **Services in Exchange** Shows the services that exist in your Exchange organization but haven’t been added to your portal. ## Opt in to Increase the Number of Services in the Portal Enable portal scalability in the **Catalog management** page. Opt in once for maximum service support in your portal. After enabling this option, you can’t revert to the portal version that supports up to 350 services. New portals automatically scale to 7,000 services. 1. Click **Learn more** from the sidebar in **Catalog management**. 2. Select **I understand and want to enable scalability.** and click **Enable**. ## View Services in Exchange You can view information about a service directly from Exchange to determine whether you want to add the service in your portal. From the **Services in Exchange** tab, select a service from the list and select **View in Exchange**. To filter services by categories and tags, select an option from the **Any category** or **Any tag** dropdown and click **Apply**. ## Add Services from Exchange Curate your portal in API Experience Hub by adding services from Exchange. You must have Services in Exchange before you can add them to your portal. When adding services to the portal, the default visibility is Administrator. You can change the visibility to include members or everyone. See [Make Versions Visible](#make-versions-visible) for more information. To add services to your portal: 1. From the **Catalog management** page, select the **Services in Exchange** tab. 2. To search for a service by name or description, enter the name or description into the **Search** bar. 3. To filter services by categories and tags, select an option from the **Any category** or **Any tag** dropdown and click **Apply**. 4. Locate the service in the list, click **\+ (Add to portal)**. The service displays in the list in the **Services in the portal** tab. ## Remove Services from the Portal To remove services from your portal: 1. From the **Catalog management** page, select the **Services in the portal** tab. 2. To search for a service, enter the name, description, category, or tag keyword into the **Search** box. 3. To filter services by categories and tags, select an option from the **Any category** or **Any tag** dropdown and click **Apply**. 4. Locate the service in the list and click the trash can (Remove from portal). 5. Click **Confirm**. In the **Services in the portal** tab, the service is removed from the list. ## Make Versions Visible By default, when you add a new service, the minor version shared with an Administrator is the latest version of the service. The instance visibility is set to Public instances. Only the instances that are public in Exchange are available for end-users to request access to them. You can manage which version of a service a user can view in your portal. You can set the visibility to Administrators, Members and user groups, Guests, or None. - Administrators Use this option if you want the version to be seen by the portal administrator only. - Members Use this option if you want the version to be seen only by logged-in members or specific user groups. - Guests Use this option if you want the version to be publicly available to anyone. - None Select no users to hide the version from everyone. If the visibility is Guests, Members, or user groups, consumer developers can see the new version in the carousel of the portal. To edit the user visibility that displays for a service: 1. From the **Catalog management** page, select **Services in the portal**. 2. To search for a service, enter the name, description, category, or tag keyword into the **Search** box. 3. To filter services by categories and tags, select an option from the **Any category** or **Any tag** dropdown and click **Apply**. 4. Locate the service in the list and click **Edit visibility**. 5. Select an instance visibility option: - All instances - End-users can’t request access. - Public instances - End-users can request access. 6. Expand an API version and select the users who can see the service. 7. Click **Save**. ## Next Steps From [User Management](https://docs.mulesoft.com/api-experience-hub/managing-users), you can view and manage users and access requests from guest users. --- product: API Experience Hub --- # Collaborating With Your API Portal Community > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can enable collaboration with members of a portal community using Salesforce Chatter Feed components to: - Sharing posts and updates - Participating in polling - Asking questions - Receiving notifications for relevant activities in personalized feeds The Chatter Feed options that display depend on how your administrator sets up feeds for the API portal. To see feedback and discussions about a service: 1. Select a service from the **Home** or **Services** page of the portal. 2. In the **API details** page, select the **Feedback and discussions** tab. **Feedback and discussions** is the default name of the tab, however, administrators can change this name. For more information about using Chatter Feed tracking, see the following Salesforce documentation: - [Chatter Overview](https://help.salesforce.com/s/articleView?id=experience.collab_overview.htm&type=5) - [Chatter Tab Overview](https://help.salesforce.com/s/articleView?id=experience.collab_home_overview.htm&type=5) - [Posting Overview](https://help.salesforce.com/s/articleView?id=experience.collab_feed_posting.htm&type=5) - [Work with Feeds](https://help.salesforce.com/s/articleView?id=sf.collab_feeds_parent.htm&type=5) --- product: API Experience Hub --- # Configuring Chatter Feed Tracking > For the full documentation index, see: https://docs.mulesoft.com/llms.txt To engage with your portal community, add Chatter Feed tracking. Chatter tracking enables portal members to create discussions about services, get real-time updates and notifications, seek expert advice, and review relevant discussions. For existing portals, you must add the Feed and Feed Publisher components manually using the Experience Builder. ## Enable Feed Tracking 1. In Salesforce, click **Setup**. 2. In the **Quick Find** box, enter **feed tracking** and click **Feed Tracking**. 3. Click **Community Asset** and **Enable Feed Tracking**. 4. Click **Save**. ## Add Feed Components For Existing Portals To add Feed components for existing portals: 1. Navigate to the Builder. 2. In **Preview** mode, on the **API details** page, click **Back to Builder**. 3. Click **Components**, then click the **Tab Layout (New)** component. 4. In the **Tab Layout (New)** dialog, click **Add**. 5. In the **Tab Name** field, enter **Feedback and discussions** or any name for the tab and then click **Save**. 6. Click **Save**. 7. Click **Components** and enter **Feed** in the **Search** box. 8. Drag the **Feed** and **Feed Publisher** components into the **Tab Layout (New)** area for **Feedback and discussions**. ## See Also - [common-builder-customizations.adoc#configure-feed-component](https://docs.mulesoft.com/api-experience-hub/common-builder-customizations#configure-feed-component) - [common-builder-customizations.adoc#configure-feed-publisher-component](https://docs.mulesoft.com/api-experience-hub/common-builder-customizations#configure-feed-publisher-component) --- product: API Experience Hub --- # Configuring SSO > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Configure identity management in Anypoint Platform and Salesforce to set up users for single sign-on (SSO). API Experience Hub supports multiple IdPs for SSO. ## Before You Begin Before configuring SSO, ensure you have the following permissions, context, and setup: - Organization Administrator permission or role in the main Anypoint Platform organization. - System Administrator role in Salesforce. - Experience with identity management and setting up identity providers for SSO. - Review Access Management’s [Identity Provider](https://docs.mulesoft.com/access-management/external-identity) documentation to understand identity management for Anypoint Platform. - In the identity provider of your choice, the users or identities must exist for the users with access to the application. For information, see the identity provider’s documentation. - Review the information in [Gathering Setup Information for SSO](https://docs.mulesoft.com/api-experience-hub/gathering-set-up-information). ## Step 1: Enable SSO for Your Portal To enable SSO, an identity provider is required for Anypoint Platform to create identities in Anypoint Platform for Salesforce users. In this step, you create an application in the identity provider for the API Experience Hub portal, enable the ability to send group information in the application configuration, configure groups, and configure the default identity provider. Performing these steps require you to move back and forth between applications and the identity provider application to copy or add information. ### Create and Configure an Application Create and configure an application using one of these example methods: Okta OpenID Connect Create a new application for the API Experience Hub portal in the identity provider using OpenID Connect. 1. In Okta, create an OpenID Connect Web application. For more information, see [Create OIDC app integrations](https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm). 2. From the **General Settings** section, complete these fields:
FieldValue

App integration name

Enter a name for the app.

Grant type

Select Authorization Code.

Assignments

Select Limit access to selected groups.

Selected group(s)

Enter the name of the group who must have access to the application.

3. Verify that your identity provider sends the expected claims listed in the [Required Claims and Attributes](https://docs.mulesoft.com/api-experience-hub/gathering-set-up-information#required-claims-and-attributes-for-sso). 4. Configure the claims that the application sends. For example, for OpenID Connect for Okta, configure the groups claim using these steps: 1. From the **Sign On** tab, click **Edit** from the **OpenID Connect ID Token** section. 2. From **Groups claim type**, select **Filter**. 3. From **Groups claim filter**, enter `groups`. 4. Select **Matches regex for the expression** then enter `.*` for wildcard. ![An example of the Groups Claim Filter](/mulesoft/current/en-us/api-experience-hub/_images/aeh-groups-claim-filter.png) 5. Configure an authentication provider for Salesforce using OpenID Connect. You set up the auth provider or SSO settings in Salesforce with the identity provider application information. 1. From the OpenID Connect application, get these configuration values: - **Client ID** - **Client Secret** - **Authorize Endpoint URL** - **Token Endpoint URL** - **User Info Endpoint URL** 2. In **Salesforce**, go to **Setup**. 3. In the **Quick Find** box, enter `Auth`, and then select **Auth. Providers**. 4. Click **New** and select **OpenID Connect** for the **Provider Type**. 5. Complete these fields:
FieldValue

Provider Type

OpenID Connect

Name

Enter a name for the provider.

Consumer Key

Enter the client ID from the identity provider.

Consumer Secret

Enter the client secret from the identity provider.

Authorize Endpoint URL

Token Endpoint URL

User Info Endpoint URL

Default Scopes

profile openid email groups

Registration handler

AEHPortalRegistrationHandler

Execute Registration As

Select an administrator user.

![An example of Salesforce Auth. Provider](/mulesoft/current/en-us/api-experience-hub/_images/aeh-salesforce-auth-provider.png) 6. Click **Save**. 6. Configure the redirect URIs for the portal. To configure the redirects, use your 15-digit organization ID and 18-digit org ID and add a URL for each organization ID. 1. In the Okta application, select the **General** tab. Add the following URLs for **Sign-in redirect URIs**: - `https://login.salesforce.com/services/authcallback/${15DigitSalesforceOrganizationId}/${authProviderURLSuffix}` - `https://login.salesforce.com/services/authcallback/${18DigitSalesforceOrganizationId}/${authProviderURLSuffix}` - `https://${domain}.my.site.com/aeh/services/authcallback/${authProviderURLSuffix}` ![An example of Redirect URIs](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-redirect-uris.png) To find the URLs: - For salesforceOrganizationId, go to **Setup > Company Information**. - For authProviderURLSuffix, go to **Setup > Auth Providers**, click your auth provider, and select **URL Suffix**. - For domain, go to **Setup > My Domain > Current My Domain URL**. **Map the Application to the Identity Provider for Anypoint Platform** NOTE: Skip this step if you’re configuring a new identity provider for Anypoint Platform. Go to [Step 2: Add Salesforce Identity Providers](#step-2-add-salesforce-identity-providers). If there’s an existing identity provider already configured for Anypoint Platform, you must map the identity provider ID with the anypoint\_idp\_id by adding and configuring a new custom attribute called anypoint\_idp\_id. If usernames for the portal and Anypoint Platform don’t match, add another custom attribute called anypoint\_username to force an update for existing identity provider users to match the identity in the portal to the users in Anypoint Platform. To map anypoint\_idp\_id to with the Anypoint Platform identity provider ID for Okta: 1. In the Okta application, go to **Directory > Profile Editor** and select the portal application that you just configured. 2. Click **Add Attributes** to create a new attribute called **anypoint\_idp\_id**. 3. Complete these fields:
FieldValue

Display name

anypoint_idp_id

Value name

anypoint_idp_id

4. Save your changes. 5. Go to **Access Management > Identity Providers** and click the identity provider. 6. From the browser URL, copy the 32 digit ID. ![An example of the 32-digit ID located in the browser URL.](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-32-digit-id.png) 7. Go to **Okta > Directory > Profile Editor** and click **Mappings** 8. Paste the ID into the empty field for the new anypoint\_idp\_id attribute. The ID must be in quotes. 9. From the yellow arrow drop-down menu, select **Apply mapping on user create and update**. ![An example of a mapped anypoint\_idp\_id attribute](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-mapped-anypoint-idp-id-attribute.png) 10. Save your changes. 11. Apply the mappings to all users in the profile. If the user already exists and logs in to the portal before the anypoint\_idp\_id is set, the default identity provider AEH Users - ${salesforceOrganizationId} is used. To prevent the user from being duplicated, the user isn’t added to the new identity provider specified in the anypoint\_idp\_id field. If the user already exists in Salesforce and uses SSO to log in to the portal, the API Experience Hub Member User permission set is assigned to that user (if no permission set is already assigned). 12. To reconcile the usernames assignment for a single identity in the portal and Anypoint Platform: 1. In the Okta application, go to **Directory > Profile Editor** and select the portal application that you just configured. 2. Click **Add Attributes** to create a new attribute called **anypoint\_username**. 3. Complete these fields:
FieldValue

Display name

anypoint_username

Value name

anypoint_username

4. Save your changes. 5. Click **Mappings**. 6. In the empty field of the new **anypoint\_username** attribute, enter `String.substringBefore(user.login, "@")`. Since Okta usernames are email-based, this expression removes the email domain. 13. From the yellow arrow drop-down menu, select **Apply mapping on user create and update**. ![Example of a mapped anypoint\_username attribute](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-mapped-anypoint-username-attribute.png) 1. Save your changes. Okta SAML Create a new application for the API Experience Hub portal in the identity provider using SAML. For more information, see [Create SAML app integrations](https://help.okta.com/oie/en-us/content/topics/apps/apps_app_integration_wizard_saml.htm) in the Okta documentation. 1. From Okta, create a SAML application and enter a name for your SAML application in **General Settings**. 2. Select **Do not display application icon to users** and click **Next**. 3. In **SAML Settings**, complete these fields:
FieldValue

Single Sign-On URL

Enter the URL for the portal login.

Use this for Recipient URL and Destination URL

Select this option.

Audience URI (SP Entity ID)

Enter https with the Salesforce domain for example, https://{salesforcedomain}.com.

Name ID format

EmailAddress

Application username

Okta username

Update application username on

Create and update

![An example of SAML Settings](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-saml-settings.png) 4. Review the [gathering-set-up-information.adoc#required-claims-and-attributes-for-sso](https://docs.mulesoft.com/api-experience-hub/gathering-set-up-information#required-claims-and-attributes-for-sso)for information about what API Experience Hub expects for claims to properly map users in the identity provider. 5. In the **Attribute Statements (optional)** section, configure the SAML integration by adding these custom attributes. For supported formats, see the supported format for user attributes listed in [gathering-set-up-information.adoc#required-claims-and-attributes-for-sso](https://docs.mulesoft.com/api-experience-hub/gathering-set-up-information#required-claims-and-attributes-for-sso):
NameName formatValue

first_name

Unspecified

user.firstName

last_name

Unspecified

user.lastName

email

Unspecified

user.email

groups

Unspecified

(",", getFilteredGroups({"00gdkat3p5RCvkQQC5d7", "00gdjgk337kYDxtE35d7"}, "group.name", 40))

![An example of the SAML Attribute Statements](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-saml-attribute-statements.png) The example IDs, 00gdkat3p5RCvkQQC5d7 and 00gdjgk337kYDxtE35d7 correspond to the groups that you want to send. Ensure that you send all Anypoint Platform groups when you’re configuring Okta in Anypoint Platform. Otherwise, the user can lose access. 6. Enable multi-valued SAML attributes when sending multiple groups in the groups claim. Sending groups as a comma-separated list isn’t required. 1. Navigate to **Salesforce** > **Setup**. 2. From **Setup**, in the Quick Find box, enter `Custom Metadata Types`, and then select **Custom Metadata Types**. 3. Click **Manage Records** for **API Experience Hub Configuration**. 4. Click **Edit** for the **Default** record, select the **Enable Multi-Valued SAML Attributes** checkbox, and then click **Save**. 7. Click **Next**, select **I’m an Okta customer adding an internal app**, and then click **Finish**. 8. Select the **Assignments** tab and select **Groups**. 9. Click **Assign** and select **Assign to groups**. 10. From the list, click **Assign** from the row of the specific group and click **Done**. 11. Select the **Sign On** tab, and click **View SAML setup instructions** to see instructions about how to configure SAML for your application. ![A button that shows the SAML setup instructions](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-view-saml-setup-instructions.png) 12. Get this information from the instructions page to configure the **Single Sign-on Settings** tab in Salesforce: - **Identity Provider Single Sign-On URL** - **Identity Provider Issuer** - **X.509 Certificate (download the certificate)** ![SAML instructions to configure SAML](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-saml-setup-instructions-page.png) 13. Go to **Salesforce > Setup** and search for **Single Sign-On Settings**. 14. From **Single Sign-On Settings** in the **Federated Single Sign-On Using SAML** section, select **SAML Enabled** and click **Save**. 15. From **Single Sign-On Settings**, click **Edit** and complete these fields:
FieldValue

Issuer

Match the Identity Provider Issuer from the View SAML setup instructions.

Entity ID

Match the Audience Restriction you set in the application.

Identity Provider Certificate

Upload the certificate previously downloaded from the View SAML setup instructions.

SAML Identity Type

Assertion contains the Federation ID from the user object.

SAML Identity Location

Identity is in the NameIdentified element of the Subject statement.

Identity Provider Login URL

Match the Identity Provider Single Sign-On URL from the View SAML setup instructions.

Custom Logout URL

Okta URL

User Provisioning

Enabled

User Provisioning Type

Custom SAML JIT with Apex Handler

SAML JIT Handler

AEHPortalRegistrationHandler

Execute Handler As

Select a system administrator.

![An example of the SAML Single Sign-On Settings](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-saml-single-sign-on-settings.png) Microsoft Entra ID SAML for Cloud Create a new application for the API Experience Hub portal in the identity provider using Microsoft Entra ID. Microsoft Entra ID for OpenID Connect isn’t supported. 1. In Azure, create a SAML Enterprise application: 1. Go to the Azure administration portal or enter `[https://portal.azure.com](https://portal.azure.com)` in a browser. 2. Go to Microsoft Entra ID (Active Directory service), click **Add**, and select **Enterprise application**. 3. In **Browse Microsoft Entra Gallery**, select the **Salesforce** application. 4. Enter a name like **AEH Portal** and click **Create**. 2. Configure the single sign-on settings for the application: 1. From **Manage**, select **Single sign-on** and select **SAML**. 2. From **Basic SAML Configuration**, click **Edit**. 3. Complete these required fields:
FieldValue

Identifier (Entity ID)

https://<YOUR_DOMAIN>.my.site.com/aeh

Reply URL (Assertion Consumer Service URL)

https://<YOUR_DOMAIN>.my.site.com/aeh/login

Sign on URL

https://<YOUR_DOMAIN>.my.site.com/aeh/login

Logout Url (Optional)

https://<YOUR_DOMAIN>.my.site.com/aeh/services/auth/sp/saml2/logout

4. Save your changes. 3. Configure the required first name, last name, email, and username claims that the application sends: 1. From **Attributes & Claims**, click **Edit**. 2. Click **Add a group claim**, select **All Groups** or any other option except **None**, and click **Save**. At least one group must be associated to perform a group mapping in a later step. 3. Add a new claim for each required claim by clicking **\+ Add new claim** and completing these fields for each claim: - First Name
FieldValue

Name

firstName

Source attribute

user.givenname

- Last Name
FieldValue

Name

lastName

Source attribute

user.surname

- Email
FieldValue

Name

email

Source attribute

user.mail

- Username
FieldValue

Name

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

Source attribute

user.userprincipalname

API Experience Hub uses the value of the `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` claim as the username, which must be email-shaped for Salesforce to accept it. The Microsoft Entra ID `user.userprincipalname` attribute is email-shaped by default. If this claim is not present, API Experience Hub uses the value of the email claim instead. 1. Save your changes. 1. Enable multi-valued SAML attributes when sending multiple groups in the groups claim. Sending groups as a comma-separated list isn’t required. 2. Navigate to **Salesforce** > **Setup**. 3. From **Setup**, in the Quick Find box, enter `Custom Metadata Types`, and then select **Custom Metadata Types**. 4. Click **Manage Records** for **API Experience Hub Configuration**. 5. Click **Edit** for the **Default** record, select the **Enable Multi-Valued SAML Attributes** checkbox, and then click **Save**. 1. If this single sign-on is already configured in Anypoint Platform, map the application to the identity provider for Anypoint Platform using a new custom attribute, `anypoint_idp_id`. 6. Click **\+ Add new claim** and complete these fields:
FieldValue

Name

anypoint_idp_id

Source attribute

"<identity_provider_id>" The ID must be in quotes.

To get the identity provider ID, go to **Access Management > Identity Providers**, click the identity provider, and copy the 32-digit ID from the browser URL. ![An example identity provider ID in Access Management](/mulesoft/current/en-us/api-experience-hub/_images/aeh-identity-provider-id-azure.png) 7. Save your changes. 1. If usernames for the portal and Anypoint Platform are different, add another custom attribute named `anypoint_username`. This attribute updates existing identity provider users to match the identities in the portal and Anypoint Platform. 8. Click **\+ Add new claim** and complete these fields:
FieldValue

Name

anypoint_username

Source attribute

Define an attribute for example, ExtractMailPrefix (user.mail)

9. Save your changes. 10. From **Source**, select **Transformation** and complete these fields:
FieldValue

Transformation

ExtractMailPrefix()

Parameter 1

Attribute

Attribute name

user.mail

11. Click **Add**. 12. From **Manage claim**, save your changes. 13. Create single sign-on settings in Salesforce: 1. Select **Single Sign-on** and click **Download** from **Federation Metadata XML** in the **SAML Certificates** section. 2. Go to **Salesforce > Setup > Single Sign-On Settings** and click **New from Metadata File**. 3. From **Metadata File**, click **Choose File**, select the Federation Metadata XML file, and click **Create**. 4. Complete these fields:
FieldValue

Name

Enter a name.

API Name

Enter a name.

Entity ID

Enter the value from the Azure Enterprise application’s Identifier (Entity ID) field. For example, https://<YOUR_DOMAIN>.my.site.com/aeh.

SAML Identity Type

Assertion contains the Federation ID from the User object.

Just-in-time User Provisioning

Enabled

User Provisioning Type

SAML JIT with Apex handler

SAML JIT Handler

AEHPortalRegistrationHandler

Execute Handler As

Select a system administrator.

5. Save your changes. ## Step 2: Add Salesforce Identity Providers After the identity provider is configured for Salesforce, add and enable the identity provider from the API Experience Hub UI. When the identity provider is enabled, users can log in to the portal using this identity provider. 1. Go to **API Experience Hub > User management** and click **Login settings**. 2. From the **Single sign-on (SSO)** section, scroll down to step 2 **Add Salesforce identity providers**. 3. Click **Select identity provider** and select an option from the drop-down menu. 4. Click **\+ Add identity provider** and move the slider to **Enabled**. ## Step 3: Add Group Mappings When setting up SSO for the portal, your users must have an identity in both Salesforce and Anypoint Platform. SSO users are mapped to teams using their group names. You must map your users to teams using Access Management. API Experience Hub provides an out-of-the-box team called **AEH Portal - ${salesforceOrganizationId}\_${salesforceCommunityId}** that is added automatically as a team in Access Management. Add group mappings by adding the user to the corresponding profile in API Experience Hub: 1. Go to **Access Management** > **Teams**. 2. Click **AEH Portal Guests** and click **AEH Portal Members** > **External IdP Groups**. 3. Complete these fields:
FieldValue

Group Name

Enter AEH Members or enter the value of the groups claim.

Provider Name

The name of the corresponding Salesforce identity provider.

Type

Member.

4. From **Type**, click **Add**. ![The External IdP Groups page from Access Management](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-access-mgmt-ext-idp-groups.png) 5. Save your changes. The SSO users associated with the group you designated are assigned to the team. ## Step 4: Test the SSO Configuration Verify that the SSO for the portal is configured properly. 1. Open an incognito window in a browser and go to your API Experience Hub portal. 2. Select the SSO option that you configured. 3. Log in with a user that belongs to the group you configured in the identity provider for your portal. 4. Check the visibility of APIs for the user in the portal. 5. Go to **Access Management** and select **Users**. 6. Search using the username to confirm that the user is mapped to the expected identity provider. 7. Go to the team with the configured group mappings. From the **Members** tab, ensure that you can see your user there. ## See Also - [Troubleshooting Single Sign-On Errors](https://docs.mulesoft.com/api-experience-hub/troubleshoot-sso-errors) --- product: API Experience Hub --- # Configuring User Analytics > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use Google Analytics to gain valuable insights into how consumers are using your services and portal, identify areas for improvement, make data-driven decisions to optimize the user experience, and drive business success. Google Analytics tracks the following data: - API usage metrics: - API instance access requests - API specification downloads - Most viewed API - Total number of calls made to an API - User engagement metrics: - Active users - Login events - API Console usage: - API requests Measure the overall API usage and identify patterns in API consumption. Captures each time an API request is made through the API Console and the total number of API requests made. - API usage by endpoint Identifies popular endpoints and monitors usage trends to optimize API design and resource allocation. Captures each time an API request is made to a specific endpoint through the API console and the number of requests made to each API endpoint. ## Configure Google Analytics To configure Google Analytics to send events from the portal: 1. Set up a Google Analytics property using the instructions in the [Set up the Analytics Google tag](https://support.google.com/analytics/answer/1008080?hl=en&visit_id=638531259961972871-3450454930&rd=1#zippy=%2Cin-this-article) topic in the Google documentation. 2. Navigate to the Builder. 3. Click **Settings** > **Security & Privacy**. 4. In the **Content Security Policy (CSP)** section, click **Relaxed CSP: Permit Access to Inline Scripts and Allowed Hosts**. 5. From **Settings**, click **Advanced**. 6. In the **Advanced** page, enter your Google Analytics Tracking ID. 7. Click **Let Google Analytics access your Salesforce data for deeper insights into search activity**. 8. Click **Edit Head Markup**. 9. Add the following code and replace all instances of `G-TRACK_ID` with your Google Analytics Tracking ID: 10. From **Setup**, click **Security & Privacy**. 11. Confirm that the following URLs show in the **Trusted Sites for Scripts** section: - `https://www.google-analytics.com` - `https://www.googletagmanager.com` 12. If the URLs are missing, add them by clicking **Add Trusted Site**. 13. From **Setup**, click **Security** > **Trusted URLs**. 14. Confirm that the same two URLs are in the list of the **Trusted URLs** section. API Experience Hub can now start sending Google Analytics from the portal. --- product: API Experience Hub --- # Connecting to Salesforce > For the full documentation index, see: https://docs.mulesoft.com/llms.txt API Experience Hub contains a Salesforce organization with Experience Cloud and a managed package. The managed package is installed during the onboarding process. The API Experience Hub administrator or a Salesforce user with the System Administrator profile or [AEH\_Anypoint permission set](https://docs.mulesoft.com/api-experience-hub/user-roles-permissions-and-profiles) connects the Salesforce organization to the Anypoint Platform organization. The managed package contains the components and data objects that interact with your Anypoint Platform organization. The Salesforce System Administrator can view the **API Experience Hub** package in the Salesforce organization from Salesforce by navigating to **Setup** > **Installed Packages** and selecting the **API Experience Hub Package**. A connection with Salesforce Experience Cloud is required for linking to the Salesforce organization to create a portal within Anypoint Platform. This process must be completed only once to create a portal. Currently, an instance of API Experience Hub can connect only to one Anypoint Platform organization and one Salesforce organization. When the connection is established, changing the connection doesn’t impact the connection between the Salesforce organization and Anypoint Platform. Switching between production and sandbox environments also doesn’t affect the connection. The portal remains operational. ## Connected App API Experience Hub uses a connected app to obtain a session token in Anypoint Platform and interacts with Salesforce APIs. To view the connected app that is created in the Salesforce organization: 1. From Salesforce, click **Setup**. 2. In the **Quick Find** box, enter **app management** and click **App Manager**. The connected App (Anypoint\_AEH) is listed in the table. In this release, IP restrictions for the connected app aren’t supported. The connected app bypasses any trusted IP ranges in your organization. Don’t change this option because it produces errors when creating the portal. For more information, see [Troubleshooting](https://docs.mulesoft.com/api-experience-hub/troubleshooting). ## Allow Access To complete the connection process, allow API Experience Hub to access the following: - Access the identity URL service - Manage user data via Web browsers - Manage user data via APIs - Perform requests at any time ## Admin Teams An API Experience Hub Admin team and an API Experience Hub Portal Admin team are created during the connecting and linking process. Once your Salesforce organization is successfully connected to your Anypoint Platform organization, the AEH Admin team is created. After the Salesforce linking process is complete, any user who is assigned the AEH Admin role is automatically added to the AEH Admin team. After your styling changes for the portal are saved, the AEH Portal Admin team is created. Although the API Experience Hub Portal Administrator team is visible in Access Management, this permission isn’t supported in this release. ## Before You Begin Connecting to Salesforce - Read the instructions in [Getting Started with API Experience Hub](https://docs.mulesoft.com/api-experience-hub/getting-started-with-api-experience-hub). - Ensure that you’re a System Administrator or have the AEH\_Anypoint permission set in the Salesforce organization that you’re connecting with. ## Connect to Salesforce The connecting process is a one-time step when creating your portal. > [!NOTE] Only an Organization Administrator, API Experience Hub Administrator, or a Salesforce user > with the System Administrator profile or AEH\_Anypoint permission set can connect to Salesforce to > link organizations. Follow these steps to connect to your Salesforce organization: 1. Navigate to Anypoint Platform, enter your username and password, and then click **Sign in**. 2. From Anypoint Platform, select **API Experience Hub**. 3. From the **Welcome to API Experience Hub** page, if this is the first time connecting to Salesforce, click **Let’s Start**. 4. Click **Connect to Salesforce**. 5. To create a portal directly in production, select **Production** from the **Environment** list. 6. To create a portal in a sandbox, select **Sandbox** from the **Environment** list. 7. Enter the username and password of your Salesforce organization and click **Log In**. 8. If you have a custom Salesforce domain, select **I have a custom Salesforce domain** and enter your domain address. If you don’t use a custom domain and you have active Salesforce sessions in the selected environment, you log in to Salesforce using the first active session. 9. Click **Connect**. 10. Click **Allow** for MuleSoft to access your data. 11. To go back and connect to a different Salesforce organization, click **Connect with another Salesforce organization**. The process of connecting to a Salesforce organization restarts. 12. Confirm the Salesforce access information and click **Confirm connection**. The process of connecting to Salesforce and installing the Salesforce Experience Cloud package begins. When the package is installed successfully, you receive an email. ## Next Steps When the connection to the Salesforce organization is complete, set up the portal. For more information, see [Setting Up the Portal](https://docs.mulesoft.com/api-experience-hub/setting-up-the-api-portal). ## See Also - [User Roles, Permissions, and Profiles](https://docs.mulesoft.com/api-experience-hub/user-roles-permissions-and-profiles) - [Assigning Permissions](https://docs.mulesoft.com/api-experience-hub/assigning-permissions) - [Working With Sandboxes](https://docs.mulesoft.com/api-experience-hub/working-with-sandboxes) - [Troubleshooting](https://docs.mulesoft.com/api-experience-hub/troubleshooting) --- product: API Experience Hub --- # Customizing the Portal Look-and-Feel > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The Builder creates a Salesforce Experience Cloud site with your desired brand identity, look and feel, and site structure by providing control over the site’s components, themes, and pages, and its settings for general properties, themes, and SEO. The Builder link opens your site for editing. You can edit each page in your portal, create new pages, and add and edit the components on each page. The Builder interface contains the pages list, component palette, theme menu, page structure menu, and settings menu. API Experience Hub isn’t certified for use on mobile devices. Some functionality works on mobile devices, but some functionality such as the API Console does not. ## Pages List The Pages list shows the pages included with API Experience Hub and the pages you have added and enables you to select and edit each page. The included page Home is selected by default. The Pages list enables you to create new pages by using the New Page option. A new page can be an object page or a standard page. Object pages are used only with Salesforce objects, so a custom community page starts as a standard page. A standard page can start from one of the preconfigured pages or as a new blank page. Make a new blank page by selecting the layout and then entering the new page’s name and URL. Use that URL to make links to the new page, including links in menus. The new page displays placeholders for content based on the layout. Fill in a new page by adding components from the Components menu, such as a Headline component in the page header, or an API Experience Hub component such as an API Version Carousel. The Pages list shows the editable configuration properties for each page, which are described in [Manage Your Community’s Pages and Their Properties in Experience Builder](https://help.salesforce.com/s/articleView?id=experience.community_builder_manage_pages_overview.htm&type=5). ## Components Clicking the Components lightning bolt icon displays the component palette, which includes Salesforce Experience Cloud components, such as Headline or Featured Topics, and components specific to API Experience Hub, such as API Carousel or API Console. You can drag any component from the component palette to the current page. Select the component on the page to show the component’s configuration options. API Experience Hub has the following Lightning components: - API Console - Asset Detail Header - Asset Documentation Viewer - Assets Carousel - Assets Catalog - Search Box - Search Result Detailed component information is available from the page and the Salesforce Experience Cloud [Components](https://help.salesforce.com/s/articleView?id=experience.rss_component_reference_table.htm&type=5) documentation. See [API Experience Hub Lightning Components](https://docs.mulesoft.com/api-experience-hub/api-experience-hub-lightning-components) for a description of each component. ## Theme Clicking the Theme paintbrush icon offers these general branding parameters: - Colors Sets the site’s general color scheme, including paragraph, heading, and button text. - Images Specifies the site’s company logo and the login page’s background Image. - Fonts Specifies the site’s fonts, which include a primary font and header fonts, and specifies the site’s text case. - Theme Settings You can adjust community styling by editing the CSS rules. Next to the Theme title, click the Theme list, and click Edit CSS. Refer to [Customize Your Experience Site Theme](https://help.salesforce.com/s/articleView?id=experience.community_builder_theme_customize.htm&type=5). Brand multiple portals using branding sets. For more information, see [Use Branding Sets in Experience Builder](https://help.salesforce.com/s/articleView?id=sf.community_designer_brandsets.htm&type=5). ## Page Structure Clicking the Page Structure icon, which resembles a bulleted list, shows the components in the current page and enables you to select and remove them. Selecting a component displays its configuration menu. ## Settings Clicking the Settings gear icon offers these parameters: - [General](https://help.salesforce.com/s/articleView?language=en_US&id=community_builder_general_settings.htm&type=5) - [Theme](https://help.salesforce.com/s/articleView?language=en_US&id=community_builder_theme.htm&type=5) - SEO Search Engine Optimization (SEO) features define what information can be indexed by external services and discovered through online searches, and can increase traffic to your public community. Refer to the [Experience Builder Settings](https://help.salesforce.com/s/articleView?id=sf.community_builder_general_settings.htm&type=5) help topic for more information. ## See Also [API Experience Hub Lightning Components](https://docs.mulesoft.com/api-experience-hub/api-experience-hub-lightning-components) --- product: API Experience Hub --- # Customizing Your Portal Using the Experience Builder > For the full documentation index, see: https://docs.mulesoft.com/llms.txt After the portal is created using the out-of-the-box styling templates, you can further customize it using the [Experience Builder](https://help.salesforce.com/s/articleView?id=sf.community_designer_overview.htm&type=5). The Builder customizes a Salesforce Experience Cloud site with your desired brand identity, look and feel, and site structure by providing control over the site’s components, themes, and pages, and its settings for general properties, themes, and SEO. From the **Catalog management** page, the **Preview and publish your portal** link opens your site for editing each page in your portal, creating new pages, and adding and editing the components on each page. Administrators enter the Salesforce Experience Builder with a shared identity between all administrators. Since the identity of the administrator is shared therefore, API Experience Hub can’t determine the individual administrator’s action in the shared account. If the administrator is already logged in to the Salesforce organization, their previous session isn’t retained when they click the **Preview and publish your portal** button. The Builder’s interface contains the pages list, component palette, theme menu, page structure menu, and settings menu. Click **Preview** to view your changes and to see the portal experience for your developer community. Click **Home** to view the Carousel with all of the added services. Click **Services** to view the Catalog, search and filter services, and select a service to get more details from the service details page. The service details page displays metadata in the upper section and the API overview and specification in the lower section. Publish any updates by clicking **Publish**. ## See Also - [Customizing the Portal Look-and-Feel](https://docs.mulesoft.com/api-experience-hub/look-and-feel-customization) - [API Experience Hub Lightning Components](https://docs.mulesoft.com/api-experience-hub/api-experience-hub-lightning-components) - [Using the Builder for Common Customizations](https://docs.mulesoft.com/api-experience-hub/common-builder-customizations) - [Advanced Styling with CSS](https://docs.mulesoft.com/api-experience-hub/advanced-styling-with-css) - [Previewing and Publishing Your Portal](https://docs.mulesoft.com/api-experience-hub/previewing-and-publishing-your-portal) --- product: API Experience Hub --- # Deactivating Your Portal > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can make your published portal inaccessible to users by deactivating the portal site. The portal is still considered active, but it can’t be accessed publicly. You can continue to make changes using the Builder and republish the site later for users to access. To deactivate your portal site, follow these steps: 1. From a **Manage your portal** page, click **Preview and publish your portal**. 2. Click the **Builder** icon. 3. From **My Workspaces**, click **Administration**. 4. Click **Settings**. 5. Click **Deactivate**. Your site is inactive and offline. To active your site, follow steps 1 to 4, then click **Activate**. ## See Also - [Disconnecting the Portal](https://docs.mulesoft.com/api-experience-hub/disconnecting-the-portal) --- product: API Experience Hub --- # Disconnecting the Portal > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Anypoint Platform can connect to only one Salesforce organization, and you can create only one portal for that organization. To create a new portal, you must disconnect the current portal from your Salesforce organization. This process unlinks Anypoint Platform from your Salesforce organization. You can then link your Anypoint Platform account to a new Salesforce organization. If you reconnect the portal (for example, after creating a new connection), you must reconfigure SSO, republish all services to the portal, and reconfigure group mapping. There is no process to restore the previous configuration automatically. Note that styling metadata is retained when reconnecting to the same Salesforce organization. There is no supported way to change the user who created the connection in API Experience Hub. To assign the connection to a different user, you must disconnect and create a new connection. For more information, see [Assigning Permissions](https://docs.mulesoft.com/api-experience-hub/assigning-permissions). ## Before You Disconnect Disconnecting your portal removes artifacts from the API Experience Hub database and unlinks Anypoint Platform from your Salesforce organization. These artifacts are permanently removed from API Experience Hub: - All published assets and their visibility settings - All custom user groups - All group mapping configurations (for both custom and default user groups) - The Single Sign-On (SSO) configuration Before you disconnect, record the following information so you can restore your portal configuration after reconnecting: 1. Record your published services and visibility settings. 1. From the **Catalog management** page, click the **Services in the portal** tab. 2. Record a list of all services in the portal. You must republish these services under the new connection. 3. For each service, record its visibility settings (including instance and user visibility per version) so you can restore them after reconnecting. For more information, see [Make Versions Visible](https://docs.mulesoft.com/api-experience-hub/managing-apis#make-versions-visible). 2. Record your user groups information. 1. From the **User groups** page, record all user groups and their details (for example, group names and members). For more information, see [Manage User Groups](https://docs.mulesoft.com/api-experience-hub/managing-users#manage-user-groups). 2. For each group, record the corresponding identity provider name. You need this information when you re-enable SSO and reconfigure group mapping. For more information, see [managing-users.adoc#map-user-groups-to-external-identity-providers](https://docs.mulesoft.com/api-experience-hub/managing-users#map-user-groups-to-external-identity-providers) and [Configuring SSO](https://docs.mulesoft.com/api-experience-hub/configuring-sso). ## Disconnect the Portal 1. From the **Manage your portal** page, click **Settings**. 2. Click **Disconnect Salesforce Org**. 3. To confirm, click **Disconnect Salesforce Org** in the message. ## See Also - [Connecting to Salesforce](https://docs.mulesoft.com/api-experience-hub/connecting-to-salesforce) - [Assigning Permissions](https://docs.mulesoft.com/api-experience-hub/assigning-permissions) - [Catalog Management](https://docs.mulesoft.com/api-experience-hub/managing-apis) - [Managing Users](https://docs.mulesoft.com/api-experience-hub/managing-users) --- product: API Experience Hub --- # Discovering and Consuming Services > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Using a self-service portal, developers and partners can quickly access applications, interact with documentation, and build products from existing data. API Experience Hub portals enable developers to find, consume, and reuse services that are essential to building their products. For more information, see these topics: - [Registering for Access to a Portal](https://docs.mulesoft.com/api-experience-hub/registering-for-access-to-portal) - [Discovering Services](https://docs.mulesoft.com/api-experience-hub/discovering-apis) - [Searching for Services](https://docs.mulesoft.com/api-experience-hub/searching-for-apis) - [Viewing Service Details](https://docs.mulesoft.com/api-experience-hub/viewing-api-details) - [Requesting Access to a Service Instance](https://docs.mulesoft.com/api-experience-hub/requesting-access-to-an-api-instance) - [My Applications](https://docs.mulesoft.com/api-experience-hub/my-applications) - [Downloading an API Specification](https://docs.mulesoft.com/api-experience-hub/downloading-an-api-specification) - [Using the API Console](https://docs.mulesoft.com/api-experience-hub/using-the-api-console) --- product: API Experience Hub --- # Discovering Services > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The Home page or landing page of a portal contains the carousel. The Carousel offers consumers an interactive way to explore all the available services. The carousel shows service cards in rows and columns, and divided into pages, and shows controls to filter the displayed services by type and search terms. Each card shows a service. With the carousel, you can view and explore large numbers of versions. The Services page contains the catalog of all the services in the portal. The searchable catalog shows a horizontally scrollable set of service cards. Each card shows a service. The service icon, name, and description are shown based on the service information from Exchange. ## See Also - [Searching for Services](https://docs.mulesoft.com/api-experience-hub/searching-for-apis) - [Viewing Service Details](https://docs.mulesoft.com/api-experience-hub/viewing-api-details) --- product: API Experience Hub --- # Downloading an API Specification > For the full documentation index, see: https://docs.mulesoft.com/llms.txt You can download a copy of an API specification from the API Details page by clicking **Download**. The download file type varies depending on the API: - AsyncAPI Downloads as a .json file. - GraphQL Downloads as a .json schema file. - gRPC Downloads as a .proto file. - REST API RAML If you choose As RAML, the original RAML file downloads as a zip file. If you choose As OAS, the API specification is downloaded as a zip file containing a JSON file for the specification in OAS 2.0 format. - REST API OAS If you choose **As RAML**, the API specification is downloaded as a zip file containing a RAML file for the specification. If you choose **As OAS**, a zip file containing a file in the original format of either JSON or YAML and the original OAS version, for example OAS 3.1, is downloaded. - SOAP API WSDL Downloads as a WSDL file. ## See Also - [Using the API Console](https://docs.mulesoft.com/api-experience-hub/using-the-api-console) - [Simulating API Calls Using the Mocking Service](https://docs.mulesoft.com/api-experience-hub/simulating-api-calls-using-the-mocking-service) - [Testing APIs Using an API Instance](https://docs.mulesoft.com/api-experience-hub/testing-apis-using-an-api-instance) --- product: API Experience Hub --- # Edit Service Display Details > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The following information that displays for a service can be edited: - Description - Instance visibility - Version visibility - Icon image Image files must be .png To edit the information that displays for a service: 1. From the catalog, click a service card. The Catalog management page displays the information of the service. 2. From the **Actions** options, select **Edit display details**. 3. To change the description, enter a new asset description in the **Description** field. 4. To change the instance visibility, select an option from the drop-down list. 5. To change the version visibility, select an option from the drop-down list for the corresponding version 6. To change the icon, click **Upload file** and select an approved image file type. 7. To cancel the changes, click **Cancel**. 8. To save the changes, click **Save**. --- product: API Experience Hub --- # Enabling Portal Access to Salesforce Users > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Give existing Salesforce users access to a portal so they can view your portal. Admins can enable access for Salesforce users without recreating profiles, permission sets, or setting up SSO. Use the Builder to configure access. After a user requests access, you can approve the request from the **Pending registration requests** page from **Manage users**. An email is sent to the user with instructions about how to log in. ## Enable Portal Access to Salesforce Users Enable Salesforce users to access the portal. 1. Enable Salesforce users to log in: 1. From the Builder, click the **Home** icon > **Administration** > **Login & Registration**. 2. From the **Login Page Setup** section, select **Allow employees to log in directly to an Experience Cloud Site** and click **Save**. 2. Add the API Experience Hub Member User permission set: 1. From **Administration**, click **Members**. 2. From the **Select Permission Sets** section, select **API Experience Hub Member User from Available Permission Sets** in **Available Permission Sets** and click **Add** to populate the permission set in **Selected Permission Sets**. 3. Click **Save**. 3. Add the **Existing User Request Access** Lightning component to the portal page: 1. From the Builder, click the Lightning component icon, select **Existing User Request Access** from **Custom Components**, and drag the component to where you want it located in a portal page. 2. Click the component on the page and enter these fields: - **Label**: Enter **Username**. - **Placeholder**: Enter **Enter your username**. - **Redirect to**: Enter the page name to redirect to after a user requests access. The default is to redirect users to the **Registration request successful** page. - **Button Label**: Enter a name for the access button. 4. Approve or reject the user: 1. Go to **User management** in **Catalog management** and select **Pending registration requests**. 2. Locate the user in the list and click **Approve**. ## Remove Portal Access From Salesforce Users Remove access to the portal access for existing Salesforce users who should no longer access your portal. 1. In Salesforce, go to **Setup** > **Users** > **Users** and select a specific user. 2. From **Permission Set Assignments**, delete the **API Experience Hub Member User** permission set and save your changes. The user won’t be able to log in to the portal. In the portal, the user’s name won’t appear in the **User management** > **Portal Members** list. ## See Also - [Existing User Request Access Lightning component](https://docs.mulesoft.com/api-experience-hub/api-experience-hub-lightning-components#existing-user-request-access) - [Managing Users](https://docs.mulesoft.com/api-experience-hub/managing-users) --- product: API Experience Hub --- # Enabling Single Sign-On for Your Portal > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Administrators or security teams can implement an external identity provider (IdP) as a login option for an API Experience Hub portal. Single sign-on (SSO) authentication provides a seamless login experience for your customers with your organization’s unique branding. Your users can log in to your portal without having to remember another username and password or entering login credentials multiple times. After a member of your portal visits the portal page and selects the SSO option, they’re redirected to the identity provider login page to authenticate. The SSO authentication process uses the identity provider to check the identity of a user. If the login is successful, the user that aligns with the user profile is created in Access Management. The API Experience Hub portal home page appears for the user to browse and discover services. API Experience Hub supports multiple IdPs for SSO. Access Management configures identity management for SSO for Anypoint Platform. For more information about identity providers, see [Identity Management](https://docs.mulesoft.com/access-management/external-identity) in Access Management. ## Configuring SSO The high-level steps for setting up SSO for your portal vary depending on your use case. - [configuring-sso.adoc#step-1-enable-sso-for-your-portal](https://docs.mulesoft.com/api-experience-hub/configuring-sso#step-1-enable-sso-for-your-portal) In this step, you create and configure an application in the identity provider. You can configure an identity provider for Anypoint Platform and Salesforce can be configured using OpenID Connect or SAML (Single Sign-on Settings). Microsoft Azure OpenID Connect isn’t supported. - [configuring-sso.adoc#step-2-add-salesforce-identity-providers](https://docs.mulesoft.com/api-experience-hub/configuring-sso#step-2-add-salesforce-identity-providers) In this step, you add and enable the Salesforce identity provider from API Experience Hub UI. Once the identity provider is enabled, users can see the login option from the portal’s login page. - [configuring-sso.adoc#add-group-mapping](https://docs.mulesoft.com/api-experience-hub/configuring-sso#add-group-mapping) In this step, you map the groups created in the Salesforce identity provider that you added to the corresponding team profile for the portal. - [configuring-sso.adoc#test-sso](https://docs.mulesoft.com/api-experience-hub/configuring-sso#test-sso) In this step, you test the SSO configuration that you just set up for the portal. This diagram shows the overall steps to take in the external identity provider, Anypoint Platform, and Salesforce to set up your single sign-on configuration: ![A diagram showing steps and applications required to configure SSO](/mulesoft/current/en-us/api-experience-hub/_images/aeh-sso-flow2.png) ## Out-of-the-Box Configurations API Experience Hub provides the following out-of-the-box configurations to assist the process of enabling SSO: - anypoint\_idp\_id The custom claim or SAML attribute provides the information that’s received from the identity provider that determines which Anypoint Platform identity provider to map a user to. - AEH Users - ${salesforceOrganizationId} The default Anypoint Experience Hub identity provider that’s created in Anypoint Platform to map all self-registered users. This identity provider is used when the aeh\_portal\_idp isn’t set in the identity provider. Self-registered users are mapped with the default identity provider. - AEH Portal - ${salesforceOrganizationId}\_$\*{salesforceCommunityId} This solution creates a team called AEH Portal in Access Management automatically. This team includes administrators, guests, and members profiles. You select this team when adding the group mapping. - AEHPortalRegistrationHandler.cls A single Apex class is provided in the API Experience Hub package called AEHPortalRegistrationHandler.cls that is compatible with SAML and OpenID Connect. The registration handler is Apex code that runs when a user logs in to the Salesforce Experience Cloud site. You select this handler when configuring an authentication provider for Salesforce. When the identity provider is configured properly, Salesforce passes the portal ID to the AEHPortalRegistrationHandler. If the user does not exist, the registration handler creates the user’s identity in Salesforce. If the user exists, the handler updates the user metadata based on information sent by the identity provider, for example, the user’s first name and last name. The registration handler uses the portal ID in Salesforce to load specific configurations by the portal. For example, the registration handler creates the user in the profile and account related to the portal from the NetworkSelfRegistration object. ## Basic Terminology The following terms are referenced in this topic: Authentication Provider An authentication provider is a framework that allows you to connect Salesforce to a third party for authorized data access, authentication, or both, depending on the protocol. Authentication providers can implement OAuth 2.0 to authorize Salesforce to access third-party data. Or they can implement OpenID Connect or custom authentication protocols to support both third-party data access and authentication. When you’re using authentication providers, Salesforce is always the relying party. If the authentication provider implements OpenID Connect, we refer to the third party as the OpenID provider. If it implements a custom authentication protocol, we call the third party the identity provider. Identity Provider An identity provider acts as a trusted service that authenticates a user’s identity. OpenID Connect OpenID Connect is an open standard authentication protocol built on OAuth 2.0. With OpenID Connect, the relying party and OpenID provider can exchange information about who a user is and what they can do with a service. OpenID Provider In OpenID Connect, an identity provider is called an OpenID provider. It authenticates users as requested by the relying party. Relying Party In OpenID Connect and custom authentication protocols, a service provider is called a relying party, though some use the terms interchangeably. It relies on the OpenID provider or identity provider for authentication. Security Assertion Markup Language (SAML) SAML is an open standard authentication protocol that you can use to implement SSO in your Salesforce org. SAML allows identity providers and service providers to securely exchange user information, enabling user authentication between services. Single Sign-On Single sign-on (SSO) is an authentication method that enables users to access multiple applications with one login and one set of credentials. For example, after users log in to your org, they can automatically access all apps from the App Launcher. You can set up your Salesforce or Anypoint Platform organization to trust a third-party identity provider to authenticate users. Or you can configure a third-party app to rely on your org for authentication. ## See Also - [user-roles-permissions-and-profiles.adoc#user-roles-for-configuring-sso](https://docs.mulesoft.com/api-experience-hub/user-roles-permissions-and-profiles#user-roles-for-configuring-sso) - [Gathering Setup Information for SSO](https://docs.mulesoft.com/api-experience-hub/gathering-set-up-information) - [Configuring SSO](https://docs.mulesoft.com/api-experience-hub/configuring-sso) - [Troubleshooting Single Sign-On Errors](https://docs.mulesoft.com/api-experience-hub/troubleshoot-sso-errors) - [Managing Users](https://docs.mulesoft.com/api-experience-hub/managing-users) --- product: API Experience Hub --- # Gathering Setup Information for SSO > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use these sections to gather the information you’ll need to set up SSO. You might need to collaborate with your security team or other team members if you don’t have access to this information. For more information, see [User Roles for Configuring SSO](https://docs.mulesoft.com/api-experience-hub/user-roles-permissions-and-profiles#user-roles-for-configuring-sso). ## Username Assignment Strategy for a Shared Identity If an identity provider is configured for your Anypoint Platform organization, review the username assignment strategy because it can be different for the portal and Anypoint Platform users. To have a single identity between the portal and Anypoint Platform, the format for the username assignment must be the same. If the username strategy doesn’t match, reconcile the username format by adding attributes for `anypoint_idp_id` and `anypoint_username`. Then, map this information to the Anypoint Platform identity provider that you are using for SSO. For more information about adding custom claims when the identity provider is already configured but not in the required format, see _Required Claims and Attributes for SSO_. ## Required Claims and Attributes for SSO Be aware of API Experience Hub requirements for claims or attributes when creating a new application for the portal in the identity provider. Configuring the required user claims in the identity provider ensures that the user information is mapped correctly to Salesforce and Anypoint Platform users. The **AEHPortalRegistrationHandler** requires specific user information from the identity provider to create or update a user. The registration handler uses required claims to extract user information. This table lists the required information and which claims the information is extracted from. If more than one claim exists for the same value, the registration handler looks for the first expected claim in the order it appears in the table:
FieldExpected Claims

First Name

given_name, first_name, firstname, and firstName

Last Name

family_name, last_name, lastname, and lastName

Email

email, email_address, and emailAddress

Username

preferred_username, federation_identifier, email, sub, and NameId

Groups

groups

To configure SSO when the identity provider is already configured for Anypoint Platform, use this information:
FieldDescriptionExpected Values

Anypoint Idp Id

Map identities to the specific identity provider in Anypoint Platform.

anypoint_idp_id

Anypoint Username

Explicitly specify the Anypoint Platform user if the user’s identity exists in Anypoint Platform, but the username is different than the Salesforce user.

anypoint_username

If the required information is not in the supported format, create a new custom attribute or claim with the supported format. For information, see the documentation for the identity provider. ## See Also - [User Roles for Configuring SSO](https://docs.mulesoft.com/api-experience-hub/user-roles-permissions-and-profiles#user-roles-for-configuring-sso) - [Configuring SSO](https://docs.mulesoft.com/api-experience-hub/configuring-sso) --- product: API Experience Hub --- # Getting Started with API Experience Hub > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Ensure you have the required accounts, access, and setup, then start using API Experience Hub. ## Before You Begin Verify that you have the following required accounts and access: - Anypoint Platform organization in production - Salesforce organization - Organization Administrator of the main organization - You must either have the System Administrator profile or be a Salesforce user with the AEH\_Anypoint permission set assigned in the Salesforce organization that you’re connecting to during the linking process. For more information, see [Assigning Permissions](https://docs.mulesoft.com/api-experience-hub/assigning-permissions). The process of creating your portal includes connecting with Salesforce Experience Cloud to link your Anypoint Platform organization to your Salesforce organization. - API Experience Hub license - Minimum of 2000 External Identity licenses The current package has a minimum of 100 services access requests, which require a minimum of 2000 External Identity licenses. To set up an organization, you can have the following Salesforce editions: - Unlimited Edition - Enterprise Edition - Performance Edition of Salesforce If you don’t have the required accounts and access, issues might occur during the Salesforce linking process when creating your portal. ## Start Using API Experience Hub The following users can get started with these tasks: **Administrators**: Administrators can create a portal in these easy steps: 1. [Assign permissions](https://docs.mulesoft.com/api-experience-hub/assigning-permissions) Set up the necessary permissions for administrators to connect to Salesforce and create a portal. 2. [Connect to Salesforce](https://docs.mulesoft.com/api-experience-hub/connecting-to-salesforce) The instance can be a new or existing Salesforce organization. To connect, specify the environment type and enter the custom Salesforce domain if you have one, log in, allow the permissions, and confirm the account. 3. [Set up and style your portal](https://docs.mulesoft.com/api-experience-hub/setting-up-the-api-portal) Once you’re connected to Salesforce, set up and style the portal’s out-of-the-box pages with logos, fonts, color schemes, and more. 4. [Manage your portal](https://docs.mulesoft.com/api-experience-hub/managing-your-portal) Manage services by adding agents, APIs, LLMs, and MCP servers from Exchange and setting the visibility for the service versions. Manage users by approving access requests from guest users. 5. [Preview and publish your portal](https://docs.mulesoft.com/api-experience-hub/previewing-and-publishing-your-portal) Publish the portal to make it available to your community. **Developers**: Developers can discover and consume services using these tasks: 1. [Registering for Access to a Portal](https://docs.mulesoft.com/api-experience-hub/registering-for-access-to-portal) 2. [Searching for Services](https://docs.mulesoft.com/api-experience-hub/searching-for-apis) 3. [Viewing Service Details](https://docs.mulesoft.com/api-experience-hub/viewing-api-details) 4. [Requesting Access to a Service Instance](https://docs.mulesoft.com/api-experience-hub/requesting-access-to-an-api-instance) 5. [View your applications that hold a contract with a service](https://docs.mulesoft.com/api-experience-hub/my-applications) 6. [Downloading an API Specification](https://docs.mulesoft.com/api-experience-hub/downloading-an-api-specification) 7. [Inspect API Console specification and documentation](https://docs.mulesoft.com/api-experience-hub/using-the-api-console) ## See Also - [User Roles, Permissions, and Profiles](https://docs.mulesoft.com/api-experience-hub/user-roles-permissions-and-profiles) - [Licensing](https://docs.mulesoft.com/api-experience-hub/licensing) - [Connecting to Salesforce](https://docs.mulesoft.com/api-experience-hub/connecting-to-salesforce) --- product: API Experience Hub --- # Licensing > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Licenses are procured and provisioned by MuleSoft. API Experience Hub requires two types of licenses: - Salesforce This license is required to use the Salesforce Experience Builder. - External Identity This license is based on the number of member requests to access the portal. The current package has a minimum of 100 service access requests which require a minimum of 2000 External Identity licenses. This is required for the portal consumers to access the portal. To set up an organization, you can have the following Salesforce editions: - Unlimited Edition - Enterprise Edition - Performance Edition of Salesforce --- product: API Experience Hub --- # Limitations > For the full documentation index, see: https://docs.mulesoft.com/llms.txt This release has the following limitations: - API Experience Hub does not use platform cache. - API Experience Hub functions at the main organization level only. - A Salesforce organization can’t connect to more than one Anypoint organization. - Multiple portals per Salesforce organization aren’t supported. - API Groups aren’t available. - The maximum number of user groups is 100. - New portals can have a maximum of 7,000 services. - Existing portals can have a maximum of 350 services. Don’t make changes to the permissions of the out-of-the-box Teams created in Access Management for API Experience Hub. Each service added to the portal uses two permissions and Access Management has a limit of 1,000 permissions per team. - Enable scalability on the **Catalog management** page to increase the maximum number of services to 7,000 for the portal. After you enable this option, you can’t revert to the portal version that supports up to 350 services. For more information, see [Opt in to Increase the Number of Services in the Portal](https://docs.mulesoft.com/api-experience-hub/managing-apis#opt-in-to-increase-the-number-of-services-in-the-portal). - API Experience Hub isn’t certified for use on mobile devices. Some functionality works on mobile devices, but some functionality such as the API Console does not. - IP restrictions aren’t supported. For more information, see the [Troubleshooting](https://docs.mulesoft.com/api-experience-hub/troubleshooting) section. - Validation rules can’t be applied to standard objects that are created during the Salesforce linking process. For more information, see the [Troubleshooting](https://docs.mulesoft.com/api-experience-hub/troubleshooting) section for a work around. - The maximum pending user registration requests is 500. For more information, see [Managing Users](https://docs.mulesoft.com/api-experience-hub/managing-users). - The community portal’s default name API Experience Hub can’t be changed. Changing the name of the portal generates errors in the configuration. - You can’t change the names of services in API Experience Hub. - API Experience Hub Lightning custom components support English only. For more information, see [API Experience Hub Lightning Components](https://docs.mulesoft.com/api-experience-hub/api-experience-hub-lightning-components) - Microsoft Azure OpenID Connect isn’t supported. --- product: API Experience Hub --- # Managing Client Applications and Contracts > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Client applications and contracts requested through API Experience Hub are created in API Manager. Depending on the SLA tier configuration, they’re approved automatically or they require approval by the owner of the service or group. To review and approve contracts, refer to the API Manager documentation. ## See Also - [My Applications](https://docs.mulesoft.com/api-experience-hub/my-applications) --- product: API Experience Hub --- # Managing Users > For the full documentation index, see: https://docs.mulesoft.com/llms.txt View and manage users, access requests from guest users, create and manage user groups, and manage how users log in. By default, users can self-register for your portal. ## Manage Portal Members Manage portal members using the **Portal members** page. When a guest user’s registration or an existing Salesforce user is approved, the user’s name is added to the list of members. You can view a searchable list of current members and manage their accounts by enabling or disabling them and adding them to user groups. ### View and Search for Members Find members by entering the member’s name or email address in the **Search by name or email** box. ### Enable or Disable Access to Your Portal When a user’s access to the portal is approved in the **Pending registration requests** page, the **Enable portal access** slider is enabled in the **Portal members** page. Disable a user’s access by moving the slider to off. ### Assign Members to User Groups Assign users to user groups to manage which services they can see in your portal. You can assign a user to multiple user groups or change user groups. 1. From the **Portal members** page, locate the member’s name in the list and click **View and assign user groups**. 2. Select one or more user groups and click **Apply**. ## Manage Pending Registration Requests Admins must manually approve or reject requests for users who want to access the portal using the **Pending registration requests** page. You can view the name, email, registration date, and registration status of the users who register for access. By default, users are assigned to the Members profile. You can add them to the available user groups that can see specific services in the portal. The maximum pending user registration requests is 500. When the registration is approved, the user is removed from the list on the **Pending registration requests** page and added to the list of members on the **Portal members** page. If the registration is rejected, the user is removed from the list and can’t log in and access the portal. ### Approve or Reject Member Registration After a guest user registers or an existing Salesforce user requests access, approve or reject the requests and assign the user to user groups. All users who self-register are assigned to the Members profile as well as existing Salesforce users who request access. You can assign member users to multiple user groups. 1. Click **Pending registration requests**. 2. To find a user, enter the user’s name or email in the **Search by name or email** box. 3. To assign the user to a user group: 1. Click **Members** and select one or more user groups. 2. Click **Apply**. 4. Click **Approve** or **Reject**. ## Manage User Groups Create and manage a group of users who can see specific services in your portal using the **User groups** page. The maximum number of user groups is 20. Before deleting a user group, remove all users, services, and the visibility for all instances assigned to the user group. - To create groups of users who can see specific services in the portal: 1. From the **User groups** page, click **Create user group**. 2. Enter a name for the group and an optional description. 3. Click **Save**. - To delete a user group, from the **User groups** page, select a user group and click **Delete user group**. ### Map User Groups to External Identity Providers To let users of a user group log in to your portal using SSO, map the user group to an existing external identity provider. To avoid login issues, use the same group name and identity provider name configured for the identity provider. To add the user group to the corresponding profile in API Experience Hub: 1. From the **User groups** page, select a group. 2. In the **External IdP groups** tab, click **\+ Add group mapping**. 3. Enter the group name and select a Salesforce identity provider name. 4. Click **Save**. ### View Services That User Groups Can See To view the services that are visible by a user group for portal members and also the APIs assigned only to a user group. The **Services visible to the user group** tab shows all of the APIs that members of the portal can see. 1. From the **User groups** page, select a user group. 2. Select the **Services visible to the user group** tab. 3. To see services assigned to the group only, turn on **Services assigned to this group**. To view or change a service’s visibility, see [Make Versions Visible](https://docs.mulesoft.com/api-experience-hub/managing-apis#make-versions-visible). ### Delete Identity Provider Groups To remove the external identity provider groups that you don’t need: 1. From the **User groups** page, select a user group. 2. Select the **External IdP groups** tab. 3. Locate the group in the list and click **Remove group**. ## Manage Login Settings Disable or enable self-registration for external users and set up single sign-on for your portal using the **Login settings** page. Self-registration enables guest users to register themselves as members of your portal. From the **Pending requests** page, you can see a list of pending requests from guest users who want to access your portal. ### Disable or Enable Self-Registration By default, the ability for external users to self-register is enabled. This allows guest users to register, become a member, and access your portal site. Administrators can disable self-registration. > [!NOTE] Self-registration is for new users only. Existing users can’t self-register. They must use > an identity provider to access the portal. To disable external user registration, from the **Login settings** page turn off the **Allow external user registration** option. To enable external registration again, turn on the **Allow external user registration** option. ### Configuring Single Sign-On (SSO) The **Single sign-on (SSO)** section provides information about how to set up your portal with SSO. For detailed instructions about configuring SSO, see [Enabling Single Sign-On for Your Portal](https://docs.mulesoft.com/api-experience-hub/enabling-sso-for-your-portal). ### Manage Salesforce Identity Providers When enabling SSO, you can add new Salesforce identity providers and delete the providers that you previously configured, and enable and disable them as needed. When the identity provider is enabled, users can log in to the portal using this identity provider. To add a new identity provider or delete an existing one: 1. From the **User management**, select **Login settings**. 2. From the **Single sign-on (SSO)** section, scroll to the **Add Salesforce identity providers** section. 3. Click **Select identity provider** and select an option from the dropdown menu. 4. Click **\+ Add identity provider**. The identity provider is added to the list. 5. If you want to delete the identity provider, click **Delete**. To enable or disable an identity provider: 1. From the **Single sign-on (SSO)** section, scroll to the **Add Salesforce identity providers** section. 2. Move the slider to **Enabled** next to the name of the identity provider. 3. If you want to disable the identity provider, move the slider to **Disable**. ## Next Steps You can further customize and brand your portal using the [Experience Builder](https://docs.mulesoft.com/api-experience-hub/customizing-your-portal) by clicking **Preview and publish your portal**. ## See Also - [Registering to Access a Portal](https://docs.mulesoft.com/api-experience-hub/registering-for-access-to-portal) --- product: API Experience Hub --- # Managing Your Portal > For the full documentation index, see: https://docs.mulesoft.com/llms.txt After your portal is styled using the guided design, the **Manage your portal** page provides options to manage services, users, settings, environments, and surfaces issues that occur while managing the portal. - [Catalog management](https://docs.mulesoft.com/api-experience-hub/managing-apis) Add your services from Exchange into your portal, remove services from your portal, view list of services that you have in Exchange, and change the visibility of a version. - [User Management](https://docs.mulesoft.com/api-experience-hub/managing-users) View and manage members and pending requests. - Settings [View information about your portal’s Salesforce account](https://docs.mulesoft.com/api-experience-hub/viewing-salesforce-account-information) and [disconnect the portal](https://docs.mulesoft.com/api-experience-hub/disconnecting-the-portal). - [Environments](https://docs.mulesoft.com/api-experience-hub/working-with-sandboxes) Manage separate deployment environments for your portal. You can connect to multiple Salesforce sandbox organizations and switch between them. ## Viewing Issues on Catalog Management Pages API Experience Hub provides diagnostic checks that run in the background to identify issues with the portal and attempt to fix them automatically or provide troubleshooting options. Checks are triggered when loading or refreshing a page and performing an action on the UI. These checks help administrators identify error states and troubleshoot issues. When issues are detected on Catalog management pages, a message displays in the banner of the page. The message indicates that there are some detected issues that the system is trying to fix. ![An example of the banner with detected issues](/mulesoft/current/en-us/api-experience-hub/_images/error-message-banner.png) If there are still issues after all checks and patches are attempted, the banner shows a message that there are issues that require you to act on. To see more information about these issues, click **View details**. The following minimal prerequisite checks run each time pages in the portal are loaded or refreshed: - Connection with Salesforce is operational. - The API Experience Hub package is installed in the Salesforce organization. - Access Management team for the out-of-the-box profiles are created. - The shared user (Experience Builder preview) exists and has all the necessary permissions to log in to Salesforce and interact with the Experience Builder. Issues can have the following severity: - Error Issues that block you from using one or multiple functions in the portal. - Warning Issues that indicate something isn’t working as expected, but you can still use the portal without addressing the issues. - Info Information that is helpful for you to know but isn’t blocking you from using the portal. --- product: API Experience Hub --- # My Applications > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The **My Applications** page enables you to review the lists of applications that hold a contract with a service. Each client application has a client ID, client secret, description, URL, redirect URIs, grant types, and last updated date. Services that are protected by a client ID enforcement policy require client applications to provide a client ID and optional client secret. The client ID and client secret credentials are automatically created when the client application is registered. For more information about registering an application, see [Requesting Access to a Service Instance](https://docs.mulesoft.com/api-experience-hub/requesting-access-to-an-api-instance). ## Search for Applications If the **My Applications** page lists several applications, search for a specific one by using the Search box. Enter the application name or description of the application and press Enter or Return. The number of applications that match your search criteria displays in the list of search results. ## View and Copy Client Credentials To view the details of a client application, from the **My Applications** page, click the application from the list to display the **Application Details** page. You can view and copy client credentials as follows: - Click **View credentials** from the **My Applications** page. - To copy the client ID or client secret to the clipboard, click the Copy to clipboard icon. - To show the client secret, click the Show Client Secret icon. - To hide the client secret, click the Hide Client Secret icon. ## Application Details To view the details of a client application, from the **My Applications** page, click the application from the list to display the Application Details page. You can view the following details about an application: - Application URL Displays the application’s internet address. Click the link to go to the URL. - Last updated Displays the date and time when the application credentials were last modified, in your local timezone. - Client Credentials Displays the application’s client ID and client secret. - OAuth 2.0 Redirect URIs Lists the application’s redirect URIs. - OAuth 2.0 Grant Type Lists the application’s grant types. - Contracts From the Contracts section, you can see the application’s service name, environment and instances, instance URLs, SLA tier, and request access state. The environment can be either a sandbox or development environment. Request access states can be `pending`, `approved`, or `failed`. From the **Application Details** page, you can: - Reset the client secret. - Edit the client applications details. - View the instance URL. - Add an SLA tier. - Change the SLA tier. - Delete the client application. ### Reset Client Secret You can reset the client secret for an application on a regular cadence to ensure security when users leave the organization or to ensure that the secret isn’t accidentally exposed to unauthorized users. From the **Application Details** page, you can reset the client secret for an application. Applications using the current client secret can’t access any of the services with which they were registered. To reset the client secret: 1. From the **Client Credentials** section, click **Reset client secret**. 2. Click **Confirm**. 3. To view the new client secret, click the View icon. ### Edit the Client Application Details You can edit a client application name, description, OAuth 2.0 grant type, OAuth 2.0 Redirect URIs, and SLA Tier from the Application Details page. 1. From the **My Applications** section, click the application name in the list. 2. Click **Edit**. 3. From the **Application Details** page, edit the corresponding fields. 4. Click **Save**. ### View and Copy the Instance URL To view the instance URL for a service by clicking **View URL** and copy it by clicking the **Copy to clipboard** icon. ### Add an SLA Tier SLA tiers are defined in API Manager and display as SLA Tier options in the Application Details page. If an application does not have an SLA tier listed, you can request to add an SLA tier. The instance owner must approve the tier. 1. From the **My Applications** section, click the application name in the list. 2. From the **SLA Tier** column of the **Contracts** section, click + Add. 3. From the **Add SLA Tier** list, select from the list of tiers. 4. Click **Save**. When the request access is approved, the Request Access State column displays the Approved state and an email is sent to the member. ### Change the SLA Tier The SLA tier can limit the number of requests an application can make to the service. You can increase or decrease the number of allowed requests. You can change the SLA tier for an application from the Application Details page. The available SLA tiers are set by an admin in API Manager. The owner of the API instance must approve the request to change the tier level. To edit the SLA tier for a client application: 1. On the **My Applications** page, click the name of the application in the list. 2. From the **SLA Tier** column of the **Contracts** section that you want to change, click the SLA tier edit option. 3. From the **Edit SLA Tier** dialog, select from the list of SLA tiers. 4. Click **Save**. 5. Click **Okay** to close the message. ### Delete a Client Application When you no longer need the contract for a service, you can delete it. Once the application is deleted, there is no longer a contract with the service and you can’t access it. To regain access, you must request access to the service again. To delete a client application: 1. On the **Application Details** page for the application, click **Delete**. 2. In the **Delete application** message, click **Delete**. The application is removed from the **My Applications** page. --- product: API Experience Hub --- # Previewing and Publishing Your Portal > For the full documentation index, see: https://docs.mulesoft.com/llms.txt After managing and curating your portal, you can preview your changes in the Builder, then publish it for your users. The URL for the portal isn’t accessible until the portal is published. When you publish your site for the first time, the portal URL is live and login access is enabled. To preview and publish the portal, follow these steps: 1. From the **Manage your portal** page, click **Preview and publish your portal**. 2. Review your changes and click **Publish**. You receive an email confirmation when your changes are live. The email contains the URL link to the published site. ## View URL for a Live Published Portal To view the URL for the live published portal, in the Builder, go to **Settings** > **General**. The **Published Status** section displays the URL for the live published portal. ## See Also - [Customizing Your Portal Using the Experience Builder](https://docs.mulesoft.com/api-experience-hub/customizing-your-portal) - [Discovering and Consuming Services](https://docs.mulesoft.com/api-experience-hub/discovering-and-consuming-apis) --- product: API Experience Hub --- # Registering for Access to a Portal > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Users who access a portal without logging in can’t perform most actions in the portal, like requesting access to services to use them. Becoming a member gives you access to more services and functionality. New users can sign up for an account to become a member. After signing up, API Experience Hub sends a welcome email that contains a link to set up the account and password. To register for an account: 1. In a browser window, enter the URL of the portal. 2. Click **Log in**. 3. Click **Not a Member?**. 4. Enter your first name, last name, and email address. 5. Click **Sign Up**. 6. Follow the instructions in the welcome email to set up your account. ## See Also - [Discovering Services](https://docs.mulesoft.com/api-experience-hub/discovering-apis) - [Searching for Services](https://docs.mulesoft.com/api-experience-hub/searching-for-apis) --- product: API Experience Hub --- # Requesting Access to a Portal for Salesforce Users > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Salesforce users can request portal access when they don’t have Single Sign-On (SSO) configured. Before you request access, confirm that you don’t have a Single Sign-On (SSO) configuration. Having an SSO configuration can cause issues in the portal. For example, you might not see all services available to you if they are not available in the SSO configuration. If the request access component is available on a portal, Salesforce users can request access. Users can request access by entering their username and clicking the **Request access** button or the **Submit request** button. When the request is approved, an email is sent with login information. ## See Also - [Discovering Services](https://docs.mulesoft.com/api-experience-hub/discovering-apis) - [Searching for Services](https://docs.mulesoft.com/api-experience-hub/searching-for-apis) --- product: API Experience Hub --- # Requesting Access to a Service Instance > For the full documentation index, see: https://docs.mulesoft.com/llms.txt From the Service Details page, member users request access to an instance to which to register a client application. They do this by selecting an instance, selecting or creating a client application, and optionally selecting a service-level agreement (SLA). When the owner of the instance approves the request, a contract is created between the client application and the instance, and the client application is registered. Instances that the client ID enforcement policy protects require client applications to provide a client ID and an optional client secret. Once the request for access is approved, the client application is registered and the client ID and client secret credentials are automatically created. Member users can request access to an instance of a service that is published in the portal. These users can either create a new application or use an application that they already created to request access. If terms and conditions are set for an asset, you’re prompted to accept the terms before access is granted. The created contract includes the terms and conditions. ## Before You Begin Before you can request access to a service, you must be a member user and be logged into the portal. See [Registering for Access to a Portal](https://docs.mulesoft.com/api-experience-hub/registering-for-access-to-portal) ## Use an Existing Application to Request Access to a Service You can request access to a service by using an existing application: 1. Click a service to open the **Service Details** page. 2. Click **Request access**. 3. In the instance list, select an instance. 4. In the **Client application** list, select an application. An application and its instance use the same client provider. If an organization administrator has configured multiple client providers in Anypoint API Manager, then the application list shows only the applications that use the same client provider as the selected instance. 5. From **SLA tier**, select a service-level agreement (SLA) value for the application. The SLA tier appears only when the instance has one or more tiers. 6. If the service has terms and conditions, select **I accept the terms and conditions**. 7. Click **Request access**. A Request access message displays to inform you that the request was received and is pending. If the SLA tier has auto-approval, the message shows that the request access was approved, and the application displays in the My Applications page. If the SLA tier has auto-approval, the application is received and approved. 8. Click **Okay** to close the message. 9. To see the application details, go to the **My Applications** page. The **My Applications** page lists the client ID and client secret for this access instance. ## Create a New Application to Request Access to a Service If you do not have an application to use to request access, create a new application: 1. From the Catalog, click a service to open the **Service Details** page. 2. Click **Request access**. 3. From the **Service instance** list, select an instance. 4. From the **Client application** options, select **Create a new application**. 5. From the **Name** field, enter a client application name. 6. From the **Description** field, enter a description of the client application. 7. From the **OAuth 2.0 Grant Type** options, if there are grant types for the application, select a grant type. 8. From the **OAuth 2.0 Redirect URIs** field, enter a URI address. 9. From the **Application URL** field, enter a URL. 10. From the **SLA tier** options, select a service-level agreement (SLA) value for the application. 11. Click **Request access**. If auto-approval is enabled for the SLA tier, a message displays that the application is approved. If auto-approval isn’t enabled, a message displays that the request is pending. When the application is approved, an email is sent. 12. Click **Okay** to close the message. 13. To see the application details, go to the **My Applications** page from the portal. The **My Applications** page lists the client ID and client secret for this access instance. ## See Also - [Viewing Service Details](https://docs.mulesoft.com/api-experience-hub/viewing-api-details) - [My Applications](https://docs.mulesoft.com/api-experience-hub/my-applications) --- product: API Experience Hub --- # Searching for Services > For the full documentation index, see: https://docs.mulesoft.com/llms.txt From the **Home** and **Services** pages, search the catalog by a service name to find a specific service. Enter at least four characters in the **Search all services** box then select an option from the results. ![Search box to enter a service name](/mulesoft/current/en-us/api-experience-hub/_images/aeh-search-by-api-name-box.png) Filter the service by category and type to further refine your search results. The filter options display depending on which service categories and types are available in the portal. To filter by categories or tags, select one or more options from **All categories** or **All service types** and click **Apply**. From the **Home** page, you can also filter the carousel by clicking on any of the service type cards. ![Service cards you can select to filter results by service type](/mulesoft/current/en-us/api-experience-hub/_images/aeh-api-type-filter.png) ## See Also - [Viewing Service Details](https://docs.mulesoft.com/api-experience-hub/viewing-api-details) --- product: API Experience Hub --- # Setting Up the Portal > For the full documentation index, see: https://docs.mulesoft.com/llms.txt After connecting to your Salesforce organization, the guided setup takes portal administrators through the process of setting up the portal, including creating and styling it using out-of-the-box templates. You can create a new portal, use an existing portal to create the new portal, or create the portal later. The option to create a new portal uses an existing portal that was disconnected from a Salesforce organization. The new portal uses the styling metadata from the existing portal. Selecting this option from the guided setup enables you to quickly set up the portal without going through the styling process. Because you can have only one Salesforce organization per portal, the existing portal is overwritten with the new portal for that Salesforce organization. The guided design contains basic styling options for the Home, Catalog, and Service Details pages with a live preview to help you visualize your portal. Each page includes a progress bar to see where you are in the portal design process. Styling a portal includes the following tasks: 1. Style the Home page The Home page is the landing page of your portal and is also known as the Carousel. The template includes adding a logo, banner image, org branding, banner title, description of the portal, and footer configuration. 2. Style the Catalog The Services page contains the collection of services in your portal and is known as the Catalog. The template includes customizing the colors for each service type like agents, APIs, LLMs, and MCP servers. 3. Style the Service Details page The Service Details page displays information about a service. The template includes the name, type of service, owner email address, and a description of the service. ## Set Up a Portal Set up a portal by choosing how to create the portal. 1. From the **Set up portal** page of the guided setup, select an option to create the portal: 1. To create a new portal, click **Create new portal**. 2. To create a new portal using an existing portal’s styling selections, click **Use existing portal** and click **Override and create new portal**. 3. To create the portal at a later time, click **Set up portal later**. ## Style Your Portal Follow the guided design and click **Next** to advance through the steps. > [!NOTE] If you refresh the page or leave the guided design, the progress in the guided setup does > not persist. You must complete all of the steps again. ## Before You Begin Before styling your portal, you need the following: - Image of your company logo - Color scheme for the portal - Fonts for company branding - Image to use as a header for your portal ## Style Portal Homepage Follow the guided steps to style the homepage: 1. To add a company logo, drag or upload an image file to **Upload company logo**. The supported file formats are PNG, JPEG, SVG, and GIF. 2. To add a banner image, drag or upload an image file to **Select banner image**. The supported file formats are PNG, JPEG, SVG, and GIF. 3. To brand your org with fonts and colors, from **Customize org branding**: - Select a font style from the drop-down menu. - Select a font color for the banner image from the color picker. - Select a page background color from the color picker. 4. To add a title for your portal banner, enter the title in the **Enter portal banner title** text box. 5. To add a description for your portal, enter the description in the **Enter portal description** text box. 6. To add footer text and a URL, enter the footer text and URL in the corresponding text boxes from **Configure footer**. 7. Click **Next** to style the Catalog. ## Style Catalog Follow the guided steps to style the Catalog: 1. To customize the color of specific services, select a color from the color picker for the corresponding service type from **Customize colors**. 2. To add a banner title for your Catalog, enter the title in the **Enter catalog banner title** text box. 3. To add a description for your Catalog, enter the description in the **Enter catalog description** text box. 4. Click **Next** to style the Service Details page. ## Style Service Details Follow the guided steps to style the Service Details page: 1. To show the service owner’s email, enable **Service Contact** from **Customize service information**. 2. To show client applications on the **Service Details** page, enable **Service Clients** from **Customize service information**. 3. To add a banner title to the Service Details page, enter the title in the **Enter service detail banner title** text box. 4. To add a description of the Service Details page, enter the description in the **Enter service detail description** text box. 5. If you’re not done styling your portal, click **Previous** to change the styling on previous pages. 6. If you’re done styling your portal, click **Save changes**. The process of saving your styles and creating the portal can take several minutes. You can navigate away from the page. ## Default Settings The following settings are set by default when the portal is created: - Self-registration for guest users is enabled by default - Status of the portal is active. ## Next Steps Now that your portal is created, you can manage services by adding them to the portal, manage users, view settings information, and disconnect a portal from the [Manage your portal](https://docs.mulesoft.com/api-experience-hub/managing-your-portal) page. ## See Also - [Managing Your Portal](https://docs.mulesoft.com/api-experience-hub/managing-your-portal) - [Troubleshooting](https://docs.mulesoft.com/api-experience-hub/troubleshooting) --- product: API Experience Hub --- # Simulating API Calls Using the Mocking Service > For the full documentation index, see: https://docs.mulesoft.com/llms.txt To simulate calls to your API, use the mocking service in the API Console of the portal, you can simulate calls to your API. The mocking service is a feature of Anypoint that enables you to generate simulated servers to help you develop and test APIs. These mock servers imitate the actions of accepting requests and providing responses. The mocking service replicates the functionality of a genuine API. ## Before You Begin You must have an API specification with at least one endpoint and one method in it. ## Simulate a Call to an API Using an Internal URL To access the internal URL, you must specify the authorization headers as part of the request URL. To test an API without supplying authorization headers, generate a mocking service public URL for this project. The mocking service is the selected server in the **Try it** pane. 1. On the **Home** or the **Services** page, select a REST API. 2. Select the **API specification** tab. 3. Click a method like `GET`. 4. In the **Documentation** pane, review the requests and responses data. 5. In the **Try it** pane, enter query parameters you want to test. You can enter query parameters as name-value pairs. 6. Click **Send**. API Console displays the HTTP return code as specified in your API. Alternately, you can test the API by copying the Request URL and paste it into a web browser or Postman. ## See Also - [Using the API Console](https://docs.mulesoft.com/api-experience-hub/using-the-api-console) --- product: API Experience Hub --- # Testing APIs Using an API Instance > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The API Console enables you to test an API using an API instance as a server. API instances let you interact with a server by sending requests and getting responses with actual data. ## Before You Begin You must have an API specification with at least one endpoint and one method in it. ## Test an API Using an Instance 1. On the **Home** or the **APIs** page, select a REST API. 2. Select the **API specification** tab. 3. In the **Specification** pane, click a method like `get`. 4. In the **Try it** pane, select an instance URL from the **Select Server** options. 5. Enter any query parameters you want to test. 6. Click **Send** to send data to the API. 7. Verify the returned responses from the API. --- product: API Experience Hub --- # Troubleshooting > For the full documentation index, see: https://docs.mulesoft.com/llms.txt If you encounter errors, refer to the following instructions for recovery. ## Can’t See Images in the Builder Preview That Were Uploaded When Creating the Portal In the Builder preview, you cannot see the images that were uploaded when creating the portal because the shared user isn’t a member of any libraries. To add the shared user as a member of the asset library: 1. Log in to the Salesforce organization as a System Administrator. 2. Click the **App Launcher**, enter **files** in the search box, and select **Files**. 3. Click **Libraries** in the navigation pane. 4. Click **Asset Library** in the list. 5. Click **Manage Members**. The **Manage Library Members** screen opens. 6. In the **Add Members** field, click the down arrow next to the stack icon and select **People**. The **Add Members** field shows the **search people** box. 7. Click in the **search people** box and select **Builder Preview**. 8. In the **Access** field, select **Author**. 9. Click **Add** to allow the Builder Preview user to upload images in the Builder for later use. The **Current Members** section shows the **Builder Preview** member and **Author** access. 10. Close the screen. 11. Confirm that the Builder Preview user can see the library images in the Builder. 12. Reload the page if the images aren’t showing up. ## API Experience Hub Does Not Show on the Anypoint Platform Landing Page If API Experience Hub does not show on the Anypoint Platform landing page, ensure that you’re using the main organization. Contact the MuleSoft administrator to ensure that the entitlement is enabled. ## Error Occurs When Changing the Relax IP Restrictions Option In this release, IP restrictions for the connected app aren’t supported. By default, the IP Restrictions field is set to `Relax IP Restrictions`. If you have Trusted IP Ranges in your organization, they are bypassed by the connected app. To avoid errors, don’t change the **IP Restrictions** field from `Relax IP Restrictions` because it produces errors when creating the portal. ## Error Saving Changes to the Portal When an Object Has Validation Rules Activated An error occurs when saving styling changes to the portal if an object has validation rules applied for standard objects that are created during the Salesforce linking process. You can’t apply validation rules to Salesforce standard objects, such as account and user objects, that are created during the Salesforce linking process. The workaround is to bypass the validation rule for the Salesforce user who performs the linking process. This user must have the System Administrator profile to perform the linking process. > [!NOTE] These instructions pertain to bypassing account object validation rules but can apply to > bypassing custom validation rules of other objects. You can also use an existing permission set > instead of creating a new one. 1. Create a custom permission: 1. From Salesforce, go to **Setup**, enter **custom permissions** in the **Quick Find** box, and select **Custom Permissions**. 2. Click **New** and enter the permission information: - **Label** Enter **Bypass Account Validation Rule**. - **Name** Click the field to populate it with the label name with underscores. - **Description** Enter a description for the permission. 3. Click **Save**. 2. Create a permission set and add the custom permission: 1. From **Setup**, enter **permission sets** in the **Quick Find** box and select **Permission Sets**. 2. Click **New** and enter the permission set information: - **Label** Enter **Bypass Account Validation Rule**. - **Name** Click the field to populate it with the label name with underscores. 3. Click **Save**. 4. Click **Bypass Account Validation Rule** and select **Custom Permissions** from the **Apps** section. 5. From **Available Custom Permissions**, select **Bypass Account Validation**, click **Add**, and then click **Save**. 6. From the **Custom Permissions** list, select **Bypass Account Validation** and **Save**. 7. From **Object Manager**, select **Validation Rules**. 8. Select the object used for the validation rule and click **Edit**. 9. In the **Error Condition Formula** box, enter the following: AND ( NOT($Permission.Bypass\_Account\_Validation), ISBLANK (Website) ) 10. Click **Save**. 3. Assign the permission set to the user performing the linking process: 1. From **Setup**, enter **permission sets** in the **Quick Find** box and select **Permission Sets**. 2. Click **Bypass Account Validation Rule** and click **Manage Assignments**. 3. Click **Add Assignment**, select the user, and then click **Next**. 4. Click **Assign**. 5. Perform the Salesforce linking process using the user with the bypass permission set. ## Error When Installing the Package During the Connection Process If you encounter errors while installing the package during the connecting to Salesforce process, you can review more details about the deployment status: 1. From Salesforce, go to **Setup**. 2. Click **Environments**. 3. Click **Deploy**. 4. Click **Deployment Status**. 5. Review the **Failed** and **Succeeded** sections. ## Linking Process Fails The linking process fails when the user who executes the linking process has the Exchange Contributor role in a business group and this user does not have the System Administrator permission in that same business group. To resolve this issue, add the organization administrator permission to the user who is executing the Salesforce linking in the business group. ## Not Receiving Emails from Salesforce Experience Cloud If you’re not receiving emails from Salesforce Experience Cloud, disable the standard configuration by following these steps: 1. Go to **Setup** > **Deliverability** > **Email Security Compliance**. 2. Deselect **Enable compliance with standard email security mechanisms**. ## Contact MuleSoft Support For professional services customizations, enhancement requests, and other help, contact your MuleSoft Customer Success representative. To report issues or defects in API Experience Hub, submit a support case from [Salesforce Help](https://help.salesforce.com). The MuleSoft support team works closely with the Salesforce support team to coordinate work on any support tickets involving Salesforce technology. Service-level agreements (SLAs) for support are available at the [MuleSoft Product Support and Maintenance Terms](https://www.salesforce.com/en-us/wp-content/uploads/sites/4/documents/legal/Agreements/mulesoft-cloud-offerings-SLA-forSalesforce-uMSA.pdf) page. ## See Also - [Known Issues](https://help.salesforce.com/s/issues) --- product: API Experience Hub --- # Troubleshooting Single Sign-On Errors > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The following topics provide possible causes for single sign-on (SSO) issues and describe how to troubleshoot: ## Missing Redirect URI A 400 error occurs when logging in to the portal with SSO if the external identity provider application doesn’t have the proper redirect URIs defined. To troubleshoot this issue, make sure to include necessary redirect URIs: - `https://login.salesforce.com/services/authcallback/${salesforceOrganizationId}/${authProviderURLSuffix}` - `https://${domain}.my.salesforce.com/services/authcallback/${authProviderURLSuffix}` - `https://${domain}.my.site.com/aeh/services/authcallback/${authProviderURLSuffix}` To get the following redirect URIs: - salesforceOrganizationId: In Salesforce, go to **Setup** > **Company Information**. - authProviderURLSuffix: In Salesforce, go to **Setup > Auth Providers** and select your auth provider URL Suffix. - domain: In Salesforce, go to **Setup** > **My Domain** > **Current My Domain URL**. ## Insufficient Privileges An insufficient privileges error occurs after logging in to the portal using SSO. To troubleshoot this issue, publish the portal from the Builder. 1. Navigate to **Anypoint Platform**, enter your username and password, and click **Sign in**. 2. From Anypoint Platform, select **API Experience Hub** from the list of products. 3. From the **Manage your portal** page, click **Preview and publish your portal**. 4. Click **Publish**. ## Carousel Not Loading After logging in to the portal successfully, you can’t see services in the Carousel. A few issues can cause this error to occur: - The groups claim is missing in the identity provider’s application configuration. To troubleshoot this issue, add the claim in the application and make sure at least one group is being sent. - The external identity provider group mapping is missing from Access Management. To troubleshoot this issue, add the external identity provider group mapping in Access Management for the portal member user: 1. Go to **Access Management** > **Teams**. 2. Click **AEH Portal Guests** and click **AEH Portal Members**. 3. Click **External IdP Groups**. 4. From **Group Name**, enter **AEH Members**. 5. From **Provider Name**, select the name of the corresponding Salesforce identity provider. 6. From **Type**, select **Member** and click **Add**. - The **Auth provider Default Scopes** field isn’t configured properly. To troubleshoot this issue, make sure the **Default Scopes** field has the **profile openid email groups** value. 1. In **Salesforce**, go to **Setup**. 2. In the **Quick Find** box, enter `Auth`, and then select **Auth Providers**. 3. Click **Edit**. 4. In the **Auth Provider Detail** section, enter `profile openid email groups`. 5. Click **Save**. ## Can’t Log In When logging in to the portal with an identity provider, you see a **Problem Logging In** error that the third-party identifier can’t be found. An incorrect portal URL can cause issues logging in. To troubleshoot this issue, make sure that the URL is correct in the configuration. For Okta, the `/userinfo` part of the URL path must be lowercase. ## Single Sign-On Error After logging in, **Single Sign-On Error** shows in the portal. Issues can occur if the SSO or the Salesforce Auth. Provider configuration is incorrect or missing necessary information. A few issues can cause this error to occur: - Duplicate user accounts or single sign-on errors. Users who already have an active profile in Salesforce are unable to log in via Just-In-Time (JIT) provisioned Single Sign-On (SSO). New users (those who don’t exist in the Salesforce system yet) can log in successfully, but existing users are blocked. Errors occurs because the API Experience Hub configuration is missing the specific user profiles of the users trying to log in. When the SSO attempt is made, the system doesn’t see the user’s profile as authorized for that specific API Experience Hub instance, causing the authentication process to fail for those established users. To troubleshoot this issue, follow the instructions in the Salesforce article, [API Experience Hub - Salesforce Users Unable to Log In to API Experience Hub Using JIT-Provisioned SSO](https://help.salesforce.com/s/articleView?id=005316413&type=1) to fix the issue. - The Entity ID isn’t the same in both the Salesforce Auth. Provider and the identity provider. To troubleshoot this issue for SAML protocol configurations: 1. Make sure the **Entity ID** is the same in both the Salesforce Auth. Provider’s **Single Sign-On Settings** page and the identity provider. 2. Click **SAML Assertion Validation** in the **Single Sign-On Settings** page to check for errors in the assertion. - You make changes to **Single Sign-On Settings** page without uploading the SSO certificate. To troubleshoot this issue, make sure you upload the SSO certificate each time you change the **Single Sign-On Settings** page in Salesforce. - The expected claims are missing in the identity provider’s application. After logging on using SSO, you see an SSO error with the error details in the URL. An error from the registration handler can cause this error. The most common cause is missing expected claims. To troubleshoot this issue, make sure you have the expected claims configured in the application. For more information, see [Required Claims and Attributes](https://docs.mulesoft.com/api-experience-hub/gathering-set-up-information#required-claims-and-attributes-for-sso). ## Portal Errors After logging in to the portal using SSO, you get an error in the portal. These issues can cause the error if the identity provider’s application has missing or incorrect information: - Incorrect URLs - The member isn’t assigned to a user or group in the application To troubleshoot these issues: - Review the URLs in identity provider’s application SSO configuration and the **Auth. Provider/Single Sign-On** page from Salesforce **Setup** to make sure you’re using the correct single sign-on URL. - Make sure the member is assigned to a user or a group in the identity provider application. ## Issues Testing the SSO Configuration Issues can occur when changing the SSO configuration, and then testing the configuration. To troubleshoot this issue, make sure you have a clean Salesforce and Anypoint session before testing SSO: 1. Log out of the portal, then log in again with the SSO user. This step ensures the registration handler executes properly. 2. Delete the Anypoint Platform token from the Named Credential. This step clears the Anypoint Platform user session and triggers authentication with the new configuration information to send to Anypoint Platform: 1. In Salesforce, go to **Setup**. 2. In the **Quick Find** box, enter `named credentials`, and then select **Named Credentials**. 3. Click **AEH\_Anypoint**. 4. In the **External Data User Authentications** section, locate the user you are testing with and click **Del**. ## See Also - [Known Issues](https://help.salesforce.com/s/issues) --- product: API Experience Hub --- # Updating Expiring Certificates > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Connected apps enable a two-way connection between Anypoint Platform and Salesforce organizations. The connected apps depend on digital certificates for proper functionality. These certificates are time-bound and subject to expiration. ## How Certificates Are Generated During the connection process, API Experience Hub generates self-signed certificates that expire in one year. One of these self-signed certificates links the Anypoint Platform organization and the Salesforce organization. The certificate and the private key are stored in Secrets Manager in Anypoint Security. When this certificate expires, no notification is sent to the administrator of the Salesforce instance. However, the initial connection between Anypoint Platform and Salesforce remains operational. The next time the administrator logs in to API Experience Hub, an error message displays a connection error and enables the administrator to reconnect. When the administrator logs back in to API Experience Hub, a new certificate generates automatically with a one-year expiration time. API Experience Hub uses the Salesforce Metadata API to generate an Anypoint certificate during the connection process. The connected app uses this certificate to access metadata content from Anypoint. This certificate is also valid for one year. The administrator of the Salesforce instance receives an email 30 days before the certificate expires. Because a named credential uses the Anypoint certificate, you can’t delete the certificate. ## Before You Begin Before getting started, ensure you have the API Experience Hub Administrator permissions. ## Update the Salesforce Identity Data Certificate To generate a new Anypoint certificate: 1. Go to Salesforce and click **Setup** > **Security** > **Certificate and Key Management**. 2. Locate **Anypoint** in the list and click **Edit**. 3. Enter a new name, for example, **Anypoint to expire**. ![Example for renaming the certificate](/mulesoft/current/en-us/api-experience-hub/_images/aeh-rename-cert.png) 4. Click **Save**. 5. Log in to API Experience Hub to trigger a diagnostic check to create a new certificate. 6. Delete the renamed certificate, for example, **Anypoint to expire**: 1. Go to Salesforce and click **Setup** > **Security** > **Certificate and Key Management**. 2. Locate the renamed certificate in the list and click **Delete**. ## See Also - [Connecting to Salesforce](https://docs.mulesoft.com/api-experience-hub/connecting-to-salesforce) - [Named Credentials](https://help.salesforce.com/s/articleView?id=xcloud.named_credentials_about.htm&type=5) --- product: API Experience Hub --- # User Roles, Permissions, and Profiles > For the full documentation index, see: https://docs.mulesoft.com/llms.txt This topic provides information about the user roles, permissions, and profiles used in API Experience Hub for Salesforce Experience Cloud and Anypoint Platform. - For Anypoint Platform, users with different access levels are managed using Anypoint Access Management. You can configure the permissions for administrators and Exchange viewers. For more information, see [Managing Permissions in Access Management](https://docs.mulesoft.com/access-management/managing-permissions). - For Experience Cloud, the System Administrator profile or the AEH\_Anypoint permission set is required for the user who performs the linking process. ## Administrators The Organization Administrator role has all of the permissions necessary to create, curate, manage, and customize a portal. This role can also grant another user in their organization the API Experience Hub Administrator permission. This permission enables a user to do all of the same tasks in the portal as the Organization Administrator. An API Experience Hub Admin team and an API Experience Hub Portal Admin team are created in Access Management during the connecting and linking process. Once your Salesforce organization is successfully connected to your Anypoint organization, the AEH Admin team is created. Any user, who is assigned the AEH Admin, is automatically added to the AEH Admin team. After your styling changes for the portal are saved, the AEH Portal Admin team is created. Although the API Experience Hub Portal Administrator team is visible in Access Management, this permission isn’t supported in this release. Administrators can only add services for which they have the Exchange Viewer permission. When services are added to the portal, all administrators are automatically assigned the Exchange Viewer permission. API Experience Hub is integrated with Salesforce Experience Cloud. Administrators access the Salesforce Experience Builder with a shared user account. The identity of the administrator is shared therefore, API Experience Hub can’t determine the individual administrator’s action in the shared account. The System Administrator profile has specific permissions to perform functions on the Salesforce Platform. The user with this profile performs the initial step of creating a portal by connecting to the Salesforce Experience Cloud and linking the Salesforce organization to the Anypoint organization. This process can only be done by the user with the System Administrator profile. The AEH\_Anypoint permission set can also be created to have only the minimal necessary permissions for the user who performs the linking process. For more information, see [Assigning Permissions](https://docs.mulesoft.com/api-experience-hub/assigning-permissions).

Role/Permission/Profile

Description

Actions

Salesforce System Administrator

This profile must be assigned to the user who performs the Salesforce linking process.

  • Perform the Salesforce linking process

Organization administrator in the main organization

API Experience Hub is business group agnostic which means that the portal belongs to the main organization only and the admin can create portals across business groups. The organization administrator inherits all API Experience Hub permissions, enabling them to perform any available operation within the platform.

  • Perform the Salesforce linking process

  • Create a portal

  • Add and remove services from the portal

  • Assign the visibility of an instance

  • Manage users

  • Use Experience Builder to customize portal

API Experience Hub Administrator

The admin inherits all of the Organization Administrator permissions necessary to create your portal.

  • Perform the Salesforce linking process

  • Create a portal

  • Add and remove services from the portal

  • Assign the visibility of an instance

  • Create a new connection to Salesforce and new portals

  • Manage users

  • Use Experience Builder to customize portal

API Experience Hub Portal Administrator

Currently, can manage only one API portal in the organization

  • Add and remove specific services from the portal

  • Assign the visibility of an instance

### Exchange Permissions All administrators must have the Exchange Viewer permission to import services into the portal.

Permission

Description

Actions

Exchange Viewers

Assign this permission to the Organization Administrator or the API Experience Hub Administrator who performs the Salesforce linking process. Users with this permission can’t add new assets, edit asset portal content, or share an asset with another user.

  • View Services in Exchange

  • Import services from Exchange to the portal

## User Roles for Configuring SSO Configuring an identity provider for API Experience Hub includes multiple personas that perform different user actions. Depending on your organization’s setup, a user can be assigned one or more of these roles:

Required Permissions

Grants the Ability to

Notes

API Experience Hub Administrator

Enabling and disabling an identity provider in the API Experience Hub UI.

Salesforce System Administrator

Configures the identity provider in Salesforce.

Anypoint Organization Administrator

Maps the identity provider groups with the API Experience Hub profiles using the group mapping functionality of Access Management teams.

Security team

Configures the identity provider with the required user groups and applications.

Your organization’s security team and the Salesforce System Administrator, who manage the identity provider system in an organization, configure the proper login option in Salesforce. The security team and the Org Admin in the main organization can configure the same identity provider option in Anypoint Platform, if required.

The security team and the Org Admin in the main organization configure the mapping between Salesforce and Anypoint Platform. Access Management provides the functionality of adding group mappings for external identity providers using teams. After the group mappings are properly configured, users who log in to the portal are added automatically to the out-of-the-box profile that they belong to. The default identity provider is provided to create identities in Anypoint Platform for Salesforce users.

## Granular Permissions and Permission Sets Use the following permission or permission set to allow users to perform specific tasks only. For more information about configuring the permission and the permission set, see [Assigning Permissions](https://docs.mulesoft.com/api-experience-hub/assigning-permissions).

Permission/Permission Set

Description

Actions

API Experience Hub Users Approver

A granular permission that enables a user to perform specific tasks to manage users.

  • Approve or reject a user’s registration for the portal

  • Enable or disable a user’s access to the portal

AEH_Anypoint permission set

A permission set that contains the minimum permissions required for a Salesforce user to perform the linking process.

  • A user with this permission set can perform the Salesforce linking process

## Consumer Users API Experience Hub has these consumer user profiles: - Guest - Member These are groups of users with certain permissions that you can manage using the Teams feature in Access Management. Permissions for Guest and Member users are automatically determined by how they access an organization’s portal. A user who does not log in to the portal is an anonymous user that is assigned the guest user profile with the permissions assigned to this group. A guest user can become a member by completing the registration process for the portal. Once the user’s registration is approved, this user inherits the member user profile and its associated permissions. For more information about Teams in Access Management, see [Manage User Access Using Teams](https://docs.mulesoft.com/access-management/teams).

User Profile

Description

Actions

Guest

This user’s profile is anonymous and isn’t logged in the portal.

  • View public services that are shared with them

  • Can self-register to become a member

  • Can’t request access to services

Member

This is a registered user who can log in to a portal.

  • View public services and other services that are shared with them

  • View services assigned to the user group they belong to

  • Registered using self-registration to become a member

  • Request access to services

## See Also - [Getting Started with API Experience Hub](https://docs.mulesoft.com/api-experience-hub/getting-started-with-api-experience-hub) - [Assigning Permissions](https://docs.mulesoft.com/api-experience-hub/assigning-permissions) - [Connecting to Salesforce](https://docs.mulesoft.com/api-experience-hub/connecting-to-salesforce) - [Enabling Single Sign-On for Your Portal](https://docs.mulesoft.com/api-experience-hub/enabling-sso-for-your-portal) --- product: API Experience Hub --- # Using the API Console > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The API Console is an interactive component that shows information about REST APIs and their methods, and enables you to test the methods by sending requests. The API Console is located in the Service Details page. Endpoints are displayed in alphabetical order. The API Console displays the API specifications and documentation information that are critical to the onboarding process and adoption. Developers want to know how to use and integrate APIs. The Specification pane displays the navigation of the HTTP functions in the REST specification for a REST API. You can understand the format and structure of an output by reviewing the resources and methods. The Documentation pane displays interactive documentation about an API. API documentation includes detailed descriptions of each API version. This documentation is updated with the API release cycle, usually with close involvement from the development team. You can also review the request information and responses. The Try it pane enables you to test REST APIs using the mocking service or an API instance URL. The mocking service lets you test endpoints defined in the API specification without an actual server to handle the requests and responses. The mocking service enables you to add simulated data to an API function and test the API with that data. All the responses are example data. Using an API instance enables you to interact with a server and get real data for real requests and responses. ## Review API Specifications and Documentation To discover information about an API: 1. On the **Home** or the **Services** page, select an API. 2. Select the **API specification** tab. 3. In the **Specification** pane, click a function. 4. In the **Documentation** pane, review the summary of the function. 5. Select the **Requests** tab to view the information for the code example, parameters, security, headers, examples, and body. 6. Select the **Responses** tab to view the response type, example, headers, and body. ## Test APIs You can test an API specification using the mocking service when you want simulated data. You can also test an API specification with real data using an instance of the API. If an instance has authorization headers, the request fails when the authorization headers aren’t entered. For more information about testing APIs, see the following topics: - [Simulating API Calls Using the Mocking Service](https://docs.mulesoft.com/api-experience-hub/simulating-api-calls-using-the-mocking-service) - [Testing APIs Using an API Instance](https://docs.mulesoft.com/api-experience-hub/testing-apis-using-an-api-instance) --- product: API Experience Hub --- # Using the Builder for Common Customizations > For the full documentation index, see: https://docs.mulesoft.com/llms.txt From the Builder, use the following portal customizations to match your company’s brand. Access the Builder from the **Manage your portal** page by clicking **Preview and publish your portal**. ## Add and Remove Portal Components From the Builder, add or remove API Experience Hub components from your portal. 1. Navigate to the Builder. 2. Click the **Component** icon. 3. Scroll to **Custom Components**. 4. Click a component, for example, API Console, and drag it into the portal. 5. To remove a component, click the trash can icon and click **Delete**. ### Customize Colors for Each Service Type To customize the color for each service type that displays in the **Home** page: 1. Navigate to the Builder. 2. Click the **Builder** icon. 3. Click the **Settings** icon. 4. Click **Advanced**. 5. Click **Edit Head Markup**. The following shows the asset type color variables: \--asset-type-c-rest-api-color: 0, 0, 0; --asset-type-c-http-api-color: 0, 0, 0; --asset-type-c-soap-api-color: 0, 0, 0; --asset-type-c-evented-api-color: 0, 0, 0; --asset-card-c-agent-color: 0, 0, 0; --asset-card-c-mcp-color: 0, 0, 0; --asset-card-c-graphql-color: 0, 0, 0; --asset-card-c-grpc-api-color: 0, 0, 0; --asset-card-c-llm-color: 0, 0, 0; 6. Change the color variable number for the asset type and click **Save**. ### Add Page Variation to Show the API Console for LLMs LLM support is included in this release. Portals that were configured before LLM support was available don’t show the API Console. To show the **API Console** for LLMs in the **Service Details** page, add a page variation for LLMs. 1. Navigate to the Builder. 2. Open the **Pages** menu in the toolbar, hover over **Community Asset Details**, and click **Page Actions**. 3. Select the **Page Variations** tab and click **Manage audiences**. 4. Click **HTTP API Audience**, and click **Edit**. 5. On the **Edit Audience** page, enter `llm` in the **Value** field and press Enter. 6. Click **Save**. ## Change the Background Color of the Login Page To change the background color of your portal’s login page: 1. Navigate to the Builder. 2. Click the **Page Properties** icon and click **Login**. Your current login page displays in the Builder. 3. Click the **Theme** paintbrush icon. 4. From **Theme**, click **Colors**. 5. From the **Login Pages** section, select a color from the **Background Color** color picker. The background color of your Login page changes to the selected color. ## Change the Card Background Color of the Login Page To change the card background color of your login page card: 1. Navigate to the Builder. 2. Click the **Page Properties** icon and click **Login**. Your current login page displays in the Builder. 3. Click the **Theme** paintbrush icon. 4. From **Theme**, click **Colors**. 5. From the **Login Pages** section, select a color from the **Card Background Color** color picker. The card background color of your Login page changes to the selected color. ## Change the Email Template for Portal Registration To edit the email information that is sent to users who register for your site: 1. Navigate to the Builder. 2. Click the **Builder** icon. 3. From **My Workspaces**, click **Administration**. 4. Click **Emails**. 5. Make your changes and click **Save**. ## Change the Logo Image for Self-Registration and Login Pages By default, the logo image used for the login pages is the image added during the guided styling setup. To change the image for the login pages: 1. Navigate to the Builder. 2. Click the **Builder** icon. 3. From **My Workspaces**, click **Administration**. 4. Click **Login & Registration**. 5. From the **Branding Options** section, click the **Choose File** button from **Logo File**. The maximum height of the logo is 125 px and the maximum width is 250 px. ## Customize the Portal Domain By default, Experience Cloud generates the URL for your portal domain. You can customize the domain for your organization. For example, you can change the URL to .com. Currently, you cannot change the portal’s subpath of `aeh` in the URL. 1. Navigate to the Builder. 2. Click the **Builder** icon. 3. Click **Salesforce Setup**. 4. In the **Quick find** box, enter **Domains**. 5. Click your domain name in the **Domains** list. 6. Click **Edit** in the **My Domains Details** section. 7. Enter a domain name in the **My Domain Name** field. 8. Click the **Check Availability** button to ensure the domain name does not exist already. 9. Enter a domain suffix in the **Domain Suffix** field, for example, \*.. The new domain URL displays in the **Your chosen new My Domain URL** field. 10. Click **Save**. ## Configure Feed Component The Feed component displays a feed of all record or group interactions, including posts, questions, system updates, and attachments. Specify values for the following properties:

Property

Details

Feed Type

  • Group or Record shows everything that is posted to a selected group or record, for example, an account or opportunity.

  • Discussion feed shows everything that is posted to Navigational Topics.

  • My Feed shows feed items that are tagged with a topic, or a person or record that you follow along with your personal site activity. You see all shared feed items unless another person shared the item with a group that you aren’t a member of. With public groups, you see the feed item that you shared even if you’re not a member.

  • Topic feed shows everything that is posted to a selected topic.

  • User Profile feed shows posts that the member creates or interacts with for example, comments or answers that are posted for user profile feeds.

  • Bookmarks feed shows only bookmarked posts, pool, or questions that are posted for a selected bookmark.

Record ID

Leave this field blank if you pick the Discussion or My Feed options in Feed Type. Typically, this field populates the feed item ID automatically when the page loads.

Default Filter

Select the default filter for feed entries that you want your site members to see.

Post Style

Choose to expand or collapse post comments by default.

Let members search feeds

Choose to let site members search an individual feed.

Let members sort feeds

Choose to let site members sort a feed. When sorting is enabled, members can sort a feed by the latest posts or most recent activity.

## Configure Feed Publisher Component To enable portal members to create posts on groups or records and upload attachments, configure the Chatter Feed Publisher component. Specify values for the following properties:

Property

Details

Type

Select the type of feed publisher to add to your page. To use global publisher actions defined in your Salesforce organization, choose Global. To use an object-specific publisher layout, choose Record.

Record ID

Leave this field blank if you pick the Global feed publisher type. Typically, this field automatically populates with the record ID when the page loads.

Publisher Layout Design

Select to see the wide or narrow feed publisher layout design.

## See Also - [Customizing Your Portal Using the Experience Builder](https://docs.mulesoft.com/api-experience-hub/customizing-your-portal) - [Advanced Styling with CSS](https://docs.mulesoft.com/api-experience-hub/advanced-styling-with-css) --- product: API Experience Hub --- # Viewing Salesforce Account and Portal Information > For the full documentation index, see: https://docs.mulesoft.com/llms.txt The **Settings** page provides information about the Salesforce account and API portal. To view information about the Salesforce organization and the portal, from the **Manage your API portal** page, click **Settings**. Salesforce Org information: - Environment - Username - Sandbox name - Organization domain - Organization ID API Portal information: - Status - Publish status - API portal URL ## See Also - [Disconnecting the Portal](https://docs.mulesoft.com/api-experience-hub/disconnecting-the-portal) --- product: API Experience Hub --- # Viewing Service Details > For the full documentation index, see: https://docs.mulesoft.com/llms.txt To view the Service Details page, select a service from the Home or Services page of the portal. The Service Details page includes this information about a service: - **Name** Name of the service. - **Type** The service type can be Agents, APIs, LLMs, or MCP servers. Supported API types include AsyncAPI, GraphQL, gRPC, HTML, REST, and SOAP. - **Contact email** The email of the contact for the service. - **Categories** The name and value of the predefined category this service belongs to. Services can have multiple categories. Categories organize services into groups to improve browsing and discovery. Categories are created and maintained in Exchange. - **Tags** The name of a predefined keyword associated with this service. Services can have multiple tags. Tags are created and maintained in Exchange. - **Description** A description of the service. - **Asset version** The version of the service. - **Version state** The lifecycle state (development, stable, or deprecated) of this service. - **Instances** The count of instances of the service. - **Clients** The number of client applications of the service. The API Console is located in the Service Details page. The console component is interactive and shows information about API specifications and their methods. Endpoints are displayed in alphabetical order. See [Using the API Console](https://docs.mulesoft.com/api-experience-hub/using-the-api-console) for more information. ## View Categories and Tags To view the categories or tags for a service: 1. On the **Service Details** page, click **Categories** or **Tags** to view the information. 2. Click **Categories** or **Tags** again to close the list. ## View Instances Information and Copy the URL To view the name and URL of an instance and copy the URL: 1. On the **Service Details** page, click **View instances**. 2. Click the copy icon. 3. Click **Close**. ## See Also - [Requesting Access to a Service Instance](https://docs.mulesoft.com/api-experience-hub/requesting-access-to-an-api-instance) --- product: API Experience Hub --- # Working With Sandboxes > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Use Salesforce sandbox organizations to test your portal in a sandbox environment under the same conditions as your production environment. With API Experience Hub, you can manage separate deployment environments for your API portal. You can connect to multiple Salesforce sandbox organizations and switch between them. Switching doesn’t impact the established connections with the Salesforce organization and Anypoint Platform. For example, if you switch from production to a sandbox, the connection with the production environment remains operational. The portal functions as it did before. Manage Salesforce organizations from the **Manage your portal** page by selecting sandbox environments that are available in the current Salesforce connection. ## Before You Begin 1. Create a public group: 1. Go to Salesforce > **Setup** > **Users** > **Public Groups**. 2. Click **New** and enter a label and group name. 3. From the **Available Members** list, select the members who you want to assign to the group. To move the selected members to the **Selected Members** list, click **Add**. 4. Save your changes. 2. Ensure that you have sandbox organizations already set up. For more information about creating sandboxes, see [Create a Sandbox](https://help.salesforce.com/s/articleView?id=platform.data_sandbox_create.htm&type=5) in the Salesforce documentation. > [!NOTE] Anypoint assets and applications aren’t copied to sandbox or production organizations. ## Manage Salesforce Organization Connections 1. In the **Manage your portal** page, click the connection control. ![The connection control to switch between environments](/mulesoft/current/en-us/api-experience-hub/_images/aeh-org-switcher.png) 2. Select an option: - To connect to a production organization, click **Connect production org** from the **Connected Salesforce Orgs** dialog. The connection process restarts and you can to connect to the production organization. - To switch to another sandbox for the connected production organization, click **Switch to this org** from the **Connected Salesforce Orgs** dialog. - To connect to a sandbox organization that isn’t connected, click **Connect**. The connection process restarts and you can connect to the sandbox organization. - To connect to a new sandbox organization, click **Connect new sandbox org**. The connection process restarts and you can connect to the new sandbox organization. - To switch to another sandbox organization, click **Switch to this org**. ## Manage Orphaned Sandboxes Orphan sandboxes occur when you disconnect a production organization and child sandbox organizations are still connected. If you connect to a sandbox that isn’t a child of the production organization, the sandbox appears in the **More sandbox orgs** section of the **Connected Salesforce Organizations** dialog. You can still switch to this sandbox. A sandbox no longer appears as an orphan when you reconnect to the associated production organization. ## Manage Refreshed Sandbox Connections Refreshing a sandbox updates the metadata from the source organization. If a sandbox refreshes after the production organization is connected, reconnect to switch to this sandbox. If a sandbox refreshes before the production organization is connected, you can switch to this sandbox without reconnecting. ## Delete Sandbox Organizations To delete a sandbox organization, see [Delete a sandbox](https://help.salesforce.com/s/articleView?id=000383260&type=1) in the Salesforce documentation. ## Promoting a Sandbox to Production After testing a portal in a sandbox environment and it’s is ready for production, deploy a subset of the Salesforce metadata using your CI/CD pipeline to production. Afterward, connect to the production instance with the subset of the Salesforce metadata to complete the installation and start curating APIs. ### Before You Begin Ensure you have basic knowledge of the following: - Version control systems (VCS), for example, Git - [Salesforce CLI](https://developer.salesforce.com/tools/salesforcecli) - CI/CD pipeline concepts - API portal created in a sandbox environment ### Promote a Sandbox to Production Move the portal’s styling and customizations from the sandbox organization to the production organization: 1. Create a Git repository to store the API Experience Hub metadata: 1. [Create a Git repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/quickstart-for-repositories). 2. Clone it locally to your machine. 3. [Create a SFDX project](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ws_create_new.htm). 4. Create a manifest `package.xml` file in `./manifest`, using this example with your information: Details homeroCompanyLogo homeroLoginBackground minionHomeBanner minionPageBanner ContentAsset API\_Experience\_Hub1\_banner API\_Experience\_Hub1\_logo StaticResource AEH AEH/API\_Experience\_Hub1\_logo Document AEH AEH/ChangedPasswordEmailTemplate AEH/ForgotPasswordEmailTemplate AEH/NewMemberWelcomeEmailTemplate AEH/RejectedMemberEmailTemplate EmailTemplate AEHLetterhead Letterhead Anypoint AnypointDevx AnypointEu AnypointQax AnypointStgx ExchangeAssetIcons ExchangeAssetIconsDevx ExchangeAssetIconsEu ExchangeAssetIconsQax ExchangeAssetIconsStgx GStaticFonts GoogleFonts SegmentAPI SegmentCDN CspTrustedSite Anypoint AnypointDevx AnypointEu AnypointQax AnypointStgx ExchangeAssetIcons ExchangeAssetIconsDevx ExchangeAssetIconsEu ExchangeAssetIconsQax ExchangeAssetIconsStgx SegmentAPI RemoteSiteSetting API\_Experience\_Hub\_Manage\_Networks PermissionSet API Experience Hub Network HTTP\_API\_Audience Audience API\_Experience\_Hub CustomSite API\_Experience\_Hub1 ExperienceBundle AEH\_Default\_Navigation AEH\_Default\_User\_Navigation NavigationMenu cbAPI\_Experience\_Hub NetworkBranding 60.0 5. In a VCS, create a development branch. 6. Download the metadata using the manifest created from the Salesforce sandbox organization. 2. Retrieve the metadata from the Salesforce sandbox organization using Salesforce CLI commands: 1. Log in to the Salesforce sandbox organization: sf auth web login --instance-url=https:// --alias sandboxOrg 2. Edit the `manifest/package.xml` file before retrieving the metadata from the sandbox organization. Your sandbox organization can contain metadata from multiple products because it’s a copy of the Salesforce production organization. API Experience Hub is a subset of the sandbox organization specified in the `manifest/package.xml` file created when you created the Git repository in a previous step. 3. If the portal contains branding images, add them in the `ContentAsset` section of the `manifest/package.xml`. For example: ... homeroCompanyLogo homeroLoginBackground minionHomeBanner minionPageBanner ContentAsset ... 4. Review the metadata and retrieve it by running this command: sf project retrieve start --manifest ./manifest/package.xml --target-org sandboxOrg 5. Confirm the metadata and commit all the metadata changes into the Git repository, or modify the `manifest/package.xml` and repeat the process if some metadata is missing or unnecessary. 3. Move the API Experience Hub portal from the sandbox organization to the production organization: 1. Log in to the production organization: sf auth web login --instance-url=https:// --alias productionOrg 2. Install the package in production if it’s not installed already. Before installing the API Experience Hub Manage package in your production organization, get the managed package version ID from the `SubscriberPackageVersionId` field that’s installed in the sandbox organization. 1. Run the following command to get the managed package version ID. The `SubscriberPackageVersionId` field from the API Experience Hub managed package begins with `04t`: sf package installed list --target-org sandboxOrg --json 2. Install the API Experience Hub managed package in the production organization: sf package install --package 04t... --target-org productionOrg --no-prompt --wait 30 3. Deploy the API Experience Hub metadata to the production organization using Jenkins or other CI/CD tools, for example: sf project deploy start --manifest=manifest/package.xml --target-org productionOrg All configurations deploy in the production organization and you’re ready to connect this organization with API Experience Hub. 4. Configure API Experience Hub in the production organization: 1. Navigate to Anypoint Platform, enter your username and password, and click **Sign in**. 2. From Anypoint Platform, select **API Experience Hub**. 3. Connect the Salesforce production organization (Enterprise organization). 4. Click **Use existing portal** to reuse the portal that already exists. 5. From the **Catalog management** page, add assets to the portal. 6. Click **Preview and publish your portal** to preview the portal, and then click **Publish**. ## See Also - [Continuous Integration](https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ci.htm) - [Deploy an Experience Cloud Site from Sandbox to Production](https://developer.salesforce.com/docs/atlas.en-us.communities_dev.meta/communities_dev/networks_migrate_overview.htm) - [Maintaining User References](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_user_references.htm) - [Anypoint Platform Environments](https://docs.mulesoft.com/access-management/environments) - [Setting Up the Portal](https://docs.mulesoft.com/api-experience-hub/setting-up-the-api-portal)