Analyze SOAP traffic between Adobe Campaign Console and Application Server to debug integration issues, monitor API calls, or understand the protocol flow when you lack direct server access.

Using Fiddler as an HTTP proxy, you can capture, inspect, and analyze all SOAP requests and responses in real-time, providing full visibility into Adobe Campaign’s communication.

Preparation

  • Get Fiddler from https://www.telerik.com/download/fiddler
  • Say your instance URL is https://mkt-stage1.campaign.adobe.com
  • Create a new Connection named Fiddler with the instance URL set to https://myinstance
  • Open Fiddler, go to Rule > Customize Rules, it will open the Fiddler Script Editor
  • Look for static function OnBeforeRequest(oSession: Session){
  • Add the following code, just after the opening curly bracket {:
static function OnBeforeRequest(oSession: Session){
  if (oSession.HostnameIs("MYINSTANCE")) {
    oSession.host = "mkt-stage1.campaign.adobe.com:443"; // use 80 for HTTP, 443 for HTTPS or 8080 for Tomcat
  }
  // rest of the code
  • Enable HTTPS in Fiddler in Tools > Fiddler Options > HTTPS > Decrypt HTTPS

Walkthrough

Browse to different folders, workflows or schemas from your console, and check Fiddler:

Validation & troubleshooting

  • GET /r/config
  • POST /nl/jsp/soaprouter.jsp, SOAPAction: xtk:session#Logon, strLogin:internal, strPassword:internal, Response:
<sessionInfo>
  <serverInfo advisedClientBuildNumber="0" advisedClientName="" advisedClientVersion="" allowSQL="false" buildNumber="9364" commitId="8f3ef8e" databaseId="" defaultNameSpace="cus" fohVersion="2" instanceName="instance1" majNumber="6" minClientBuildNumber="9333" minNumber="7" minNumberTechnical="0" releaseName="7.3.4" securityTimeOut="86400" serverDate="" servicePack="0" sessionTimeOut="86400" useVault="false" webView2Mode="1" wizardToLaunch="xtk:createdb" xmlns="urn:xtk:session" />
  <userInfo datakitInDatabase="false" homeDir="" instanceLocale="en-US" locale="en-US" login="internal" loginCS="Internal account" loginId="0" noConsoleCnx="false" orgUnitId="0" theme="" timezone="America/Los_Angeles" xmlns="urn:xtk:session" />
</sessionInfo>
  • POST /nl/jsp/soaprouter.jsp, xtk:persist#GetEntityIfMoreRecent, <strPk>xtk:navtree|xtk:merged</strPk>, Response:
<pdomDoc xsi:type="ns:Element" SOAP-ENV:encodingStyle="http://xml.apache.org/xml-soap/literalxml" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:wpp:default"></pdomDoc>
  • POST /nl/jsp/soaprouter.jsp, xtk:persist#GetEntityIfMoreRecent, <strPk>xtk:form|xtk:createdb</strPk>
  • POST /nl/jsp/soaprouter.jsp, xtk:persist#GetEntityIfMoreRecent, <strPk>xtk:schema|xtk:builder</strPk>
  • POST /nl/jsp/soaprouter.jsp, xtk:persist#GetEntityIfMoreRecent, <strPk>xtk:schema|xtk:common</strPk>
  • POST /nl/jsp/soaprouter.jsp, xtk:persist#GetEntityIfMoreRecent, <strPk>xtk:schema|xtk:serverConf</strPk>
  • POST /nl/jsp/soaprouter.jsp, xtk:builder#GetDbParams <FILL IN FORM, THEN HIT START>
  • POST /nl/jsp/soaprouter.jsp, xtk:jobInterface|xtk:builder#SubmitSoapCall, Request:
<builder doNotPersist=true xtkschema=xtk:builder>
  <dbcnx login="neolane" password="neolane" provider="PostgreSQL" server="localhost" xmlns="urn:xtk:jobInterface|xtk:builder" />
  <createdbParameters changeAdminPassword=true createNewAccount=true dbName=neolane nlAdminPassword=admin tableSpaceIndex= tableSpaceTemp= tableSpaceUser= tableSpaceWork= tableSpaceWorkIndex= timezone=America/Los_Angeles unicodeData=true utc=true>
    <packages>
      <package enabled="true" hidden="true" img="" label="Initialization package" locked="true" name="core" namespace="xtk" order="1000000" xmlns="urn:xtk:jobInterface|xtk:builder" />
      <package enabled="true" hidden="true" img="" label="systemStrings" locked="true" name="systemStrings" namespace="nms" order="1000000" xmlns="urn:xtk:jobInterface|xtk:builder" />
      <package enabled=true hidden=false img=nms:packages/delivery.png label=Delivery locked=true name=core namespace=nms order=10>
        <depends package="xtk:core"/><depends package="nms:folder"/><depends package="nms:systemStrings"/><depends package="nms:ruleset"/>
        <depends package="nms:country"/><depends package="nms:report"/><depends package="nms:coreInteraction"/>
        <depends package="nms:japanLoc"/><depends package="nms:billing"/><depends package="nms:heatmap"/>
      </package>
    </packages>
  </createdbParameters>
</builder>

Then, first login:

  • POST /nl/jsp/soaprouter.jsp, xtk:session#Logon, Response:
<sessionInfo>
  <serverInfo advisedClientBuildNumber="0" advisedClientName="" advisedClientVersion="" allowSQL="false" buildNumber="9364" commitId="8f3ef8e" databaseId="uFE80000000000000650F0DF7EAD7C45100730D20" defaultNameSpace="cus" fohVersion="2" instanceName="instance1" majNumber="6" minClientBuildNumber="9333" minNumber="7" minNumberTechnical="0" releaseName="7.3.4" securityTimeOut="86400" serverDate="2023-11-24 01:06:23.846Z" servicePack="0" sessionTimeOut="86400" useVault="false" webView2Mode="1" xmlns="urn:xtk:session" />
  <userInfo datakitInDatabase=true homeDir= instanceLocale=en-US locale=en-US login=admin loginCS=Administrator (admin) loginId=1059 noConsoleCnx=false orgUnitId=0 theme= timezone=America/Los_Angeles>
    <login-group id="1060"/><login-right right="admin"/>
    <installed-package name="billing" namespace="nms"/><installed-package name="core" namespace="nms"/>
    <installed-package name="coreInteraction" namespace="nms"/><installed-package name="country" namespace="nms"/>
    <installed-package name="folder" namespace="nms"/><installed-package name="heatmap" namespace="nms"/>
    <installed-package name="japanLoc" namespace="nms"/><installed-package name="report" namespace="nms"/>
    <installed-package name="ruleset" namespace="nms"/><installed-package name="systemStrings" namespace="nms"/>
    <installed-package name="core" namespace="xtk"/></userInfo>
    <option name="NmsTracking_UrlDelimiters" type="6" value="() {} []"/><option name="Nms_DefaultRcpSchema" type="6" value="nms:recipient"/>
</sessionInfo>

Going further