Responsys Interactive API Guide - Oracle

Transcription

Oracle ResponsysSOAP API Developer’s Guide — StandardIMPORTANT: The Oracle Responsys Web Services SOAP API is in maintenancemode. There will be no new enhancements to the SOAP API.Oracle Responsys continues to support the SOAP API but encourages you to usethe REST API. Documentation for the REST API can be found on the Responsysdocumentation gcs gs/responsys.htmlNovember 2020Documentation for developers who use the Oracle Responsys SOAP API to accessthe data, content, and campaign management features of Oracle Responsys.

Oracle Responsys SOAP API Developer’s GuideE65152-18Copyright 2020, Oracle and/or its affiliates. All rights reserved.Information in this document is subject to change without notice. Data used as examples in thisdocument is fictitious. No part of this document may be reproduced or transmitted in any form or byany means, electronic or mechanical, without prior written permission of Oracle Responsys.Address permission requests, comments, or suggestions about Oracle Responsys documentation bycreating a MOS Service Request at https://support.oracle.com.

ContentsOracle Responsys API functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1Oracle Responsys platform and data model overview . . . . . . . . . . . . . . . . . . . .4Oracle Responsys Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4Oracle Responsys Object Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4API Call Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7How Enactment Batching Affects Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . .8Access Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8Organizational access control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8Functional access control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9Login IP enforcement access control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9Getting started with the Oracle Responsys API . . . . . . . . . . . . . . . . . . . . . . . . .9Authenticate Using Username and Password (Login) . . . . . . . . . . . . . . . . . . . . . . 18Logout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Authentication with Certificates (authenticateServer loginWithCertificate) . . . . . . . . 19AuthenticateServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21LoginWithCertificate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22CreateContentLibraryFolder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24CreateFolder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24DeleteContentLibraryFolder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25DeleteFolder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25DoesContentLibraryFolderExist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26ListContentLibraryFolders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26ListFolders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27List Management API calls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27MergeListMembers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27MergeListMembersRIID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28DeleteListMembers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29RetrieveListMembers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Table Management API calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31CreateProfileExtensionTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Response. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Contents — iii

CreateTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31CreateTableWithPK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32DeleteProfileExtensionMembers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33DeleteTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34MergeIntoProfileExtension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34MergeTableRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35MergeTableRecordsWithPK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36DeleteTableRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37RetrieveTableRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38RetrieveProfileExtensionRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38TruncateTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Content Management API calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40CopyContentLibraryItem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40CreateContentLibraryItem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41CreateDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41DeleteContentLibraryItem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42DeleteDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42GetContentLibraryItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43GetDocumentContent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43GetDocumentImages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44MoveContentLibraryItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44SetDocumentContent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45SetDocumentImages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45UpdateContentLibraryItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Campaign Management API calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47GetLaunchStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47LaunchCampaign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48MergeTriggerEmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49MergeTriggerSMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50ScheduleCampaignLaunch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51TriggerCustomEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52TriggerCampaignMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Interact Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Interact Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55CharacterEncoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56ContentFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56CustomEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56DeleteResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56EmailFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57FieldType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57iv — Contents

FolderResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57ImageData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58InteractObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58LaunchPreferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58LaunchResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59ListMergeRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59LoginResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61MatchOperator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61MergeResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61OptionalData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61ProofLaunchOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62ProofLaunchType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62QueryColumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Recipient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62RecipientData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63RecipientResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63RecordData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63ServerAuthResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64TriggerData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64TriggerResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64UnsubscribeOption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65UpdateOnMatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Result Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Exception Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Sample Code for Handling Exceeded Account Limits . . . . . . . . . . . . . . . . . . . . 73Sample Java code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Sample C# code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Sample PHP code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Sample Code for Certificate Authentication (Java) . . . . . . . . . . . . . . . . . . . . . . 75Contents — v

vi — Contents

Introducing the Oracle Responsys Interact APIThe Oracle Responsys Interact API (Oracle Responsys API) gives you standardsbased access to the data, content, and campaign management features of OracleResponsys. Using the Oracle Responsys API, you can build solutions for marketingdata automation, customize your campaign and content management processes, andremotely trigger events for recipients thereby entering them into Oracle Responsysbased life cycle messaging programs.Specifically, you may want to use the Oracle Responsys API to: Synchronize marketing data between enterprise and partner systems Trigger individual email or mobile messages in response to some external event oractivity detected by your web site or enterprise information systems Automate the import of creative content needed for your campaignsThis conceptual diagram shows how to use the Oracle Responsys API.Because the Oracle Responsys API is based on a service-oriented architecture (SOA)and other industry-standard technologies such as SOAP and WSDL, your developerscan use their choice of programming language and development environment to gainfull programmatic access to your organization's Oracle Responsys account. TheOracle Responsys API supports easy integration of your enterprise systems with thecampaigns and data stored in your Oracle Responsys account - enabling greaterautomation of marketing tasks and processes.Oracle Responsys API functionalityThe Oracle Responsys API supports the following subset of the functionality of theOracle Responsys user interface and platform.Session Management Login/Logout of an Oracle Responsys API session Retrieving the current Oracle Responsys timestamp 1

List and Data Management Insert, update, and delete records in Lists and Supplemental Tables Retrieve records from Lists, Supplemental Tables, and Profile Extension Tables Retrieve updated list member recordsContent Management Create or delete document objects Set or get image files for a document object Set or get the markup content for a document objectCampaign Management Launch a campaign Get campaign launch statusLifecycle Messaging Programs Trigger campaign messages to individual recipients Trigger custom events for individual recipientsAbout Oracle Responsys API URLsWhen your account is enabled for access to the Oracle Responsys API, the ResponsysSupport team gives you the Web Services URLs you need to develop your projects.Depending on where your account is set up in the Responsys data center, you’ll getWeb Services URLs for the Interact 2 pod, the Interact 5 pod, or the Interact 8 pod.Development environmentsThe Oracle Responsys API works with modern SOAP development environmentssuch as Visual Studio .NET, Apache Axis, and others. Development platforms vary intheir SOAP implementations and differences in implementation might preventaccess to some or all of the features in the API. If you are using Visual Studio for .NETdevelopment, we recommend that you use Visual Studio 2003 or later.Oracle Responsys maintenance and downtimeOracle Responsys undergoes maintenance downtimes on a monthly or bi-monthlyschedule. During these downtimes, Campaign login sessions are not available.Attempts to create a login session during downtimes return an error and clientapplications need to take the appropriate action, which may include alerts to supportstaff, integration job queuing, and/or scheduled re-tries.Monitoring and throttling the frequency of API requestsResponsys monitors and throttles the frequency of API requests that are submittedfrom each Oracle Responsys account. This is to ensure that the best possible level ofservice is offered to API clients in a shared environment.You can use the Get Throttling Limits REST API to obtain a list of API throttlinglimits for key interfaces for your Responsys account. For more information aboutusing this API, see the Get Throttling Limits topic in the REST API for OracleResponsys Marketing Cloud Service guide.2

Depending on the type of API function, a specific frequency rate limit is imposed onthe basis of an account's number of requests made per minute for that function. Forexample, the API function for triggering email messages can be called more times perminute than the API function for launching a campaign. By default, the throttlinglimit for high volume API functions (for example, triggering email messages ormerging records into a profile list) is set to 200 requests per minute.When an account exceeds its allowable frequency rate limit for an API request, yousee the error code API LIMIT EXCEEDED and this message “You exceeded your allowablelimit to call the function name API function. Please try again in a minute.” (See SampleCode for Handling Exceeded Account Limits on page 73 for the appropriate block of samplecode.) On the other hand, if a specific user of an account is blocked from usingselected API functions, the user sees the error code API BLOCKED with this message:“The function name is currently not available to this user. Please contact techsupport.”Backward compatibilityResponsys supports backward compatibility as new versions of the Oracle ResponsysAPI are released. This means that an application created to work with a given OracleResponsys API version will continue to work with that same Oracle Responsys APIversion in future platform releases. Each version of the Oracle Responsys API has aunique endpoint URL. Your applications will continue to work with the OracleResponsys API endpoint URLs of previous releases. You can migrate your clientapplications to newer Oracle Responsys API version endpoint URLs to takeadvantage of enhanced functionality and bug fixes on a schedule that meets yourneeds.Responsys does not guarantee that an application written against one OracleResponsys API version will work with future API versions, because changes inmethod signatures and data representations are often required to enhance OracleResponsys. However, we strive to keep the Oracle Responsys API consistent fromversion to version with minimal if any changes required to port applications to newerOracle Responsys API versions. When an API version is to be deprecated, advanceend-of-life notice will be given at least 9 months before support for the API version isended. Oracle Responsys will directly notify customers using API versions plannedfor deprecation.Web service standards complianceThe Oracle Responsys API was implemented in compliance with these specifications: Simple Object Access Protocol (SOAP) 1.1http://www.w3.org/TR/2000/NOTE-SOAP-20000508/ Web Service Description Language (WSDL) 1.1http://www.w3.org/TR/2001/NOTE-wsdl-20010315 WS-I Basic Profile 004-08-24.html 3

Oracle Responsys platform and data model overviewOracle Responsys is a comprehensive on-demand marketing platform with a fullyintegrated suite of software applications—all built from the ground up on a singleinstance, multi-tenant architecture.Oracle Responsys PlatformOracle Responsys platform currently offers the following on-demand applications: Campaign? for multichannel campaign management lets you efficiently create, test,execute, and measure high-volume, highly individualized marketing campaignsacross touch-points for compelling ROI. Program? for dialogue and event-based marketing helps you orchestrate andautomate intelligent, customer-driven dialogs at desired moments in the customerlifecycle for more relevant, profitable interactions. Team? for marketing process management is designed to help you plan, coordinate,and monitor marketing projects and resources for greater marketing efficiency andimproved collaboration among geographically distributed marketing teams. Insight? for predictive analytics and contact optimization uses cutting-edgeanalytical models to identify your most relevant customer segments and producecontact strategies optimized for each segment. Connect? for data integration makes it easy to integrate Oracle Responsys with yourenterprise or marketing information systems to better utilize marketing data andgain a complete view of customers at every interaction point.Oracle Responsys Object Data ModelYou can use the Oracle Responsys platform to create and manage a variety of objectsto manage your marketing database and execute your marketing campaigns. TheOracle Responsys object model consists of these types of objects: Programs let you assemble multi-campaign dialogs. Campaigns help you execute email campaigns in batch launch or triggered modes. Forms enable you to collect data via web forms (not currently supported via theOracle Responsys API). Documents consist of re-usable creative content that is available for use in anyCampaign or Form. Data objects enable you to store and use data for a variety of purposes. Lists and related objects (Filters, Proof Groups, Segmentations) store recipient audiencerecords and are used primarily for campaign targeting and personalization. Profile Extension Tables store additional information for each unique recipient inyour profile list table. Supplemental Tables and related objects (Filters, SQL object, Join objects) store miscellaneousdata that can be used to define a multi-table relational schema for advancedlevels of segmentation, targeting and message personalization. 4 Link Tables store campaign link tracking information.

The Oracle Responsys API provides control over many of these objects, allowingclient applications to create, change, or remove these objects in a programmatic wayto accomplish a variety of marketing automation goals.ProgramsProgram objects define multi-step dialogs that involve a variety of campaignmessaging and routing rules based on individual profile and behavioral attributes.Creation of an individual Program takes place in a visual, drag-and-drop userinterface that is part of Program. The Oracle Responsys API can be used to triggerCustom Events which enter an individual into or affect the individual's routing in aprogram.CampaignsCampaign objects define the basic behavior of an email campaign in terms ofaudience, message, and settings. General properties include name, type (email or mobile), description,categorization, and other fields that identify the campaign. Audience selectors include a list, inclusion filters, exclusion filters, andsuppression data. Message elements include From header, Reply-to header, Subject header, andHTML/Text message documents. Settings control tracking options, auto-close behavior, default variables, and soforth.You can launch a campaign in bulk immediately or schedule it for a later launch. Youcan also trigger messages from a campaign on demand using form handler rules orprogram rules.FormsForm objects provide functionality for hosting web forms and collecting/processingthe data that is submitted. You can use forms to gather customer preferences or forgeneral purpose surveys. Data collected from forms can be merged into a list orsupplemental table. Form responses can trigger follow-up emails and custom eventsthat place the responder in a Program dialog.DocumentsDocument objects contain the creative content used for campaigns and forms. Thetwo types of the document object are HTML and text. For example, an emailcampaign usually consists of an HTML and a corresponding text documentreference. The campaign handles the display of HTML-only, text-only, or multi-partemails automatically based on the recipient profile. Documents can be re-used acrossmultiple campaigns and forms, copied, edited, and deleted via Campaign. 5

Lists and related objectsLists are used to store audience database records—members of your audience mightbe leads, prospects, customers, contacts, consumers, or visitors, depending on yourterminology. The standard set of fields in a list includes: Recipient ID (RIID), an internalOracle Responsys-assigned identifier that allowsthe behavior of individual recipients to be tracked over time. Email address, mobile number, postal address, which are standard contact channelfields Permission/Opt-in status fields for the various marketing channels (email, mobile,postal) Email format preference (HTML or text) Derived fields for ISP and domain Last modified and created timestampsIn addition, lists can have a number of custom, user-defined fields that you use tomaintain a rich audience profile for targeting and personalization purposes.» NoteAn account can have any number of lists, but it is recommended that asingle central list is used for a given enterprise marketing objective. In somecases, it may make sense to have multiple lists, but use of multiple lists cangenerate duplicate identities for the same individual audience member.These are the list-based objects: List filters are user-defined segments that contain a subset of the members of a list.You can use list filters to include or exclude members from any given campaignlaunch. List segmentations are a way of understanding how a list breaks down in terms of agiven set of segments. For example, multiple purchasers, one-time purchasers, andnon-purchasers. List seeds store records that share the same schema for a given list, but are used fortesting and seeding of campaigns. These records do not represent real members(prospects, customers, and so forth).Profile extension tablesOne or more Profile Extension Tables can be associated with a Profile List. Theremust be a one-to-one relationship between a record in a Profile Extension Table andits parent Profile List. Profile Extension Tables provide an attractive and efficient wayto organize and process audience data. Similar to data in Profile Lists, audience datain Profile Extension Tables can be used for segmentation and targeting in Filters aswell as Programs.6

Supplemental tables and related objectsAs its name indicates, a supplemental table is a collection of database records thatsupplements a list with additional related information. The connections between atable and a list is made via a data extraction key, or key field, that is present in boththe table and the list. Because you define the schema for any tables you create, you canuse them for a wide variety of purposes, ranging from message personalization anddynamic content to storing form responses and campaign events.There are several type of table-based data sources: tables, filters on tables, SQL views(on tables and/or lists), and joins on tables.» TipWhen you use tables to extend a list to represent a multi-table relationalmarketing database (where a variety of queries or joins could be made on thetable), be sure to index your tables to reduce the performance impactassociated with full table scans on tables being queried or joined.Link TablesLink Tables are used to store data about the links that are tracked for a campaign. Theschema for a Link Table is fixed and consists of the following fields: LINK NAME defines user-friendly name for the link. LINK URL defines the destination URL for a tracked link. LINK CATEGORY defines a category for links and is available for reporting. EXTERNAL TRACKING defines optional parameters that can be appended to thequery-string of the destination URL.API Call ProcessingWeb Services API calls are processed synchronously. For most calls, you shouldreceive a response shortly after Responsys finishes processing the call. However, someof the API calls trigger system actions that are performed after the system receives theAPI call and sends the positive response. If those attempts fail for some reason, youmay have received a “true” response for the system receiving the API call, but thefailure would be recorded elsewhere.Examples: API calls that trigger messages requiring personalization processing. Responsysprocesses personalization asynchronously after the API call has returned a positiveresponse. If the personalization fails, then you may receive a positive API response,even though the message was not sent to the recipient. Trigger custom event API calls. These calls do not actually send the email ormobile messages. The triggerCustomEvent API call merely sends a group ofrecipients (that is, enactments) to a Program. The Program subsequently uses itsown logic to determine if those enactments will be added to campaigns within thatProgram. The campaigns ultimately send the email or mobile messages. 7

How Enactment Batching Affects ProcessingOracle Responsys enables cross-channel orchestrations with email, SMS, and Push. Ifyou plan to use the trigger custom event API call with cross-channel marketingprograms, please review this section first.Responsys requires the Enactment Batching feature to be enabled when using triggercustom event with mobile app campaigns in Program. Otherwise, the mobile appcampaign events in the program will not be processed. However, there are sometrade-offs to consider before enabling the feature. When an account has EnactmentBatching enabled, triggering a custom event cannot be used to perform near-realtime processing for any campaign type. Responsys will batch enactments togetherinto a single enactment group before entering the enactments into a program. Thisresults in at least a 10-minute delay between custom event triggering and entry intoa Program. If your account has Enactment Batching enabled and you need to sendnear-real-time messages, such as event reactions, then we highly recommendhaving your account enabled for the Real-time Events feature.The Real-time Events feature is intended for Responsys customers who use theMobile App channel. Part of this feature enables you to create real-time customevents. Real-time custom events are a special type of custom event that override howResponsys handles enactments when the Enactment Batching feature is enabled.When a real-time custom event is triggered, Responsys handles the enactments innear real-time instead of batching them. This ensures that your customers receive thecampaign messages (including Email, SMS, Push, and In-app) without the delayimposed by enactment batching. To have this feature enabled for your account,contact your Oracle Customer Success Manager. For more information, see theDefining Custom Event Types topic in the Oracle Responsys H

Oracle Responsys SOAP API Developer's Guide — Standard November 2020 Documentation for developers who use the Oracle Responsys SOAP API to access the data, content, and campaign management features of Oracle Responsys. IMPORTANT: The Oracle Responsys Web Services SOAP API is in maintenance mode. There will be no new enhancements to the SOAP .