Area: Optimizely Add-ons
Applies to versions: 2 and higher

External system form mapping (Beta)

Recommended reading 

Note: Optimizely Forms is only supported by MVC-based websites and HTML5-compliant browsers.

An external system can connect with Optimizely Forms, and provide datasources (such as SQL tables). Each datasource can contain columns (like columns in an SQL table).

If Optimizely Forms detects an external system, the Forms edit view has a built-in user interface for mapping, as shown in the following images.

  • Datasource connection maps with a form.
  • Column connections map with a form element.
  • The mapping user interface is applied to Form and FormElement.

Example 1

Example 2

Mapping table

The mappingTable (similar to the following code and image) is provided to Actors and AutofillProvider as IDictionary<string, RemoteFieldInfo>. The key is the formElement.ElementName, and the value is a RemoteFieldInfo, which contains information about the external system, such as datasource and column.

  {"__field_101", { "CRMSystem", "ContactTable", "Fullname" } },
  {"__field_102", { "CRMSystem", "ContactTable", "Email" } },


How to transfer form submission data to external system, using Actor

  • Actor provides full SubmissionData, and the active MappingTable (with external system).
  • On Actor.Run()...
    • ActiveExternalFieldMappingTable provides the MappingTable of the current active datasource (of the form).
    • SubmissionData is the data from the visitor.
    • HttpRequest and HttpReponse (to inspect the visitor, and modify the response, cookie, and so on, if needed).

From a combination of form submission, such as  F1=allan@ep.se, F2=Allan + a mapping table F1=SILVERPOP_EMAIL, F2=RECIPIENTNAME, actors have enough information to send SILVERPOP_EMAIL="allan@ep.se", RECIPIENTNAME="Allan" to Silverpop through a server-to-server API call.

Do you find this information helpful? Please log in to provide feedback.

Last updated: Nov 02, 2016

Recommended reading