Use this article when the App Inbox displays an error or no messages in your mobile application, even though the customer exists in the Bloomreach project.
Understand the requirement
Identify the customer with the same hard ID in both locations:
Your mobile application
Your Bloomreach project
Include the hard ID in the App Inbox request that the SDK sends. Do not rely on the hard ID in the platform profile alone.
A hard ID is a stable customer identifier, such as an email address or account ID. A soft ID is a device or session identifier, such as a cookie. The App Inbox request can contain a soft ID, but it also needs the hard ID that identifies the customer in your project.
Recognize the issue
Check the customer in the platform
Open the customer profile in the Engagement platform.
Check the Identifiers section.
Confirm that the profile contains the correct hard ID, such as
registered: kbtestprofile@example.com.Confirm that the hard ID matches the identifier that your app uses.
Figure 1: Confirm the customer's hard ID in the Engagement platform.
Check the App Inbox request
Inspect the request body that the mobile SDK sends to the App Inbox API.
Look for the
customer_idsobject.Confirm that the object contains the hard ID type and value.
Treat a request that contains only
cookieas incomplete.
The following request contains only a soft ID:
{
"customer_ids": {
"cookie": "807FF827-1F94-4C3F-BA2E-DD257D6DB3D5"
}
}Figure 2: A request with only a cookie does not identify the customer with the project's hard ID.
Fix the issue
Identify the customer in the mobile application
Use the identity method provided by your mobile SDK.
Set the custom ID type to the hard ID type configured in your project, such as
registered.Set the custom ID value to the exact customer value in the platform, such as
kbtestprofile@example.com.Keep the spelling, capitalization, and formatting identical on both sides.
Apply the customer identity before you fetch the App Inbox.
Figure 3: Set the same hard ID type and value in the mobile application.
Include the hard ID in the App Inbox request
Build the request with the hard ID that identifies the customer in your project. Use the ID type configured for your project.
{
"customer_ids": {
"registered": "kbtestprofile@example.com"
}
}Keep the cookie ID when the SDK adds it automatically. Do not use the cookie as a replacement for the hard ID.
Fetch the App Inbox
Complete customer identification in the mobile application.
Trigger the App Inbox request.
Reload the App Inbox view.
Confirm that the customer messages display.
Figure 4: The App Inbox displays the customer message after the app sends the correct identity.
Troubleshoot the error
The mobile application can display the following error when the App Inbox request does not contain the required hard ID:
'Something went wrong :(. We couldn't retrieve your messages.'
Figure 5: The App Inbox cannot retrieve messages when the request does not identify the customer correctly.
Check the following:
Match the hard ID type in the app with the hard ID type in the project.
Match the hard ID value in the app with the value in the customer profile.
Remove leading or trailing spaces from the hard ID value.
Preserve the exact capitalization of the hard ID value when the identifier is case-sensitive.
Confirm that the app sends the identity before it fetches the App Inbox.
Confirm that the app uses the correct project and environment.
Inspect the request body and verify that
customer_idscontains the hard ID.Treat a request that contains only
cookieas a soft-ID-only request.
Best practices
Use one stable hard ID across your mobile application and project.
Define the hard ID type and format before you implement App Inbox.
Identify the customer as soon as your app knows the customer account.
Fetch App Inbox content only after the SDK applies the customer identity.
Log the hard ID type during testing without exposing sensitive customer data.
Verify the request payload on both iOS and Android implementations.
Test App Inbox with a known customer profile that contains the same hard ID in the platform.