Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: DOCU-2817

...

magnolia-external-forms
Include Page
_Maven is the easiest way to install
_Maven is the easiest way to install
Artifact maven dependencies snippet
groupIdinfo.magnolia.extforms
artifactId

Code Block
<dependency>
  <groupId>info.magnolia.extforms</groupId>
  <artifactId>magnolia-external-forms</artifactId>
</dependency>

For Infusionsoft add this Maven dependency. It includes the External Forms module automatically.   Artifact maven dependencies snippetgroupIdinfo.magnolia.extformsartifactIdmagnolia

Code Block
<dependency>
  <groupId>info.magnolia.extforms</groupId>
  <artifactId>magnolia-external-forms-

...

infusionsoft</artifactId>
</dependency>

For Eloqua add this Maven dependency. It includes the External Forms module automatically.   Artifact maven dependencies snippetgroupIdinfo.magnolia.extformsartifactIdmagnolia

Code Block
<dependency>
  <groupId>info.magnolia.extforms</groupId>
  <artifactId>magnolia-external-forms-

...

eloqua</artifactId>
</dependency>

For IBM add this Maven dependency. It includes the External Forms module automatically.   Artifact maven dependencies snippetgroupIdinfo.magnolia.extformsartifactIdmagnolia

Code Block
<dependency>
  <groupId>info.magnolia.extforms</groupId>
  <artifactId>magnolia-external-forms-

...

  • Artifact resource link
    groupIdinfo.magnolia.extforms
    artifactIdmagnolia-external-forms
    label$artifactId.jar
    renderTypedownload_link
    resourceTypeJAR
  • Artifact resource link
    groupIdinfo.magnolia.extforms
    artifactIdmagnolia-external-forms-infusionsoft
    label$artifactId.jar
    renderTypedownload_link
    resourceTypeJAR
  • Artifact resource link
    groupIdinfo.magnolia.extforms
    artifactIdmagnolia-external-forms-eloqua
    label$artifactId.jar
    renderTypedownload_link
    resourceTypeJAR
  • Artifact resource link
    groupIdinfo.magnolia.extforms
    artifactIdmagnolia-external-forms-ibm
    label$artifactId.jar
    renderTypedownload_link
    resourceTypeJAR

External Forms module

The External Forms module provides functionality to render external forms configured in the third-party marketing tool as Magnolia forms. If the external service is unavailable, submissions are queued in the External Forms app for resubmission.

The module is configured in /modules/external-forms .

...

heading0
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse

...

Node name

...

Value

...

Mgnl f
external-forms

...

Mgnl f
apps

...

Mgnl f
config

...

Mgnl f
commands

...

Mgnl f
fieldTypes

...

Mgnl f
dialogs

...

Mgnl f
templates

Infusionsoft implementation

You can connect to Infusionsoft by configuration.

The External Forms Infusionsoft module provides an example configuration in /modules/external-forms-infusionsoft/external-form-service .

...

heading0
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse

...

Mgnl f
external-form-service

...

Mgnl n
infusionsoft

...

Mgnl n
externalFormConnector

...

Mgnl p
apiKey

...

Mgnl p
applicationName

...

Mgnl p
class

...

Mgnl n
externalFormParser

...

Mgnl p
class

...

Mgnl n
fieldMappings

...

Mgnl p
Referer

...

Mgnl p
inf_field_Email

...

Mgnl p
class

...

Mgnl p
externalFormDataBinderClass

...

required

External form service configuration

...

infusionsoft

...

required

Name of external service.

...

externalFormConnector

...

required

External form connector node.

...

apiKey

...

required

Your Infusionsoft API key. See Infusionsoft API Key to generate your key.

...

applicationName

...

required

Your Infusionsoft application name. See Infusionsoft API Key to create your application.

...

class

...

required

Javadoc resource link
classNameinfo.magnolia.extforms.connectors.InfusionsoftExternalFormConnector
renderTypeasynchronous
: Implementation of
Javadoc resource link
classNameinfo.magnolia.extforms.connectors.ExternalFormConnector
renderTypeasynchronous
for Infusionsoft.

...

externalFormParser

...

required

External form parser node.

...

class

...

required

Javadoc resource link
classNameinfo.magnolia.extforms.parsers.InfusionsoftExternalFormParser
renderTypeasynchronous
: Implementation of
Javadoc resource link
classNameinfo.magnolia.extforms.parsers.ExternalFormParser
renderTypeasynchronous
for Infusionsoft

...

fieldMappings

...

required

Field mappings node.

Map Infusionsoft fields to defined names. Mapped fields can be accessed in emails with Freemarker tags when configuring form settings.

...

Referer

...

required

Referer field in Infusionsoft. Use form_page in your configuration.

...

inf_field_Email

...

optional

This mapping allows your to access the inf_field_Email field with Freemarker tag ${email} .

...

class

...

required

Javadoc resource link
classNameinfo.magnolia.extforms.services.InfusionsoftExternalFormService
renderTypeasynchronous
: implementation of
Javadoc resource link
classNameinfo.magnolia.extforms.services.ExternalFormService
renderTypeasynchronous
for Infusionsoft.

...

externalFormDataBinderClass

...

required

Javadoc resource link
classNameinfo.magnolia.extforms.form.engine.InfusionsoftExternalFormDataBinder
renderTypeasynchronous
extends
Javadoc resource link
classNameinfo.magnolia.extforms.form.engine.AbstractExternalFormDataBinder
renderTypeasynchronous
for Infusionsoft.

Eloqua implementation

The External Forms Eloqua module provides an example implementation for the Oracle Eloqua marketing tool.

Eloqua REST API

All communication between Magnolia and Eloqua is made strictly over the REST API provided by Eloqua.

The module uses the following calls:

Code Block
/assets/forms @GET
/assets/form/{formId} @GET
/assets/optionList/{optionListId} @GET
/data/form/{formId} @POST

To extend the range of provided REST calls, add new annotated calls using configured client. Have a look at the code for more call examples.

REST client configuration

The Eloqua rest client configuration is in /modules/external-forms-eloqua/rest-client .  

...

heading0
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse

...

Mgnl f
rest-client

...

Mgnl n
eloqua

...

Mgnl n
clientFilters

...

Mgnl n
authenticationFilter

...

Mgnl p
class

...

Mgnl p
encodedKey

...

Mgnl p
baseUrl

...

<URL for your Eloqua REST API 2.0 calls, for example: https://secure.p02.eloqua.com/API/REST/2.0 >

...

Mgnl p
class

...

Mgnl p
clientFactoryClass

...

required

Eloqua rest client configuration.

...

clientFilters

...

required

Client filters node.

...

authenticationFilter

...

required

Authentication filters node.

...

class

...

required

Javadoc resource link
classNameinfo.magnolia.extforms.rest.filter.AuthenticationFilter
renderTypeasynchronous
adds an authentication header to each request to the Eloqua API.

...

encodedKey

...

required

Your Eloqua REST API encoded authentication key. See Eloqua REST API - Authenticating to generate your key.

...

baseURL

...

required

URL for your Rest API 2.0 calls. See Determining Endpoint URLs for more.

...

class

...

required

Javadoc resource link
classNameinfo.magnolia.resteasy.client.RestEasyClientDefinition
renderTypeasynchronous
: Rest easy client class.

...

clientFactoryClass

...

required

Javadoc resource link
classNameinfo.magnolia.resteasy.client.factory.RestEasyClientFactory
renderTypeasynchronous
: Factory class that creates RestEasyClient .

ibm</artifactId>
</dependency>

External Forms module

The External Forms module provides functionality to render external forms configured in the third-party marketing tool as Magnolia forms. If the external service is unavailable, submissions are queued in the External Forms app for resubmission.

The module is configured in /modules/external-forms .

Advanced Tables - Table Plus
heading0
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse

Node name

Value

Mgnl f
external-forms


Mgnl f
apps


Mgnl f
config


Mgnl f
commands


Mgnl f
fieldTypes


Mgnl f
dialogs


Mgnl f
templates


Infusionsoft implementation

You can connect to Infusionsoft by configuration.

The External Forms Infusionsoft module provides an example configuration in /modules/external-forms-infusionsoft/external-form-service .

Advanced Tables - Table Plus
heading0
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse
Node nameValue

Mgnl f
external-form-service


Mgnl n
infusionsoft


Mgnl n
externalFormConnector


Mgnl p
apiKey

<Infusionsoft API key>

Mgnl p
applicationName

<Infusionsoft applicationName>

Mgnl p
class

info.magnolia.extforms.connectors.InfusionsoftExternalFormConnector

Mgnl n
externalFormParser


Mgnl p
class

info.magnolia.extforms.parsers.InfusionsoftExternalFormParser

Mgnl n
fieldMappings


Mgnl p
Referer

form_page

Mgnl p
inf_field_Email

email

Mgnl p
class

info.magnolia.extforms.services.InfusionsoftExternalFormService

Mgnl p
externalFormDataBinderClass

info.magnolia.extforms.form.engine.InfusionsoftExternalFormDataBinder
external-form-service

required

External form service configuration

infusionsoft

required

Name of external service.

externalFormConnector

required

External form connector node.

apiKey

required

Your Infusionsoft API key. See Infusionsoft API Key to generate your key.

applicationName

required

Your Infusionsoft application name. See Infusionsoft API Key to create your application.

class

required

InfusionsoftExternalFormConnector: Implementation of ExternalFormConnector for Infusionsoft.

externalFormParser

required

External form parser node.

class

required

InfusionsoftExternalFormParser: Implementation of ExternalFormParser for Infusionsoft

fieldMappings

required

Field mappings node.

Map Infusionsoft fields to defined names. Mapped fields can be accessed in emails with Freemarker tags when configuring form settings.

Referer

required

Referer field in Infusionsoft. Use form_page in your configuration.

inf_field_Email

optional

This mapping allows your to access the inf_field_Email field with Freemarker tag ${email} .

class

required

InfusionsoftExternalFormService: implementation of ExternalFormService for Infusionsoft.

externalFormDataBinderClass

required

InfusionsoftExternalFormDataBinder extends AbstractExternalFormDataBinder for Infusionsoft.

Eloqua implementation

The External Forms Eloqua module provides an example implementation for the Oracle Eloqua marketing tool.

Eloqua REST API

All communication between Magnolia and Eloqua is made strictly over the REST API provided by Eloqua.

The module uses the following calls:

Code Block
/assets/forms @GET
/assets/form/{formId} @GET
/assets/optionList/{optionListId} @GET
/data/form/{formId} @POST

To extend the range of provided REST calls, add new annotated calls using configured client. Have a look at the code for more call examples.

REST client configuration

The Eloqua rest client configuration is in /modules/external-forms-eloqua/rest-client .  

Advanced Tables - Table Plus
heading0
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse
Node nameValue

Mgnl f
rest-client


Mgnl n
eloqua


Mgnl n
clientFilters


Mgnl n
authenticationFilter


Mgnl p
class

info.magnolia.extforms.rest.filter.AuthenticationFilter

Mgnl p
encodedKey

<Eloqua REST API encoded authentication key>

Mgnl p
baseUrl

<URL for your Eloqua REST API 2.0 calls, for example: https://secure.p02.eloqua.com/API/REST/2.0 >

Mgnl p
class

info.magnolia.resteasy.client.RestEasyClientDefinition

Mgnl p
clientFactoryClass

info.magnolia.resteasy.client.factory.RestEasyClientFactory
eloqua

required

Eloqua rest client configuration.

clientFilters

required

Client filters node.

authenticationFilter

required

Authentication filters node.

class

required

AuthenticationFilter adds an authentication header to each request to the Eloqua API.

encodedKey

required

Your Eloqua REST API encoded authentication key. See Eloqua REST API - Authenticating to generate your key.

baseURL

required

URL for your Rest API 2.0 calls. See Determining Endpoint URLs for more.

class

required

RestEasyClientDefinition: Rest easy client class.

clientFactoryClass

required

RestEasyClientFactory: Factory class that creates RestEasyClient .

Service configuration

The service configuration is in /modules/external-forms-eloqua/external-form-service .

Service configuration

The service configuration is in /modules/external-forms-eloqua/external-form-service .

...

heading0
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse

...

Mgnl f
external-form-service

...

Mgnl n
eloqua

...

Mgnl n
externalFormConnector

...

Mgnl p
class

...

Mgnl p
restClientId

...

Mgnl n
externalFormParser

...

Mgnl p
class

...

Mgnl n
fieldMappings

...

Mgnl p
Referer

...

Mgnl p
emailAddress

...

Mgnl p
class

...

Mgnl p
externalFormDataBinderClass

...

required

External form service configuration

...

eloqua

...

required

Name of external service.

...

externalFormConnector

...

required

External form connector node.

...

class

...

required

Javadoc resource link
classNameinfo.magnolia.extforms.connectors.EloquaExternalFormConnector
renderTypeasynchronous
: Implementation of
Javadoc resource link
classNameinfo.magnolia.extforms.connectors.ExternalFormConnector
renderTypeasynchronous
for Eloqua.

...

restClientId

...

required

Your Eloqua REST client ID.

...

externalFormParser

...

required

External form parser node.

...

class

...

required

Javadoc resource link
classNameinfo.magnolia.extforms.parsers.EloquaExternalFormParser
renderTypeasynchronous
: Implementation of
Javadoc resource link
classNameinfo.magnolia.extforms.parsers.ExternalFormParser
renderTypeasynchronous
for Eloqua.

...

fieldMappings

...

optional

Field mappings node.

Map Eloqua fields to defined names. Mapped fields can be accessed in emails with Freemarker tags when configuring form settings.

...

Referer

...

required

Referer field in Eloqua. Use form_page in your configuration.

...

emailAddress

...

required

You can access the emailAddress field with Freemarker tag ${email} .

...

class

...

required

Javadoc resource link
classNameinfo.magnolia.extforms.services.EloquaExternalFormService
renderTypeasynchronous
: Implementation of
Javadoc resource link
classNameinfo.magnolia.extforms.services.ExternalFormService
renderTypeasynchronous
for Eloqua.

...

externalFormDataBinderClass

...

required

Javadoc resource link
classNameinfo.magnolia.extforms.form.engine.EloquaExternalFormDataBinder
renderTypeasynchronous
extends
Javadoc resource link
classNameinfo.magnolia.extforms.form.engine.AbstractExternalFormDataBinder
renderTypeasynchronous
for Eloqua.

IBM Web Forms implementation

You can connect to forms created in IBM Watson Campaign Automation.

The IBM forms module is configured in /modules/external-forms-ibm/external-form-service.

 If your forms contain GDPR-sensitive data, see GDPR and external forms where a GDPR IBM Watson Campaign Automation sample is explained. 

SP_IDENTITYVIEWVIEW
Advanced Tables - Table Plus
heading0
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse
Node nameValue

Mgnl f
external-form-service


Mgnl n
ibm

Mgnl n
externalFormConnector

Mgnl n
sharedCookies

eloqua


mgnl-

pSESSION
SESSION

Mgnl p
SP_IDENTITY

n
externalFormConnector


Mgnl p

SP_PAGE_VISIT
SP_PAGE_VISIT

class

info.magnolia.extforms.connectors.EloquaExternalFormConnector

Mgnl p

restClientId

<Eloqua REST client ID>

Mgnl n
externalFormParser


Mgnl p
class

info.magnolia.extforms.parsers.IbmExternalFormParserEloquaExternalFormParser

Mgnl n
fieldMappings


Mgnl p
Referer

form_page

Mgnl p
emailAddress

email

Mgnl p
class

info.magnolia.extforms.services.DefaultExternalFormServiceEloquaExternalFormService

Mgnl p
externalFormDataBinderClass

info.magnolia.extforms.form.engine.DefaultExternalFormDataBinder.EloquaExternalFormDataBinder
external-form-service service configurationibmName of external service

required

0
external-form-service

required

External form service configuration

eloqua

required

Name of external service.

externalFormConnector

required

External form connector node.

class

required

EloquaExternalFormConnector: Implementation of ExternalFormConnector for Eloqua.

restClientId

required

Your Eloqua REST client ID.

externalFormParser

required

External form

parser node.

class

required

EloquaExternalFormParser: Implementation of ExternalFormParser for Eloqua.

externalFormConnectorfieldMappings

optional

Field mappings

required

External form connector node.

sharedCookies

Cookies which can be shared between Magnolia and IBM, e.g. to identify the current user when pre-filling the forms.

class

required

Javadoc resource link
0info.magnolia.extforms.connectors.IbmExternalFormConnector
classNameinfo.magnolia.extforms.connectors.IbmExternalFormConnector
renderTypeasynchronous
: implementation of
Javadoc resource link
0info.magnolia.extforms.connectors.ExternalFormConnector
classNameinfo.magnolia.extforms.connectors.ExternalFormConnector
renderTypeasynchronous
.

externalFormParser

required

External form parser node.

class

required

Javadoc resource link
0info.magnolia.extforms.parsers.IbmExternalFormParser
classNameinfo.magnolia.extforms.parsers.IbmExternalFormParser
renderTypeasynchronous
: Implementation of
Javadoc resource link
0info.magnolia.extforms.parsers.ExternalFormParser
classNameinfo.magnolia.extforms.parsers.ExternalFormParser
renderTypeasynchronous
.

class

Javadoc resource link

Map Eloqua fields to defined names. Mapped fields can be accessed in emails with Freemarker tags when configuring form settings.

Referer

required

Referer field in Eloqua. Use form_page in your configuration.

emailAddress

required

You can access the emailAddress field with Freemarker tag ${email} .

class

required

EloquaExternalFormService: Implementation of ExternalFormService for Eloqua.

externalFormDataBinderClass

required

EloquaExternalFormDataBinder extends AbstractExternalFormDataBinder for Eloqua.

IBM Web Forms implementation

You can connect to forms created in IBM Watson Campaign Automation.

The IBM forms module is configured in /modules/external-forms-ibm/external-form-service.

 If your forms contain GDPR-sensitive data, see GDPR and external forms where a GDPR IBM Watson Campaign Automation sample is explained. 

Advanced Tables - Table Plus
heading0
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
classm5-configuration-tree
enableHighlightingfalse
Node nameValue

Mgnl f
external-form-service


Mgnl n
ibm


Mgnl n
externalFormConnector


Mgnl n
sharedCookies


Mgnl p
SESSION

SESSION

Mgnl p
SP_IDENTITY

SP_IDENTITY

Mgnl p
SP_PAGE_VISIT

SP_PAGE_VISIT

Mgnl p
VIEW

VIEW

Mgnl n
externalFormParser


Mgnl p
class

info.magnolia.extforms.

...

parsers.IbmExternalFormParser

Mgnl p
class

...

info.magnolia.extforms.services.DefaultExternalFormService

...

Mgnl p
externalFormDataBinderClass

...

info.magnolia.extforms.form.engine.DefaultExternalFormDataBinder
.services.ExternalFormService .
external-form-service

required

External form service configuration

ibm

required

Name of external service.

externalFormConnector

required

External form connector node.

sharedCookies

Cookies which can be shared between Magnolia and IBM, e.g. to identify the current user when pre-filling the forms.

class

required

IbmExternalFormConnector: implementation of ExternalFormConnector .

externalFormParser

required

External form parser node.

class

required

IbmExternalFormParser: Implementation of ExternalFormParser .

class

required

DefaultExternalFormService: implementation of ExternalFormService .

externalFormDataBinderClass

required

DefaultExternalFormDataBinder extends AbstractExternalFormDataBinder 

classNameinfo.magnolia.extforms.services.ExternalFormService
renderTypeasynchronous

externalFormDataBinderClass

required

Javadoc resource link
0info.magnolia.extforms.form.engine.DefaultExternalFormDataBinder
classNameinfo.magnolia.extforms.form.engine.DefaultExternalFormDataBinder
renderTypeasynchronous
extends
Javadoc resource link
0info.magnolia.extforms.form.engine.AbstractExternalFormDataBinder
classNameinfo.magnolia.extforms.form.engine.AbstractExternalFormDataBinder
renderTypeasynchronous
.

IBM External Form component

...

Configuring form settings

Form settings are configured in the External Form component.

Form tab 

Image Removed

...

Field

...

Description

...

Title

...

Title displayed above the form.

...

Text

...

Introductory text displayed below the title.

...

Form URL

...

A URL of the IBM External Form.

For the description of the other fields of the component see the part are configured in the External Form component below.

Implementing your own marketing tool

The ExternalFormsmodule includes an API to define external form services, connectors and parsers.

Implement the following interfaces and abstract class to implement a new service: 

...

Javadoc resource link
classNameinfo.magnolia.extforms.services.ExternalFormService
renderTypeasynchronous

...

Form tab 

Image Added

Field

Description

Title

Title displayed above the form.

Text

Introductory text displayed below the title.

Form URL

A URL of the IBM External Form.

For the description of the other fields of the component see the part External Form component below.

Implementing your own marketing tool

The ExternalFormsmodule includes an API to define external form services, connectors and parsers.

Implement the following interfaces and abstract class to implement a new service: 

...

Javadoc resource link
classNameinfo.magnolia.extforms.connectors.ExternalFormConnector
renderTypeasynchronous

...

  • info.magnolia.extforms.parsersservices.ExternalFormParser ExternalFormService (   Javadoc resource linkclassName ExternalFormService )
  • info.magnolia.extforms.parsers.ExternalFormParserrenderTypeasynchronousconnectors.ExternalFormConnector ( ExternalFormConnector )
  • info.magnolia.extforms.form.engine.AbstractExternalFormDataBinder (  Javadoc resource linkclassNameparsers.ExternalFormParser ( ExternalFormParser )
  • info.magnolia.extforms.form.engine.AbstractExternalFormDataBinderrenderTypeasynchronous ( AbstractExternalFormDataBinder )

Here's a skeleton of what your module configuration should look like.

...