Module in this article: Message Monitor
Find Any SAP CPI Message by Message ID or Correlation ID
Where SAP CPI's Message ID, Correlation ID and Application ID come from, how to search for them in the monitor and the API, and how to open a message and its related ones.

A partner says an order failed and sends you an ID. Is it a Message ID, a Correlation ID or their own order number? And which of your iFlows processed it? In SAP Cloud Integration (SAP CPI) each of these IDs means something different, and each one is found in a different way.
This article explains the three IDs, how to search for them in SAP's monitor and its API, how to make your own messages easier to find, and how to open any message, with its related messages, in one step.
Message ID, Correlation ID and Application ID
- Message ID: the ID of one message processing log (MPL). Inside the iFlow the header
SAP_MessageProcessingLogIDholds it, and an HTTPS sender returns it to the caller in a response header with the same name. - Correlation ID: shared by the logs of messages that belong together, for example a message and the ones it passes on over ProcessDirect or JMS. The header
SAP_MplCorrelationIdholds it. - Application ID: your own business key, such as an order number, set in the header
SAP_ApplicationID. The monitor shows it and can search for it.
When someone sends you an ID, the Message ID finds one message, the Correlation ID finds the whole chain, and the Application ID finds the message they are talking about in their own terms.
Searching in SAP's monitor
- Open Monitor Message Processing.
- Widen the time range to cover when the message ran: a message outside the selected range does not appear.
- Enter the ID in the search field, or choose the iFlow and a status first to narrow the list.
- Open the message for its log, its error and, if it was traced in the last hour, its trace.
Searching with the API
The Cloud Integration OData API reads the same logs. It is useful in scripts and support tools, and it does not depend on the monitor's time range:
GET https://<tenant>/api/v1/MessageProcessingLogs('<Message ID>')
GET https://<tenant>/api/v1/MessageProcessingLogs?$filter=CorrelationId eq '<Correlation ID>'&$orderby=LogStart
GET https://<tenant>/api/v1/MessageProcessingLogs?$filter=ApplicationMessageId eq '<your ID>'The calls need a user with monitoring rights on the tenant.
Make your messages easy to find
Neither the Message ID nor the Correlation ID means anything to the business. Write the business key into the log yourself: as the Application ID, and as a custom header property, which the monitor shows and can search for:
import com.sap.gateway.ip.core.customdev.util.Message
def Message processData(Message message) {
def orderId = message.getProperty("orderId") as String
// Shown and searchable in the monitor as a custom header property.
messageLogFactory.getMessageLog(message)?.addCustomHeaderProperty("OrderId", orderId)
// Shown in the monitor as the message's Application ID.
message.setHeader("SAP_ApplicationID", orderId)
return message
}For values that should travel between iFlows, the article on ProcessDirect and JMS headers explains what crosses each link.
Open any message from the designer
- In the designer, click the "Kitegra" button and choose Message logs. The log viewer opens in a new tab; keep the designer tab open, because the viewer reads SAP through it.
- Paste the ID into the box labelled "Message ID or Correlation ID" and choose Find. Messages of any iFlow of the tenant open there.
- Read the message in its tabs: Summary, Body & headers, Adapter, Persisted and Attachments.
- Open the Timeline tab: it lists every message that shares the Correlation ID, with its iFlow, status, start and duration. It needs no trace.
- To browse instead, filter by iFlow (or All iFlows), by status, and by a From and To time.
In the Messages panel of an open iFlow, Copy ID copies a message's ID, and "Open in SAP's message monitor" opens SAP's own page for it. To trace a message you found, see tracing a message step by step; to create one on purpose, test an HTTPS iFlow with a service key.
How Kitegra helps
The log viewer is part of the Message Monitor in the Kitegra. Message content is shown in the page, never stored or sent to Kitegra.
The Helper, Message Monitor, iFlow Inspector and iFlow Docs each count the iFlows you use them on: 5 per module without an account, 50 on the Free plan, 100 on Starter and 300 on Pro; Startup Team gives each member 300, Growth Team and Scale Team have no limit. The Toolbox and the workspace extras count no iFlows. While Kitegra launches, every tool is open to everyone signed in, on the Free plan too. Compare the plans.
Try it in your next iFlow
Read what Kitegra adds around the SAP Integration Suite designer, or see it next to its modules.
Frequently asked questions
What is the difference between Message ID and Correlation ID in SAP CPI?
The Message ID identifies one message processing log. The Correlation ID is shared by the logs of messages that belong together, for example across ProcessDirect or JMS.
Where do I find the Message ID of an HTTPS call?
In the response headers: an HTTPS sender returns SAP_MessageProcessingLogID to the caller.
Why does the monitor not find my Message ID?
Usually the time range is too narrow. Widen it to cover when the message ran, or read the log through the API.
Can I search SAP CPI messages by my own order number?
Yes, if the iFlow writes it into the log, for example as SAP_ApplicationID or as a custom header property.
Does the log viewer need a trace?
No. Finding a message, its summary and its timeline work without one. Bodies and headers before each step need a message that ran with TRACE in the last hour.
Does Kitegra see the messages I open?
No. Message content is shown in the page and never stored or sent to Kitegra.