Adobe Campaign Classic API
My grandad used to say, ‘When there is a platform, there is an API.’ The same goes for Adobe Campaign Classic, which was equipped with its own programmable interface. With this, we can access various core functionalities of the platform, adding new integrations and functionalities
In a world where mentioning API typically brings REST to mind, with Adobe Campaign, we find ourselves stuck with the 2000s-breaking technology SOAP. Let’s explore the basics that will help you understand and give you a good start in working with APIs.
SOAP
SOAP (Simple Object Access Protocol) is a protocol used for exchanging structured information in web services. It relies on XML as its message format and typically operates over HTTP or SMTP. Yes XML and as you might have noticed everything around adobe campaign revolves around them.
WSDL
WSDL is an XML-based language used to describe the functionality offered by a SOAP web service. It defines the operations, input/output messages, and protocols for communication with in our case Adobe Campaign Classic application server.
Role in Web Services
- WSDL provides a standard way for clients to understand the capabilities and requirements of a web service.
- It acts as a contract between the service provider and consumers.
Each database schema has methods described by a WSDL file. You can list any schema’s SOAP methods by accessing its WSDL file.
https://<server>/nl/jsp/schemawsdl.jsp?schema=<schema>
Everything kicks off with the xtk:session
schema logon
method, and when we’re feeling particularly pedantic, we wrap things up with the xtk:session
and method logout
.
<s:element name="Logon"> <s:complexType> <s:sequence> <s:element maxOccurs="1" minOccurs="1" name="sessiontoken" type="s:string"/> <s:element maxOccurs="1" minOccurs="1" name="strLogin" type="s:string"/> <s:element maxOccurs="1" minOccurs="1" name="strPassword" type="s:string"/> <s:element maxOccurs="1" minOccurs="1" name="elemParameters" type="tns:Element"/> </s:sequence> </s:complexType> </s:element>
You can find more information in the official documentation.
THE API
Adobe campaign classic categorizes its API into two categories
Business oriented APIs
API functionality that enables you to access specific funcitonalities of an Adobe Campaign object e.g. recipient, service, delivery. For example nms:subscibption
schema you can subscribe and unsubscribe recipient from a service. Transactional messages along with sending bulk emails all of these and more you can do via APIs.
Data oriented APIs
As the name suggests, this type of API is for accessing database records of any object within Adobe Campaign Classic. Perhaps you’ve already used xtk:queryDef
in a workflow’s JavaScript; this schema provides SOAP functionalities to query any data from the database. Similarly, to write records to the database, we again use the xtk:session
schema, specifically the write and write collection methods.
REST over SOAP API workaround
For those who can’t quite grasp the nuances of old-school technology, you can craft your own REST API over the aged SOAP Adobe Campaign API. The safety dance might get a bit tricky in this workaround, but anyway …
Adobe Campaign JSAPI
Additional JavaScript functions and same SOAP methods of the application server, that you have explored in WSDL files, are accessible via workflow or web application Server Side JavaScript. These functions are listed under the Adobe Campiagn JSAPI documentation online. For old timers that may recall the times when JSAPI documentaion was only accessible offline. There are some functions better explained with more examples in the offiline documentation.