Unifying LINE User IDs with Customer Profiles in Adobe Journey Optimizer using AEP Identity Stitching
As brands expand into conversational channels like LINE, one of the biggest challenges is connecting anonymous messaging identities with known customer profiles. A user may chat on LINE, but your enterprise systems recognize them by email, phone number, or CRM ID.
Adobe Experience Platform (AEP) solves this using Identity Stitching — allowing you to merge disparate identifiers into a single Real-Time Customer Profile. When combined with LINE Login, this enables powerful, personalized engagement in Adobe Journey Optimizer (AJO).
In this blog, we’ll walk through a real-world technical approach to:
-
Capturing the LINE User ID (Two Standard Approaches)
-
Ingesting the LINE Id into AEP datasets
-
How AEP Identity Stitching Works
-
Activation in Adobe Journey Optimizer
Capturing the LINE User ID (Two Standard Approaches)
To message a user on LINE, you must obtain their stable LINE User ID. LINE provides two official methods, depending on where the interaction occurs.
1) LINE Login — Web or External Applications
LINE Login is based on OAuth 2.0 and OpenID Connect and is commonly used for:
-
Websites
-
External mobile apps
-
Account linking pages
-
Customer onboarding flows
LINE Login overview:
https://developers.line.biz/en/docs/line-login/overview/
2) LIFF SDK — Inside the LINE App
LIFF (LINE Front-end Framework) enables web apps that run directly inside the LINE client and is ideal for in-chat experiences.
Typical use cases:
-
Mini-apps launched from chat
-
Conversational commerce
-
Service portals within LINE
-
Account linking during messaging flows
LIFF overview:
https://developers.line.biz/en/docs/liff/overview/
The SDK can retrieve the user profile directly without a separate OAuth redirect.
Getting profile via LIFF:
https://developers.line.biz/en/docs/liff/developing-liff-apps/#get-profile
Example:
await liff.init({ liffId: "YOUR_LIFF_ID" });
const profile = await liff.getProfile();
const lineUserId = profile.userId;Key Point
Whether obtained via LINE Login or LIFF:
Both represent the same stable identifier required by the LINE Messaging API and suitable for identity stitching.
Ingesting the LINE ID into Adobe Experience Platform
After capturing the ID:
-
Send it to your backend
-
Associate it with a known identifier (e.g., email or CRM ID)
-
Ingest into a profile-enabled dataset
Use an XDM Individual Profile schema containing both identities.
XDM Schema documentation
https://experienceleague.adobe.com/docs/experience-platform/xdm/ui/resources/schemas.html
Example structure:
{
"person": {
"email": "john@example.com"
},
"line": {
"lineUserId": "U8189cf6745fc0d808977bdb0b9f22995"
}
}You can also create a custom identity namespace for LINE IDs and mark the field as an identity.
Identity namespaces
https://experienceleague.adobe.com/docs/experience-platform/identity/features/namespaces.html
How AEP Identity Stitching Works
When a record contains multiple identifiers, AEP Identity Service links them into a single identity graph.
Identity Service overview:
https://experienceleague.adobe.com/docs/experience-platform/identity/home.html
For example:
john@example.com ⇄ CRM12345 ⇄ U8189cf6745fc0d808977bdb0b9f22995This graph powers the Real-Time Customer Profile, which merges attributes and events from all connected sources.
Real-Time Customer Profile:
https://experienceleague.adobe.com/docs/experience-platform/profile/home.html
Key capabilities:
-
Resolves anonymous and known identities
-
Prevents duplicate profiles
-
Maintains channel-specific addresses
-
Updates in near real time
-
Enables cross-device recognition
As a result, LINE interactions enrich the same profile used for email, web, mobile, and offline channels.
Activation in Adobe Journey Optimizer
Once stitched, AJO can orchestrate journeys using the unified profile and send messages through a LINE custom action.
AJO documentation:
https://experienceleague.adobe.com/docs/journey-optimizer/using/ajo-home.html
Within personalization or action payloads, reference the LINE address stored in the profile.
Example:
profile.line.lineUserIdThis value is passed to the LINE Messaging API to deliver push messages.
AJO Documentation for LINE channel
https://experienceleague.adobe.com/en/docs/journey-optimizer/using/channels/line/get-started-line
Reference blog for your First LINE campaign
Conclusion
LINE is not just another messaging endpoint — it is often a primary customer touchpoint. However, its full potential is realized only when the channel identity is unified with enterprise customer data.
By capturing the LINE User ID via LINE Login or LIFF, ingesting it into AEP, and leveraging Identity Service for stitching, organizations can transform isolated chat users into fully recognized customers within the Real-Time Customer Profile.
This unified profile becomes the foundation for Adobe Journey Optimizer to deliver consistent, context-aware, and deeply personalized experiences across every channel.
In essence: Identity stitching turns LINE from a standalone communication tool into a fully integrated component of your omnichannel customer experience strategy.
