Magnolia Campaign Publisher 2.1.0 is in beta with Magnolia 6.2.
Campaign Publisher allows managers and team members to manage all elements of online campaigns in a single app.
You can add content to campaigns directly in the app where the content is managed.
By default, the Add to campaign action is available in the Pages and Assets apps but can also be added to any content app.
At a glance, you can see a campaign’s readiness and publication status of each item in the Campaign Publisher app.
Team members can preview each campaign item and publish the entire campaign in a single click.
The Campaign Publisher module and app are compatible with Pages and Assets apps (6 UI).
There is an ongoing effort to convert the Campaign Publisher module and app to the entire 6 UI framework.
You can follow the progress on the following ticket:
MGNLCAMPU-87.
Installing with Maven
Bundled modules are automatically installed for you.
If the module is unbundled, add the following to your bundle including your project’s <dependencyManagement> section and your webapp’s <dependencies> section.
If the module is unbundled but the parent POM manages the version, add the following to your webapp’s <dependencies> section.
The Campaign Publisher app belongs to the Edit app group that has no restrictive permissions configured in the app launcher layout.
To add content to campaigns and creating and managing campaigns in the Campaign Publisher app, editors and publishers need read/write permissions in the campaigns workspace.
Only superuser has these permissions by default.
To provide users with the required permissions, create a new role in the Security app with the permissions in the table below and assign it to the user or group.
Access control lists
Workspace
Permission
Scope
Path
Campaigns
Read/Write
Selected and sub nodes
/
If permissions to the underlying content are restricted, the user will still not be able to access or preview the content in the app in which the content is managed.
Here’s what example Travel Demo tour editor Tina, who does not have access to the Pages app, sees in the Campaign Publisher app.
The activation status indicator and Preview action are disabled.
Settings for actions related to an entire campaign
Content types to add
The decorations in this section are to decorate the Campaign Publisher app so that you can configure the Add child elements to the campaign action for various apps.
Only pages and their subpages can be added from the Pages app.
For the Assets app and other content apps, you can add both items (for example, assets and contacts) and folders.
What can be added is specified by the childNodeTypesToAdd property, as shown in the example decorations below.
The uuidBehavior flag defines how incoming (deserialized) node identifiers are handled.
Subgraphs aggregate application-specific data for quick access to frontend developers and are updated during the import.
They are exposed to developers via GraphQL.
There are four options:
ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW: Incoming nodes are assigned newly created identifiers upon addition to the workspace.
As a result, identifier collisions never occur.
ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING: If an incoming node has the same identifier as an existing node in the workspace, then the existing node and its subgraph are removed from wherever it may be in the workspace before the incoming node is added.
This can result in nodes disappearing from locations in the workspace that are different from the location where the incoming subgraph is written.
ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING: If an incoming node has the same identifier as an existing node, then the existing node is replaced by the incoming node in the same position as the existing node.
This may result in the incoming subgraph being disaggregated and spread to different locations in the workspace.
Consequently, no node may be added as a child of parentAbsPath.
Specifically, this could happen if the topmost element of the incoming XML has the same identifier as an existing node elsewhere in the workspace.
ImportUUIDBehavior.IMPORT_UUID_COLLISION_THROW: If an incoming node has the same identifier as an existing node in the workspace, then an ItemExistsException is thrown.